본문 바로가기

아두이노우노 R4

아두이노 우노 R4 WiFi 빠르게 보는 요약 자료

반응형

가장 인기 있고 중요한 개발 보드의 네 번째 버전인 아두이노 UNO R4 WiFi를 설정하는 방법을 알아보세요. 

 

아두이노 UNO는 가장 인기 있고 세계적으로 인정받는 개발 보드로, 출시 이후 메이커 커뮤니티와 교육 분야에서 필수품으로 자리 잡았습니다. Arduino UNO R4 WiFi 보드는 UNO 보드의 4번째 개정판의 일부이며, 32비트 MCU(Renesas의 RA4M1 시리즈)를 최초로 탑재한 제품입니다.

 

이 문서에는 다음 프로젝트를 시작하는 데 도움이 되는 리소스 및 가이드에 대한 링크 모음이 포함되어 있으며, UNO R4 WiFi에 대한 기술 개요를 제공합니다.

 

ESP32 모듈과 Renesas RA4M1 칩은 매우 유연하고 적응력이 뛰어난 정교한 USB 직렬 시스템의 일부로, 원하는 경우 메인 MCU와 ESP32를 모두 프로그래밍할 수 있습니다(고급 옵션이며 약간의 해킹이 필요하지만).

 

Arduino UNO R4 WiFi에 대한 문서 플랫폼도 방문하실 수 있습니다. 

 

데이터시트

 

전체 데이터시트는 아래 링크에서 다운로드 가능한 PDF로 제공됩니다:

 

UNO R4 WiFi 데이터시트 다운로드

 

전원 공급

 

UNO R4 WiFi에 전원을 공급하려면 USB-C® 케이블 또는 VIN 핀을 사용할 수 있습니다.

USB-C® 커넥터를 사용하는 경우 5V로 전원을 공급해야 합니다.

6~24V 범위를 지원하는 VIN 핀을 통해 보드에 전원을 공급할 수 있으며, VIN 핀은 DC 잭(배럴 플러그 커넥터)에도 연결됩니다.

 

코어

 

UNO R4 WiFi는 아두이노 UNO R4 코어를 기반으로 합니다.

 

설치

 

UNO R4 WiFi는 아두이노 IDE, 아두이노 웹 에디터 또는 아두이노 CLI를 통해 프로그래밍할 수 있습니다.

 

아두이노 IDE

 

아두이노 IDE에서 보드를 사용하려면 보드 관리자에서 최신 버전의 아두이노 UNO R4 보드 패키지를 설치해야 합니다.

자세한 내용은 UNO R4 WiFi 시작하기 가이드를 참조하세요.

 

아두이노 웹 에디터

 

웹 에디터는 코어/패키지를 설치할 필요 없이 모든 공식 보드가 포함된 온라인 IDE입니다. 웹 에디터를 사용하려면 컴퓨터에 Create 플러그인이 설치되어 있어야 합니다.

 

자세한 내용은 웹 에디터 시작하기 안내서를 참조하세요.

 

아두이노 IoT 클라우드

 

아두이노 UNO R4 WiFi는 단 몇 분 만에 IoT 애플리케이션을 제작할 수 있는 클라우드 서비스인 아두이노 IoT 클라우드와 호환됩니다.

 

자세한 내용은 아두이노 IoT 클라우드 시작하기 안내서를 참조하세요.

 

Renesas RA4M1

 

UNO R4 WiFi에는 UNO R4 미니마에도 탑재된 강력하고 견고한 르네사스 마이크로컨트롤러가 탑재되어 있습니다. 르네사스 마이크로 컨트롤러는 내장된 주변 장치 세트를 포함하여 고성능과 견고성으로 잘 알려져 있습니다.

 

이러한 주변 장치에는 아날로그-디지털 컨버터, 타이머, 펄스 폭 변조(PWM) 장치, 통신 인터페이스(예: UART, SPI 및 I2C) 등이 포함됩니다. 

 

UNO R4 WiFi의 마이크로컨트롤러

 

메모리 보드 특징

 

  • 32kB SRAM
  • 256kB 플래시
  • 8kB 데이터(EEPROM).

 

 

