Подключаем микроконтроллеры Raspberry Pi и Ардуино таким образом, чтобы обе платы могли общаться друг с другом.
Иногда вам может понадобиться подключить Ардуино (англ. - Arduino) к плате Raspberry Pi. Например, если у вас есть датчики, двигатели и исполнительные механизмы, вы можете подключить их к Arduino, а значения передавать и получать от "малины". Таким образом, мы можем отделить вычислительные задачи (выполняемые Raspberry Pi) и управляющие задачи (выполняемые Ардуино).
Для связи мы будем использовать простую последовательную связь по 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. Вы увидите «Hello From Arduino!» На терминале Python, и ваш светодиод тоже будет мигать!