아두이노우노 R4

아두이노 우노 R4 Minima 핵 꿀팁 Cheat Sheet

지구빵집 2024. 3. 14. 07:58
반응형

 

아두이노 UNO R4 미니마 치트 시트

 

가장 인기 있고 중요한 개발 보드의 네 번째 개정판인 UNO R4 Minima를 설정하는 방법을 알아보세요. 

 

Arduino® UNO R4 Minima는 Renesas에서 만든 RA4M1 마이크로 컨트롤러를 기반으로 하는 클래식 UNO 폼 팩터의 개발 기판입니다. 이 기판은 32kB RAM 메모리, 48MHz의 클록 속도, USB-C® 포트를 제공합니다.

 

 

실력있는 메이커가 되기 위해 꼭 참고할 유용한 문서를 무료로 받으세요.

 

일년 성찰 가이드

https://kimbongzo.gumroad.com/l/YearReviewGuide

 

아두이노 우노 R4 Minima 빠르게 시작하기

https://kimbongzo.gumroad.com/l/Arduino-R4-Minima

 

아두이노 우노 R4 WiFi 빠르게 시작하기

https://kimbongzo.gumroad.com/l/arduinor4wifi

 

고객에 대한 빠른 응답 템플릿

https://kimbongzo.gumroad.com/l/ezhaf

 

아두이노 개발의 시작, 아두이노 IDE 2 완벽 가이드

https://kimbongzo.gumroad.com/l/ArduinoIDE2UltimateGuide

 

아두이노 Nano 33 IoT 퀵 가이드

https://kimbongzo.gumroad.com/l/Nano33IoTQuickGuide

 

라즈베리파이 5 퀵 가이드

https://kimbongzo.gumroad.com/l/raspberrypi_5_QuickGuide

 

Python OpenCV 컴퓨터 비전 입문 프로그래밍

https://kimbongzo.gumroad.com/l/python_opencv_basic

 

Python OpenCV 컴퓨터 비전 고급 프로그래밍

https://kimbongzo.gumroad.com/l/qmgmdw

 

미세먼지 모니터 제작 강의 자료

https://kimbongzo.gumroad.com/l/finedustmeter_maker

 

 

자, 시작해 봅시다. ^^

 

이전에는 8비트 AVR 아키텍처를 기반으로 했던 이 제품은 32비트 아키텍처를 사용하는 최초의 UNO 보드입니다.

 

 

 

 

 

이 문서는 보드의 다양한 구성 요소와 시작하기 위한 리소스를 소개하는 보드에 대한 기술 참조 문서입니다.

 

데이터 시트

 

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

 

UNO R4 미니마 데이터시트 다운로드

 

minima-ABX00080-cad-files.zip
4.09MB

 

전원 공급

 

UNO R4 미니마에 전원을 공급하려면 USB-C® 케이블 또는 VIN 핀을 사용할 수 있습니다. USB-C® 커넥터를 사용하는 경우 5V로 전원을 공급해야 합니다.

 

보드에 전원을 공급할 때는 6~24V 범위를 지원하는 VIN 핀을 통해 전원을 공급할 수 있습니다.

 

코어

 

UNO R4 미니마는 르네사스 장치용 아두이노 코어를 기반으로 합니다.

 

설치

 

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

 

아두이노 IDE

 

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

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

 

아두이노 웹 에디터

 

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

 

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

 

Renesas RA4M1

 

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

 

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

 

메모리: 보드 특징

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

 

 

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

 

아래는 UNO R4 미니마에 있는 모든 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 (CIPO), GPIO pin, PWM
D12 Digital SPI (COPI), GPIO pin
D13 Digital SPI (SCK), GPIO pin, Built-in LED
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 및 A5 핀은 모두 동일한 I2C 버스에 연결됩니다.

 

아날로그 핀

 

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

 

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 및 A5 핀은 모두 동일한 I2C 버스에 연결됩니다.

 

value = analogRead(pin);

 

이 핀의 Reference Voltage, 기준 전압은 5V입니다.

 

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

 

  • analogReadResolution(10) (기본값)
  • analogReadResolution(12)
  • analogReadResolution(14)

 

UNO R4 Minima의 ADC 기능에 대해 자세히 알아보려면 ADC-해상도 가이드를 확인하세요.

 

OPAMP 핀

 

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

 

 

Pin OPAMP
A1 OPAMP +
A2 OPAMP -
A3 OPAMP OUT

 

PWM

 

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

 

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

 

Pin RA4M1 Timer
D3 P104 GTIOC1B
D5 P102 GTIOC2B
D6 P106 GTIOC0B
D9 P303 GTIOC7B
D10 P112 GTIOC3B
D11 P109 GTIOC1A

 

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

 

analogWrite(pin, value);

 

디지털 핀

 

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

 

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 (CIPO), GPIO pin, PWM
D12 Digital SPI (COPI), GPIO pin
D13 Digital SPI (SCK), GPIO pin, Built-in LED

 

또한 아날로그 핀 A0-A5는 디지털 핀으로도 사용할 수 있습니다. A4/A5는 I2C 버스용으로 예약되어 있습니다.

 

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

 

LED

 

UNO R4 미니마에는 총 4개의 LED가 있으며, 이 중 3개는 프로그래밍이 가능합니다:

 

  • ON - 전원 LED, 프로그래밍할 수 없습니다.
  • LED_BUILTIN - 핀 13에 부착된 클래식한 "내장 LED".
  • RX_LED - 보드에 "RX" 라벨이 붙은 LED.
  • TX_LED - 보드에 "TX" 라벨이 붙은 LED.

 

