로봇의 두뇌를 고르는 일
로봇을 만들기 시작하면 가장 먼저 이런 질문에 부딪힌다.
"아두이노로 해야 할까? ESP32가 더 좋다던데? 라즈베리파이는 컴퓨터라서 더 강력하지 않나?"
이 질문은 아주 자연스럽다. 제어 보드는 로봇의 두뇌처럼 보이기 때문이다. 센서에서 값을 읽고, 모터를 움직이고, LED를 켜고, 스마트폰에서 명령을 받는 일을 모두 제어 보드가 맡는다. 그런데 여기서 중요한 점이 있다. 가장 강력한 보드가 항상 가장 좋은 보드는 아니다.
로봇 제작에서 보드 선택은 자동차를 고르는 일과 비슷하다. 마트에 갈 때마다 대형 트럭이 필요하지는 않다. 좁은 골목길을 빠르게 다니려면 작은 차가 더 편할 수 있다. 반대로 캠핑 장비를 잔뜩 싣고 먼 길을 가야 한다면 작은 차로는 버겁다. 로봇도 마찬가지다. LED를 깜빡이고 초음파 센서로 장애물을 피하는 로봇에는 단순하고 예측 가능한 보드가 좋고, 카메라 영상을 처리하거나 웹 화면을 띄워야 하는 로봇에는 운영체제가 있는 컴퓨터형 보드가 필요하다.
이번 장의 목표는 보드의 세부 사양을 외우는 것이 아니다. 로봇을 만들 때 "이 프로젝트에는 어떤 보드가 맞을까?"를 스스로 판단할 수 있는 감각을 얻는 것이다.