UNO R4 WiFi는 다양한 핀에 대한 액세스를 제공하며, 이 글의 다음 섹션에서 설명할 특수 기능이 있는 핀이 많습니다. 핀으로 무엇을 할 수 있는지 알아보려면 계속 읽어보세요.

 

핀 기능에 대한 간략한 개요가 필요한 경우, 다음은 UNO R4 WiFi의 모든 IO 핀에 대한 전체 표입니다. 

 

 

Pin Type Function
D0 Digital UART Receive
D1 Digital UART Transmit
D2 Digital GPIO pin, Interrupt
D3 Digital GPIO pin, Interrupt, PWM
D4 Digital GPIO pin
D5 Digital GPIO pin, PWM
D6 Digital GPIO pin, PWM
D7 Digital GPIO pin
D8 Digital GPIO pin
D9 Digital GPIO pin, PWM
D10 Digital SPI (CS), GPIO pin, PWM
D11 Digital SPI (COPI), GPIO pin, PWM
D12 Digital SPI (CIPO), GPIO pin
D13 Digital SPI (SCK), GPIO pin, Built-in LED
A0 Digital Analog In, DAC
A1 Analog in Analog In, OPAMP +
A2 Analog in Analog In, OPAMP -
A3 Analog in Analog In, OPAMP OUT
A4 Analog in Analog In, SDA*
A5 Analog in Analog In, SCL*

*A4 및 A5 핀은 모두 동일한 I2C 버스에 연결됩니다. 

 

아날로그 핀

 

UNO R4 WiFi에는 analogRead() 함수를 사용하여 읽을 수 있는 6개의 아날로그 입력 핀(A0-A5)이 있습니다. 

 

inTypeFunction

Pin Type Function
A0 Analog Analog In, DAC
A1 Analog Analog In, OPAMP +
A2 Analog Analog In, OPAMP -
A3 Analog Analog In, OPAMP OUT
A4 Analog Analog In, SDA*
A5 Analog Analog In, SCL*

*A4 and A5 pins are both connected to the same I2C bus. 

 

value = analogRead(pin);

 

이 핀의 기준 전압, 레퍼런스 전압은 5V입니다.

 

기본 해상도는 10비트로 설정되어 있지만 12비트 및 14비트 해상도로 업데이트할 수 있습니다. 이렇게 하려면 스케치의 Setup() 메서드에서 다음 방법을 사용합니다. 

 

analogReadResolution(10) (default)
analogReadResolution(12)
analogReadResolution(14)

 

UNO R4 WiFi의 ADC 기능에 대해 자세히 알아보려면 ADC-솔루션 가이드를 확인하세요.

 

OPAMP

 

핀 RA4M1에는 다음과 같이 UNO R4 WiFi에 노출된 내부 OPAMP가 있습니다:

 

Pin OPAMP
A1 OPAMP +
A2 OPAMP -
A3 OPAMP OUT

 

디지털 핀

 

UNO R4 WiFi에는 총 14개의 디지털 핀이 있습니다. 이 중 일부는 다른 용도로 사용되며 다른 핀을 사용할 수 있는 경우 GPIO에 사용해서는 안 됩니다. 

 

모든 디지털 핀의 기준 전압은 5V입니다.

 

PWM

 

PWM(펄스 폭 변조) 기능을 사용하면 디지털 핀을 매우 빠르게 켜고 끄는 방식으로 아날로그 출력을 에뮬레이션하여 디지털 핀에 연결된 LED를 어둡게 할 수 있습니다.

 

UNO R4 WiFi는 헤더에 ~로 표시된 핀에서 PWM을 지원합니다. 공식적으로 지원되는 핀은 다음과 같습니다: 

 

Pin RA4M1 Timer
D3 P105 GTIOC1A
D5 P107 GTIOC0A
D6 P111 GTIOC3A
D9 P303 GTIOC7B
D10 P103 GTIOC2A
D11 P411 GTIOC6A

 

이 기능을 통해 아날로그 출력 핀으로 사용할 수 있습니다:

 

analogWrite(pin, value);

 

참고: 다음 핀은 PWM이 가능하지만 UNO R4 WiFi 보드의 다른 기능에 간섭을 일으킬 수 있습니다. 라이브러리 함수를 작성할 때 공식적으로 지원되는 PWM 핀이 아니므로 사용하지 마세요. 

 

Pin RA4M1 Timer
D0 P301 GTIOC4B
D1 P302 GTIOC4A
D2 P104 GTIOC1B
D4 P106 GTIOC0B
D7 P112 GTIOC3B
D8 P304 GTIOC7A
D12 P410 GTIOC6B
D13 P102 GTIOC2B
D18 / SDA P101 GTIOC5A
D19 / SCL P100 GTIOC5B

 

LED 매트릭스

 

UNO R4 WiFi의 LED 매트릭스는 프로그램에서 정지 그래픽, 애니메이션을 표시하거나 게임을 플레이하는 데 사용할 수 있습니다. Renesas 코어에는 매트릭스에 프레임을 표시하기 위한 Arduino_LED_Matrix 라이브러리가 포함되어 있습니다.

 

LED 매트릭스에 대해 자세히 알아보려면 LED 매트릭스 가이드를 확인하세요.

 

  • Arduino_LED_Matrix matrix - LED 매트릭스를 초기화합니다.
  • Arduino_LED_Matrix.load() - 프레임 버퍼에 프레임을 로드합니다.

 

다음은 기본 예제입니다: 

 

// creates an array of two frames
const uint32_t frames[][4] = {
  {
    0x0,
    0x0,
    0xc00c0000,
    150
  },
  {
    0x0,
    0x1e01,
    0x201201e0,
    150
  }
}

  // loads the frames into the matrix buffer
  matrix.load(frames);

 

DAC

 

또한 UNO R4 WiFi에는 최대 12비트 해상도의 DAC가 탑재되어 있어 순정 아날로그 출력 핀으로 작동할 수 있어 PWM 핀보다 훨씬 더 뛰어난 성능을 발휘합니다.

 

analogWrite(pin, value);

 

DAC Pin

 

이 DAC 핀의 기본 쓰기 분해능은 8비트입니다. 즉, 핀에 기록되는 값은 0~255 사이여야 합니다.

그러나 필요한 경우 이 쓰기 해상도를 최대 12비트로 변경할 수 있으며, 이 경우 핀에 기록하는 값은 0-4096 사이여야 합니다.

 

analogWriteResolution(12);

 

UNO R4 WiFi의 DAC 기능에 대해 자세히 알아보려면 DAC 가이드를 확인하세요.

 

RTC

 

실시간 시계(RTC)는 시간을 측정하는 데 사용되며 모든 시간 추적 애플리케이션에 유용합니다.

 

* UNO R4 WiFi에는 보드 전원 공급이 차단된 상태에서도 온보드 RTC를 계속 작동시키는 데 사용되는 VRTC 핀이 있습니다. 이를 사용하려면 VRTC 핀에 1.6~3.6V 범위의 전압을 인가합니다.

 

아래는 RTC에서 날짜와 시간을 얻는 방법을 보여주는 최소한의 예입니다: 

 

#include "RTC.h"

void setup() {
  Serial.begin(9600);

  RTC.begin();
  RTCTime mytime(30, Month::JUNE, 2023, 13, 37, 00, DayOfWeek::WEDNESDAY, SaveLight::SAVING_TIME_ACTIVE);

  RTC.setTime(mytime);
}

void loop() {
  RTCTime currenttime;

 // Get current time from RTC
  RTC.getTime(currenttime);
  
  // Print out date (DD/MM//YYYY)
  Serial.print(currenttime.getDayOfMonth());
  Serial.print("/");
  Serial.print(Month2int(currenttime.getMonth()));
  Serial.print("/");
  Serial.print(currenttime.getYear());
  Serial.print(" - ");

  // Print time (HH/MM/SS)
  Serial.print(currenttime.getHour());
  Serial.print(":");
  Serial.print(currenttime.getMinutes());
  Serial.print(":");
  Serial.println(currenttime.getSeconds());

  delay(1000);
}

 

UNO R4 WiFi의 RTC 기능에 대해 자세히 알아보려면 RTC 가이드를 확인하세요.

 

EEPROM

 

'데이터' 메모리라고도 하는 EEPROM은 보드의 전원이 꺼진 후에도 데이터를 유지할 수 있는 메모리 유형입니다.

 

EEPROM.write(address, val);
EEPROM.read(address);

 

약 1만 번의 다시 쓰기로 주기가 제한되어 있으니 읽기 전용 애플리케이션에 가장 적합합니다. 칩의 모든 쓰기 주기를 사용할 수 있으므로 void loop() 안에 write()를 사용하지 않도록 주의하세요.

 

자세한 내용은 EEPROM 가이드를 참조하세요.

 

UNO R4 WiFi의 EEPROM 기능에 대해 자세히 알아보려면 EEPROM 가이드를 확인하세요.

 

SPI 

 

SPI Pins

 

UNO R4 WiFi는 직렬 주변장치 인터페이스(SPI) 버스를 갖추고 있습니다. 버스(커넥터) 'SPI'는 다음 핀을 사용합니다:

 

  • (COPI) - D11
  • (CIPO) - D12
  • (SCK) - D13
  • (CS) - D10

다음 예는 SPI 사용 방법을 보여줍니다: 

 

#include <SPI.h>

const int CS = 10;


void setup() {
  pinMode(CS, OUTPUT);

  SPI.begin();

  digitalWrite(CS, LOW);

  SPI.transfer(0x00);
  
  digitalWrite(CS, HIGH);
}

void loop() {
}

 

I2C

 

I2C를 사용하면 단 두 개의 핀을 사용하여 여러 개의 I2C 호환 장치를 직렬로 연결할 수 있습니다. 컨트롤러는 I2C 버스를 통해 7비트 주소로 정보를 전송하므로 단일 회선에 있는 I2C 장치의 기술적 한계는 128개입니다. 실제로는 다른 제한이 발생하기 전에 128개의 장치에 도달할 수 없습니다.

 

UNO R4 WiFi에는 SCL 및 SDA로 표시된 하나의 I2C 버스가 있습니다. 이 버스는 이전 UNO 소유자에게 익숙한 A4(SDA) 및 A5(SCL)와 공유됩니다. 풀업은 PCB에 장착되어 있지 않지만 필요한 경우 장착할 수 있는 풋프린트가 있습니다.

 

UNO R4 WiFi의 I2C에 사용되는 핀은 다음과 같습니다:

 

  • SDA - D14
  • SCL - D15 

 

I2C Pins

 

I2C 장치를 연결하려면 스케치 상단에 와이어 라이브러리를 포함해야 합니다.

 

#include <Wire.h>

 

void setup() 내에서 라이브러리를 초기화하고 사용하려는 I2C 포트를 초기화해야 합니다.

 

Wire.begin() //SDA & SDL
Wire1.begin(); //SDA1 & SDL1
Wire2.begin(); //SDA2 & SDL2

 

그리고 I2C로 연결된 장치에 무언가를 쓰려면 다음 명령을 사용할 수 있습니다:

 

Wire.beginTransmission(1); //begin transmit to device 1
Wire.write(byte(0x00)); //send instruction byte 
Wire.write(val); //send a value
Wire.endTransmission(); //stop transmit

 

QWIIC 커넥터 

 

Qwiic Connector on UNO WiFi R4

 

* UNO R4 WiFi의 Qwiic 커넥터는 Wire 객체가 아닌 Wire1 객체를 사용하는 보조 I2C 버스(IIC0)에 연결됩니다. Qwiic 커넥터는 3.3V 전용이라는 점에 유의하세요.

 

UNO R4 WiFi에는 모듈을 연결하는 데 사용할 수 있는 Qwiic/STEMMA 커넥터가 있어 여러 모듈을 데이지 체인으로 연결하고 단일 커넥터를 통해 모든 모듈을 제어할 수 있습니다.

 

Qwiic 또는 STEMMA는 각각 개발 기판과 브레이크아웃 모듈의 I2C 핀을 번들로 묶어주는 SparkFun과 Adafruit에서 개발한 커넥터 유형의 이름입니다. 즉, 개발 보드(예: Arduino UNO R4 WiFi)와 브레이크아웃 모듈이 있고 둘 다 Qwiic 또는 STEMMA 커넥터가 있는 경우, 이 둘을 함께 연결하면 배선을 최소화하여 다각적인 프로젝트를 빠르게 만들 수 있습니다.

 

