How to use raspberry pi gpio pins

Введение

В предыдущей статье серии «Построение контроллеров на Raspberry Pi» мы изучили, как реализовать программируемую светодиодную мигалку. Для запуска цикла мигания светодиода должна быть нажата кнопка. Несмотря на то, что кнопка является базовым способом, обеспечивающим входной управляющий сигнал для RPi, для обработки и выдачи соответствующего выходного отклика, автоматический подход к управлению может быть достигнут с помощью использования датчиков. Фотоэлементы или фоторезисторы (LDR) часто используются для автоматического включения и выключения освещения. Обычный ночник имеет фотоэлемент, который детектирует наступление темноты, основываясь на изменении его сопротивления. И при обнаружении наступления темноты фотоэлементом включается освещение. Применяя тот же принцип, аналогичным образом мы можем управлять небольшим двигателем постоянного тока. В данном проекте мы соберем контроллер двигателя постоянного тока с функцией обнаружения объектов, структурная схема и перечень компонентов которого приведены ниже.

Рисунок 1 – Структурная схема контроллера двигателя постоянного тока с функцией обнаружения объектов

Особенности GPIO «Малины»

В первую очередь необходимо рассмотреть ключевые особенности этого интерфейса. И самое главное в GPIO Raspberry Pi – это pings (пины). Именно они используются для связи одноплатника с периферией.

В совокупности у «Малины» есть 26 GPIO (портов), однако самих элементов больше:

  • 2 из них отвечают за подачу напряжения в 5 Вольт;
  • 2 – 3,3 Вольта;
  • 8 применяются для заземления;
  • 2 используются исключительно для подключения расширений.

Все они выстроены в 2 ряда. Если расположить плату горизонтально и так, чтобы интерфейс оказался вверху, то к первой паре элементов можно подключать (запитывать) устройства, требующие напряжения в 5 Вольт. Снизу, в свою очередь, находится 1 на 3,3, а второй такой же располагается в этом же ряду, примерно посередине – между 22 и 10 портами.

Чтобы ознакомиться с распиновкой GPIO Raspberry следует изучить схему. Её рекомендуется загрузить на компьютер, чтобы при необходимости можно было быстро обратиться к данной информации – заучить сразу расположение всех элементов не получится.

Программное обеспечение

Raspbian основан на популярном дистрибутиве Linux Debian 10. Это система, используемая на серверах и суперкомпьютерах, которая славится своим стабильным, тщательно протестированным и безопасным программным обеспечением. Для Raspbian использовалась облегченная среда рабочего стола LXDE, созданная специально для менее производительных компьютеров. В нее включена поддержка многих языков, хотя могут встретиться некоторые элементы на английском. Так что для полной конфигурации могут потребоваться его базовые знания.

Raspbian не испугает пользователей, которые ранее не общались с Linux. Система основана на рабочем столе, окнах и управляется с помощью левого и правого щелчка мыши, как и в среде Microsoft Windows. В Raspbian панель задач по умолчанию находится вверху, а раскрывающееся меню находится слева.

В нем размещены предустановленные программы, отсортированные по категориям, включая Libre Office, браузер Chromium с функциями безопасности и блокировки рекламы, инструменты для программирования, простые аксессуары и игры (в том числе упрощенный Minecraft). Программное обеспечение можно установить с помощью «Установка и удаление программного обеспечения» или «Рекомендованного программного обеспечения». В общем, недостатка в простых играх и инструментах, включая GIMP, не ощущается.

Доступен и файловый менеджер, похожий на тот, что использует Windows. Ярлыки можно добавить на рабочий стол или в верхнюю панель. В правом верхнем углу находится панель со значками для настройки сети, устройств Bluetooth, времени и календаря. Более опытные пользователи найдут здесь и терминал, управляемый с помощью текстовых команд.

