Подключение клавиатуры ноутбука к raspberry pi
Шаг первый: клавиатура, сенсорная панель и карта видеоконвертера
Клавиатура, тачпад и карта видеоконвертера управляются Teensy 3.2 с использованием тех же методов, которые описаны в ранее выложенной инструкции автора по KVM . Код Teensy для клавиатуры и тачпада Dell D630 можно скачать ниже. Если используется другой ноутбук, можно воспользоваться другим проектом USB Keyboard Instructable and Touchpad Hackster чтобы изменить код Teensy. Контакты разъема FPC и сигналы ввода-вывода Teensy подробно описаны в приведенной выше таблице. Новым в этом ноутбуке является плата управления питанием на плате зарядного устройства. Кратковременное нажатие кнопки питания над клавиатурой приводит к тому, что плата активирует регуляторы, питающие ноутбук. Чтобы выключить ноутбук, пользователь выбирает безопасное завершение работы в графическом интерфейсе или командной строке. Pi отправляет сигнал выключения на Teensy, который сбрасывает защелку питания. Teensy также контролирует кнопку питания на ноутбуке в особых случаях, когда кнопка удерживается нажатой не менее 5 секунд. Это дает возможность выключить ноутбук, если Pi заблокирован.
Плата видеоконвертера M.NT68676.2A была запрограммирована продавцом EBay под разрешения ЖК-дисплея. Был приобретен кабель LVDS длиной 40 см вместо удлинения короткого кабеля, поставляемого с картой. Этот ноутбук можно использовать в качестве клавиатуры, видео, мыши (KVM), щелкнув тумблер на левой стороне. В этом случае USB-порт от Teensy подключается к разъему Micro B USB на задней панели, а не к проводам, припаянным непосредственно к USB-разъем Pi. Это опция пригодится при изменении кода Teensy с помощью ПК. Разъем VGA на задней панели ноутбука подключен к карте видеоконвертера, так что ПК или другой источник видеосигнала может управлять дисплеем вместо Pi. Код Teensy отслеживает нажатие Fn и F8 и управляет сигналами кнопок видеокарты для выбора HDMI или VGA.
Pi напрямую управляет сигналом управления питанием видеокарты с помощью порта GPIO 4. Он используется для мгновенного отключения дисплея, если аккумулятор нуждается в зарядке. Сигнал состояния питания от видеокарты отслеживается Pi, чтобы определить, когда видеокарта была выключена.
Dell_D630_Portable_Pi_KVM.ino
Шаг второй: Raspberry Pi
Ноутбук имеет Raspberry Pi 4B, установленный в месте, которое ранее было для жесткого диска. Задняя сторона была заклеена изолентой для предотвращения короткого замыкания на алюминиевый корпус. Pi был расположен вне отсека для накопителей примерно на 0,5 см, потому что нижний край ноутбука закруглен, а выступ разъемов USB не помещается внутри корпуса. Лицевая панель жесткого диска была вырезана с помощью Dremel и вклеены другие кусочки пластика, чтобы получился пластиковый ящик, окружающий Pi. Коробка приклеена двойным скотчем к Pi, так что корпус можно будет открыть в будущем. Радиаторы были добавлены к процессору, USB-контроллеру и Ethernet-контроллеру на Pi. Оригинальный вентилятор ноутбука должен был дуть на эти радиаторы. Результаты температурных испытаний показывают, что Pi достаточно охлаждается Разъем HDMI 0 был подключен к видеокарте, а на разъем USB C подавалось напряжение 5 В от понижающего стабилизатора LM2596. Контакты GPIO были подключены следующим образом:
GPIO 2 = Data SMBus к контакту 4 батареи
GPIO 3 = Data SMBus к контакту 3 батареи
GPIO 4 = включение / выключение ЖК-дисплея, подключенного к плате видеоконвертера (обозначенной «K0»).
GPIO 17 = резистор 330 Ом к синему светодиоду (ранее был Bluetooth).
GPIO 19 = отключает зарядное устройство. Подключено к плате зарядного устройства (помечено «Pi_Cntrl»). 3,3 В = отключено, 0 В = включено
GPIO 22 = состояние питания видеокарты. 0 В = питание выключено, 3,3 В = включено
GPIO 26 = завершение работы Pi на Teensy I / O 29. Работает когда пользователь дает команду на завершение работы из графического интерфейса или командной строки. В файл /boot/config.txt был добавлен следующий dtoverlay:
dtoverlay=gpio-poweroff,gpiopin=26,active_low="y"
Шаг третий: понижающие регуляторы на 5 и 10 вольт
В ноутбуке используются две регулируемые платы понижающего регулятора LM2596. Один регулятор был настроен на подачу 10 вольт на плату видеоконвертера. Другой был установлен на 5,1 вольт для Pi, Teensy, Fan и светодиода включения / выключения. Светодиод включения / выключения ранее использовался для работы с жестким диском и требует установки резистора 820 Ом. Контакт 5 на LM2596 обычно подключается к земле для включения регулятора. Мастер перекусил его, подогнул и припаял провод, чтобы его можно было подключить к выходу на плате зарядного устройства. Дальше добавил радиатор на обе части LM2596.
Видеокарта обычно питается от 12 вольт, но аккумуляторная батарея с 3-мя ячейками будет выдавать ниже 11 вольт, если она разряжена. С помощью LM2596 мастер устанавливает 10В. При таком напряжении видеокарта по-прежнему работает нормально. Проблема в том, что подсветка экрана работает на пониженном напряжении и экран тусклый. Скомпенсировать это можно увеличив яркость с помощью настроек. Обязательно нужно отрегулировать яркость и контраст с помощью платы кнопок, прежде чем отрезать разъем. Этот разъем будет использоваться для кабеля от видеоплаты к Pi и Teensy.
Если ваш аккумулятор состоит из 4-х проводных ячеек, вы можете поднять напряжение на LM2596 до 12 вольт вместо 10 вольт для питания видеокарты.
Шаг четвертый: входной разъем питания и разъем Micro B USB
Этот разъем мастер выпаял из материнской платы. На эту плату также был установлен USB-разъем Sparkfun micro B для прямого доступа к Teensy. 19 вольт поступают на плату Max1873, а также через два резистора 8,2 кОм на светодиод питания.
Шаг пятый: распиновка аккумулятора
Согласно Battery University , у большинства аккумуляторов ноутбуков есть один или два контакта заземления с одной стороны и равное количество контактов питания с другой стороны. Обычно сигнальный контакт должен иметь низкий логический уровень, чтобы включить твердотельный переключатель, который соединяет аккумулятор с положительным контактом разъема. Внутренняя BMS часто связывается с материнской платой с помощью 2-проводной шины SMB с тактовыми сигналами и сигналами данных, хотя иногда используются 1-проводные шины. На одном из контактов может быть термистор с отрицательным температурным коэффициентом (NTC). Обычно он измеряет около 10 кОм на землю при комнатной температуре.
Вооружившись этой общей информацией и омметром, он попробовал найти контакты заземления на разъеме аккумулятора материнской платы. На материнской плате есть несколько мест, где можно найти заземление, например, металлический экран вокруг разъема VGA. В данном случае он обнаружил 2 заземленных контакта материнской платы на одном конце разъема и еще одно заземление в середине, которое служит для сигнализации установки батареи. На противоположном конце были 2 контакта, соединенные вместе широкими медными дорожками, идущими к большому конденсатору. Остальные контакты имели тонкие медные слаботочные дорожки. Результаты тестирования разъема материнской платы показаны на фото ниже.
Затем он проверил аккумулятор омметром. Результаты проверки батареи так же на фото.
Шаг шестой: предварительная зарядка разряженной батареи
Литиевые батареи могут быть очень опасными и при работе с ними нужно соблюдать меры безопасности.
Если вы экспериментируете с аккумулятором ноутбука, который не использовался в течение некоторого времени, он мог «саморазрядиться» ниже нормального рабочего значения. На большинстве аккумуляторов для ноутбуков номинальное напряжение указано на наклейке вместе со значением ампер-часа или ватт-часа. Иногда, вместо номинального, указывается максимальное напряжение. Для блока с 3 элементами номинальное напряжение, указанное на батарее, будет составлять 11,1 В или 10,8 В в зависимости от производителя. В батарее с 3-мя ячейками никогда не должно быть ниже 9 вольт. Аккумулятор с 3-мя ячейками не следует заряжать, если в течение некоторого времени напряжение было ниже 4,5 вольт. Это предполагает, что каждая ячейка заряжена одинаково, что не обязательно так.
Используя ту же математику для 4-ячеечной аккумуляторной батареи, следует, что на ней должно быть указано номинальное напряжение 14,8 В или 14,4 В. Аккумуляторная батарея серии 4 никогда не должна опускаться ниже 12 вольт и не должна заряжаться, если она была ниже 6 вольт в течение некоторого времени.
Микросхемы контроллера заряда аккумулятора MP26123 имеют режим предварительной зарядки с низким током, который снижает ток заряда до 10%, если напряжение ниже нормального рабочего диапазона. К сожалению, микросхема контроллера заряда Max1873 не имеет этой функции, поэтому я мастер запрограммировал ATtiny так, чтобы импульс включения Max1873 осуществлялся в режиме ШИМ в зависимости от напряжения батареи. Какой бы контроллер заряда ни использовался, лучше всего выполнить предварительную зарядку вручную.
Чтобы выполнить предварительную зарядку вручную нужно подсоединить + и -, на соответствующие выводы, и резистор 1 кОм на вывод минусовой, который используется для сигнализации установки батареи. Используйте источник питания с регулировкой, например XL4015, показанный выше. Уменьшите ограничение тока примерно до 80 мА и установите напряжение на номинальное значение аккумуляторной батареи. Источник питания снизит напряжение, чтобы ограничить ток. Постоянно следите за аккумулятором во время зарядки, чтобы увидеть, не начинает ли он перегреваться. Продолжайте зарядку, пока напряжение не достигнет номинального значения аккумуляторной батареи. Выключите питание и отсоедините аккумулятор. Проверьте напряжение аккумулятора через 24 часа и посмотрите, не упало ли оно. Если сильно упало, то аккумулятор нужно заменить.
Если ваша батарея не принимает заряд, возможно, ее нужно активировать. Используйте код Pi "read_battery_loop.c", описанный в следующих шагах.
Шаг шестой: разъем аккумулятора
Разъем мастер выпаял из материнской платы. Затем вырезал кусочек платы и сделал из него держатель как на фото.
Шаг седьмой: плата зарядного устройства Max1873
Помимо зарядки литиевых аккумуляторов, Max1873 также может заряжать никель-кадмиевые или никель-металлогидридные аккумуляторы. В таблице данных есть полное описание всех контактов, а также типовая схема использования.
Плату мастер изготавливал на специализированном сервисе. Список запчастей со ссылками на Digikey и процедуру тестирования можно скачать ниже.
Обратите внимание, Max1873 выпускается в трех версиях: R, S или T, в зависимости от того, имеет ли аккумуляторный блок 2, 3 или 4 ячейки. Все версии поддерживают напряжение регулирования батареи до ± 0,75%.
Обычные литиевые батареи рассчитаны на максимальное напряжение 4,2 вольта и номинальное напряжение 3,6 вольт, но многие производители указывают номинальное значение 3,7 вольт. Существуют более новые литиевые батареи с максимальным напряжением 4,35 вольт. Max1873 может работать со всеми этими батареями, установив максимальное напряжение ячейки с помощью резисторов R5 и R6. Использование формул в техническом паспорте Max1873 дает следующие значения резисторов:
Максимальное напряжение ячейки 4,1 В: R5 = 54,9 кОм и R6 = 147 кОм.
Максимальное напряжение ячейки 4,2 В: R5 = 100 кОм и R6 = 100 кОм.
Максимальное напряжение ячейки 4,35 В: R5 = 169 кОм и R6 = 32,4 кОм.
Если вы не уверены, какое у вас максимальное напряжение на ячейке, используйте значения резистора 4,1 В на всякий случай.
R9 = 0,033 Ом и устанавливает ограничение входного тока на уровне 3А. Max1873 снижает ток заряда аккумулятора, чтобы он не превышал 3 А.
R1 = 0,2 Ом и устанавливает ограничение тока заряда 1 ампер.
Список деталей зарядного устройства.pdf
Charge_Controller.brd
Charge_Controller.sch
Процедура тестирования платы зарядного устройства Max1873.pdf
ATtiny85 отслеживает время зарядки и отключает зарядку аккумулятора через 300 минут. Это значение можно изменить.
Полную информацию о зарядном устройстве Max1873 можно посмотреть здесь .
Max1873_Supervisor_3series.ino
Max1873_Supervisor_4series.ino
Шаг девятый: плата зарядного устройства литиевой батареи MP26123 или MP26124
Мастер разработал еще одну плату, MP26123, для аккумуляторных блоков с 2 или 3 последовательными элементами.
Плата также может использоваться с MP26124 для пакетов с 4 ячейками серии. Значения деталей, которые необходимо изменить для различных конфигураций батарей, показаны на схеме ниже.
MP26123 / 4 можно использовать только с литиевыми элементами на 4,2 В. Старые аккумуляторные блоки для ноутбуков, в которых используются элементы на 4,1 В, должны использовать контроллер заряда, такой как Max1873. В отличие от Max1873, микросхемы MP26123 / 4 не уменьшают ток заряда, чтобы ограничить входной ток. Конструкция платы включает в себя плавкий предохранитель на 5А на входе в целях безопасности.
MP26123 / 4 выполнит предварительную зарядку, если напряжение аккумуляторной батареи ниже 3В на элемент. Время предварительной зарядки ограничено 30 минутами при токе заряда 100 мА. Если напряжение батареи поднимается выше 3В на элемент в течение 30 минут, ток заряда увеличивается до уровня полного заряда, который был установлен на 1 ампер с помощью резистора R12. Когда напряжение достигает максимального уровня (4,2 В x количество последовательных ячеек), зарядное устройство переходит из режима постоянного тока в режим постоянного напряжения..
Raspberry Pi может отключить зарядное устройство, подав на GPIO 19 напряжение 3,3 В. Этот вывод GPIO должен быть подключен, к сигналу «Отключить» на плате MP26123 / 4. Pi может отслеживать статусный сигнал «CHGOK» с платы MP26123 / 4, используя запасной вывод GPIO. Низкий логический уровень означает, что MP26123 / 4 заряжается нормально. Высокий логический уровень вызван рядом условий; конец заряда, неисправность NTC, ограничение по времени, тепловое отключение, вывод отключения, пониженное напряжение Vin.
У меня есть старая клавиатура ноутбука, как показано ниже:
Он имеет 24-проводной плоский кабель, выходящий из задней части. Возможно ли использовать это как клавиатуру для Pi (я полагаю, с некоторым микроконтроллером между ними)?
Я не знаю, для чего конкретно, но я знаю, что можно модифицировать некоторые сенсорные панели ноутбука для работы с обычными PS / 2 без каких-либо активных дополнительных схем. Возможно, возможно, но если вам нужно спросить, скорее всего, у вас нет навыков, чтобы сделать это. Я бы предложил дешевую USB-клавиатуру.Нет простого или простого способа добиться того, что вы просите. Самый простой ответ - просто проигнорируйте эту клавиатуру и получите USB.
Тем не менее, если вы действительно хотите это сделать, это работа сделай сам. Ваше решение будет индивидуальным для этой клавиатуры и может быть легко адаптировано для использования с клавиатурами других производителей.
Поэтому сначала вам нужно выяснить, что происходит при каждом нажатии клавиши, т.е. какие электрические сигналы активируются (замыкаются вместе).
Тогда у вас есть два варианта, оба очень хитрые:
Вариант 1 - Очень продвинутый:
Вам необходимо создать электронный интерфейс, который будет подключаться между клавиатурой и портом USB на Pi. Ему нужен микроконтроллер для эмуляции клавиатуры USB, когда он подключен к порту USB, и вам нужно будет написать программное обеспечение для сопоставления сигналов нажатия клавиш с нажатиями клавиатуры USB. Микроконтроллер должен делать всю работу. Возможно, вы захотите прочитать этот связанный вопрос: Могу ли я сделать полноценную клавиатуру USB с Makey Makey + Raspberry Pi
Вариант 2 - Безумно продвинутый:
Raspberry Pi имеет разъем с 17 контактами GPIO (вход-выход общего назначения). Вам необходимо спроектировать схему, чтобы уменьшить 24 линии клавиатуры и соединить их с выводами GPIO. Тогда вам нужен специальный драйвер клавиатуры для операционной системы Pi.
Портативный компьютер RasPSION
За четыре года с момента выхода Raspberry Pi что только не делали из этого маленького одноплатного компьютера — маленькие видеомагнитофоны, игровые консоли, автомобильные навигаторы, музыкальные плееры и многое другое. Но самая очевидная мысль — дополнить Raspberry Pi экраном, клавиатурой и аккумулятором, чтобы получился ультрапортативный ноутбук (его можно назвать нетбук или даже карманный компьютер).
Например, один экземпляр Raspberry Pi попал в руки японского моддера nokton35mm, который изготовил мини-компьютер RasPSION в стиле портативных компьютеров Psion конца 90-х.
В комплектацию входит 7-дюймовый экран, клавиатура Bluetooth, 5-вольтовая батарея и камера Pi, довольно стандартный набор для мини-ноутбуков на Raspberry Pi.
Что делает RasPSION особенным — так это красивый корпус из полупрозрачного пластика, вырезанный лазером точно по нужному размеру.
Здесь главная деталь — поворотный механизм на шарнирах. Он устроен по тому же принципу, что у старых карманных компьютеров Psion.
Автор говорит, что ноутбук работает от аккумулятора примерно два часа. Немало, учитывая отсутствие привычной для коммерческих ноутбуков системы управления питанием.
В прошлом энтузиасты уже показывали разные варианты ультрапортативных ноутбуков и карманных компьютеров на основе Raspberry Pi. Например, вот инструкция и схема сборки самого простого КПК. В отличие от продвинутой японской модели, здесь автор использовал дешёвые комплектующие, которые были под рукой. Плохонький 3,5-дюймовый ЖК-экран с соотношением сторон 4:3 — от автомобильной видеосистемы. Аккумуляторная батарея — от старого ноутбука Dell Latitude D600.
Чтобы вместить элементы батарей в корпус, пришлось снять с них пластиковый корпус.
Автор показывает, какие контакты нужно соединить на 9-контактной плате Dell.
Зарядка аккумуляторов в самодельном ноутбуке осуществляется через стандартное зарядное устройство.
Чтобы разводить питание от аккумуляторов на WiFi-модуль, Bluetooth-модуль, SSD-накопитель, передатчик беспроводной клавиатуры/мыши, а также на саму Raspberry Pi, моддер использовал маленькую хитрость. Вся перечисленная электроника запитывается от 5-вольтового хаба USB, а с батареи идёт 11,1 вольт на ЖК-экран. Но известно, что некоторые компоненты экрана требуют питания 5 вольт. То есть достаточно найти на плате ЖК-экрана встроенный регулятор напряжения и найти контакты на 5 вольт, а оттуда запитать хаб USB.
SSD-накопитель для Raspbery Pi тоже будет не лишним дополнением, потому что SD-карты работают медленно и имеют невысокий лимит на количество циклов записи/чтения. Да и просто увеличить доступное дисковое пространство тоже приятно.
Дополнительно была куплена беспроводная USB-клавиатура с тачпадом. В данном случае лучше бы, конечно, использовать проводное соединение, но именно в модели Bluetooth оказались правильные размеры и цена.
И вот на плате Raspberry Pi Model B (rev. 1) получился такой карманный компьютер.
Кирпичик весит примерно 750 граммов, зато это полноценная машина с Linux и SSD-накопителем, клавиатурой и тачпадом.
Автор выложил детали корпуса для печати на 3D-принтере в виде STL-файлов. На задней крышке корпуса для красоты он предлагает разместить логотип Raspberry Pi, который подсвечивается при включении питания. Для этого он взял светодиодную ленту от подсветки клавиатуры, вырезал из неё нужную форму, и подключил к 5-вольтовому выходу USB-хаба.
Сейчас в китайских магазинах есть уже немало комплектующих, чтобы собрать ноутбук на Raspberry Pi своими руками, было бы время и желание. Необязательно самостоятельно печатать корпус на 3D-принтере. Например ещё один умелец по имени Джо Тоттен (Joe Totten) использовал для этого готовую «оболочку» Motorola Lapdock. Motorola Lapdock — это такая «докинговая станция» для Android-смартфона, на eBay их можно найти примерно по $100 или дешевле.
Докинговая станция Motorola Lapdock для смартфона Motorola ATRIX 4G
Вставляешь смартфон в докинговую станцию — и сразу получаешь практически полноценный ноутбук, с экраном 1366 х 768 пикселов и клавиатурой. Только в нашем случае требуется вставить туда не смартфон, а Raspberry Pi, что и сделал Джо Тоттен.
Для соединения Raspberry Pi и Lapdock понадобится набор кабелей и адатеров.
- Raspberry Pi
- Motorola Lapdock (Atrix works)
- 1 кабель USB Male to Micro USB Male (обычный кабель от телефона)
- 1 кабель USB 2.0 A female to Micro USB B female
- 1 кабель Micro HDMI Type D Female to Micro HDMI Type D
- 1 кабель USB Male to USB Male (его придётся вскрыть и перерезать красный 5-вольтовый кабель)
- 1 кабель MICRO HDMI to HDMI
У нас получится не самая мощная машина, да и таскать с собой кучу кабелей и сам одноплатный компьютер не совсем удобно. Но зато это самый дешёвый и практичный способ превратить Raspberry Pi в полнофункциональный ноутбук.
В этом материале мы рассмотрим как можно легко подключить клавиатуру к Raspberry Pi 4 для различных целей.
Для пользователей существует множество способов ввода данных в Raspberry Pi. Одним из них является использование 16-кнопочной клавиатуры, которая содержит цифры от нуля до девяти, а также несколько дополнительных кнопок:
Мы постараемся объяснить как работают такие клавиатуры и как вы можете легко подключать их в свои проекты с Raspberry Pi 4.
Клавиатура
Клавиатуру, которую мы использовали можно разделить на четыре строки и четыре столбца следующим образом:
Чтобы определить, какая кнопка нажата, Raspberry Pi должна послать импульс в каждый из четырех рядов клавиатуры. Когда пользователь нажимает кнопку, которая подключена к линии, которая в настоящий момент находится в HIGH, соответствующая колонка также переходит в HIGH.
Расшифровывая комбинацию строки и столбца, вы можете определить, какая кнопка была нажата. Если пользователь, например, нажимает кнопку B, расположенную во втором ряду в четвертом столбце, Raspberry Pi обнаруживает нажатие этой кнопки, когда посылает импульс на вторую строку, а затем проверяет, какой из четырех столбцов стал HIGH.
Подключение клавиатуры к Raspberry Pi 4
Клавиатуры, которые работают таким образом, не нуждаются в каком-либо питании для работы. Это означает, что вы можете просто подключить все восемь линий данных клавиатуры к любым восьми контактам GPIO на Raspberry Pi:
Мы использовали ту же цветовую схему, что и на изображении выше. Синие соединения соответствуют строкам, а оранжевые - столбцам.
Простой пример кода
После того, как вы установили соединения, соответственно схеме выше, пришло время запустить простую тестовую программу, которая будет выводить кнопки, нажимаемые пользователем на клавиатуре, в консоли Raspberry Pi:
Видно, что тестовая программа содержит метод readLine. Метод readLine отправляет импульс, описанный выше, в одну строку, а затем проверяет, какая из кнопок была нажата, когда линия находится в HIGH. Всё повторяется для всех четырех рядов. Метод также принимает список символов, которым соответствуют кнопки.
Эта программа является простым примером. Он не позволяет обнаружить, удерживается ли кнопка нажатой. Он будет просто распознавать новое нажатие клавиши с каждым импульсом, который он посылает на выходной линии. Программа, которая правильно определяет отдельные нажатия клавиш и реализует простую кодовую блокировку, приводится далее.
Продвинутый код
Базовое приложение легко реализовать, но если вам нужны более продвинутые функции, код может быстро стать довольно сложным.
В данной статье мы рассмотрим подключение емкостной сенсорной клавиатуры (Capacitive Touchpad) к плате Raspberry Pi, которая будет использоваться как устройство ввода данных для нашей платы. Применяемая нами в этом проекте сенсорная клавиатура имеет 8 кнопок с нанесенными на них цифрами от 1 до 8. Однако эти кнопки не являются по своей сути кнопками, на самом деле это чувствительные к прикосновению пластины, закрепленные на печатной плате. Когда мы прикасаемся к одной из этих пластин изменяется емкость ее поверхности. Это изменение емкости обнаруживается управляющим устройством клавиатуры, которое после этого подает напряжение высокого уровня (high) на соответствующий выходной контакт клавиатуры.
Ранее на нашем сайте мы рассматривали подключение подобной сенсорной клавиатуры (тачпада) к микроконтроллеру AVR.
Контакты ввода/вывода (GPIO) в Raspberry Pi
Внешний вид и распиновка контактов ввода/вывода (GPIO) платы Raspberry Pi показаны на следующих рисунках.
Как показано на представленном рисунке, у платы Raspberry Pi имеется 40 контактов ввода/вывода. Но однако не все эти контакты доступны для программирования. На самом деле для программирования доступны только 26 контактов ввода/вывода (GPIO), которые обозначены на представленном рисунке с GPIO2 до GPIO27.
Эти контакты вы можете программировать по своему усмотрению. Некоторые из этих контактов могут также выполнять специальные функции (последовательный порт, интерфейсы SPI и I2С и т.д.). Если не учитывать контакты, которые могут выполнять специальные функции, то остается 17 программируемых контактов общего назначения, на следующем рисунке они обозначены кружками зеленого цвета.
Каждый из этих 17 контактов может выдерживать ток до 15mA, а суммарный ток от всех контактов ввода/вывода не должен превышать 50mA. Таким образом, если мы задействуем все эти 17 контактов, то в среднем на каждый контакт должен приходиться ток не более 3mA.
Здесь необходимо отметить тот факт, что плата Raspberry Pi работает с логическими уровнями +3.3V, поэтому на ее контакты нельзя подавать напряжение более +3.3V. Поэтому нам необходимо запитать нашу сенсорную клавиатуру от источника с напряжением +3.3V, чтобы с ее выходных контактов можно было непосредственно подавать сигналы на контакты платы Raspberry Pi.
Необходимые компоненты
- Плата Raspberry Pi 2 Model B или другая аналогичная (купить на AliExpress).
- Емкостная сенсорная клавиатура (Capacitive Touchpad).
- Макетная плата.
- Соединительные провода.
Схема проекта
Схема подключения сенсорной клавиатуры к плате Raspberry Pi представлена на следующем рисунке.
В схему еще можно добавить светодиод (с резистором), как показано на внешнем виде проекта на макетной плате в начале статьи, который будет загораться при нажатии какой либо кнопки клавиатуры.
Объяснение программы для Raspberry Pi
Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.
После того, как все необходимые соединения в схеме сделаны, мы можем подать питание на Raspberry Pi и после загрузки ее операционной системы можно начать писать программу в ней на Python. Подробнее о том, как это можно сделать, можно прочитать в статье про мигание светодиода с помощью Raspberry Pi.
Читайте также: