Raspberry Pi:Примеры/Библиотека WiringPi/Quick2Wire и WiringPi/Установка и проверка: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
 
Нет описания правки
Строка 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" enclose="div">
<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" enclose="div">
<syntaxhighlight lang="bash">
gpio write 1 1 # включение светодиода
gpio write 1 1 # включение светодиода
gpio write 1 0 # выключение светодиода
gpio write 1 0 # выключение светодиода
Строка 30: Строка 30:
Затем кнопку:
Затем кнопку:


<syntaxhighlight lang="bash" enclose="div">
<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" enclose="div">
<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" enclose="div">
<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" enclose="div">
<syntaxhighlight lang="bash">
gcc -o blink blink.c -lwiringPi
gcc -o blink blink.c -lwiringPi
</syntaxhighlight>
</syntaxhighlight>
Строка 86: Строка 86:
И запускаем:
И запускаем:


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
sudo ./blink
sudo ./blink
</syntaxhighlight>
</syntaxhighlight>
Строка 96: Строка 96:
Если вы пока не хотите запускать '''C'''-программу, можно сделать это через '''BASH''':
Если вы пока не хотите запускать '''C'''-программу, можно сделать это через '''BASH''':


<syntaxhighlight lang="bash" enclose="div">
<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" enclose="div">
<syntaxhighlight lang="bash">
make button
make button
sudo ./button
sudo ./button

Версия от 18:21, 14 мая 2023

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


Черновик


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 на коннекторе, находящемся в нижней части платы, снимите перемычки со встроенных светодиода и кнопки.

См.также

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