회사 동료와 이런저런 아이디어를 나누다가 하드웨어 가젯을 만들어 보는 주제가 나왔다. 오랜만에 임베디드. 쿵짝쿵짝하다가 재미삼아 만지작거려 보자고 의기투합하게 되었다. 그 친구는 라즈베리 파이를 구입했는데, 나는 라즈베리파이나 아두이노, 마이크로비트를 다뤄본 적이 있는지라 그냥 ESP32 호환 보드를 구입해서 가지고 놀아야겠다는 생각을 했다.
오랜만에 ESP32 개발 보드를 구입하려고 검색해 보았는데, 정말 저렴하다. 대충 3천원대가 있는 반면 내가 고른 것은 IdeaSpark라는 브랜드로 와이파이와 BLE가 지원되는, 0.96인치 조그마한 OLED 화면을 장착한 개발보드로 13000원에 TEMU에서 구매했다. 배송까지는 대략 1주일 걸린 것 같다.
다음과 같이 생겼고, 사양은 아래와 같다.
마이크로컨트롤러 | 32-bit Xtensa® 듀얼코어, 240MHz |
동작 전압 | 3.3V |
USB-시리얼 드라이버 | CH340 |
무선 통신 | Wi-Fi 802.11 b/g/n (2.4GHz)Bluetooth 4.2 BR/EDR, BLE |
메모리 (Flash) | 4MB |
SRAM | 520KB (캐시용 16KB 포함) |
ROM | 448KB |
입출력 핀 | 34 GPIO |
통신 인터페이스 | 4x SPI, 3x UART, 2x I²C |
오디오 인터페이스 | 2x I²S |
기타 인터페이스 | RMT, LED PWM, 1x host SD/eMMC/SDIO, 1x slave SDIO/SPI |
버스 및 프로토콜 | TWAI (CAN), Ethernet |
아날로그 입력 | 12-bit ADC |
USB-시리얼 변환 | 온보드 CH340 칩 (USB-TTL 지원) |
플러그 앤 플레이 | 예 (드라이버 설치 후 USB 연결만으로 인식됨) |
먼저 데이터통신이 되는 케이블을 찾아서 연결한 다음, 아두이노 IDE를 설치했다.
요즘은 임베디드도 VS Code에서 개발할 수 있는 것같은데, 오랜만에 하는 것이라 정석대로 아두이노 IDE부터 가지고 놀아보기로 했다. VS Code를 주목한 것은 당연히 AI Code Assistant 기능을 이용할 수 있기 때문이다.
Arduino IDE의 Preference 메뉴에서 추가 보드 정보에 다음 URL을 추가한다.
https://dl.espressif.com/dl/package_esp32_index.json
그런 다음 ESP32 보드를 설치해 준다.
또한 보드와 PC 연결을 위하여 CH340 드라이버를 설치했다. 설치하고 나니 COM5로 연결된다.
이제 아두이노 IDE에서 ESP 32 Dev Module을 보드로 선택하고 COM5를 포트로 설정했다.
그런 다음 몇가지 부가 라이브러리를 설치했다.
OLED 표시를 위하여 ESP8266 and ESP32 OLED driver for SSD1306 displays 라이브러리를 설치했다. 또한 u8g2, Adafruit GFX, Adafuit SSD 1306, TimeLib을 설치했다.
예제 파일로 제공되는 코드에서 Time Clock을 선택한 다음, display 와이어링 옵션을 다음과 같이 변경해 주었다.
// 기존: SSD1306Wire display(0x3c, SDA, SCL);
SSD1306Wire display(0x3c, 21, 22);
이제 컴파일한 후 보드에 업로드해본다. 정상 동작 확인 완료. 이제 개발환경 설정은 끝났고, 아이디어를 구현해 보자.
'2. 개발 > 2.1 C++' 카테고리의 다른 글
C++과 Modern C++ (0) | 2021.06.13 |
---|