цифровая электроника
вычислительная техника
встраиваемые системы

 

Соединяем Raspberry Pi с Arduino через Serial GPIO

Автор: Mike(admin) от 20-04-2015, 09:42

Одним из способов соединения Raspberry Pi и Arduino является их связь по линиям GPIO с функцией последовательного порта.


Соединяем Raspberry Pi с Arduino через Serial GPIO

Выводы миникомпьютера Raspberry Pi и платы Arduino имеют разное напряжение, поэтому при их связи таким образом необходимо использовать преобразователь логических уровней или хотя бы делитель напряжения.


Для начала нужно настроить Raspberry Pi для последовательной передачи данных.


Во-первых, чтобы использовать серийный порт Raspberry Pi, нужно деактивировать getty (программу, которая отображает экран для логина). Для этого находим в файле /etc/inittab строчку:


T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100


И комментируем ее:


#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100


Во-вторых, чтобы предотвратить отправку данных в последовательный порт при загрузке Raspberry Pi, открываем файл /boot/cmdline.txt и находим, а затем удаляем следующую строчку:


console=ttyAMA0,115200 kgdboc=ttyAMA0,115200


Затем перезагружаем Raspberry Pi с помощью команды sudo reboot. После этого устанавливаем minicom:


sudo apt-get install minicom


Загружаем в Arduino следующий скетч:



byte number = 0;

void setup(){
  Serial.begin(9600);
}
 
void loop(){
  if (Serial.available())  {
    number = Serial.read();
    Serial.print("character recieved: ");
    Serial.println(number, DEC);
  }
}

Теперь соединяем линии GPIO миникомпьютера и линии последовательного порта Raspberry Pi через конвертер логических уровней.


Соединяем Raspberry Pi с Arduino через Serial GPIO

Удостоверьтесь, что подключение Raspberry Pi произведено в соответствии с распиновкой разъема GPIO:


Разъем GPIO Raspberry Pi

Теперь протестируем Minicom. Чтобы соединиться с Arduino через последовательный порт, введем в терминале:


minicom -b 9600 -o -D /dev/ttyAMA0


Если вы введете какой-нибудь символ, он будет отправлен в Arduino и послан назад в виде соответствующего ASCII-кода. Вот так просто Raspberry Pi может общаться с Arduino.


Разъем GPIO Raspberry Pi

Чтобы выйти, нажмите CTRL + A, а затем Q.


Теперь попробуем сделать более сложные вещи, написав программу на Python. Для начала нужно установить Py-Serial:


sudo apt-get install python-serial


Ниже приведен небольшой код, который отправляет строчку «testing» через последовательный интерфейс GPIO:



import serial
ser = serial.Serial('/dev/ttyAMA0', 9600, timeout=1)
ser.open()

ser.write("testing")
try:
        while 1:
                response = ser.readline()
                print response
except KeyboardInterrupt:
        ser.close()



Разъем GPIO Raspberry Pi

Чтобы выйти, нажмите CTRL + C.




© digitrode.ru


<Via>


Теги: Raspberry Pi, Arduino




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий
Цитата
  • Я

  • 7 августа 2015 12:29
  • Группа: Гости
  • ICQ:
  • Регистрация: --
  • Статус:
  • Комментариев: 0
  • Публикаций: 0
^
нихрена не работает, очередная бесполезная статья убившая ол часа времени
Цитата
  • Planer

  • 4 марта 2016 17:44
  • Группа: Гости
  • ICQ:
  • Регистрация: --
  • Статус:
  • Комментариев: 0
  • Публикаций: 0
^
А что делать если плата Raspberry PI2 B и отсутствует файл inittab ?
Цитата
  • Группа: Гости
  • ICQ:
  • Регистрация: --
  • Статус:
  • Комментариев: 0
  • Публикаций: 0
^
Проще и дешевле подключить ардуинку по USB к raspberry, тогда вам не потребуется макетка и конвертер, к тому же, вы можете подключить сколько угодно ардуинок таким способом.