Как подключить Raspberry Pi к Ардуино?
Соединяем микроконтроллеры Raspberry Pi и Ардуино так, чтобы между платами была возможность обмениваться данными.
Порой возникает необходимость подключить Ардуино (англ. — Arduino) к плате Raspberry Pi. К примеру, если имеются датчики, двигатели и исполнительные механизмы, их можно подсоединить к Arduino, а данные передавать и принимать через «малину». Подобным образом удаётся разграничить вычислительные задачи (возлагаемые на Raspberry Pi) и задачи управления (возлагаемые на Ардуино).
В данном материале мы соединим Arduino с «малиной» и попросим ардуину передать сообщение «Hello from Arduino» на Raspberry Pi, которая при получении команды от Arduino будет мигать светодиодом.
Для обмена данными воспользуемся простой последовательной связью через USB-кабель. Приступим!
Подсоедините светодиод к выводу 11 в соответствии со схемой ниже.
Запустите Raspberry Pi и откройте Python 3 в новом окне.
Введите приведённый ниже код в новом окне и сохраните его (лучше всего на рабочем столе, чтобы файл не затерялся).
import serial
import RPi.GPIO as GPIO
import time
ser=serial.Serial("/dev/ttyACM0",9600) #change ACM number as found from ls /dev/tty/ACM*
ser.baudrate=9600
def blink(pin):
GPIO.output(pin,GPIO.HIGH)
time.sleep(1)
GPIO.output(pin,GPIO.LOW)
time.sleep(1)
return
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11, GPIO.OUT)
while True:
read_ser=ser.readline()
print(read_ser)
if(read_ser=="Hello From Arduino!"):
blink(11)
Затем откройте Arduino IDE и загрузите следующий скетч в Arduino.
String data="Hello From Arduino!";
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println(data);//data that is being Sent
delay(200);
}
Удостоверьтесь, что скетч загружен в Arduino.
В настройках Raspberry Pi обязательно активируйте Serial и I2C через PiConfig.
Далее необходимо перезагрузить Raspberry Pi. Откройте терминал и выполните следующие команды:
sudo apt-get install python-serial
sudo pip install pyserial
Подсоедините Ардуино к «Малине».
Выполните:
ls /dev/tty*
Найдите строку вида /dev/ttyACM0 или /dev/ttyACM1 и т.д. Проверьте ACM с различными номерами — 0, 1, 2 и так далее.
Снова откройте Python и измените ser = serial.Serial ( «dev/ttyACM1», 9600), подставив нужный номер ACM. Таким образом, если у вас определился ACM0, строка будет выглядеть так: ser = serial.Serial («dev / ttyACM0», 9600).
Запустите созданную программу в Python3. В терминале Python отобразится «Hello From Arduino!», а светодиод начнёт мигать!