Arduino Setup
Install Arduino IDE
Download from arduino.cc/en/software or install via snap:
bash
sudo snap install arduinoRequired Libraries
Install via Sketch → Include Library → Manage Libraries:
| Library | Purpose |
|---|---|
ros2arduino | ROS 2 micro-XRCE bridge |
Encoder | Quadrature encoder reading |
PID | PID controller |
Basic Motor Control Sketch
cpp
const int EN_A = 9, IN1 = 8, IN2 = 7;
void setup() {
pinMode(EN_A, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
}
void setMotor(int speed) {
// speed: -255 to 255
if (speed >= 0) {
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
} else {
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
speed = -speed;
}
analogWrite(EN_A, speed);
}
void loop() {
setMotor(150); // forward
delay(1000);
setMotor(-150); // reverse
delay(1000);
}Flash from CLI
bash
arduino-cli compile --fqbn arduino:avr:uno my_sketch/
arduino-cli upload --fqbn arduino:avr:uno --port /dev/ttyACM0 my_sketch/