前面提到Raspberry pi有哪些傳輸方式
IIC/SPI/1-wire/UART
書上建議可以透過UART來溝通
如果是直接用PIN8.PIN10與Arduino的TX.RX對接的話
可能會因為電壓的準位不同而燒毀Raspberry pi
因為Raspberry pi的GPIO輸出電壓是3.3V
而Arduino是5V
中間需要加邏輯電位轉換器才行
所以最簡單的方法是將Arduino直接透過USB連到Raspberry pi的USB
在使用上
import serial
ser = serial.Serial("/dev/ttyACM0",9600) //9600需要與Arduino相同
在GPIO的使用上
Raspberry pi比Arduino缺少了類比輸入與類比輸出
而Arduino 的UNO有A0~A5類比輸入
而實作I/O控制上
Arduino的IO速度比Raspberry pi快
如果Raspberry pi 已經在做影像辨識,其實已經很佔CPU資源了
如果同時還要控制I/O 這樣反應會更慢
另外電壓準位的差異,也會讓Raspberry pi 在推動能力稍差
Arduino的類比輸出其實不是真的DAC,而是用PWM作出來的。所以Raspberry Pi是可以透過GPIO來產生PWM類比輸出的結果。Pi預設只有兩組PWM,GPIO12/18對應PWM0, GPIO13/19對應PWM1。
可參考這篇文章說明 https://www.electronicwings.com/raspberry-pi/raspberry-pi-pwm-generation-using-python-and-c
好的
謝謝Jack的指正