Raspberry Pi:Примеры/Библиотека WiringPi/Gertboard и WiringPi
Содержание | Введение | Продукты | Операционная система | Настройка | Основы Linux | Аппаратные средства | Неисправности | Типовые проблемы | Часто возникающие вопросы | Библиотеки | Примеры |
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 есть несколько перемычек, и если вы читали мануал, то уже должны быть с ними знакомы. Опишу здесь некоторые из них:
Перемычки для переключения между вводом и выводом на буферных чипах. Всего их 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, поэтому если все установлено правильно, много печатать не придется.
Примеры
- Мигание светодиодом
- 12 светодиодов
- Кнопки
- Подключение к Gertboard
- Управление устройствами с высокой нагрузкой
- Встроенные SPI-устройства