Arduino pro micro как работает. Чиндогу на Arduino Pro Micro или зачем просто когда можно сложно! Основополагающие принципы Arduino

Arduino - это эффективное средство разработки программируемых электронных устройств, которые, в отличие от персональных компьютеров, ориентированы на тесное взаимодействие с окружающим миром. Ардуино - это открытая программируемая аппаратная платформа для работы с различными физическими объектами и представляет собой простую плату с микроконтроллером, а также специальную среду разработки для написания программного обеспечения микроконтроллера.

Ардуино может использоваться для разработки интерактивных систем, управляемых различными датчиками и переключателями. Такие системы, в свою очередь, могут управлять работой различных индикаторов, двигателей и других устройств. Проекты Ардуино могут быть как самостоятельными, так и взаимодействовать с программным обеспечением, работающем на персональном компьютере (например, приложениями Flash, Processing, MaxMSP). Любую плату Ардуино можно собрать вручную или же купить готовое устройство; среда разработки для программирования такой платы имеет открытый исходный код и полностью бесплатна.

Язык программирования Ардуино является реализацией похожей аппаратной платформы "Wiring", основанной на среде программирования мультимедиа "Processing".

Почему именно Arduino?

Существует множество других микроконтроллеров и микропроцессорных устройств, предназначенных для программирования различных аппаратных средств: Parallax Basic Stamp, Netmedia"s BX-24, Phidgets, MIT"s Handyboard и многие другие. Все эти устройства предлагают похожую функциональность и призваны освободить пользователя от необходимости углубляться в мелкие детали внутреннего устройства микроконтроллеров, предоставив ему простой и удобный интерфейс для их программирования. Ардуино также упрощает процесс работы с микроконтроллерами, но в отличие от других систем предоставляет ряд преимуществ для преподавателей, студентов и радиолюбителей:

Компактные платы ардуино:

Ардуино Нано

Платформа Nano, построенная на микроконтроллере ATmega328 (Arduino Nano 3.0) или ATmega168 (Arduino Nano 2.x), имеет небольшие размеры и может использоваться в лабораторных работах. Она имеет схожую с Arduino Duemilanove функциональность, однако отличается сборкой. Отличие заключается в отсутствии силового разъема постоянного тока и работе через кабель Mini-B USB. Nano разработана и продается компанией Gravitech.
Наверное одна из лучших и компактных плат для различных проектов и самоделок, обычно выбираю её :

Ардуино про мини

Arduino Pro Mini построена на микроконтроллере ATmega168 (техническое описание ). Платформа содержит 14 цифровых входов и выходов (6 из которых могут использоваться как выходы ШИМ), 6 аналоговых входов, резонатор, кнопку перезагрузки и отверстия для монтажа выводов.

Плата имеет еще более компактные размеры, но без конвертора сн340. Цена ниже чем у нано.




Arduino pro micro

Плата Arduino Pro Micro построена на микроконтроллере ATmega32U4 , что позволило не применяя конвертер USB-UART подключать плату в USB-порту компьютера. Это исключает необходимость применения программатора для записи скетча в плату.

Возможности:

  • частота: 16МГц
  • 4 канала АЦП (10 бит)
  • 10 портов ввода-вывода общего назначения (из них 5 с ШИМ)
  • выводы Rx/Tx
  • светодиоды: питание, Rx, Tx

Плата имеет регулятор напряжения, что позволяет использовать питание до 12В (вывод RAW, не VCC!)



Полноразмерные платы ардуино

Ардуино Уно

Arduino Uno контроллер построен на ATmega328 (техническое описание , pdf). Платформа имеет 14 цифровых вход/выходов (6 из которых могут использоваться как выходы ШИМ), 6 аналоговых входов, кварцевый генератор 16 МГц, разъем USB, силовой разъем, разъем ICSP и кнопку перезагрузки.

КУпить на алиэкспресс http://ali.pub/1tgxw9


Ардуино DUE

Общие сведения

Arduino Due - плата микроконтроллера на базе процессора Atmel SAM3X8E ARM Cortex-M3 (описание). Это первая плата Arduino на основе 32-битного микроконтроллера с ARM ядром. На ней имеется 54 цифровых вход/выхода (из них 12 можно задействовать под выходы ШИМ), 12 аналоговых входов, 4 UARTа (аппаратных последовательных порта), a генератор тактовой частоты 84 МГц, связь по USB с поддержкой OTG, 2 ЦАП (цифро-аналоговых преобразователя), 2 TWI, разъем питания, разъем SPI, разъем JTAG, кнопка сброса и кнопка стирания.

