Raspberry Pi:Примеры/Библиотека WiringPi/Gertboard и WiringPi

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.



Gertboard и WiringPi[1]

Gertboard – это буферизированная плата-расширитель для Raspberry Pi. Она оснащена 12 светодиодами, 3 кнопками, 1 высокомощным драйвером двигателя, Полужирное начертание6 среднемощными драйверами с открытым коллектором, АЦ-конвертером, ЦА-конвертером и процессором ATmega 328p.

Статьи этой серии призваны продемонстрировать использование Gertboard и библиотеки WiringPi из командной строки в BASH и C. Более того, эти статьи можно использовать и как руководства, и как помощь в проверке того, все ли функции работают у вашей Gertboard.

  • При написании этих материалов использовалась одна из ранних версий Gertboard (та, что нужно было собирать самостоятельно), но они подойдут и для более поздний версий платы (тех, что выпускаются компанией Farnell и собираются на фабрике).
  • Все эти примеры тестировались при помощи стандартного дистрибутива Rasbian Linux для Raspberry Pi. Если вы используете другой дистрибутив, то вам, возможно, придется использовать немного другой подход, но в большинстве случаев все работает как есть.

WiringPi

WiringPi – это набор C-функций, созданных для того, чтобы упростить программам на C и C++ доступ к GPIO-контактам Raspberry Pi. Кроме того, есть утилита gpio – ее можно использовать из командной строки, чтобы тестировать простейшие операции с GPIO-контактами.

О том, как скачать и установить WiringPi, читайте тут.

Gertboard с проводом-перемычкой между GP17 и B1

Перемычки

На Gertboard есть несколько перемычек, и если вы читали мануал, то уже должны быть с ними знакомы. Опишу здесь некоторые из них:

Перемычки для переключения между вводом и выводом на буферных чипах. Всего их 12, они объединены в 3 группы по 4 штуки и находятся рядом с 3 буферными чипами 74x244.

  • Если перемычка стоит со стороны чипа (ближе к коннектору Raspberry Pi), то соответствующий буфер будет настроен на ввод данных – от контакта «BufX» (т.е. контакта, рядом с которым стоит надпись «Buf1», «Buf2» и т.д.) через буферный чип на Gertboard и к Pi
  • Если перемычка стоит с противоположной стороны (ближе к светодиодам и контактам «BufX»), то буфер настроен на вывод данных – от Pi через буферный чип к светодиоду и контакту «BufX»

Перемычки моста. Мост – это несколько GPIO-контактов, служащих для подключения между Pi и Gertboard. Некоторые из них (7 шт.) могут обеспечить прямой доступ к периферийным компонентам Gertboard. Это 2 последовательных линии от Pi к ATmega, а также 2 шины SPI от Pi к АЦ-конвертеру и ЦА-конвертеру на Gertboard.

Мы бы порекомендовали снять все эти перемычки. Они вам, впрочем, еще пригодятся, поэтому постарайтесь их не терять.

С чего начать

Первым делом нужно поставить перемычки на вывод данных и зажечь первый светодиод. После этого мы перейдем к более сложным программам-примерам.

Итак, ставим все 12 перемычек на вывод данных (т.е. ближе к светодиодам), подключаем Gertboard к Pi и загружаем Pi.

  • Не советуем делать все эти манипуляции со включенной Pi, т.к. вы можете неправильно подключите кабель, забыть про какой-то контакт и т.д. Сначала убедитесь, что все подсоединено правильно, а потом включайте Pi.

Примечание: Входные линии на буферах находятся в высокоимпедансном состоянии. На практике это значит, что для того, чтобы светодиоды загорелись, достаточно, как правило, просто прикоснуться к контактам со стороны Pi. Более того, иногда это происходит, если просто провести рядом с контактами рукой. Это не такая уж серьезная проблема, но ее стоит иметь в виду. Впрочем, она касается лишь ранних версий Gertboard – у более поздних этот эффект устранили при помощи стягивающих резисторов.

Итак, чтобы зажечь первый светодиод, подключите провод-перемычку между контактом GP17 (на гребешке J2) и контактом B1 (на гребешке J3).

Затем залогиньтесь в Pi и введите следующие команды:

gpio mode 0 out
gpio write 0 1

Это должно включить светодиод (обратите внимание, что GP17 – это контакт BCM_GPIO под номером 17, который в WiringPi соответствует контакту 0).

Затем:

gpio write 0 0

Это должно выключить светодиод. Если все работает, поздравляем!

Если нет, то проверьте, все ли правильно подключено и нет ли неисправностей в работе Gertboard. Правильный способ подключения показан на фото выше. Проверьте, так ли перемычка подключена у вас, и попробуйте еще раз. Обратите внимание, что на этом фото горит не только первый светодиод (самый правый), но и два крайних левых светодиода. Это происходит из-за высокого импеданса, о котором я писал выше.

Если все понятно, то далее можно перейти к следующему шагу – написанию программ при помощи Gertboard и WiringPi.

Все эти программы-примеры являются частью дистрибутива WiringPi, поэтому если все установлено правильно, много печатать не придется.

Примеры

См.также

Внешние ссылки