제어 보드가 하는 일
제어 보드는 로봇 안에서 다음과 같은 일을 한다. 버튼이 눌렸는지 확인하고, 거리 센서 값을 읽고, 모터 드라이버에 방향 신호를 보내고, 서보 모터의 각도를 정한다. 때로는 PC나 스마트폰에서 명령을 받고, 카메라 영상을 처리하거나 데이터를 저장하기도 한다.
하지만 모든 보드가 이 일을 같은 방식으로 처리하지는 않는다. 어떤 보드는 전원을 넣으면 거의 즉시 사용자가 올려 둔 코드 하나를 반복 실행한다. 이런 보드는 단순하고 반응이 빠르다. 또 어떤 보드는 리눅스 같은 운영체제를 부팅한 뒤 여러 프로그램을 동시에 실행한다. 이런 보드는 복잡한 계산과 네트워크 작업에 강하지만, 모터를 마이크로초 단위로 딱딱 맞춰 제어하는 일에는 오히려 불리할 수 있다.
따라서 보드를 고를 때는 먼저 로봇이 해야 할 일을 나누어 생각해야 한다. 이 로봇은 단순히 움직이면 되는가, 무선 조종이 필요한가, 카메라를 써야 하는가, 데이터를 저장해야 하는가, 모터 반응이 매우 빨라야 하는가. 질문이 선명해지면 선택은 훨씬 쉬워진다.
아두이노: 단순하고 예측 가능한 입문용 제어 보드
아두이노는 로봇 입문자에게 가장 친절한 출발점이다. 여기서 말하는 아두이노는 보통 Arduino Uno, Nano, Mega 같은 마이크로컨트롤러 보드와 Arduino IDE 개발 환경을 함께 가리킨다. 대표적인 Arduino Uno는 ATmega328P 마이크로컨트롤러를 사용하며, 운영체제 없이 사용자가 작성한 스케치를 바로 실행한다1.
이 구조가 왜 중요할까? 운영체제가 없다는 말은 뒤에서 다른 프로그램이 몰래 돌아가지 않는다는 뜻이다. 전원을 넣으면 보드는 사용자가 업로드한 코드의 setup()을 한 번 실행하고, 그다음 loop()를 계속 반복한다. 그래서 동작을 이해하기 쉽다. 버튼을 읽고, LED를 켜고, 센서 값을 확인한 뒤, 모터 드라이버에 신호를 보내는 흐름이 눈에 잘 들어온다.
초음파 센서로 거리를 재고, 가까우면 멈추는 로봇을 만든다고 해 보자. 아두이노는 이런 작업에 잘 맞는다. 초음파 센서의 트리거 핀에 짧은 신호를 보내고, 에코 핀으로 돌아오는 시간을 측정한 다음, 일정 거리보다 가까우면 모터를 멈추게 하면 된다. 중간에 웹 서버나 영상 처리 같은 복잡한 일이 끼어들지 않기 때문에 코드가 짧고 결과도 예측하기 쉽다.
아두이노가 특히 좋은 프로젝트는 이런 것들이다. 버튼, LED, 부저, 가변저항, 초음파 센서, 라인 센서, 서보 모터, L298N 같은 모터 드라이버를 연결해 동작 원리를 익히는 입문용 로봇이다. 바퀴 두 개가 달린 장애물 회피 자동차, 라인트레이서의 첫 버전, 간단한 로봇팔, 팬틸트 장치 같은 프로젝트가 여기에 속한다.
아두이노의 또 다른 장점은 5V 기반 부품과 잘 어울린다는 점이다. 많은 입문용 센서와 모듈이 5V 신호를 기준으로 설계되어 있어 연결이 비교적 쉽다. 물론 모든 부품이 5V라는 뜻은 아니므로 데이터시트 확인은 필요하지만, 초보자가 처음 회로를 꾸밀 때는 확실히 부담이 적다.
다만 아두이노에도 한계가 있다. 대표적인 Arduino Uno에는 Wi-Fi와 Bluetooth가 기본으로 들어 있지 않다. 무선 통신을 하려면 별도의 모듈이나 쉴드가 필요하다. 메모리와 처리 성능도 크지 않기 때문에 카메라 영상 처리, 복잡한 웹 인터페이스, 대량 데이터 저장에는 적합하지 않다. 아두이노는 작고 성실한 현장 작업자에 가깝다. 센서를 읽고 모터를 움직이는 일은 잘하지만, 영상을 보고 판단하거나 웹 서비스를 운영하는 일까지 맡기기에는 벅차다.
ESP32: 무선 기능을 품은 강력한 마이크로컨트롤러
ESP32는 아두이노와 같은 마이크로컨트롤러 계열로 볼 수 있지만, 성격이 훨씬 더 현대적이다. 가장 큰 특징은 Wi-Fi와 Bluetooth가 보드 안에 들어 있다는 점이다. 별도의 무선 통신 모듈을 추가하지 않아도 스마트폰, 공유기, 웹 브라우저, 클라우드 서비스와 연결할 수 있다. ESP32는 듀얼 코어 프로세서, 더 큰 메모리, 내장 Wi-Fi와 Bluetooth를 제공하는 보드로 널리 쓰이며, Arduino IDE로도 개발할 수 있다2.
이 말은 아두이노를 배운 사람이 ESP32로 넘어가기 쉽다는 뜻이기도 하다. setup()과 loop() 구조를 그대로 사용할 수 있고, 많은 센서 라이브러리도 비슷한 방식으로 쓴다. 그런데 여기에 Wi-Fi가 추가되면서 만들 수 있는 로봇의 종류가 확 넓어진다.
예를 들어 ESP32로 Wi-Fi 자동차를 만들 수 있다. ESP32가 작은 웹 서버를 열고, 사용자는 스마트폰 브라우저에서 앞으로, 뒤로, 왼쪽, 오른쪽, 정지 버튼을 누른다. ESP32는 버튼 요청을 받으면 L298N 같은 모터 드라이버의 입력 핀을 바꾸고, PWM 신호로 속도를 조절한다. 실제 ESP32 Wi-Fi 로봇 프로젝트에서도 ESP32가 웹 서버를 열고, 브라우저에서 이동 방향과 속도를 제어하는 방식이 자주 사용된다3.
ESP32가 유리한 프로젝트는 무선 기능이 핵심인 경우다. 스마트폰으로 조종하는 자동차, Wi-Fi로 센서 값을 보내는 로봇, 웹 페이지에서 상태를 확인하는 이동 로봇, Bluetooth 게임패드로 움직이는 로봇, 무선으로 여러 장치를 연결하는 IoT 로봇이 대표적이다. 아두이노에 통신 모듈을 덕지덕지 붙이는 대신, ESP32 하나로 센서 입력과 무선 통신을 동시에 처리할 수 있다.
하지만 ESP32를 쓸 때는 전압을 조심해야 한다. ESP32의 GPIO는 기본적으로 3.3V 논리를 사용한다. 즉 핀에 5V 신호를 직접 넣으면 보드가 손상될 수 있다. 5V 출력을 내는 센서를 ESP32에 연결할 때는 전압 분배 회로나 레벨 시프터를 사용해야 한다. 초음파 센서 HC-SR04의 에코 핀처럼 5V 신호가 나올 수 있는 부품을 연결할 때 특히 주의해야 한다.
전원도 마찬가지다. ESP32는 Wi-Fi를 사용할 때 순간적으로 전류를 꽤 많이 요구할 수 있다. 전원 공급이 약하면 업로드는 잘되는데 Wi-Fi 연결 순간 재부팅되는 일이 생긴다. 지난 장에서 배운 것처럼, 로봇에서는 보드 전원과 모터 전원을 무작정 하나로 묶기보다 안정적인 전원 설계가 필요하다. 특히 모터가 돌 때 전압이 흔들리면 ESP32가 리셋될 수 있다. 모터 전원은 별도로 충분히 공급하고, 신호 기준을 맞추기 위해 GND는 공통으로 연결하는 습관을 가져야 한다.
ESP32는 아두이노보다 강력하지만, 그래도 기본 성격은 마이크로컨트롤러다. 카메라를 연결한 ESP32-CAM으로 간단한 영상 스트리밍을 할 수는 있지만, 복잡한 OpenCV 영상 처리나 무거운 AI 모델 실행에는 한계가 있다. "무선으로 제어하고 싶다"면 ESP32가 좋은 선택이고, "카메라 영상을 분석해 물체를 따라가고 싶다"면 다음에 볼 라즈베리파이가 더 자연스러운 선택이다.
라즈베리파이: 리눅스가 돌아가는 로봇의 상위 두뇌
라즈베리파이는 아두이노나 ESP32와는 종류가 다르다. 아두이노와 ESP32가 마이크로컨트롤러 보드라면, 라즈베리파이는 싱글보드 컴퓨터다. 작은 회로 기판 위에 CPU, 메모리, USB, HDMI, 네트워크, 저장장치 인터페이스가 들어 있고, microSD 카드에 설치한 리눅스 운영체제를 부팅해 사용한다.
이 차이는 매우 크다. 라즈베리파이는 파이썬 프로그램을 실행하고, 파일을 저장하고, 웹 서버를 열고, 카메라 영상을 받아 처리하고, 네트워크로 데이터를 주고받을 수 있다. Raspberry Pi는 GPIO를 통해 하드웨어와 연결할 수 있으면서도, 리눅스 환경에서 OpenCV, Flask, 데이터베이스, TensorFlow Lite 같은 소프트웨어 생태계를 활용할 수 있다4.
로봇에 카메라를 달고 싶다고 해 보자. 단순히 영상을 전송하는 것에서 끝나지 않고, 빨간 공을 찾아 따라가거나, 사람 얼굴을 인식하거나, 라인을 카메라로 읽어 주행하고 싶다면 영상 처리가 필요하다. 이때 라즈베리파이가 강력해진다. USB 웹캠이나 라즈베리파이 카메라 모듈을 연결하고, OpenCV로 화면 속 색상이나 물체 위치를 분석한 뒤, 그 결과를 바탕으로 로봇의 이동 방향을 결정할 수 있다.
웹 인터페이스도 라즈베리파이가 잘하는 영역이다. 로봇 상태를 브라우저에서 확인하고, 카메라 스트리밍 화면을 보며, 버튼으로 명령을 보내는 구조를 만들 수 있다. 데이터를 파일로 저장하거나, 장시간 실험 결과를 로그로 남기거나, 네트워크를 통해 다른 컴퓨터와 통신하는 작업도 라즈베리파이에 어울린다. ESP32와 라즈베리파이를 함께 사용하면 ESP32가 센서 데이터를 모으고, 라즈베리파이가 데이터베이스나 웹 페이지를 담당하는 식의 구조도 만들 수 있다5.
그렇다고 라즈베리파이가 모든 면에서 최고라는 뜻은 아니다. 라즈베리파이는 리눅스 운영체제 위에서 동작한다. 운영체제는 여러 일을 동시에 처리하므로, 사용자가 작성한 프로그램이 항상 정확히 같은 순간에 실행된다고 보장하기 어렵다. 일반적인 GPIO 제어에는 충분하지만, 매우 정밀한 펄스 타이밍이나 모터의 즉각적인 반응이 중요한 작업에서는 마이크로컨트롤러가 더 안정적이다.
부팅 시간도 차이가 있다. 아두이노나 ESP32는 전원을 넣으면 비교적 빠르게 코드가 동작한다. 반면 라즈베리파이는 운영체제를 부팅해야 하므로 시간이 더 걸린다. 전원을 끌 때도 조심해야 한다. 파일 시스템을 사용하는 컴퓨터이기 때문에, 저장 중에 전원을 뽑으면 microSD 카드가 손상될 수 있다. 또한 소비 전력도 마이크로컨트롤러보다 큰 편이라, 배터리 로봇에서는 전원 설계를 더 신경 써야 한다.
라즈베리파이는 로봇의 '근육'을 직접 섬세하게 움직이는 보드라기보다, 상황을 보고 판단하는 '상위 두뇌'에 가깝다. 카메라로 세상을 보고, 웹으로 사용자와 대화하고, 데이터를 저장하고, 알고리즘을 실행한 뒤, 실제 모터 제어는 아두이노나 ESP32에 맡기는 구조가 실전에서 자주 쓰인다.
마이크로컨트롤러와 싱글보드 컴퓨터의 차이
아두이노와 ESP32는 마이크로컨트롤러 보드이고, 라즈베리파이는 싱글보드 컴퓨터다. 이 구분은 로봇 제작에서 매우 중요하다.
마이크로컨트롤러는 작은 칩 하나 안에 CPU, 메모리, GPIO, 타이머 같은 주변 장치가 들어 있다. 운영체제 없이 사용자가 올린 프로그램을 반복 실행한다. 그래서 단순하고 빠르게 반응한다. 버튼을 누르면 바로 읽고, 모터 제어 신호를 일정하게 내보내고, 센서 값을 정해진 주기로 읽는 데 강하다.
싱글보드 컴퓨터는 말 그대로 작은 컴퓨터다. 운영체제가 있고, 파일 시스템이 있고, 여러 프로그램을 동시에 실행할 수 있다. 덕분에 영상 처리, 네트워크 서버, 데이터 저장, 복잡한 알고리즘 실행에 강하다. 대신 부팅이 필요하고, 전원 관리가 까다롭고, 실시간 핀 제어에는 약점이 있다.
| 기준 | 아두이노 / ESP32 | 라즈베리파이 |
|---|---|---|
| 분류 | 마이크로컨트롤러 보드 | 싱글보드 컴퓨터 |
| 운영체제 | 없음 또는 매우 가벼운 펌웨어 | 리눅스 운영체제 사용 |
| 부팅 시간 | 짧음 | 상대적으로 김 |
| 실시간성 | 좋음. 정해진 타이밍 제어에 유리 | 운영체제 영향으로 지연이 생길 수 있음 |
| 소비 전력 | 낮은 편 | 높은 편 |
| 파일 저장 | 제한적 | microSD, USB 저장장치 등 사용 가능 |
| 네트워크 | 아두이노는 별도 모듈 필요, ESP32는 Wi-Fi/Bluetooth 내장 | Wi-Fi, Ethernet, Bluetooth 등 사용 가능 모델 많음 |
| 카메라 / 영상 처리 | 제한적 | OpenCV, 스트리밍, AI 추론에 유리 |
| 잘 맞는 일 | 센서 읽기, 모터·서보 제어, 빠른 반응 | 웹 UI, 카메라, 데이터 로깅, 고수준 판단 |
이 표를 한 문장으로 줄이면 이렇다. 즉각적인 하드웨어 반응은 마이크로컨트롤러, 복잡한 계산과 네트워크 처리는 싱글보드 컴퓨터가 유리하다.
보드 하나만 고집하지 않아도 된다
처음에는 "아두이노와 라즈베리파이 중 하나만 골라야 하나?"라고 생각하기 쉽다. 하지만 실전 로봇에서는 하나의 보드가 모든 일을 다 하지 않는 경우가 많다. 오히려 역할을 나누면 구조가 더 안정적이고 이해하기 쉬워진다.
예를 들어 카메라가 달린 이동 로봇을 생각해 보자. 라즈베리파이는 카메라 영상을 받아 OpenCV로 물체 위치를 분석한다. 웹 페이지를 띄워 사용자에게 영상을 보여 주고, 사용자가 누른 버튼이나 알고리즘의 판단 결과를 명령으로 만든다. 하지만 라즈베리파이가 직접 DC 모터의 방향 핀과 PWM을 계속 제어하면, 운영체제 지연이나 프로그램 오류 때문에 움직임이 흔들릴 수 있다.
이때 아두이노나 ESP32를 함께 쓰면 좋다. 라즈베리파이는 "앞으로", "정지", "왼쪽으로 천천히", "오른쪽 모터 속도 120" 같은 명령만 보낸다. 마이크로컨트롤러는 이 명령을 받아 실제 모터 드라이버 핀을 제어한다. 엔코더 값을 빠르게 읽고, 서보 모터 각도를 유지하고, 안전 조건이 생기면 즉시 모터를 멈추는 일도 마이크로컨트롤러가 담당한다.
이 구조는 시리얼 통신으로 간단히 만들 수 있다. 라즈베리파이와 아두이노를 USB 케이블로 연결하면 라즈베리파이에서는 시리얼 포트로 보인다. 라즈베리파이가 문자 f를 보내면 전진, b를 보내면 후진, l을 보내면 좌회전, r을 보내면 우회전, s를 보내면 정지하도록 약속할 수 있다. 실제 로봇 예제에서도 라즈베리파이가 상위 명령을 보내고, 아두이노나 ESP32가 이를 받아 L298N 모터 드라이버를 제어하는 식의 계층 구조가 사용된다6.
조금 더 큰 로버 프로젝트에서는 역할 분담이 더 분명해진다. 한 오픈 로버 프로젝트는 Arduino Mega가 모터와 서보, 센서 등 움직이는 요소를 관리하고, ESP32 계열 보드가 터치스크린 UI를 담당하며, Raspberry Pi Zero 2 W가 카메라와 웹 대시보드를 담당하는 식으로 여러 보드를 나누어 사용한다7. 이것이 바로 실전 로봇의 사고방식이다. 보드를 한 종류로 통일하는 것이 목표가 아니라, 각 보드가 잘하는 일을 맡기는 것이 목표다.
프로젝트별 선택 기준
이제 실제로 어떤 보드를 고르면 좋을지 정리해 보자.
유선으로 단순한 로봇을 만들고 싶다면 아두이노가 가장 편하다. 버튼을 누르면 모터가 돌고, 초음파 센서가 가까운 물체를 감지하면 멈추고, 서보 모터가 정해진 각도로 움직이는 프로젝트에 잘 맞는다. 전자회로와 센서, 모터 제어의 기본기를 익히기에 좋다.
무선 조종이나 IoT 기능이 필요하다면 ESP32가 강력하다. 스마트폰 브라우저로 조종하는 Wi-Fi 자동차, Bluetooth 컨트롤러로 움직이는 로봇, 센서 값을 무선으로 보내는 이동 플랫폼, 웹 서버를 내장한 작은 로봇에는 ESP32가 잘 맞는다. 아두이노식 개발 흐름을 유지하면서 무선 기능을 바로 쓸 수 있다는 점이 큰 장점이다.
카메라, 웹, 데이터 저장, AI가 필요하다면 라즈베리파이를 고려해야 한다. USB 웹캠 영상을 스트리밍하거나, OpenCV로 색상과 물체를 추적하거나, 웹 대시보드에서 로봇 상태를 확인하거나, 간단한 AI 추론을 실행하는 프로젝트에는 라즈베리파이가 적합하다.
정밀한 모터 제어와 고수준 연산이 모두 필요하다면 보드를 조합하는 것이 좋다. 라즈베리파이는 상위 판단과 사용자 인터페이스를 맡고, 아두이노나 ESP32는 모터와 센서의 실시간 제어를 맡는다. 이 구조는 처음에는 복잡해 보이지만, 프로젝트가 커질수록 오히려 문제를 나누어 해결하기 쉬워진다.
| 만들고 싶은 프로젝트 | 추천 보드 | 이유 |
|---|---|---|
| LED, 버튼, 부저, 초음파 센서 실습 | 아두이노 | 회로와 코드가 단순하고 예측 가능함 |
| 장애물 회피 자동차 | 아두이노 또는 ESP32 | 기본형은 아두이노, 무선 확장은 ESP32가 유리 |
| 라인트레이서 | 아두이노 또는 ESP32 | 빠른 센서 읽기와 모터 반응이 중요함 |
| 스마트폰으로 조종하는 Wi-Fi 자동차 | ESP32 | Wi-Fi 내장, 웹 서버 구현 가능 |
| Bluetooth 게임패드 로봇 | ESP32 | Bluetooth 내장 |
| 카메라 스트리밍 로봇 | 라즈베리파이 | 카메라와 네트워크 처리에 유리 |
| OpenCV 색상 추적 로봇 | 라즈베리파이 + 아두이노/ESP32 | 영상 처리는 라즈베리파이, 모터 제어는 마이크로컨트롤러 |
| 데이터 로깅 이동 로봇 | 라즈베리파이 또는 ESP32 | 파일 저장이 많으면 라즈베리파이, 무선 센서 중심이면 ESP32 |
| 로봇팔 각도 제어 실습 | 아두이노 | 서보 제어와 입력 장치 실습에 적합 |
| 웹 UI와 정밀 모터 제어를 모두 쓰는 로버 | 라즈베리파이 + ESP32/아두이노 | 상위 판단과 실시간 제어를 분리 |
보드 선택에서 자주 하는 실수
초보자가 가장 자주 하는 실수는 "성능이 높으면 무조건 좋다"고 생각하는 것이다. 카메라와 웹 서버가 필요 없는 라인트레이서에 라즈베리파이를 쓰면 오히려 전원, 부팅, 코드 구조가 더 복잡해질 수 있다. 반대로 카메라 영상 처리가 필요한 로봇을 아두이노 하나로 해결하려고 하면 금방 한계에 부딪힌다.
두 번째 실수는 전원 문제를 과소평가하는 것이다. 어떤 보드를 선택하든 모터 전원을 보드의 5V 핀에서 직접 끌어오면 문제가 생기기 쉽다. 모터는 순간적으로 큰 전류를 요구하고, 그때 전압이 떨어지면 보드가 재부팅되거나 센서 값이 이상해진다. 모터 전원과 보드 전원은 필요에 따라 분리하고, 신호를 주고받는 장치들의 GND는 공통으로 연결해야 한다.
세 번째 실수는 핀 전압을 확인하지 않는 것이다. 아두이노 Uno는 보통 5V 논리, ESP32와 라즈베리파이는 3.3V 논리를 사용한다. 5V 센서 출력을 ESP32나 라즈베리파이 GPIO에 직접 넣으면 위험하다. 연결 전에 센서의 출력 전압과 보드의 입력 허용 전압을 확인하자.
네 번째 실수는 라즈베리파이를 모터 드라이버처럼 취급하는 것이다. 라즈베리파이의 GPIO 핀은 신호를 내보내는 핀이지, 모터를 직접 돌리는 전원 핀이 아니다. DC 모터, 스텝 모터, 큰 서보 모터는 반드시 모터 드라이버나 별도 전원 회로를 통해 구동해야 한다. 이 원칙은 아두이노와 ESP32에서도 똑같이 적용된다. 제어 보드는 명령을 내리고, 힘은 드라이버와 전원이 담당한다.
처음 시작한다면 어떤 순서가 좋을까
완전히 처음이라면 아두이노로 시작하는 것을 추천한다. LED를 켜고, 버튼을 읽고, 초음파 센서 값을 보고, 서보 모터를 움직여 보는 경험은 이후 어떤 보드를 쓰더라도 기본기가 된다. 아두이노에서 digitalWrite(), analogRead(), millis(), PWM 같은 개념을 익히면 ESP32로 넘어갈 때도 훨씬 수월하다.
그다음 무선 조종이 필요해지는 순간 ESP32를 잡으면 좋다. 같은 아두이노 IDE에서 개발하면서 Wi-Fi와 Bluetooth를 사용할 수 있기 때문에, 기존에 만든 모터 제어 코드를 무선 로봇으로 확장하기 쉽다. 스마트폰 브라우저에서 버튼을 누르면 로봇이 움직이는 순간, 로봇이 책상 위 장난감에서 네트워크 장치로 바뀌는 느낌을 받을 수 있다.
카메라와 웹, 데이터 저장이 필요해질 때 라즈베리파이를 추가하자. 이때부터 로봇은 단순히 센서에 반응하는 기계가 아니라, 주변을 보고 기록하고 판단하는 시스템이 된다. 다만 처음부터 라즈베리파이 하나로 모든 것을 해결하려 하기보다, 모터와 센서는 아두이노나 ESP32에 맡기고 라즈베리파이는 상위 판단을 맡는 구조를 연습하는 것이 좋다.
이번 장의 선택 공식
보드 선택은 복잡해 보이지만, 실전에서는 다음 공식으로 시작하면 된다.
유선 단순 제어는 아두이노. 무선 조종과 IoT 기능은 ESP32. 카메라, 웹, AI가 필요하면 라즈베리파이. 정밀 제어와 고수준 연산이 모두 필요하면 보드 조합.
이 공식만 기억해도 처음 선택의 막막함은 크게 줄어든다. 물론 프로젝트가 커지면 예외도 생긴다. ESP32만으로도 꽤 훌륭한 무선 로봇을 만들 수 있고, 라즈베리파이만으로도 간단한 모터 제어는 가능하다. 아두이노도 통신 모듈을 붙이면 원격 제어가 된다. 하지만 처음 설계할 때는 각 보드의 성격을 존중하는 것이 좋다.
로봇은 부품 하나로 완성되지 않는다. 센서, 모터, 전원, 프레임, 통신 장치가 서로 맞물려야 한다. 제어 보드도 마찬가지다. 보드 하나가 모든 문제를 해결해 주는 마법의 두뇌가 아니라, 로봇 안에서 자기 역할을 맡는 구성원이다. 좋은 로봇 제작자는 가장 비싼 보드를 고르는 사람이 아니라, 필요한 일을 정확히 나누고 알맞은 보드를 배치하는 사람이다.
다음 장에서는 이 보드들을 실제 회로와 연결하기 위한 기본 도구인 브레드보드와 기본 회로를 다룬다. LED 하나를 켜는 작은 회로에서 시작하지만, 그 작은 불빛이 결국 센서와 모터를 다루는 모든 로봇 회로의 출발점이 된다.
참고
1Control Boards & Robot Brains: The Complete Guide to Arduino, ESP32, and Raspberry Pi
2ESP32 vs Arduino: Differences, Performance, and How to Choose the Right Board
3ESP32 Remote-Controlled Wi-Fi Car Robot (Arduino)
4Control Boards & Robot Brains: The Complete Guide to Arduino, ESP32, and Raspberry Pi
54 amazing projects you can build with a Raspberry Pi and an ESP32
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.