Как подключить Raspberry Pi к Ардуино?

Подключение Raspberry Pi к Ардуино

Соединяем микроконтроллеры Raspberry Pi и Ардуино так, чтобы между платами была возможность обмениваться данными.

Порой возникает необходимость подключить Ардуино (англ. — Arduino) к плате Raspberry Pi. К примеру, если имеются датчики, двигатели и исполнительные механизмы, их можно подсоединить к Arduino, а данные передавать и принимать через «малину». Подобным образом удаётся разграничить вычислительные задачи (возлагаемые на Raspberry Pi) и задачи управления (возлагаемые на Ардуино).

В данном материале мы соединим Arduino с «малиной» и попросим ардуину передать сообщение «Hello from Arduino» на Raspberry Pi, которая при получении команды от Arduino будет мигать светодиодом.

USB-кабель для подключения Arduino к Raspberry Pi

Для обмена данными воспользуемся простой последовательной связью через USB-кабель. Приступим!

Подсоедините светодиод к выводу 11 в соответствии со схемой ниже.

Схема подключения светодиода к Raspberry Pi

Запустите 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

Удостоверьтесь, что скетч загружен в Arduino.

В настройках Raspberry Pi обязательно активируйте Serial и I2C через PiConfig.

Настройка Serial и I2C в PiConfig Включение 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 и так далее.

Поиск ACM устройства в терминале

Снова откройте Python и измените ser = serial.Serial ( «dev/ttyACM1», 9600), подставив нужный номер ACM. Таким образом, если у вас определился ACM0, строка будет выглядеть так: ser = serial.Serial («dev / ttyACM0», 9600).

Запустите созданную программу в Python3. В терминале Python отобразится «Hello From Arduino!», а светодиод начнёт мигать!