• I






      
           

Научно-популярный образовательный ресурс для юных и начинающих радиолюбителей - Popular science educational resource for young and novice hams

Основы электричества, учебные материалы и опыт профессионалов - Basics of electricity, educational materials and professional experience

КОНКУРС
language
 
Поиск junradio

Радиодетали
ОК
Сервисы

Stock Images
Покупка - продажа
Фото и изображений


 
Выгодный обмен
электронных валют

Друзья JR



JUNIOR RADIO

 

Основы контактов GPIO

 

Эти контакты предназначены для связи с другими схемами, такими как платы расширения, специальные схемы и многое другое. С помощью этих булавок можно сделать довольно крутые вещи. Об этих контактах нужно знать довольно много, и я настоятельно рекомендую вам следовать этому руководству, чтобы лучше понять, прежде чем начинать с ними играть.

 

 

Предупреждение: экспериментировать с GPIO рискованно и может привести к поломке Raspberry Pi. Необходимо знать ограничения мощности контактов GPIO, а также понимать, что вы подключаете. Теперь давайте приступим к этому руководству по Raspberry Pi GPIO, мы рассмотрим различные типы доступных контактов, как включить модули, что такое коммутационный комплект и, наконец, как построить и запрограммировать простую схему.

Если вы владелец Raspberry Pi B +, 2, Zero или 3, то всего у вас будет 40 контактов. У более ранних моделей, таких как Raspberry Pi B, всего 26 контактов.

См. Ниже схему распиновки Raspberry Pi GPIO. Мы включили все три версии Pi для схемы распиновки.

Если вам нужна распиновка в формате PDF, вы можете скачать ее здесь .

 


 

Как видите, есть не только стандартные контакты, но и ссылки на I2C, SPI и UART.

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

Контакты I2C ( Inter-Integrated Circuit ) позволяют подключаться и взаимодействовать с аппаратными модулями, поддерживающими этот протокол (протокол I2C). Этот протокол обычно занимает два контакта.

Контакты SPI ( Serial Peripheral Interface Bus ) могут использоваться для подключения и обмена данными с устройствами SPI. Практически то же самое, что и I2C, но использует другой протокол.

UART ( универсальный асинхронный приемник / передатчик ) - это последовательные выводы, используемые для связи с другими устройствами.

DNC означает не подключаться, это довольно понятно.

Эти выводы питания тянуть питание непосредственно от Raspberry Pi.

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

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

 

Настройка GPIO

Если вы используете последнюю версию Raspbian, вы можете начать программировать и использовать контакты GPIO без необходимости выполнять какую-либо дополнительную настройку.

Однако я все равно рекомендую вам обновить Pi до последних пакетов. Если вы этого не сделали, вы можете сделать это, выполнив следующие команды.

sudo apt-get update

sudo apt-get upgrade

Если у вас не установлен пакет GPIO, вы просто установите его, выполнив следующую команду.

sudo apt-get install rpi.gpio

 

Настройка Raspberry Pi I2C

Настройка контактов I2C на Raspberry Pi очень проста и займет всего пару минут.

Во-первых, перейдите к инструменту Raspi-Config , введя следующую команду.

sudo raspi-config

Здесь перейдите к дополнительным параметрам, а затем к I2c , включите I2c, нажав Да.

Теперь Pi должен предупредить вас, что I2C будет включен после перезагрузки. Затем он спросит, хотите ли вы, чтобы он загружался по умолчанию. Выберите «Да», если вы планируете использовать I2c при каждой загрузке Raspberry Pi. Теперь мы хотим убедиться, что он успешно включил необходимые модули. Для этого введите следующую команду.

lsmod | grep i2c_

Эта команда вернет все запущенные модули, начиная с i2c. Он должен вернуть что-то вроде этого i2c_BCM2708 .  Настройка Raspberry Pi SPI Настройка Raspberry Pi SPI очень похожа на I2c и очень проста, это займет всего пару минут. Во-первых, перейдите к инструменту Raspi-Config, введя следующую команду. sudo raspi-config. После загрузки инструмента настройки перейдите к дополнительным параметрам , а затем к SPI . Включите SPI, и он сообщит вам, что он будет включен после перезагрузки. После этого он спросит, хотите ли вы, чтобы он загружался по умолчанию. Выберите «Да» только в том случае, если вы планируете использовать его каждый раз при загрузке Pi. Чтобы проверить, что SPI успешно запущен, используйте следующую команду. lsmod | grep spi_ Эта команда вернет все работающие модули, начиная с SPI. Он должен вернуть что-то вроде spi_bcm2835. Убедитесь, что вы перезапустили Pi, прежде чем проверять, загружен ли модуль.

 