이를 제어하려면 출력으로 정의하고 원하는 상태를 작성합니다. 아래 예제는 각 LED를 1초마다 깜빡입니다. 

 

 

void setup(){
  //define pins as output
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(RX_LED, OUTPUT);
  pinMode(TX_LED, OUTPUT);
}

void loop(){
  //turn on all LEDs
  digitalWrite(LED_BUILTIN, HIGH);
  digitalWrite(LED_RX, HIGH);
  digitalWrite(LED_TX, HIGH);
  delay(1000);

  //turn off all LEDs
  digitalWrite(LED_BUILTIN, LOW);
  digitalWrite(LED_RX, LOW);
  digitalWrite(LED_TX, LOW);
  delay(1000);
}

 

DAC

 

DAC Pin

DAC 핀

 

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

 

analogWrite(pin, value);

 

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

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

analogWriteResolution(12);

 

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

 

RTC

 

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

아래는 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 미니마의 RTC 기능에 대해 자세히 알아보려면 RTC 가이드를 확인하세요.

 

EEPROM

 

'데이터' 메모리라고도 하는 EEPROM은 보드의 전원이 꺼진 후에도 데이터를 유지할 수 있는 메모리 유형입니다. 아두이노 Uno R4 미니마에는 8kB EEPROM이 있습니다.

 

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

 

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

 

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

 

EEPROM에 대해 더 자세히 알아보려면 Arduino UNO R4 미니마 EEPROM에 대한 이 문서를 확인하세요.

 

SPI 

 

 

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

 

Pin Type
D13 SCK
D12 CIPO
D11 COPI
D10 CS

 

다음 예는 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 Pin

 

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

 

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

 

UNO R4 미니마에서 I2C에 사용되는 핀은 다음과 같습니다:

  • SDA - D18 또는 A4
  • SCL - D19 또는 A5

 

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

 

#include <Wire.h>

 

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

 

Wire.begin() //SDA & SDL

 

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

 

Wire.beginTransmission(1); //장치 1로 전송 시작 
Wire.write(byte(0x00)); //명령어 바이트 보내기 
Wire.write(val); //send value 
Wire.endTransmission(); //전송 중지

 

USB 시리얼 & UART

 

UNO R4 미니마 보드에는 두 개의 개별 하드웨어 시리얼 포트가 있습니다.

 

  • 하나의 포트는 USB-C®를 통해 노출되어 있으며
  • 하나는 RX/TX 핀을 통해 노출됩니다.

 

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

 

네이티브 USB

 

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

 

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

 

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

 

UART

 

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

 

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

 

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 미니마에는 확장된 시리얼 메서드 세트가 있습니다:

 

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

 

지원되는 링크:

 

SerialUSB.h (Github).

 

USB HID

 

이 보드는 HID(키보드/마우스)로 작동하여 기본 USB를 통해 키 입력 또는 좌표를 컴퓨터로 전송할 수 있습니다.

 

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

 

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

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

 

SWD 커넥터 

 

SWD 커넥터

 

UNO R4 미니마에는 SWD 커넥터 핀을 사용한 디버깅 옵션이 있어 고급 사용자를 위한 고급 디버그 기능을 제공합니다.

 

CAN 모듈

 

UNO R4 Minima의 RA4M1에는 CAN 2.0A/CAN 2.0B 표준을 준수하는 CAN 모듈이 내장되어 있습니다. CANRX 및 CANTX 핀은 MCP2551 또는 TJA1050 IC와 같은 CAN 트랜시버에 연결할 수 있습니다.

 

Pin Function
D4 CANTX
D5 CANRX

 

 

내장된 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(); //읽기

 

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

 

부트로더

 

UNO R4 Minima에서 부트로더를 플래시해야 하는 경우, 아래 단계를 따르세요:

 

1 단계: 시작 가이드에 설명된 대로 UNO R4 보드 패키지를 설치합니다.

 

2단계: 다음 위치로 이동합니다: "C:\사용자\사용자 이름\앱데이터\로컬\아두이노15\패키지\아두이노\하드웨어\ 레네사스\0.5.0\부트로더\SANTIAGO"

 

"C:\Users\YourWindowsUserName\AppData\Local\Arduino15\packages\arduino\hardware\ renesas\0.5.0\bootloaders\SANTIAGO" 

 

3단계: dfu_minima.hex 식별하기

 

4단계: Renesas 플래시 프로그래머 설치(다운로드 페이지)

* Renesas 플래시 프로그래머는 현재 Windows에서만 사용할 수 있습니다.

 

5단계: Renesas 프로그래머를 사용하여 부트로더를 플래시합니다:

 

  • dfu_minima.hex를 선택합니다.
  • 보드를 연결합니다.
  • UNO R4 Minima에 있는 BOOT 및 GND 핀을 단락시킵니다.
  • 연결 설정 탭으로 이동합니다.
  • 도구에서 COM 포트를 선택하고 IDE에 표시된 포트를 선택합니다.
  • 시작을 누릅니다.

 

자세한 내용은 README.md 또는 GitHub 페이지를 확인하세요. 

 

 

이제 끝. 인생에는 계획에 들어있지 않아도 계획에 있는 일이 있다. 늘 있다.

 

반응형