Skip to content

Arduino Setup

Install Arduino IDE

Download from arduino.cc/en/software or install via snap:

bash
sudo snap install arduino

Required Libraries

Install via Sketch → Include Library → Manage Libraries:

LibraryPurpose
ros2arduinoROS 2 micro-XRCE bridge
EncoderQuadrature encoder reading
PIDPID 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/

Released under the MIT License.