Raspberry Pi SPI и I2C

 

Использование коммутационного комплекта

Разъемный комплект позволяет вам взять все контакты через ленточный кабель и подключить их к макетной плате или другому устройству. Этот комплект делает его намного проще и безопаснее, чем работать с Raspberry Pi и рядом с ним. Есть несколько различных типов коммутационных комплектов, которые вы можете купить для контактов Raspberry Pi GPIO. Лично я предпочитаю тип T, так как они удобны для чтения и использования. Если вы хотите купить коммутационный комплект, обязательно ознакомьтесь со списком оборудования выше. При подключении ленточного кабеля необходимо убедиться, что он подключен, так что он направлен от платы. Ниже вы можете увидеть пример правильной настройки ленточного кабеля с коммутационной платой Т-типа.

 

 

Программирование с помощью контактов GPIO Raspberry Pi

Программирование контактов GPIO на Raspberry Pi обычно выполняется с использованием языка программирования Python. Эта конкретная схема и код очень просты в освоении и не займут у вас много времени. Если кодирование кажется слишком сложным для вас и вы бы предпочли простое решение, то вам может быть интересно что- то вроде Raspberry Pi Cayenne . Пакет программного обеспечения позволяет добавлять датчики, управлять контактами GPIO и многое другое с помощью очень простого пользовательского интерфейса.

 

GPIO BOARD против GPIO BCM

Между этими двумя разными режимами огромная разница, и вам решать, какой из них вы хотите использовать для своего проекта. У обоих есть свои плюсы и минусы.

Плата GPIO ( GPIO.Board ) ссылается на физическую нумерацию контактов. Например, верхний левый штифт равен 1, а верхний правый штифт 2. Он продолжает считать вверх, пока вы идете сверху вниз, пока у вас не закончатся штифты. На нашей диаграмме вы можете увидеть эту нумерацию в середине каждой группы.

 

 

GPIO БЦМ ( GPIO.BCM ) является B roadcom S ос С hannel нумерации. На диаграмме выше вы можете найти номер после GPIO. Например, на Raspberry Pi 3 вывод под 3v3 - это GPIO2, поэтому номер для этого вывода - 2 в режиме BCM. Обратной стороной BCM является то, что они менялись между версиями (Raspberry Pi Rev 1 против Raspberry Pi Rev 2) и могут измениться в будущем. Если вы хотите быть в безопасности, я рекомендую придерживаться платы GPIO, но, как я сказал ранее, вам решать, как вы хотите ссылаться на контакты.

 

Код для простой светодиодной схемы

Если вы пишите код на  Python , то посмотрите мой пример ниже. Во-первых, давайте настроим нашу небольшую схему. У меня есть полезная простая диаграмма, которой можно следовать ниже. Если у вас есть коммутационный комплект, схема, очевидно, будет немного другой, поскольку ваши провода будут идти от сапожника. В качестве альтернативы просто подключите положительный конец светодиода к контакту 7 (GPIO4), а отрицательный конец - к резистору, который подключается к контакту заземления.

 

Простая светодиодная схема Raspberry Pi GPIO

 

Теперь давайте создадим файл Python, чтобы мы могли напечатать наш скрипт Python.

sudo nano led_blink.py

Напишем небольшой сценарий. Важно помнить, что Python чувствителен к пробелам .

Например, в цикле for убедитесь, что у вас есть четыре пробела для чего-либо внутри цикла. Чтобы пояснить немного дальше, перед строкой GPIO.output (7, true) должно быть четыре пробела.

#import the GPIO and time package

import RPi.GPIO as GPIO

import time

GPIO.setmode(GPIO.BOARD)

GPIO.setup(7, GPIO.OUT)

# loop through 50 times, on/off for 1 second

for i in range(50):

    GPIO.output(7,True)

    time.sleep(1)

    GPIO.output(7,False)

    time.sleep(1)

GPIO.cleanup()

Теперь выйдите и сохраните, нажав ctrl + x, а затем y.

Если запустить наш маленький скрипт, схема должна ожить.

Вы можете запустить сценарий Python, выполнив следующую команду. Также важно, чтобы вы запускали его как суперпользователь с помощью sudo.

sudo python led_blink.py

 

 

В начало обзора


Купить радиодетали для ремонта
 



Необходимо добавить материалы...
Результат опроса Результаты Все опросы нашего сайта Архив опросов
Всего голосовало: 373



          

Радио для всех© 2024