브레이크아웃 보드에 이러한 커넥터가 두 개 이상 있는 경우(많은 경우), 두 번째 커넥터를 사용하여 다른 Qwiic 모듈을 데이지 체인으로 연결하여 프로젝트에 또 다른 대화형 노드를 추가할 수 있습니다.

 

UNO R4 WiFi에는 두 개의 I2C 버스가 있으며, Qwiic 커넥터는 보조 버스에 연결됩니다. 즉, Wire 라이브러리를 사용하는 경우 다음 예제처럼 Wire 객체가 아닌 Wire1 객체를 사용해야 합니다: 

 

#include <Wire.h>

void setup(){
  Wire1.begin();
  Wire1.beginTransmission(1);   //begin transmit to device 1
  Wire1.write(byte(0x00));      //send instruction byte 
  Wire1.write(val);             //send a value
  Wire1.endTransmission();      //stop transmit
}

 

USB 시리얼 및 UART

 

UNO R4 WiFi 보드에는 2개의 개별 하드웨어 직렬 포트가 있습니다.

 

  • 한 포트는 USB-C®를 통해 노출되고
  • 하나는 RX/TX 핀을 통해 노출됩니다.

 

UNO R3는 하드웨어 직렬 포트가 하나뿐이고 보드의 USB 포트와 RX/TX 핀에 모두 연결되어 있기 때문에 이 점이 UNO R3와 UNO R4의 뚜렷한 차이점 중 하나입니다.

 

UNO R4 WiFi의 UART에 사용되는 핀은 다음과 같습니다: 

 

Pin Function
D0 RX (Receive)
D1 TX (Transmit)

 

기본 USB

 

시리얼 데이터를 컴퓨터로 전송하는 것은 표준 시리얼 객체를 사용하여 수행됩니다.

 

Serial.begin(9600);
Serial.print("hello world");

 

UART를 통해 데이터를 송수신하려면 먼저 void setup() 내에서 전송 속도를 설정해야 합니다.

 

UART

 

UNO R4 WiFi에서 UART에 사용되는 핀은 다음과 같습니다: 

 

PinFunction

Pin Function
D0 RX0
D1 TX0

 

UART를 통해 데이터를 송수신하려면 먼저 void setup() 내에서 전송 속도를 설정해야 합니다. UART(RX/TX 핀)를 사용할 때는 Serial1 객체를 사용한다는 점에 유의하세요.

 

Serial1.begin(9600);

 

들어오는 데이터를 읽으려면 while loop()를 사용하여 각 문자를 읽고 문자열에 추가할 수 있습니다. 

 

while(Serial1.available()){
    delay(2);
    char c = Serial1.read();
    incoming += c;
  }

 

그리고 무언가를 작성하려면 다음 명령을 사용할 수 있습니다:

 

Serial1.write("Hello world!");

 

시리얼 이벤트

 

serialEvent() 메서드는 이전 버전의 UNO 보드에서는 지원되지만, UNO R4 보드(또는 다른 최신 아두이노 보드)에서는 지원되지 않습니다.

 

그러나 이 메서드는 직렬 데이터를 감지하고 함수를 실행하는 데만 사용되므로 Serial.available()를 사용하여 새 데이터를 사용할 수 있는 시기를 감지할 수도 있습니다:

 

if(Serial.available() > 0) {
  //code goes here
}

 

SerialUSB

 

UNO R4 WiFi에는 스케치에 라이브러리를 포함할 때마다 활성화할 수 있는 확장된 Serial 메서드 세트가 있습니다.

 

  • Serial.baud() - 현재 사용 중인 전송 속도(int)를 반환합니다.
  • Serial.stopbits() - 통신에 사용된 정지 비트 수(int)를 반환합니다.
  • Serial.paritytype() - 통신에 사용된 패리티 유형(int)을 반환합니다.
  • Serial.numbits() - 통신에 사용된 데이터 비트 수(int)를 반환합니다.
  • Serial.dtr() - 데이터 터미널 준비(DTR) 신호의 상태(bool)를 반환하고, DTR 신호가 활발히 사용되는 경우 무시_dtr 플래그를 true로 설정합니다.
  • Serial.rts() - 전송 요청(RTS) 신호의 상태(bool)를 반환합니다.

 

HID.h 라이브러리는 이러한 추가 기능을 활성화하는 Serial 객체를 SerialUSB로 리매핑합니다.

 

