这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » GIGA_R1_WiFi开发指南【摄像功能使用】

共1条 1/1 1 跳转至

GIGA_R1_WiFi开发指南【摄像功能使用】

助工
2026-02-02 23:21:00   被打赏 50 分(兑奖)     打赏

一、硬件介绍

1、产品特点

Arduino GIGA R1 WiFi 开发板,提供76个GPIO引脚(其中12个为模拟端口、12个PWM、4个串行端口、3个I2C、2个SPI、1个FDCAN、1个SAI);

采用双核STM32H747XI微控制器(480MHz的Cortex-M7内核和240 MHz的Cortex-M4内核);

配备2MB闪存、1MB内存,以及6MB外部闪存和8MB SDRAM;


通过板载Murata 1DX模块实现WiFi和低功耗蓝牙连接;

还有输入/输出3.5mm音频插孔、JTAG连接器、20Pin的Arducam相机连接器等;


image-20260125205601548

image-20260125205601548.png



主要特性



  • 微控制器:STMicro STM32H747XI Cortex-M7@480 MHz + M4 @ 240 MHz MCU(2MB 双组闪存、1MB RAM)

  • 内存:8MB SDRAM

  • 存储:16MB QSPI NOR 闪存

  • 无线功能:2.4GHz WiFi 802.11b/g/n和蓝牙 5.1 BR/EDR/LE(Murata 1DX 模块)


接口

  • 显示屏:20pin接口

  • 摄像头:20pin Arducam摄像头接口

  • USB1x USB Type-C 端口用于编程和 HID1x USB 2.0 主机 Type-A 端口

  • 音频:3.5 毫米音频插孔

  • 调试:JTAG 连接器

  • 电源:通过VIN引脚提供6 ~ 24V输入

  • VRT(为RTC供电)和 OFF(关闭电路板电源)引脚


  • 复位按钮、BOOT0按钮、RGB_LED、电源LED

  • 安全功能:Microchip ATECC608A

  • 每个 I/O 引脚 8mA




二、功能实现

1、硬件介绍

GIGA R1板载20pin摄像头连接器,可以连接具有20pin的摄像头模块(OV7670 / Arducam)



image-20260131224514479.png

image-20260131224514479




引脚原理图



image-20260131224710335.png




摄像头模块(OV7670)


摄像头包含30w像素的CMOS图像感光芯片,3.6mm焦距的镜头和镜头座;



image-20260201184525298.png


特性


image-20260201232301851.png




引脚原理图


image-20260201232742031.png


实物搭建效果


image-20260131225113098.png


image-20260131225113098


2、功能效果



通过USB串口将摄像头传感器数据传输到网页界面上进行显示;

(640x480分辨率 和 RGB565颜色模式)


image-20260202163927753.png


image-20260202163927753三、代码编写



1、打开 网页串口 进行摄像画面显示



将摄像画面直接传输到网页浏览器上进行显示;


image-20260202170711697.png





2、摄像头画面采集


主要相关代码


#include "camera.h"
#include "ov767x.h"
#include "SDRAM.h"

OV7670 ov767x;
Camera cam(ov767x);

#define IMAGE_MODE CAMERA_RGB565    //  RGB565模式

constexpr uint16_t CHUNK_SIZE = 32768;    //  32KB
constexpr uint8_t RESOLUTION  = CAMERA_R640x480;  //  最大支持分辨率
constexpr uint8_t CONFIG_SEND_REQUEST = 2;  //  返回当前配置
constexpr uint8_t IMAGE_SEND_REQUEST = 1;   //  单帧图像传输

//帧数据封装
uint8_t START_SEQUENCE[4] = { 0xfa, 0xce, 0xfe, 0xed };
uint8_t STOP_SEQUENCE[4] = { 0xda, 0xbb, 0xad, 0x00 };

FrameBuffer fb(SDRAM_START_ADDRESS);  //外部SDRAM


//分块传输数据
void sendChunk(uint8_t* buffer, size_t bufferSize){
  Serial.write(buffer, bufferSize);
  Serial.flush();
  delay(1);
}

//  图像帧传输
void sendFrame(){
  if (cam.grabFrame(fb, 3000) == 0) {    
    byte* buffer = fb.getBuffer();
    size_t bufferSize = cam.frameSize();
    sendChunk(START_SEQUENCE, sizeof(START_SEQUENCE));  //  新帧开始
    for(size_t i = 0; i < bufferSize; i += CHUNK_SIZE) {  //  切分图像数据传输
      size_t chunkSize = min(bufferSize - i, CHUNK_SIZE);
      sendChunk(buffer + i, chunkSize);
    }    
    sendChunk(STOP_SEQUENCE, sizeof(STOP_SEQUENCE));  //  帧数据结束
  }
}

// 传输格式
void sendCameraConfig(){
  Serial.write(IMAGE_MODE);
  Serial.write(RESOLUTION);
  Serial.flush();
  delay(1);
}

void setup() {
  SDRAM.begin();    //  开启外部SDRAM 存储
  //  cam初始化
  if (!cam.begin(RESOLUTION, IMAGE_MODE, 30)) {
    Serial.print("Cam 初始化 失败!");
  }
}

void loop() {
  if(!Serial) {    
    Serial.begin(115200);
    while(!Serial);    
  }
  if(!Serial.available()) return;
  byte request = Serial.read();
  switch(request){
    case IMAGE_SEND_REQUEST:
      sendFrame();
      break; 
    case CONFIG_SEND_REQUEST:
      sendCameraConfig();
      break;
  }
}




四、程序烧录


1、连接USB数据线至开发板;

2、选择端口号对应的开发板;

3、点击 上传 烧录程序到开发板上;


image-20260105170611018.png




五、效果演示


摄像画面显示效果:


image-20260202163234374.png


image-20260202163319891.png



image-20260202163234374

image-20260202163608634.png

image-20260202163319891


image-20260202163608634







关键词: GIGA R1 WiFi    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]