Внимание! В отличие от других плат Arduino, Arduino Due работает от 3,3 В. Максимальное напряжение, которое выдерживают вход/выходы составляет 3,3 В. Подав более высокое напряжение, например, 5 В, на выводы Arduino Due, можно повредить плату.

Плата содержит все, что необходимо для поддержки микроконтроллера. Чтобы начать работу с ней, достаточно просто подключить её к компьютеру кабелем микро-USB, либо подать питание с AC/DC преобразователя или батарейки. Due совместим со всеми платами расширения Arduino, работающими от 3,3 В, и с цоколевкой Arduino 1.0.


Arduino ESPLORA

Общие сведения

Arduino Esplora - это микропроцессорное устройство, спроектированное на основе Arduino Leonardo . Esplora отличается от всех предыдущих плат Arduino наличием множества встроенных, готовых к использованию датчиков для взаимодействия. Он спроектирован для тех, кто предпочитает сразу начать работу с Ардуино, не изучая перед этим электронику. Пошаговую инструкцию к Esplora вы сможете найти в руководстве Начало работы с Esplora .

Esplora имеет встроенные звуковые и световые индикаторы (для вывода информации), а также несколько датчиков (для ввода информации), таких, как джойстик, слайдер, датчик температуры, акселерометр, микрофон и световой датчик. Помимо этого, на плате есть два входных и выходных разъема Tinkerkit, а также гнездо для подключения жидкокристаллического TFT-экрана, позволяющие значительно расширить возможности устройства.

Как и на плате Leonardo, в Esplora используется AVR-микроконтроллер ATmega32U4 с кварцевым резонатором 16 МГц, а также разъем микро-USB, позволяющий устройству быть USB-гаджетом, подобно мыши или клавиатуре.


Arduino YUN

Arduino Yun – отладочная плата на базе микроконтроллера ATmega32u4 и Atheros AR9331. Процессор Atheros поддерживает дистрибутив Linux, основанный на базе OpenWrt и называемый OpenWrt-Yun. Плата имеет встроенную поддержку Ethernet и WiFi, порт USB-A, слот для карты micro-SD, 20 цифровых входных/выходных выводов (из которых 7 могут использоваться в качестве ШИМ выходов, а 12 – в качестве аналоговых входов), кварцевый резонатор 16 МГц, соединение microUSB, разъем ICSP и 3 кнопки перезагрузки.

Купить на Алиэкспресс http://ali.pub/1tgz6c





Заказываешь на Aliexpress ?Узнай как экономить покупая на али кэшбек

https://cashback.epn.bz/?i=ff2b6

https://cashback.epn.bz/joinusnow?i=ff2b6

Исполненный на компактной плате. Отличие заключается в отсутствии собственного гнезда для внешнего питания, но оно может быть подведено непосредственно к контакту Vi. В остальном, начинка и способы взаимодействия совпадают с Arduino Leonardo. Он также имеет один микроконтроллер ATmega32u4 и для прошивки через USB, и для исполнения программ; также может выступать в роли клавиатуры или мыши; предоставляет то же количество памяти, цифровых, аналоговых и ШИМ-портов.

Микроконтроллер Arduino Micro – плата микроконтроллера на базе ATmega32u4 , разработанный совместно с компанией Adafruit. Плата имеет 20 цифровых вход/выходов (из них 7 могут использоваться в качестве выходов ШИМ и 12 - как аналоговые входы), кварцевый генератор частотой 16 МГц, гнездо микро-USB, разъем ICSP и кнопку reset. На ней есть все, что необходимо для работы с микроконтроллером. Чтобы запустить Arduino Micro, просто подключите его к компьютеру с помощью кабеля микро-USB. Форм-фактор контроллера позволяет легко разместить его на макетной плате.

Характеристики Arduino Micro

Микроконтроллер

Рабочее напряжение

Входное напряжение (предельное)

Цифровые Входы/Выходы

Каналы ШИМ 7

Аналоговые входные каналы

12

Постоянный ток через вход/выход

Постоянный ток для вывода 3.3 В

