Raspberry Pi:Примеры/Библиотека WiringPi/Gertboard и WiringPi/12 светодиодов: различия между версиями
Myagkij (обсуждение | вклад) Нет описания правки |
Нет описания правки |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 3: | Строка 3: | ||
{{Myagkij-редактор}} | {{Myagkij-редактор}} | ||
=Gertboard и WiringPi: 12 светодиодов<ref>[http://wiringpi.com/examples/gertboard-and-wiringpi/12-leds/ wiringpi.com - 12 LEDs]</ref>= | =Gertboard и WiringPi: 12 светодиодов<ref>[http://wiringpi.com/examples/gertboard-and-wiringpi/12-leds/ wiringpi.com - 12 LEDs]</ref>= | ||
Строка 17: | Строка 17: | ||
Также убедитесь, что у вас не загружено никаких '''SPI'''-модулей ('''Raspbian''' с ними не дружит), потому что вы могли загрузить их, а потом забыть, или поменять конфигурационные файлы. Запустите следующую команду: | Также убедитесь, что у вас не загружено никаких '''SPI'''-модулей ('''Raspbian''' с ними не дружит), потому что вы могли загрузить их, а потом забыть, или поменять конфигурационные файлы. Запустите следующую команду: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
lsmod | grep -i spi | lsmod | grep -i spi | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 23: | Строка 23: | ||
Если она дала какие-то выходные данные, то да – у вас, по всей видимости, загружены '''SPI'''-драйверы. Чтобы удалить их, впишите следующее: | Если она дала какие-то выходные данные, то да – у вас, по всей видимости, загружены '''SPI'''-драйверы. Чтобы удалить их, впишите следующее: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
sudo rmmod spi_bcm2708 spidev | sudo rmmod spi_bcm2708 spidev | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 65: | Строка 65: | ||
Сделав это, найдите в папке '''«examples»''' программу '''«blink12.c»'''. Скомпилируйте ее – это делается так же, как и для других программ: | Сделав это, найдите в папке '''«examples»''' программу '''«blink12.c»'''. Скомпилируйте ее – это делается так же, как и для других программ: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
gcc -Wall -o blink12 blink12.c -lwiringPi | gcc -Wall -o blink12 blink12.c -lwiringPi | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 71: | Строка 71: | ||
Впрочем, вы можете скомпилировать ее при помощи '''makefile''', который идет в комплекте с библиотекой. Более того, вы можете использовать его для ваших собственных проектов. | Впрочем, вы можете скомпилировать ее при помощи '''makefile''', который идет в комплекте с библиотекой. Более того, вы можете использовать его для ваших собственных проектов. | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
make blink12 | make blink12 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 77: | Строка 77: | ||
Запустите программу: | Запустите программу: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
sudo ./blink12 | sudo ./blink12 | ||
</syntaxhighlight> | </syntaxhighlight> |
Текущая версия от 13:15, 18 июня 2023
Содержание | Введение | Продукты | Операционная система | Настройка | Основы Linux | Аппаратные средства | Неисправности | Типовые проблемы | Часто возникающие вопросы | Библиотеки | Примеры |
Gertboard и WiringPi: 12 светодиодов[1]
Плата Raspberry Pi имеет 17 GPIO-контактов (плюс еще 4 на Rev2, но для их использовании на Gertboard придется иметь дело с дополнительными сложностями). Некоторые из этих контактов – двойного назначения.
Единственные контакты, которые при запуске настраиваются, как правило, на альтернативный режим – это последовательные контакты; ядро Linux использует их для отправки сообщений. Мы их пока использовать не будем, а воспользуемся теми, что выделены для интерфейса SPI.
На Gertboard под интерфейс SPI выделены контакты GP7, GP8, GP9, GP10 и GP11. Мы воспользуемся 4 из этих 5 контактов, чтобы подключиться к последним 4 светодиодам. В итоге у нас появится возможность зажечь все 12 светодиодов.
Перед тем, как начать, снимите на Gertboard все перемычки моста – это перемычки, что идут от длинного ряда контактов к более короткому ряду, служащему для подключения к периферийным компонентам Gertboard.
Также убедитесь, что у вас не загружено никаких SPI-модулей (Raspbian с ними не дружит), потому что вы могли загрузить их, а потом забыть, или поменять конфигурационные файлы. Запустите следующую команду:
lsmod | grep -i spi
Если она дала какие-то выходные данные, то да – у вас, по всей видимости, загружены SPI-драйверы. Чтобы удалить их, впишите следующее:
sudo rmmod spi_bcm2708 spidev
Все перемычки на буферных чипах должны быть выставлены на вывод данных – это 12 перемычек, и их нужно расположить в сторону светодиодов и контактов «BufX».
Подключение
В данном случае фото получаются не очень наглядными, поэтому схема подключения показана в таблице ниже:
J2 | Провод-перемычка | J3 |
---|---|---|
GP17 | <–> | B1 |
GP18 | <–> | B2 |
GP21 | <–> | B3 |
GP22 | <–> | B4 |
GP23 | <–> | B5 |
GP24 | <–> | B6 |
GP25 | <–> | B7 |
GP4 | <–> | B8 |
GP7 | <–> | B9 |
GP8 | <–> | B10 |
GP9 | <–> | B11 |
GP10 | <–> | B12 |
Сделав это, найдите в папке «examples» программу «blink12.c». Скомпилируйте ее – это делается так же, как и для других программ:
gcc -Wall -o blink12 blink12.c -lwiringPi
Впрочем, вы можете скомпилировать ее при помощи makefile, который идет в комплекте с библиотекой. Более того, вы можете использовать его для ваших собственных проектов.
make blink12
Запустите программу:
sudo ./blink12
Результатом будут 12 перемигивающихся светодиодов.
Изучение программы и ее модифицирование полностью приветствуются!
Итого
- Буферные перемычки можно использовать для переключения между вводом и выводом данных, но мы пока рассмотрели лишь вывод данных
- Мы можем использовать некоторые GPIO-контакты Pi двойного назначения для обычного вывода данных
- Мы можем зажигать встроенные светодиоды!