Для тех, кого не устраивает интерфейс, похожий на Linux, хорошим решением будет установка операционной системы от внешних поставщиков, таких как Windows 10 IoT Core или OSMC. Первый вариант — это предложение для пользователей, привыкших к среде Microsoft, а второй превращает мини-компьютер в домашний мультимедийный центр. Не лишним будет протестировать Ubuntu MATE, LibreELEC, RISC OS или Ichigo RPI, потому что каждое программное обеспечение может «превратить» Распбери в устройство для выполнения совершенно разных задач.

General Purpose Input Output (GPIO) Pins

The GPIO is the most basic, yet accessible aspect of the Raspberry Pi. GPIO pins are digital which means they can have two states, off or on. They can have a direction to receive or send current (input, output respectively) and we can control the state and direction of the pins using programming languages such as Python, JavaScript, node-RED etc.

The operating voltage of the GPIO pins is 3.3v with a maximum current draw of 16mA. This means that we can safely power one or two LEDs (Light Emitting Diodes) from a single GPIO pin, via a resistor. But for anything requiring more current, a DC motor for example, we will need to use external components to ensure that we do not damage the GPIO.

Controlling a GPIO pin with Python is accomplished by first importing a library of pre-written code. The most common library is RPi.GPIO (https://pypi.org/project/RPi.GPIO/) and it has been used to create thousands of projects since the early days of the Raspberry Pi. In more recent times a new library called GPIO Zero (https://pypi.org/project/gpiozero/)has been introduced, offering an easier entry for those new to Python and basic electronics. Both of these libraries come pre-installed with the Raspbian operating system.

GPIO pins have multiple names; the first most obvious reference is their “physical” location on the GPIO. Starting at the top left of the GPIO, and by that we mean the pin nearest to where the micro SD card is inserted, we have physical pin 1 which provides 3v3 power. To the right of that pin is physical pin 2 which provides 5v power. The pin numbers then increase as we move down each column, with pin 1 going to pin 3, 5,7 etc until we reach pin 39. You will quickly see that each pin from 1 to 39 in this column follows an odd number sequence. And for the column starting with pin 2 it will go 4,6,8 etc until it reaches 40. Following an even number sequence. Physical pin numbering is the most basic way to locate a pin, but many of the tutorials written for the Raspberry Pi follow a different numbering sequence.

Broadcom (BCM) pin numbering (aka GPIO pin numbering) seems to be chaotic to the average user. With GPIO17, 22 and 27 following on from each other with little thought to logical numbering. The BCM pin mapping refers to the GPIO pins that have been directly connected to the System on a Chip (SoC) of the Raspberry Pi. In essence we have direct links to the brain of our Pi to connect sensors and components for use in our projects.

You will see the majority of Raspberry Pi tutorials using this reference and that is because it is the officially supported pin numbering scheme from the Raspberry Pi Foundation. So it is best practice to start using and learning the BCM pin numbering scheme as it will become second nature to you over time. Also note that BCM and GPIO pin numbering refer to the same scheme. So for example GPIO17 is the same as BCM17.

Certain GPIO pins also have alternate functions that allow them to interface with different kinds of devices that use the I2C, SPI or UART protocols. For example GPIO3 and GPIO 4 are also SDA and SCL I2C pins used to connect devices using the I2C protocol. To use these pins with these protocols we need to enable the interfaces using the Raspberry Pi Configuration application found in the Raspbian OS, Preferences menu.

Что можно сделать на Raspberry Pi 2

  1. настольный компьютер для просмотра фильмов и интернет-серфинга;
  2. медиацентр или умный телевизор;
  3. музыкальный проигрыватель;
  4. приставка для ретроигр (Seg, Dendi);
  5. система умного дома и еще многое другое.

Плату можно использовать для любых целей. Распберри Пай — это полноценный медиаплеер для воспроизведения аудио, фото и видео с различных источников. Pi2 можно использовать в качестве игровой консоли или собрать проект «Умный дом», подключив к плате датчики и модули. Плату также можно использовать в качестве вычислительной базы при проектировании управляемых роботов.

Заключение. Хотя плату Pi2 выпустили в феврале 2015 года, она до сих пор остается популярной среди энтузиастов. С помощью «малинки» можно создать отличные проекты, используя навыки в программировании. Достоинства микроконтроллера в достаточной мощности и производительности, плата компактная и имеет удобную систему. Это хороший вариант для обучения программированию.

Скорость работы и джиттер

Опрос состояния кнопок и управление светодиодами – события относительно медленные, измеряющиеся десятками и сотнями миллисекунд. Иногда встречаются намного более высокоскоростные сигналы. Например, пульт от телевизора излучает инфракрасные световые импульсы со скоростью 40 тыс. раз в секунду. Несмотря на то, что основной процессор RPi работает на частоте 1 ГГц, работа подсистемы ввода/вывода с такой скоростью не поддерживается по ряду причин, как аппаратных, так и программных. Мы рассмотрим некоторые программные аспекты, касающиеся темы статьи.

RPi работает под управлением многозадачной операционной системы (ОС) Linux. Система может превентивно забирать контроль над вашей программой для выполнения других задач. Все это происходит довольно быстро, так что кажется, будто мышка по-прежнему работает во время выполнения вашей программы, но на самом деле вашей программе и коду драйвера мыши ОС предоставляет лишь короткие промежутки времени.

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

Кроме того, немаловажное значение имеет выбор языка программирования, поскольку некоторые библиотеки подходят лучше, чем другие. Интерпретированные и компилированные коды могут выполняться с разными скоростями

Короче говоря, если требуется очень точная временнáя привязка событий, возможно, придется написать драйвер Linux или использовать внешнее оборудование (например, другой микроконтроллер или логические схемы и генератор).

Одним из хороших вопросов, важных для более полного использования возможностей RPi, является то, насколько быстро можно изменять логические состояния выходов GPIO с помощью библиотек Python, Си и описанного выше командного скрипта.

Чтобы узнать это, был написан код для периодического переключения логического состояния выходного порта, к которому был подключен осциллограф. Результат представлен в Таблице 1.

Таблица 1. Максимальная частота переключения выходов при
использовании различных языков программирования
Язык
программирования
Частота Длительность
высокого уровня
Длительность
низкого уровня
Python 71.2 кГц 3.9 мкс 10.1 мкс
Си 5.8 МГц 85 нс 85 нс
Командный скрипт 3.9 кГц 115 мкс 139 мкс

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

Характер джиттера можно увидеть на осциллографе в режиме наложения нескольких каналов при синхронизации общим сигналом (Рисунок 17)

Обратите внимание, что джиттер может принимать множество значений, несмотря на то, что сигналы дискретно разнесены на 4 нс (250 МГц), что связано с аппаратными особенностями RPi

Рисунок 17. Следствием использования ОС Linux становится
джиттер выходного сигнала.

I2C, SPI and UART: Which Do You Use?

We’ll get into the specific differences between I2C, SPI and UART below, but if you’re wondering which one you need to use to connect to given device, the short answer is to check the spec sheet. For example, one tiny LED screen might require SPI and another might use I2C (almost nothing uses UART). If you read the documentation that comes with a product (provided it has some), it will usually tell you which Pi pins to use.

For Raspberry Pi 4 users note that there are now many more I2C, SPI and UART pins available to you. These extra interfaces are activated using device tree overlays and can provide four extra SPI, I2C and UART connections.  

Примечание

После релиза Pi B+ и Pi 2 мы обновили наше руководство. В частности, было добавлено 14 новых GPIO-контактов — на схеме они отделены от старых небольшим промежутком. Впрочем, этот промежуток было добавлен просто для ясности, поэтому, собственно, на гребенке самой платы вы его не найдете.

Чтобы получить более подробную информацию о выводе кликните по номеру физического контакта в таблице.

Назначение BCM WiringPi Физ.расп. Физ.расп. WiringPi BCM Назначение
3v3 5V
  1. I2C1 SDA
  2. SMI SA3
  3. DPI VSYNC
  4. AVEOUT VSYNC
  5. AVEIN VSYNC
  • 2
  • Rev 1 = 0
8 5V
  1. I2C1 SCL
  2. SMI SA2
  3. DPI HSYNC
  4. AVEOUT HSYNC
  5. AVEIN HSYNC
  • 3
  • Rev 1 = 1
9 Земля/Ground
  1. GPCLK0
  2. SMI SA1
  3. DPI D0
  4. AVEOUT VID0
  5. AVEIN VID0
  6. JTAG TDI
4 7 15 14
  1. UART0 TXD
  2. SMI SD6
  3. DSI D10
  4. AVEOUT VID10
  5. AVEIN VID10
  6. UART1 TXD
Земля/Ground 16 15
  1. UART0 RXD
  2. SMI SD7
  3. DPI D11
  4. AVEOUT VID11
  5. AVEIN VID11
  6. UART1 RXD
  1. FL1
  2. SMI SD9
  3. DPI D13
  4. UART0 RTS
  5. SPI1 CE1
  6. UART1 RTS
17 1 18
  1. PCM CLK
  2. SMI SD10
  3. DPI D14
  4. I2CSL SDA / MOSI
  5. SPI1 CE0
  6. PWM0
  1. SD0 DAT3
  2. TE1
  3. DPI D23
  4. SD1 DAT3
  5. JTAG TMS
  6. Резерв
  • 27
  • Rev 1 = 21
2 Земля/Ground
  1. SD0 CLK
  2. SMI SD14
  3. DPI D18
  4. SD1 CLK
  5. JTAG TRST
  6. Резерв
22 3 4 23
  1. SD0 CMD
  2. SMI SD15
  3. DPI D19
  4. SD1 CMD
  5. JTAG RTCK
  6. Резерв
3v3 5 24
  1. SD0 DAT0
  2. SMI SD16
  3. DPI D20
  4. SD1 DAT0
  5. JTAG TDO
  6. Резерв
  1. SPI0 MOSI
  2. SMI SD2
  3. DPI D6
  4. AVEOUT VID6
  5. AVEIN VID6
  6. Резерв
10 12 Земля/Ground
  1. SPI0 MISO
  2. SMI SD1
  3. DPI D5
  4. AVEOUT VID5
  5. AVEIN VID5
  6. Резерв
9 13 6 25
  1. SD0 DAT1
  2. SMI SD17
  3. DPI D21
  4. SD1 DAT1
  5. JTAG TCK
  6. Резерв
  1. SPI0 SCLK
  2. SMI SD3
  3. DPI D7
  4. AVEOUT VID7
  5. AVEIN VID7
  6. Резерв
11 14 10 8
  1. SPI0 CE0
  2. SMI SD0
  3. DPI D4
  4. AVEOUT VID4
  5. AVEIN VID4
  6. Резерв
Земля/Ground 11 7
  1. SPI0 CE1
  2. SMI SWE_N / SRW_N
  3. DPI D3
  4. AVEOUT VID3
  5. AVEIN VID3
  6. Резерв
  1. I2C0 SDA
  2. SMI SA5
  3. DPI CLK
  4. AVEOUT VCLK
  5. AVEIN VCLK
  6. Резерв
30 31 1
  1. I2C0 SCL
  2. SMI SA4
  3. DPI DEN
  4. AVEOUT DSYNC
  5. AVEIN DSYNC
  6. Резерв
  1. GPCLK1
  2. SMI SA0
  3. DPI D1
  4. AVEOUT VID1
  5. AVEIN VID1
  6. JTAG TDO
5 21 Земля/Ground
  1. GPCLK2
  2. SMI SOE_N / SE
  3. DPI D2
  4. AVEOUT VID2
  5. AVEIN VID2
  6. JTAG RTCK
6 22 26 12
  1. PWM0
  2. SMI SD4
  3. DPI D8
  4. AVEOUT VID8
  5. AVEIN VID8
  6. JTAG TMS
  1. PWM1
  2. SMI SD5
  3. DPI D9
  4. AVEOUT VID9
  5. AVEIN VID9
  6. JTAG TCK
13 23 Земля/Ground
  1. PCM FS
  2. SMI SD11
  3. DPI D15
  4. I2CSL SCL / SCLK
  5. SPI1 MISO
  6. PWM1
19 24 27 16
  1. FL0
  2. SMI SD8
  3. DPI D12
  4. UART0 CTS
  5. SPI1 CE2
  6. UART1 CTS
  1. SD0 DAT2
  2. TE0
  3. DPI D22
  4. SD1 DAT2
  5. JTAG TDI
  6. Резерв
26 25 28 20
  1. PCM DIN
  2. SMI SD12
  3. DPI D16
  4. I2CSL MISO
  5. SPI1 MOSI
  6. GPCLK0
Земля/Ground 29 21
  1. PCM DOUT
  2. SMI SD13
  3. DPI D17
  4. I2CSL CE
  5. SPI1 SCLK
  6. GPCLK1

Полезные функции

  • UART
  • I2C
  • SPI
  • Unicorn HAT
  • WiringPi
  • ATmega 328p/Arduino через SPI
  • PiBorg LEDBorg
  • PiGlow
  • Pibrella
  • Skywriter HAT
  • Explorer HAT и Explorer HAT Pro
  • Display-o-Tron 3000
  • Display-o-Tron HAT
  • Raspberry Pi Dots
  • Traffic HAT
  • IQaudIO Pi-DAC+
  • Piano HAT

Raspberry Pi из Китая

Компания Radxa из Китая разработала одноплатный компьютер Rock 3A размером с кредитную карту. Это полноценный современный ПК, хотя и без поддержки Windows, но зато с возможностью установки современного твердотельного накопителя. Он нацелен на конкуренцию с топовыми моделями одноплатников семейства Raspberry Pi, которые превосходит по ряду параметров.

Как пишет портал Liliputing, на плате размерами 85х54 мм разработчики из Radxa уместили все базовые компоненты настольного компьютера начального уровня, включая слот М.2 под SSD-накопители с поддержкой NVMe. Сам драйв в комплект поставки не входит, но, тем не менее, возможность его установки в Rock 3A заранее предусмотрена.

Начало продаж Rock 3A компания Radxa запланировала на август 2021 г. Компьютер будет доступен для приобретения в трех конфигурациях, различающихся исключительно объемом оперативной памяти. Базовая модель с 2 ГБ RAM обойдется в $35 (2610 руб. по курсу ЦБ на 20 июля 2021 г.), версия с 4 ГБ будет стоить $55 (4100 руб.), а топовая модификация с 8 ГБ ОЗУ оценивается разработчиками в $75 (5515 руб.).

Поддержка SSD в Rock 3A ставит под сомнение актуальность компьютеров Raspberry Pi

Для сравнения, флагманский Raspberry Pi 4 Model B стоит те же $35 с 2 ГБ оперативной памяти. Он обладает почти идентичным набором интерфейсов, но слота М.2 нет ни в одной из его модификаций.

Объяснение программы для Raspberry Pi

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

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

В программе нам первым делом необходимо подключить (импортировать) библиотеку для работы с контактами ввода/вывода. Также мы импортируем эту библиотеку RPi.GPIO под именем “IO” (то есть переименовываем ее для использования в программе), то есть далее в программе всегда, когда мы захотим обратиться к контактам ввода/вывода, мы будем использовать слово ‘IO’.

Python

import RPi.GPIO as IO

1 importRPi.GPIO asIO

Иногда контакты ввода/вывода (GPIO pins), которые мы собираемся использовать в программе, могут выполнять другие функции. В этом случае во время исполнения программы мы будем получать предупреждения (warnings). Следующей командой мы укажем плате Raspberry Pi на то, чтобы она игнорировала эти предупреждения и продолжала исполнение программы.

Python

IO.setwarnings(False)

1 IO.setwarnings(False)

Мы можем обращаться к контактам ввода/вывода (GPIO pins) платы Raspberry Pi используя либо номер контакта на плате, либо его функциональный номер. Например, если смотреть распиновку контактов ввода/вывода платы Raspberry Pi, то можно увидеть, что в ней обозначение GPIO5 соответствует контакту PIN 29. То есть в зависимости от того, какой способ обращения к контактам мы выбрали, мы можем обращаться к рассмотренному контакту либо по номеру ‘29’, либо по номеру ‘5’. В данном проекте мы выберем способ обращения к контактам по их функциональным номерам, поэтому используем следующую команду:

Python

IO.setmode (IO.BCM)

1 IO.setmode(IO.BCM)

Далее мы сконфигурируем 8 контактов платы Raspberry Pi в качестве цифровых входов – на них мы будем подавать значения с 8 выходных контактов модуля АЦП ADC0804.

Python

IO.setup(4,IO.IN)
IO.setup(17,IO.IN)
IO.setup(27,IO.IN)
IO.setup(22,IO.IN)
IO.setup(5,IO.IN)
IO.setup(6,IO.IN)
IO.setup(13,IO.IN)
IO.setup(19,IO.IN)

1
2
3
4
5
6
7
8

IO.setup(4,IO.IN)

IO.setup(17,IO.IN)

IO.setup(27,IO.IN)

IO.setup(22,IO.IN)

IO.setup(5,IO.IN)

IO.setup(6,IO.IN)

IO.setup(13,IO.IN)

IO.setup(19,IO.IN)

Далее в программе мы будем проверять состояние контакта GPIO19. Если на этом контакте уровень high, то мы выполним действия, относящиеся к этому оператору IF. Если же на этом контакте уровень low, то действия внутри оператора IF выполняться не будут.

Python

if(IO.input(19) == True):

1 if(IO.input(19)==True)

Следующей командой будет формироваться бесконечный цикл, внутри него все команды будут выполняться непрерывно.

Python

While 1:

1 While1

После написания программы можно приступать к проверке работы схемы.

Окончательная сборка проекта

Теперь, с правильно работающей схемой транзисторного драйвера двигателя, мы готовы завершить сборку проекта. Окончательное сборка контроллера двигателя постоянного тока с функцией обнаружения объектов – это подключение схемы драйвера к Raspberry Pi. В проекте светодиодной мигалки мы использовали переходник для GPIO Raspberry Pi, чтобы подключить оптоизолятор и вспомогательные компоненты схемы к соответствующим GPIO выводам RPi. Переходник для GPIO контактов Raspberry Pi обеспечивает удобство с точки зрения доступности GPIO выводов Raspberry Pi на беспаечной макетной плате для электрического подключения электронных схем. Таким образом, та же технология сборки схемы будет использоваться и в этом проекте. Рисунок 10 показывает разводку макетной платы для котроллера двигателя постоянного тока с функцией обнаружения объектов. Принципиальная схема показана на рисунке 11.

Рисунок 10 – Полная схема соединений контроллера двигателя постоянного тока с функцией обнаружения объектов, собранная на беспаечной макетной плате

Обратите внимание на удаление кнопки, батарейного отсека +6В и на новое размещение компонентов на макетной платеРисунок 11 – Принципиальная схема контроллера двигателя постоянного тока с функцией обнаружения объектов. Ниже показаны фотография собранного контроллера двигателя постоянного тока с функцией обнаружения объектов и демонстрационное видео его работы

Последним этапом проекта является написание скрипта на питоне, заставляющего наш контроллер работать должным образом

Ниже показаны фотография собранного контроллера двигателя постоянного тока с функцией обнаружения объектов и демонстрационное видео его работы. Последним этапом проекта является написание скрипта на питоне, заставляющего наш контроллер работать должным образом.

Рисунок 12 – Собранный контроллер двигателя постоянного тока с функцией обнаружения объектов

Распиновка GPIO Raspberry Pi 3 model b

GPIO Raspberry Pi 3b+ распиновка платы, питание

Raspberry Pi 3 B Plus может похвастаться 64-разрядным четырехъядерным процессором с частотой 1,4 ГГц, Bluetooth 4.2/BLE b двухдиапазонной 2,4 ГГц и 5 ГГц беспроводной локальной сетью. Малина обеспечивает полную совместимость с Raspberry Pi 2 и Raspberry Pi 3. Главное преимущество Распберри Пи3 — это 40 контактов GPIO к которым можно подключать периферию, сенсоры и устройства.

Для подключения телевизора или монитора следует использовать разъем HDMI на плате с разрешением видео до 1920×1200 пикселей. Колонки подключаются к «Малинке» через стандартный Audio Jack 3,5 мм. Также звук может передаваться по HDMI. К USB-портам можно подключить клавиатуру или компьютерную мышь. Рекомендуемый объём MicroSD для установки операционной системы не менее 8 ГБ.

Raspberry Pi GPIO Projects

Now that you’ve seen how easy it is to get started with Raspberry Pi GPIO using Grove, we couldn’t possibly leave you hanging without some project recommendations, could we? With a plethora of projects available thanks to the endless possibilities that GPIO pins offer, I’ll just be providing a few of my favourites today! For a comprehensive list of Raspberry Pi Projects, click here!

1. Raspberry Pi Smart Clock

Want to build a smart clock with your Raspberry Pi that shows time on an OLED display? This project not only does that but also reads out the time to you at different intervals! All software configurations are done with Python.

Hardware & Software Needed

  • Raspberry Pi 3 Model B
  • RGB Diffused Common Cathode
  • Speaker: 0.25W, 8 ohms
  • Jumper Wires (Generic)
  • Raspberry Pi OS on Raspberry Pi
  • Python GPIO Library installed on the RPi
  • Python SSD OLED Library

Interested to find out more? Visit the full tutorial with Python Code by Ashwini Kumr Sinha on Hackster!

2. Raspberry Pi Driven Robot Arm

This really cool project was developed by our Seeed R&D team. By using the 3D Gesture Tracking Shield that interfaces with the Raspberry Pi via its GPIO header, you can control a robot arm for picking up objects!

Hardware & Software Needed

  • Raspberry Pi 3B+
  • Seeed 3D Gesture & Tracking Shield for Raspberry Pi (MGC3130)
  • Seeed uArm metal
  • Raspberry Pi OS on Raspberry Pi

Want to learn more more? Check out the full tutorial by Seeed on Hackster!

3. Smart Raspberry Pi Fan Control

Worry about the thermal issues present in the Rasberry Pi 4, yet only want the fans to turn on when the processor really needs it? This project implements a Python script to adjust fan speeds based on the RPi’s CPU temperatures! Now you can cool your Raspberry Pi and learn Python at the same time!

Hardware & Software Needed

  • Raspberry Pi 4 Computer Model B 4GB
  • Seeed Armor Aluminum Metal Case with Dual Fans for Raspberry Pi
  • General Purpose Transistor NPN
  • Resistor 330 ohm
  • Breadboard
  • Jumper wires
  • ThingSpeak API

Interested to find out more? You can check out the full tutorial by Nurgaliyev Shakhizat on Hackster!

Explaining the Raspberry Pi GPIO Pinout

If you’re using the Raspberry Pi B+, 2 , 3, Zero or the latest Raspberry Pi 4 Model B, you’ll find a total of 40 GPIO pins on your RPi’s GPIO header. Older iterations of the RPI, such as the Raspberry Pi Model B, will only contain a total of 26pins.

Source: Raspberry Pi Foundation

Each of the pins on the 40 Pin header have a designated purpose. The different types are described in the table below.

GPIO Pin Type Pin Functionality and Explanation
GPIO GPIO pins are standard general-purpose pins that can be used for turning external devices, such as an LED, on or off.
Power 5V and 3V3 pins are used to supply 5V and 3.3V power to external components.
I2C I2C pins are used for connecting and hardware communication purposes with I2C compatible external modules.
SPI SPI (Serial Peripheral Interface Bus) pins are also used for hardware communication, but with a different protocol.
UART UART (Universal Asynchronous Receiver / Transmitter) pins are used for serial communication.
DNC Use of DNC (Do Not Connect) pins should be avoided.
GND GND (Ground) pins refer to pins that provide electrical grounding in your circuits.

For more information on the differences between and uses of PWM, I2C, SPI, UART protocols, please refer to the following resources:

  • What is Pulse Width Modulation (PWM)? Applications and Accessories
  • UART vs I2C vs SPI – Communication Protocols and Uses
  • I2C Communication – All about I²C with Diagrams

Что такое колодка GPIO

GPIO — сокращение, означающая General-Purpose Input-Output, или общий интерфейс ввода/вывода. Он содержит цифровые входы и выходы для подключения датчиков, разнообразных контроллеров, дисплеев, реле и прочей электронной периферии. Внешне GPIO похож на «гребенку» из штырьков-пинов. В Raspberry Pi 3 его внешний вид таков (в верхней части платы):

Колодка GPIO Raspberry чем-то напоминает интерфейс подключения жестких дисков IDE.

Для правильной работы через GPIO необходимо знать конфигурацию пинов. В Raspberry Pi распиновка такова:

Разъемов питания 4. Прочие пины способны выступать в роли входа или выхода. Кроме того, некоторые из них многофункциональны и могут работать как интерфейс UART, I2C, SPI или ШИМ.

Рассмотрим более подробно устройство «гребенки».

What is GPIO and How does it work?

GPIO, short for General Purpose Input Output is a standard interface found on microcontrollers and SBCs that enables digital input and output. It allows these devices to control external components like motors & infrared transmitters (output), as well as to receive data from sensor modules and switches (input). In essence, GPIO allows our Raspberry Pi to interface with a variety of external components, which makes it suitable for a wide variety of projects ranging from a weather station to a self-driving robot.

Raspberry Pi 4 40 Pin GPIO Header

For GPIO pins to work, software configurations will be required. Fret not, for beginner-friendly Python libraries such as GPIOzero are available to make physical computing more accessible for all users. For more experienced programmers who prefer C or C++, GPIO access libraries such as wiringPI are also available!

Питание Raspberry Pi 3 от аккумулятора

У raspberry pi 3 блок питания от сети 220 вольт, можно заменить электроснабжением от аккумулятора

Но тут важно обратить внимание на то, чтобы он выдавал напряжение не менее пяти вольт. Большинство выносных аккумуляторов именно 5 Вольт и выдают. Главное чтобы они смогли выдавать ток не менее 2.5 Ампер

Главное чтобы они смогли выдавать ток не менее 2.5 Ампер.

Для RPi 3 b, который будет использоваться в переносном варианте, собственно говоря, не нужно работать на полную мощность. Поэтому тут хватит и силы тока на выходе в 1.8 Ампер.

Опять же не забываем, что питание происходит через разъем micro-USB в стандартном исполнении, который применен на большинстве современных смартфонах.

И если модель Pi 3B, будет использоваться как обычный настольный компьютер, для его питания все-таки нужен ток не менее 2 А, а лучше 2.5 А.

И только при этом условии “Малина” сможет стабильно работать. При недостатке электроснабжения возможны подтормаживания системы.

Хотя справедливости ради, нужно сказать, что тормозить система может и по другим причинам.

Например:

  1. Карта microSD не отвечает требуемому классу скорости — ниже 10.
  2. Слишком длинный кабель питания.
  3. Слабый контакт в самом кабеле — провод просто изношен.
  4. Зарядка выдает ток менее 2.5 А.

Так что, в любом случае, к выбору источника питания для “Малины” нужно подходить крайне осторожно. Для автономной работы один источник питания, для стационарных систем совсем другой

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector