Raspberry Pi:Примеры/Библиотека WiringPi/Quick2Wire и WiringPi/Установка и проверка: различия между версиями
Myagkij (обсуждение | вклад) Нет описания правки |
Нет описания правки |
||
Строка 15: | Строка 15: | ||
Чтобы начать тест, проверьте, [http://wiringpi.com/download-and-install/ установили] ли вы [[Raspberry Pi:Библиотеки/WiringPi|WiringPi]]. Затем впишите следующее: | Чтобы начать тест, проверьте, [http://wiringpi.com/download-and-install/ установили] ли вы [[Raspberry Pi:Библиотеки/WiringPi|WiringPi]]. Затем впишите следующее: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
gpio mode 0 in # контакт 0 для кнопки | gpio mode 0 in # контакт 0 для кнопки | ||
gpio mode 1 out # контакт 1 для светодиода | gpio mode 1 out # контакт 1 для светодиода | ||
Строка 23: | Строка 23: | ||
Нажатие на кнопку должно зажечь светодиод. Если светодиод не загорелся, проверяем каждый элемент по отдельности. Сначала светодиод: | Нажатие на кнопку должно зажечь светодиод. Если светодиод не загорелся, проверяем каждый элемент по отдельности. Сначала светодиод: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
gpio write 1 1 # включение светодиода | gpio write 1 1 # включение светодиода | ||
gpio write 1 0 # выключение светодиода | gpio write 1 0 # выключение светодиода | ||
Строка 30: | Строка 30: | ||
Затем кнопку: | Затем кнопку: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
gpio read 0 | gpio read 0 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 38: | Строка 38: | ||
В нижней части главной платы находится внешний GPIO-коннектор, а также контакты для питания и '''«земли»'''. Выходные GPIO-контакты оснащены добавочными резисторами, поэтому их можно подключать напрямую к светодиодам – я подключил светодиод между '''0 вольт''' (т.е. между '''«землей»''' или '''GND''') и '''7-ым''' контактом, а затем: | В нижней части главной платы находится внешний GPIO-коннектор, а также контакты для питания и '''«земли»'''. Выходные GPIO-контакты оснащены добавочными резисторами, поэтому их можно подключать напрямую к светодиодам – я подключил светодиод между '''0 вольт''' (т.е. между '''«землей»''' или '''GND''') и '''7-ым''' контактом, а затем: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
gpio mode 7 out | gpio mode 7 out | ||
while true; do gpio write 7 `gpio read 0`; done | while true; do gpio write 7 `gpio read 0`; done | ||
Строка 53: | Строка 53: | ||
Стандартная программа '''«Мигание»''' на языке '''C''': | Стандартная программа '''«Мигание»''' на языке '''C''': | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
#include <stdio.h> | #include <stdio.h> | ||
#include <wiringPi.h> | #include <wiringPi.h> | ||
Строка 80: | Строка 80: | ||
Компилируем при помощи: | Компилируем при помощи: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
gcc -o blink blink.c -lwiringPi | gcc -o blink blink.c -lwiringPi | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 86: | Строка 86: | ||
И запускаем: | И запускаем: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
sudo ./blink | sudo ./blink | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 96: | Строка 96: | ||
Если вы пока не хотите запускать '''C'''-программу, можно сделать это через '''BASH''': | Если вы пока не хотите запускать '''C'''-программу, можно сделать это через '''BASH''': | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
while true; do gpio write 1 1 ; sleep 0.5 ; gpio write 1 0 ; sleep 0.5 ; done | while true; do gpio write 1 1 ; sleep 0.5 ; gpio write 1 0 ; sleep 0.5 ; done | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 104: | Строка 104: | ||
Также взгляните на программу '''«button.c»'''. Она зажигает встроенный (красный) светодиод, но когда вы нажимаете на кнопку, она выключает его и зажигает светодиод, подключенный к контакту '''7''' (как показано наверху на примере желтого светодиода). Скомпилируйте и запустите эту программу, вписав: | Также взгляните на программу '''«button.c»'''. Она зажигает встроенный (красный) светодиод, но когда вы нажимаете на кнопку, она выключает его и зажигает светодиод, подключенный к контакту '''7''' (как показано наверху на примере желтого светодиода). Скомпилируйте и запустите эту программу, вписав: | ||
<syntaxhighlight lang="bash | <syntaxhighlight lang="bash"> | ||
make button | make button | ||
sudo ./button | sudo ./button |
Версия от 18:21, 14 мая 2023
Содержание | Введение | Продукты | Операционная система | Настройка | Основы Linux | Аппаратные средства | Неисправности | Типовые проблемы | Часто возникающие вопросы | Библиотеки | Примеры |
Черновик |
Quick2Wire и WiringPi: Установка и проверка[1]
Спаяв Quick2Wire и проверив ее на отсутствие припойных «мостиков», подключаем ее к питанию и начинаем тестировать.
На главной плате есть светодиод и кнопка, которые можно при помощи перемычек подключить к GPIO-контактам. То есть, чтобы использовать светодиод и кнопку, рядом с ними должны стоять перемычки.
Кнопка подключена к контакту 0, а светодиод – к контакту 1. Когда вы нажимаете на кнопку, считывается значение «1».
Чтобы начать тест, проверьте, установили ли вы WiringPi. Затем впишите следующее:
gpio mode 0 in # контакт 0 для кнопки
gpio mode 1 out # контакт 1 для светодиода
while true; do gpio write 1 `gpio read 0`; done
Нажатие на кнопку должно зажечь светодиод. Если светодиод не загорелся, проверяем каждый элемент по отдельности. Сначала светодиод:
gpio write 1 1 # включение светодиода
gpio write 1 0 # выключение светодиода
Затем кнопку:
gpio read 0
Если нажать на кнопку, должно прийти значение «1». В противном случае – «0».
В нижней части главной платы находится внешний GPIO-коннектор, а также контакты для питания и «земли». Выходные GPIO-контакты оснащены добавочными резисторами, поэтому их можно подключать напрямую к светодиодам – я подключил светодиод между 0 вольт (т.е. между «землей» или GND) и 7-ым контактом, а затем:
gpio mode 7 out
while true; do gpio write 7 `gpio read 0`; done
Теперь я могу пользоваться кнопкой для включения/выключения светодиода на контакте 7 – аналогично примеру выше.
Тестируем плату. Светодиод подключен к контакту 7 и GND (0 вольт). Длинная ножка – к контакту 7. Также обратите внимание на перемычки рядом с светодиодом и кнопкой в правой части платы.
Итак, как видите, главная плата многофункциональна сама по себе, и при помощи BASH и командной строки мы можем провести пару занятных тестов.
Стандартная программа «Мигание» на языке C:
#include <stdio.h>
#include <wiringPi.h>
#define LED 1
int main (void)
{
printf ("Raspberry Pi Quick2Wire blink\n") ;
// "Мигание при помощи Raspberry Pi и Quick2Wire\n"
wiringPiSetup () ;
pinMode (LED, OUTPUT) ;
for (;;)
{
digitalWrite (LED, HIGH) ; // включение светодиода
delay (500) ; // задержка в мс
digitalWrite (LED, LOW) ; // выключение светодиода
delay (500) ;
}
return 0 ;
}
Компилируем при помощи:
gcc -o blink blink.c -lwiringPi
И запускаем:
sudo ./blink
Чтобы выйти, жмем на Ctrl + C .
Эту программу, наряду со всеми остальными для Quick2Wire, можно найти в папке «examples» > «q2w» в дистрибутивной папке WiringPi.
Если вы пока не хотите запускать C-программу, можно сделать это через BASH:
while true; do gpio write 1 1 ; sleep 0.5 ; gpio write 1 0 ; sleep 0.5 ; done
Это «blink.sh» в папке «q2w».
Также взгляните на программу «button.c». Она зажигает встроенный (красный) светодиод, но когда вы нажимаете на кнопку, она выключает его и зажигает светодиод, подключенный к контакту 7 (как показано наверху на примере желтого светодиода). Скомпилируйте и запустите эту программу, вписав:
make button
sudo ./button
Или воспользуйтесь командами для компиляции, как было показано выше.
Пользуясь этими наработками, вы можете использовать главную плату Quicl2Wire для создания простых проектов. Например, использующих встроенные светодиод и кнопку, а также 8-контактный коннектор в нижней части платы (для подключения дополнительных кнопок и светодиодов).
Примечание: Если вы хотите использовать контакты 0 и 1 на коннекторе, находящемся в нижней части платы, снимите перемычки со встроенных светодиода и кнопки.