Флеш-память

32 Кб (ATmega32u4) из которых 4 Кб используются для загрузчика

2,5 Кб (ATmega32u4)

1 Кб (ATmega32u4)

Тактовая частота

Питание Arduino Micro

Arduino Micro может питаться через USB подключение или от внешнего источника питания. Источник питания выбирается автоматически.

Внешнее питание (не USB) может поступать либо от источника питания постоянного тока, либо с батареи. Выводы батареи или источника питания должны подключаться к выводам Gnd и Vin. Плата Arduino Micro может работать при подаче внешнего питания от 6 до 20 В. Однако при подаче напряжения ниже 7 В, на вывод 5 В может поступать менее пяти вольт, что приведет к нестабильной работе платы. При использовании более 12 В, стабилизатор напряжения может перегреться и вызвать повреждение платы.

Выводы питания:

  • VIN . Входное напряжение Arduino при использовании внешнего источника питания (в отличие от 5 В с USB соединения или другого регулируемого источника питания). Вы можете подавать напряжение на этот вывод.
  • 5 V . Регулируемое напряжение питания для питания микроконтроллера и других компонентов на плате. Может поступать либо с VIN через встроенный стабилизатор, либо через USB или другой источник стабилизированный источник питания 5 В.
  • 3 V . Питание 3,3 В генерируется встроенным стабилизатором. Максимальный ток 50 мА.
  • GND. Выводы земли.

Память Arduino Micro

ATmega32u4 имеет 32 КБ флеш-памяти (вместе с 4 КБ, которые используются загрузчиком (бутлодером)). Также контроллер имеет 2,5 КБ ОЗУ и 1 КБ EEPROM (чтение и запись которой производится с помощью библиотеки EEPROM).

Входы и Выходы Arduino Micro

Каждый из 20 цифровых выводов Micro может использоваться как вход или как выход, используя функции pinMode(), digitalWrite() и digitalRead(). Работают при напряжении 5 В. Максимальный входной или выходной ток каждого вывода 40 мА. На каждом выводе имеется внутренний нагрузочный резистор 20-50 кОм (по умолчанию отключен). Дополнительно некоторые выводы имеют специальные функции:

  • Последовательная шина: 0 (RX ) и 1 (TX ). Используются для получения (RX) и передачи (TX) последовательных данных TTL уровней с использованием аппаратных возможностей последовательной шины ATmega32U4. Обратите внимание, что на Micro класс Serial относится к (CDC) соединению; для последовательного TTL соединения на выводах 0 и 1 используйте класс Serial 1 .
  • TWI: 2 (SDA) и 3 (SCL). Поддерживает TWI соединение с использованием библиотеки Wire .

Внешние прерывания: 0(RX ), 1(TX ), 2 и 3 . Эти выводы могут быть сконфигурированы для запуска прерывания по нижней границе, по фронту или спаду, или по изменению значения. Детали описаны в функции attachInterrupt().

  • ШИМ : 3, 5, 6, 9, 10, 11 и 13. С помощью функции analogWrite() обеспечивает 8-битный ШИМ.
  • SPI : на разъеме ICSP . Данные выводы поддерживают связь по SPI с использованием библиотеки SPI. Обратите внимание, что выводы SPI не подключены ни к каким цифровым вход/выходам, как на Arduino Uno, они доступны только на соединителе ICSP и ближайших выводах, маркированных MISO, MOSI и SCK.
  • RX _ LED / SS. Это дополнительный вывод по сравнению с Leonardo. Он подключен к RX_LED, который показывает активность передачи по шине USB, но также может использоваться как вывод выбора подчиненного устройства (SS) для связи по SPI.
  • LED: 13. Встроенный светодиод, подключенный к цифровому выводу 13. При высоком уровне на этом выводе светодиод включен, при низком уровне – выключен.
  • Аналоговые входы: A 0 - A 5, A 6 - A 11 (на цифровых выводах 4, 6, 8, 9, 10 и 12). Всего Micro имеет 12 аналоговых входов, причем входы с A0 по A5 маркированы непосредственно на выводах, а другие, к которым также можно получить доступ в программе с использованием констант с A6 до A11, распределены соответственно на цифровых выводах 4, 6, 8, 9, 10 и 12. Все они также могут использоваться в качестве цифровых вход/выходов. Каждый аналоговый вход обеспечивает разрешающую способность 10 бит (т.е. 1024 различных значения). По умолчанию измерения на всех аналоговых входах производятся от потенциала земли до 5 В, но верхний предел этого диапазона можно изменить, используя вывод AREF и функцию analogReference().

На плате имеются еще два вывода:

  • AREF. Опорное напряжение для аналоговых входов. Используется с функцией analogReference().
  • Reset. Для сброса микроконтроллера переведите эту линию в низкий уровень. Обычно используется, чтобы добавить кнопку Reset на плату расширения, если эта плата закрывает доступ к кнопке на самом контроллере.

Где купить Arduino

Наборы Arduinoможно купить на официальном сайте и в многочисленных интернет-магазинах.

В своей статье я хотел бы подробно и с иллюстрациями рассказать про схему подключения и распиновку Arduino.

Ниже мы постараемся рассмотреть различные модели микроконтроллеров.

Слово Uno переводится с итальянского языка, как «один». Устройство названо в связи с началом выпуска Arduino 1.0. Другими словами, Uno является эталонной моделью для всей платформы типа Arduino. Это последнее устройство в серии плат USB, доказавшее свою эффективность и проверенное временем.

Arduino Uno создано на микроконтроллере типа ATmega 328 (datasheet).

Его состав следующий:

  • количество цифровых входов и выходов составляет 14 (а шесть из них имеется возможность использовать как выходы ШИМ);
  • число аналоговых входов составляет шесть;
  • 16 МГц – кварцевый резонатор;
  • имеется разъём для питания;
  • есть разъём, предназначенный для ICSP-программирования внутри самой схемы;
  • присутствует кнопка для сброса.

Крайне важно отметить, что отличительной особенностью всех новых плат arduino является использование для интерфейсов USB–UART микроконтроллера типа ATmega 16U2 (или ATmega 8U2 в версиях R1, R2) вместо устаревшей микросхемы типа FTDI.

Плата Uno по версии R2 снабжается дополнительным подтягивающим к земле резистором на линии HWB применяемого микроконтроллера.

Распиновка выглядит следующим образом:

  1. Последовательный интерфейс использует шины №0 (RX – получение данных), №1 (TX – передача данных).
  2. Для внешнего прерывания используются выводы №2, №3.
  3. Для ШИМ используются выводы за номерами 3,5, 6, 9, 10, 11. Функция analog Write обеспечивает разрешение в 8 бит.
  4. Связь посредством SPI: контакты №10 (SS), №11 (MOSI), №12 (MISO), №13 (SCK).
  5. Вывод №13 запитывает светодиод, который загорается при высоком потенциале.
  6. Uno оснащена 6 аналоговыми входами (A0 – A5), которые имеют разрешение в 10 бит.
  7. Для изменения верхнего предела напряжения используется вывод AREF (функция analog Reference).
  8. Связь I2C (TWI, библиотека Wire) осуществляется через выводы №4 (SDA), №5 (SCL).

Устройство построено на микроконтроллере АTmega16U2 и имеет повышенный уровень помехоустойчивости по цепи сброса.

Устройство отличается от предыдущей версии лишь тем, что в этом случае не используется интерфейс USB-UART FTDI при подключении к компьютеру. Эту задачу выполняет выполняет сам микроконтроллер ATmega 16U2.

Изменения распиновки платы выглядят следующим образом:

  1. Возле вывода AREF добавлены два пина: SDA, SCL.
  2. Возле пина RESET также добавлены два вывода: IOREF, позволяющий подключать платы расширения с подстройкой под необходимое напряжение; второй вывод не используется и находится в резерве.

2. Плата Arduino Mini

Является одной из самых простых и удобных устройств Arduino.

Используется микроконтроллер ATmega 168 с рабочим напряжением на 5 вольт с частотой в 16 МГц. Максимальное напряжение питания в моделях составляет 9 вольт. Значение максимального тока на выводах составляет 40 mA.

Плата содержит:

  • 14 цифровых выводов (из них 6 могут быть использованы в качестве ШИМ-выходов), могут применяться в качестве как входа, так и выхода;
  • 8 аналоговых входов (4 из них оснащены выводами);
  • 16 МГц – кварцевый генератор.

Пины устройства Arduino Mini имеют следующее предназначение:

  1. Два вывода, посредством которых осуществляется питание платы «плюс»: RAW, VCC.
  2. Вывод контакта «минус» – пин GND.
  3. Выводы под номерами 3, 5, 6, 9, 10, 11 используются для ШИМ при применении функции analog Write.
  4. К выводам №0, №1 можно подключать другие устройства.
  5. Аналоговые входы №0 – №3 с выводами.
  6. Аналоговые входы №4 – №7 не имеют выводов и требуют пайки при необходимости.
  7. Вывод AREF, который предназначен для изменения верхнего напряжения.

Расположение выводов в различных версиях arduino mini могут различаться.

3. Плата Arduino Mega 2560

Устройство Arduino Mega 2560 собрано на микроконтроллере ATmega 2560 (datasheet), является обновлённой версией Arduino Mega.

Для осуществления преобразования USB–UART-интерфейсов используется новый микроконтроллер ATmega 16U2 (либо ATmega 8U2 для версий плат R1 или R2).

Состав платы следующий:

  • количество цифровых входов/выходов составляет 54 (15 из них можно использовать в роли выходов-ШИМ);
  • число аналоговых входов – 16;
  • реализация последовательных интерфейсов производится посредством 4 аппаратных приёмопередатчиков UART;
  • 16 МГц – кварцевый резонатор;
  • USB-разъём;
  • питающий разъём;
  • внутрисхемное программирование осуществляется через ICSP-разъём;
  • кнопка для сброса.

В устройстве Mega 2560 R2-версии добавлен специальный резистор, подтягивающий HWB-линию 8U2 к земле, что позволяет значительно упростить переход Arduino в DFU-режим, а также обновление прошивки. Версия R3 незначительно отличается от предыдущих. Изменения в устройстве следующие:

  • добавлены четыре вывода – SCL, SDA, IOREF (для осуществления совместимости по напряжению различных расширительных плат) и ещё один резервный вывод, пока не используемый;
  • повышена помехоустойчивость по цепи сброса;
  • увеличен объём памяти;
  • ATmega8U2 заменён на микроконтроллер ATmega16U2.

Выводы предназначаются для следующего:

  1. Имеющиеся цифровые пины могут служить входом-выходом. Напряжение на них – 5 вольт. Каждый пин обладает подтягивающим резистором.
  2. Аналоговые входы не оснащены подтягивающими резисторами. Работа основана на применении функции analog Read.
  3. Количество выводов ШИМ составляет 15. Это цифровые выводы №2 – №13, №44 – №46. Использование ШИМ производится через функцию analog Write.
  4. Последовательный интерфейс: выводы Serial: №0 (rx), №1 (tx); выводы Serial1: №19 (rx), №18 (tx); выводы Serial2: №17 (rx), №16 (tx); выводы Serial3: №15 (rx), №14 (tx).
  5. Интерфейс SPI оборудован выводами №53 (SS), №51 (MOSI), №50 (MISO), №52 (SCK).
  6. Вывод №13 – встроенный светодиод.
  7. Пины для осуществления связи с подключаемыми устройствами: №20 (SDA), №21 (SCL).
  8. Для внешних прерываний (низкий уровень сигнала, другие изменения сигнала) используются выводы №2 , №3, №18, №19, №20, №21.
  9. Вывод AREF задействуется командой analog Reference и предназначается для регулирования опорного напряжения аналоговых входных пинов.
  10. Вывод Reset. Предназначен для формирования незначительного уровня (LOW), что приводит к перезагрузке устройства (кнопка сброса).

4. Плата Arduino Micro

Arduino Micro представляет собой устройство, основа которого построена на микроконтроллере ATmega 32u4, имеющем встроенный USB-контроллер. Это решение упрощает подключение платы к компьютеру, так как в системе устройство будет определяться как обычная клавиатура, мышь либо COM-порт. Состав устройства следующий:

  • количество входов/выходов – 20 (имеется возможность 7 из них использовать как ШИМ-выходы, а 12 – в роли входов аналогового типа); резонатор кварцевый, настроенный на 16 МГц;
  • micro-USB-разъём;
  • ICSP-разъём, предназначенный для проведения внутреннего программирования;
  • кнопка для сброса.

Все цифровые выводы изделия могут работать в качестве как входов, так и выходов благодаря наличию функций digital Read, pin Mode, digital Write. Напряжение на выводах составляет 5 вольт. Максимальная величина потребляемого или отдаваемого тока с одного вывода составляет 40 мА. Выводы сопрягаются с внутренними резисторами, которые по умолчанию находятся в отключенном состоянии. Они имеют номиналы в 20 кОм – 50 кОм. Отдельные выводы arduino micro, кроме основных, способны выполнять и ряд дополнительных функций:

  1. В последовательном интерфейсе выводы №0 (RX), №1 (TX) применяются для приёма (RX), а также передачи (TX) необходимых данных через встроенный аппаратный приёмопередатчик. Функция актуальна для arduino micro класса Serial. В других случаях связь осуществляется через соединение USB (CDC).
  2. Интерфейс TWI включает выводы микроконтроллера №2 (SDA) и №3 (SCL). Позволяют использовать данные библиотеки Wire.
  3. Выводы под номерами 0, 1, 2, 3 могут быть использованы в роли источников возникающих прерываний. К таковым относятся низкий уровень сигнала; прерывания по фронту, по спаду, при изменении уровня сигнала.
  4. Выводы под номерами 3, 5, 6, 9, 10, 11,13 при использовании функции analog Write способны выводить аналоговый ШИМ-сигнал в 8 бит.
  5. К SPI-интерфейсу относятся выводы на разъёме ICSP. Они не соединяются с цифровыми выводами на плате.
  6. Дополнительный вывод RX LED/SS, который соединён со светодиодом. Последний индицирует процесс по передаче данных с использованием USB. Этот вывод может быть использован при работе с интерфейсом SPI для вывода SS.
  7. Вывод №13 – светодиод, который включается при отправке данных HIGH и выключается при значениях LOW.
  8. Выводы A0 – A5 (отмечены на плате) и A6 – A11 (соответствуют цифровым выводам за номерами 4, 6, 8, 9, 10,12) являются аналоговыми.
  9. Вывод AREF позволяет изменять верхнее значение аналогового напряжения на вышеуказанных выводах. При этом используется функция analog Reference.
  10. С помощью вывода Reset формируется низкий уровень (LOW) и происходит перезагрузка микроконтроллера (кнопка сброса).

Данный обзор я хочу посвятить конструкции PasswordKeeper на модуле Aruino Pro Micro (ATmega32U4). Проект предназначен для хранения, выбора и ввода в комп одного из множества паролей.
Про саму плату сложно что-то необычное сказать. Пришла быстро, упакована хорошо, монтаж аккуратный, работает без замечаний.

Основная проблема с микроконтроллерами для энтузиаста - это придумать, для чего их применить:)
Я давно хотел собрать что-нибудь мелкое и относительно полезное в хозяйстве. А тут коллега по работе подкинул интересную идею - ему лень было каждый день вводить пароль для входа в свой компьютер и он собрал на плате DigiSpark (ATTiny85) приспособу, которая отправляет имя и пароль в комп при нажатии на кнопку.
Получилось у него вот что:
Upd: Коллега выложил свой проект .

Отличная идея - подумал я. Почему бы ее не позаимствовать и творчески переработать. Пересобирать и перезагружать проект Arduino каждый раз при смене пароля - это неспортивно.
Кроме того, один пароль - это мало. Ведь можно сделать все гораздо сложнее и запутаннее! Игрушка должна показывать, как она работает. Но трех штатных светодиодов для этого явно мало, пусть их будет 4099! Так в проект добавился маленький дисплей .
Я все никак не мог придумать, куда его можно приспособить. А тут он идеально подошел по размеру и назначению. Еще потребуется пара кнопок - для управления.
Ресурсов ATTiny85 явно не хватало для проекта - добавление дисплея потянуло за собой графическую библиотеку+шрифты и все это в DigiSpark не влезало. Но поиск обнаружил подходящую платформу: Arduino Pro Micro.

Смысл проекта в том, что Aruino Pro Micro по умолчанию прикидывается USB клавиатурой и USB COM портом. Драйверы для этих устройств уже присутствуют в операционной системе - и ничего дополнительно устанавливать не надо. Конечно существуют всякие программы, которые где-то хранят в себе пароли, но они не могут их передать на экран логина тк пользователь еще не вошел в систему. Предлагаемое вашему вниманию PasswordKeeper имитирует нажатия кнопок клавиатуры и может передать логин и пароль в любом режиме компа. Даже Ctrl-Alt-Del послать может нажатием 1 кнопки вместо 3!

Формфактор выбранных модулей оказался очень удобным и компактным.
Можно с минимальными усилиями собрать маленькое и относительно полезное устройство.
Схема получается - проще некуда.

Быстро рукожопим макет и отлаживаем на нем скетч.

Но в таком виде пользоваться им неудобно, поэтому в Sketchup проектируем маленький корпус.

И печатаем его на 3D принтере

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

Нажимаем на контроллер и с характерным хрустом он встает на место.
Примеряем кнопочки - входят без проблем.

Кстати, я долго искал удобный монтажный провод для макетирования. Наш МГТФ конечно хорош, но не всегда удобен.В результате сейчас я пользуюсь присутствующем на предыдуших фото проводом от все тех же китайцев. проводами удобно выделять цепи по смыслу. Провод тонкий, изоляция хорошо держит температуру паяльника.
Не так как МГТФ конечно, но вполне прилично. Обычная ПВХ изоляция расползается при пайке сразу, а эта размягчается, но держит форму и выдерживает случайные прикосновения паяльником без проплавления до жилы. Единственный недостаток - многоцветная катушка сильно дороже при меньшем количестве провода.
Собираем все вместе и получаем маленький токен, который подключается к компу и позволяет управлять и пользоваться достаточно большим количеством логинов и паролей.

Число логинов ограничено размером памяти EEPROM (1024 байта) и длиной паролей.
Дисплей позволяет выбирать по комментарию нужную пару логин/пароль, а так же редактировать данные в токене. Редактировать пароли можно двумя кнопками. Редактор я к токену прикрутил, но пользоваться им - сущий мазохизм. Поэтому для редактирования данных пришлось написать программу для PC (если вдруг будете пользоваться - не забудьте перевести токен в режим работы с USB в его меню).

Общая идея устройства такая: Есть 1024 байта EEPROM. В этой области хранятся записи с данными - их число ограничено местом. Каждая запись состоит из отображаемого на дисплее комментария и 8 полей. Каждое поле может содержать в себе символы и коды нажатия спец кнопок (Ctrl,Shift,Del итд). Две записи условно названы Login и Password. По нажатию кнопки токен отправляет поочередно все поля записи в USB как будто они введены с клавиатуры. В полях вы можете разместить не только логин и пароль но и команды на запуск каких-либо программ.
Но основной режим - это все-таки имя и пароль.

Тк в плате у нас хранятся пароли надо хоть чуть-чуть позаботится о их безопасности.
Забота о безопасности поможет усложнить проект и придаст ему серьезности.
Для этого был добавлен пароль на разблокировку токена. Он представляет собой
задаваемую пользователем последовательность одиночных и двойных нажатий на кнопки.

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

Токен в обычном состоянии недоступен с компьютера. Для перевода его в режим редактирования необходимо физически выбрать соответствующий пункт в меню кнопками. Точно так же для отправки пароля требуется физически нажать кнопку. Так что злой хакер до ваших паролей в токене не доберется!
Он перехватит их c USB порта, когда вы будете их посылать как с USB клавиатуры;)

В результате получилась штуковина, в которой я храню пароли для входа на сайты банков и форумы.

Специально для коллеги все оставшиеся выводы платы запрограммировал для подключения кнопок быстрого доступа.При нажатии на такую кнопку происходит переход к логину с соответствующим номером (если он есть). И для отправки его на комп остается только нажать кнопку подтверждения. Или подержать кнопку быстрого доступа подольше.

Завершив этот проект я предлагаю всем желающим повторить это замечательное устройство,
которое позволит вам потерять все ваши пароли совершенно новым способом!
Потерять бумажку может каждый, а сделать для этого специальное устройство и потерять его или пароль к нему - это внушает уважение!

Перед выходом на публику PwKeeper прошел тщательный выходной контроль:

Главинспектор был только что разбужен, но он все равно недоумЯвает - почему аудитории предлагается явно недоделанное устройство. Мои слова о том, что надо проверить правильность и качество монтажа (а при закрытой крышке это затруднительно) его не убедили.

Тем не менее (после шантажа сосиской) удалось убедить его выдать мне сертификат соответствия:
Одобренные исполняемые и загрузочные файлы выложил