지원되는 링크: SerialUSB.h (Github).

 

USB HID

 

UNO R4 WiFi에서 USB 포트가 구현되는 방식에 따라 HID를 사용할 때 보드가 다른 USB 포트로 표시될 수 있다는 점에 유의하세요. 이 경우 재설정 버튼을 두 번 탭하고 보드를 다시 선택하면 됩니다. 

 

이 보드는 HID(키보드/마우스) 역할을 하며 기본 USB를 통해 키 입력이나 좌표를 컴퓨터로 전송할 수 있습니다. COPY 1

 

keyboard.press('W');
mouse.move(x,y);

 

이 지원은 IDE의 라이브러리 관리자에서 설치할 수 있는 키보드마우스 라이브러리를 통해 활성화됩니다.

UNO R4 WiFi의 HID 기능에 대해 자세히 알아보려면 HID 가이드를 확인하세요.

 

직렬 리맵

 

HID.h 라이브러리가 스케치에 포함될 때마다 직렬 객체가 Serial에서 SerialUSB로 전환되어 HID 기능을 지원합니다. 이렇게 하면 여기에 나열된 더 많은 메서드를 사용할 수 있습니다.

 

지원되는 링크: HID.h (깃허브)

 

CAN 모듈

 

UNO R4 WiFi의 RA4M1에는 CAN 2.0A/CAN 2.0B 표준을 준수하는 CAN 모듈이 내장되어 있습니다.

 

CANRX 및 CANTX 핀은 MCP2551 또는 TJA1050 IC와 같은 CAN 트랜시버에 연결할 수 있습니다. 

 

Pin Function
D10 CANRX
D13 CANTX

 

내장된 Arduino_CAN 라이브러리는 다른 CAN 장치와 통신하는 데 사용됩니다.

 

// CAN 비트 전송률과 초기 라이브러리를 다음에서 설정합니다. BR_125k,BR_250k,BR_500k,BR_1000k 

CAN.begin(CanBitRate::BR_250k);

 

CAN 메시지를 작성하여 전송합니다:

 

uint8_t const msg_data[] = {0xCA,0xFE,0,0,0,0,0,0};
memcpy((void *)(msg_data + 4), &msg_cnt, sizeof(msg_cnt));
CanMsg msg(CAN_ID, sizeof(msg_data), msg_data);
CAN.write(msg);

 

수신된 CAN 메시지를 읽습니다.

 

CanMsg const msg = CAN.read(); //read

 

CAN 트랜시버가 없으면 다른 CAN 장치와 통신할 수 없다는 점에 유의하세요.

 

UNO R4 WiFi의 CAN 기능에 대해 자세히 알아보려면 CAN 가이드를 확인하세요.

 

ESP32-S3-MINI-1-N8

 

기본적으로 UNO R4 WiFi에 탑재된 ESP32-S3 모듈은 시리얼 브리지 역할을 하여 컴퓨터와의 연결을 처리합니다. 또한 새로운 스케치를 수신하고 재설정할 때와 같이 필요할 때 메인 MCU인 Renesas RA4M1의 재부팅을 처리합니다.

 

UNO R3에서는 ATMEGA16U2가 동일한 용도로 사용됩니다. 온보드 ESP32 모듈은 보드에 Wi-Fi® 및 Bluetooth® 연결을 추가하는 고급 SoC입니다.

 

또한 ESP32는 ESP32의 데이터 라인을 노출하므로 사용자가 직접 ESP32를 프로그래밍할 수 있습니다. 이러한 데이터 라인은 보드 상단의 3x2 헤더 또는 하단의 패드를 통해 노출됩니다.

 

* ESP32에는 RA4M1 칩과 통신하도록 설정된 기본 펌웨어가 설치되어 있다는 점에 유의하세요. ESP32를 직접 프로그래밍하면 해당 펌웨어가 재정의되며 기본 펌웨어가 복원될 때까지 칩 간의 통신이 중단될 수 있습니다. 

 

UNO R4 & UNO R3

 

USB 브리지

 

기본적으로 ESP32는 컴퓨터와 RA4M1 MCU 사이의 직렬 브리지 역할을 합니다. USB 데이터 라인은 스위치를 통해 라우팅되며, 기본적으로 이 스위치는 통신이 ESP32 모듈을 통해 이루어지도록 설정되어 있습니다.

 

직렬 통신용 스위치입니다.

 

원하는 경우 이를 변경하여 소프트웨어 또는 하드웨어를 통해 RA4M1 MCU의 직렬 버스에 직접 액세스할 수 있습니다. 아래 지침을 참조하세요:

 

1. 소프트웨어 - D21을 HIGH로 당기면 USB에 연결된 MCU를 제어하는 회로가 닫힙니다. D21이 HIGH인 상태에서는 RA4M1이 USB 직렬 포트에 연결되고, D21이 LOW인 상태에서는 기본 구성과 같이 ESP32가 연결됩니다. 이를 위해 void setup()에 다음 코드를 포함하면 됩니다.

 

pinMode(21, OUTPUT);
digitalWrite(21, HIGH);

 

2. UNO R4 WiFi의 뒷면에는 "RA4M1 USB"라고 표시된 납땜 패드가 있습니다. 이 패드 사이에 납땜으로 브릿지를 만드는 등 단락 회로를 만들면 RA4M1이 ESP32가 아닌 USB 직렬 포트에 연결됩니다. 

 

RA4M1 USB 납땜 패드

 

Wi-Fi®

 

UNO R4 WiFi에 내장된 ESP32는 보드에 Wi-Fi® 기능을 제공하는 데 사용됩니다. Wi-Fi® 모듈의 비트 전송률은 최대 150Mbps입니다. ESP32 모듈에는 트레이스 안테나가 내장되어 있어 보드의 연결 기능을 사용하기 위해 외부 안테나가 필요하지 않습니다. 그러나 이 추적 안테나는 Bluetooth® 모듈과 공유되므로 Bluetooth®와 Wi-Fi®를 동시에 사용할 수 없습니다.

 

UNO R4 WiFi의 Wi-Fi® 기능을 사용하려면 UNO R4 코어에 내장된 WiFiS3 라이브러리를 사용해야 합니다.

 

UNO R4 WiFi의 Wi-Fi® 기능에 대해 자세히 알아보려면 네트워크 예제를 참조하십시오.

 

블루투스®

 

ESP32 모듈 덕분에 UNO R4 WiFi는 최대 2Mbps의 속도로 Bluetooth® LE 및 Bluetooth® 5 기능을 제공합니다. ESP32 모듈에는 트레이스 안테나가 내장되어 있어 보드의 연결 기능을 사용하기 위해 외부 안테나가 필요하지 않습니다. 그러나 이 추적 안테나는 Bluetooth® 모듈과 공유되므로 Bluetooth®와 Wi-Fi®를 동시에 사용할 수 없습니다.

 

ESP32 프로그래밍(고급)

 

ESP32 모듈과 Renesas RA4M1 칩은 매우 유연하고 적응력이 뛰어난 정교한 USB 직렬 시스템의 일부로, 원하는 경우 메인 MCU와 ESP32를 모두 프로그래밍할 수 있는 기능을 유지하면서 HID 기능을 사용할 수 있습니다. 기본적으로 ESP32는 주로 Wi-Fi® 및 Bluetooth®를 사용하는 무선 모듈로 사용됩니다.

 

ESP32의 펌웨어를 덮어쓰면 두 MCU 간의 통신이 중단되지만 독립적으로 작동할 수 있습니다. 

 

참고: ESP32 모듈을 다시 프로그래밍하려면 보드를 리셋하는 동안 ESP_Download 핀을 GND에 단락시켜야 합니다. 이렇게 하면 ESP32 모듈이 부트로더 상태가 되어 연결을 설정하고 모듈을 다시 프로그래밍할 수 있습니다.

 

ESP32 보드를 리프로그래밍하려면 아래 이미지와 같이 배치된 ESP32 모듈 옆에 있는 UART 패드를 찾으면 됩니다:

 

노출된 ESP32 데이터 패드

 

 

또는 여기에 표시된 것처럼 ESP32 헤더에 직접 노출된 핀을 사용할 수 있습니다:

 

ESP32 데이터 핀 헤더

 

 

 

반응형

더욱 좋은 정보를 제공하겠습니다.~ ^^