Raspberry Pi与Arduino, 通过USB连接

写在前面

通过 USB 串行端口连接树莓派和 Arduino,实现树莓派控制 Arduino

参考

KNEXnCoding: Connect Your Raspberry Pi and Arduino Uno!🔗

环境

Raspberry Pi 2
Arduino UNO

关于 Arduino

将代码上传到 Arduino

int led_red = 3;  // 三号引脚为红色LED
int led_green = 4;  // 三号引脚为绿色LED
int led_yellow = 5;  // 三号引脚为黄色LED
char cmd;  // 从Raspberry Pi接收指令

void setup() {
  Serial.begin(9600);  // 通信串口频段
  pinMode(led_red, OUTPUT);
  pinMode(led_green, OUTPUT);
  pinMode(led_yellow, OUTPUT);
}

void loop() {
  readInfo();
}

void readInfo(){
  if(Serial.available()){  // 获取指令
    cmd = Serial.read();
    // 根据指令执行相应操作
    switch(cmd){
      case 'r':
        light(led_red);
      break;
      case 'g':
        light(led_green);
      break;
      case 'y':
        light(led_yellow);
      break;
    }
  }
}

void light(int led){
  // 点亮1秒
  digitalWrite(led, HIGH);
  delay(1000);
  digitalWrite(led, LOW);
}

关于 Raspberry Pi

  • 连接 Arduino
# 查看串口
ls /dev/tty*

如何检测你的串口: 我的方法:
未连接 Arduino,执行ls /dev/tty*
连接 Arduino,执行ls /dev/tty*
多出来的就是 Arduino 串口
我的是ttyACM1
ttyACM1

  • 执行命令
    启动 python 解释器
# 导入serial包
import serial
# 连接/dev/ttyACM1处设备,频段为9600
ser = serial.Serial("/dev/ttyACM1", 9600)
ser.write(str.encode('r'))  # 开启红灯
ser.write(str.encode('g'))  # 开启绿灯
ser.write(str.encode('y'))  # 开启黄灯

light

总结

个人感觉就是 Linux 串口操作
使用 python,通过库的使用使操作变得非常简单


comment: