아두이노가 ATMEL사의 8비트 프로세서인 ATMEGA328P로 시작을 했으나, 블루투스, Wi-Fi 같은 무선 통신이 더 많이 필요해지고 있습니다. ATMEL 기반의 보드에 해당 기능을 보조하는 모듈을 따로 구해서 회로 설계를 하곤 했습니다만, 더 다양한 프로세서들이 아두이노 코드를 지원하게 되면서, 무선 모듈이 내장된 Espressif사의 ESP8266 및 ESP32 계열 프로세서가 아두이노 진영에서 많이들 사용하고 있습니다.
ESP8266 보드로 Wi-Fi로 스마트폰으로 무선 RC를 구현한 적이 있습니다.
[1/35 RC] OH35A01 Jeep Wrangler - (4) 구현한 기능 설명
최근에는 ESP32와 플레이스테이션3 컨트롤러를 이용해서 컨트롤하는 것에 대해 관심을 갖고 이것저것 해보고 있습니다.
그러다보니, ESP 계열의 칩이 종류가 몇가지가 있어서 비교 자료를 찾다가 정리가 잘 된 것이 있어 퍼옵니다.
출처는 다음과 같습니다.
https://gist.github.com/sekcompsci/2bf39e715d5fe47579fa184fa819f421
|
ESP8266
|
ESP32
|
ESP32-S2
|
ESP32-S3
|
ESP32-C3
|
ESP32-C6
|
Announcement Date
|
2014, August
|
2016, September
|
2019, September
|
2020, December
|
2020, November
|
2021, April
|
Main processor
|
Tensilica L106 32-bit (up to 160MHz)
|
Tensilica Xtensa 32-bit LX6 (up to 240MHz) (optionally dual core)
|
Tensilica Xtensa 32-bit LX7 (up to 240MHz)
|
Tensilica Xtensa 32-bit LX7 dual core (up to 240MHz)
|
RISC-V 32-bit (up to 160MHz)
|
RISC-V 32-bit (up to 160MHz)
|
SRAM
|
160KB
|
520KB
|
320KB
|
512KB
|
400KB
|
400KB
|
ROM
|
0
|
448KB
|
128KB
|
384KB
|
384KB
|
384KB
|
JTAG
|
X
|
✓
|
✓
|
?
|
✓
|
✓
|
Cache
|
32 KB instruction
|
64KB
|
8/16KB (configurable)
|
?
|
16KB
|
?
|
WiFi
|
Wi-Fi 4 (only up to 72.2Mbps)
|
Wi-Fi 4
|
Wi-Fi 4
|
Wi-Fi 4
|
Wi-Fi 4
|
Wi-Fi 6
|
Bluetooth
|
X
|
BLE 4.2 (upgrade to 5.0, with limitations)
|
X
|
BLE 5.0
|
BLE 5.0
|
BLE 5.0
|
ESP8266
|
ESP32
|
ESP32-S2
|
ESP32-S3
|
ESP32-C3
|
ESP32-C6
|
|
Ethernet
|
X
|
✓
|
X
|
?
|
X
|
?
|
RTC memory
|
768B
|
16KB
|
16KB
|
16KB
|
8KB
|
?
|
PMU
|
✓
|
✓
|
✓
|
?
|
✓
|
?
|
ULP coprocessor
|
X
|
✓
|
ULP-RISC-V
|
?
|
X
|
?
|
Cryptographic Accelerator
|
X
|
SHA, RSA, AES, RNG
|
SHA, RSA, AES, RNG, HMAC, Digital Signature
|
SHA, RSA, AES, RNG, HMAC, Digital Signature
|
SHA, RSA, AES, RNG, HMAC, Digital Signature
|
SHA, RSA, AES, RNG, HMAC, Digital Signature
|
Secure boot
|
X
|
✓
|
✓
|
✓
|
✓
|
✓
|
Flash encryption
|
X
|
✓
|
XTS-AES-128/256
|
✓
|
XTS-AES-128
|
XTS-AES-128
|
SPI
|
2
|
4
|
4
|
?
|
3
|
?
|
I2C
|
1
|
2
|
2
|
?
|
1
|
?
|
I2S
|
1
|
2
|
1
|
?
|
1
|
?
|
UART
|
2 (one TX only)
|
3
|
2
|
?
|
2
|
?
|
ESP8266
|
ESP32
|
ESP32-S2
|
ESP32-S3
|
ESP32-C3
|
ESP32-C6
|
|
SDIO Host
|
0
|
1
|
0
|
2
|
0
|
0
|
SDIO Slave
|
0
|
1
|
0
|
0
|
0
|
0
|
GPIO
|
17
|
34
|
43
|
44
|
22
|
22
|
LED PWM
|
5
|
16
|
8
|
?
|
6
|
?
|
MCPWM
|
0
|
6
|
0
|
2
|
0
|
0
|
Pulse counter
|
0
|
8
|
4
|
?
|
0
|
X
|
GDMA*
|
0
|
0
|
0
|
?
|
6
|
?
|
USB
|
X
|
X
|
USB OTG 1.1
|
?
|
Serial/JTAG
|
?
|
TWAI**
|
0
|
1
|
1
|
?
|
1
|
?
|
ADC
|
1x 10-bit SAR
|
2x 12-bit SAR, up to 18 channels
|
2x 13-bit SAR, up to 20 channels
|
?
|
2x 12-bit SAR, up to 6 channels
|
?
|
DAC
|
X
|
2x 8-bit
|
2x 8-bit
|
?
|
X
|
X
|
ESP8266
|
ESP32
|
ESP32-S2
|
ESP32-S3
|
ESP32-C3
|
ESP32-C6
|
|
RMT
|
1x transmission + 1x reception
|
8x transmission/reception
|
4x transmission/reception
|
?
|
2x transmission + 2x reception
|
?
|
Timer
|
2x 23-bit***
|
4x 64-bit
|
4x 64-bit
|
?
|
2x 54-bit + 1x 52-bit
|
?
|
Temperature Sensor
|
✓
|
✓
|
✓
|
?
|
✓
|
?
|
Hall Sensor
|
X
|
✓
|
X
|
?
|
X
|
?
|
Touch Sensor
|
0
|
10
|
14
|
?
|
X
|
?
|
일단 ESP8266은 와이파이 전용이고, ESP32는 와이파이 + BLE를 지원합니다.
일단 자체적으로 ESP-IDF란 개발 환경을 지원하는데, 이게 아두이노에 익숙한 사람들에겐 조금 어려울 수 있습니다.
그런데, 아두이노로도 개발을 할 수 있게 보드 프로파일과 라이브러리를 제공하고 있습니다.
ESP계열로 프로그래밍을 하다 보면, 기존의 ATMEL기반의 라이브러리가 지원 안 되는 게 가~끔 있는데 (U8GLib과 같은 LCD/OLED 표시 라이브러리), 이런 건 업그레이드 버전으로 대부분 지원하고 있습니다.
제가 지금까지 확인한 장점들은 ...
- 빠르다
- 저장할 수 있는 ROM 영역이 크다
- 무선 모듈(Wi-Fi, BLE) 내장으로 구현하는데 별도의 GPIO를 잡아먹지 않는다
- 거의 모든 GPIO 핀들이 PWM을 지원한다
- 크기들이 ATMEL 계열에 비해 대부분 작다
- 소모 전력이 훨씬 낮다
ESP 계열로 다양한 보드들이 나오고 있는데, 자료까지 정리된 걸 찾는다면 WeMos란 회사 제품이 적절한 것 같습니다.
https://www.wemos.cc/en/latest/
ESP8266부터 ESP32 계열까지 다양한 제품들이 나오고 있습니다.
또한, 아주 작은 보드를 찾는다면 Seeed Studio의 Xiao 라인업이 매우 매력적입니다.
https://www.seeedstudio.com/Seeed-XIAO-ESP32C3-p-5431.html
https://www.seeedstudio.com/XIAO-ESP32S3-p-5627.html
전에 플스2 게임 패드를 아두이노에 연결하여 nRF24L01 무선 모듈을 통해 무선 RC용을 써보고자 테스트를 한 적이 있습니다.
플스2 패드를 RC 조종기로 쓰기 - 테스트 회로 및 소스
물론 제어할 수 있는 거리 등의 차이가 있습니다만, 실내에서 갖고 놀 수 있는 장치들에 대해서는 충분히 ESP32 + 플스3 패드로 대체할 수도 있을 것 같습니다. 아니면, 아예 무선 방식을 모두 지원하는 형태로도 만들 수 있고요. Wi-Fi, BLE는 기본으로 제공하고 있으니, nRF24L01만 모듈로 ESP32에 붙이면 되는 거죠. 그렇게 하나의 레퍼런스 보드를 만들어 놓으면 원하는 컨트롤러를 선택해서 사용할 수 있겠습니다.
이미 자동차용으로 만들어 둔 WeMOS D1 MINI (ESP8266) 보드는 XIAO 시리즈로 더 컴팩트하게 만들고, 탱크 같이 기능이 더 많은 장치 용으로는 ESP32로 Wi-Fi, BLE에 nRF24L01까지 붙여서 통합 레퍼런스 보드를 하나 설계하고자 합니다.
하여간, 아두이노 우노, 나노 등에 너무 집착할 필요 없다는 게 결론입니다.
'디지털 라이프 電子的生活 My Digital Life > 아두이노 (Arduino)' 카테고리의 다른 글
아두이노 + 게임패드에 대한 고찰 (0) | 2023.07.24 |
---|---|
아두이노 기반 RPM 카운터 + 서보 테스터 (0) | 2023.02.11 |
[지름신고] 아두이노 우노 미니 한정판 (0) | 2021.12.27 |
아두이노 코드 올리는 라즈베리파이 피코!!! (0) | 2021.06.07 |
팬 컨트롤 + 온습도 센싱 + LCD 디스플레이 = ?? (0) | 2021.04.15 |