Адуино устройство ввода паролей на компьютере

Управление Ардуино с клавиатуры

Управление Arduino с компьютера через USB ► представим несколько программ (скетчей) для управления платы Ардуино через компьютер и включения светодиода.

Как управлять Ардуино с компьютера через USB. Расскажем, как произвести включение светодиода и управлять сервомотором на Arduino с клавиатуры через функцию Serial.available() и Serial.read(). Данные функции проверяют, поступают ли какие-то команды на микроконтроллер по последовательному порту, а затем считывают поступающие команды, вводимые в Serial monitor с компьютера.

Управление Ардуино через компьютер

Функция Serial.available() получает количество байт доступных для чтения из последовательного порта. Это те байты которые отправлены с компьютера и записаны в буфер последовательного порта. Буфер Serial monitor Arduino может хранить максимум до 64 байт. Функция используется также при взаимодействии Bluetooth модуля к Ардуино и полезна при отладке устройства на этапе проектирования.

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

Как управлять Ардуино с клавиатуры

Для занятия нам понадобятся следующие детали:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • макетная плата;
  • светодиод и резистор 220 Ом;
  • сервопривод;
  • провода «папа-папа» и «папа-мама».

Управление светодиодом на Arduino UNO с компьютера

Остальные исполнительные устройства для Arduino UNO вы можете взять на свое усмотрение и самостоятельно попробовать управлять ими через компьютер с помощью USB кабеля. Соберите на макетной плате схему с одним светодиодом из первого занятия Что такое Ардуино и как им пользоваться, а после сборки схемы со светодиодом загрузите следующий скетч в микроконтроллер.

Скетч. Взаимодействие Ардуино и компьютера

Пояснения к коду:

  1. функция Serial.available() проверяет поступление команд с компьютера;
  2. функция Serial.read() читает данные, поступившие в Serial monitor.
  3. в условном операторе if (val == ‘1’) стоит знак двойное равенство «соответствие», а в скобках необходимо использовать одинарные кавычки.

Управление сервоприводом на Arduino UNO с компьютера

После сборки схемы загрузите следующий скетч в плату

Скетч. Управление сервоприводом с компьютера

Пояснения к коду:

  1. в некоторых примерах программ можно встретить такой вариант проверки появления данных в Serial monitor if (Serial.available()>0) .
  2. в качестве команд можно использовать не только цифры, но и буквы. При этом имеет значение какая буква — прописная или строчная.

Похожие записи по теме:

5 комментариев для “Пример: Управление Ардуино с клавиатуры”

Посылают единицу диод загорается посылая 0 ничего не происходит

У нас все работало, попробуйте «0» заменить на «2»

Здравствуйте! Отличный урок, но светодиодов может быть только 10 (0-9). Как управлять 11 и более?

Спасибо. Добавили информацию о том, что для управления Arduino через Serial monitor можно использовать еще латинские буквы. При этом не забывайте, что строчная (f) и прописная буква (F) — это два разных символа с точки зрения микроконтроллера.

Arduino как H >

До сих пор мы работали только с Arduino UNO. Да вот только то, что я сегодня покажу не работает с Arduino UNO. На самом деле можно, конечно, но в таком случае нужно кое-чего подшаманить, а это кое-чего не так-то и просто. Что же тогда делать? А вот что.

Кроме Arduino UNO существует множество других версий Arduino. Это и Arduino Nano или Mini, когда размер имеет значение, и Arduino Mega, когда пинов и ресурсов на UNO уже не хватает, а еще нужно подключить килограмм датчиков. А если форм-фактор UNO уж больно нравится, а аналоговых пинов не хватает, то на помощь придет Leonardo.

На Leonardo мы сегодня и остановимся. Отличие Leonardo от UNO не только в дополнительных аналоговых пинах, но и в архитектуре. На Leonardo доступен виртуальный Serial port. Что это нам дает? Как минимум то, что 1 и 0 пины, которые отвечают за соединение с компьютером на UNO остаются свободными, а при открытии Serial соединения плата не перезагружается. Примите это во внимание. И главный козырь – компьютер считает Leonardo за HID устройство (Human interface device), а это говорит о том, что Leonardo может притвориться клавиатурой или мышью. Это свойство то мы и будем использовать.

Я люблю играть на электрогитаре. Часто играю в программе Guitar rig. Эта программа является виртуальным гитарным процессором, то есть обрабатывает звук с гитары. К чему все это. При игре нужно переключаться между пресетами, а руки то заняты. Есть решение – приобрести контроллер для этой программы, вот только он больше не выпускается, да и стоит прилично. А что если соорудить педаль самому? Вот что из этого получилось.

Arduino Leonardo или его аналоги

Главное – чтобы плата определялась как HID устройство

Тут уж по вашему вкусу

Тут есть где разгуляться дизайнерской мысли. Я решил не заморачиваться особо и соорудил подобие педали из двух фанерок, обильно смазанных термоклеем. Побаловаться – в самый раз.

Пол царства за термоклей.

Как я уже и говорил, Leonardo может притворяться клавиатурой или мышью. Это осуществляется с помощью встроенной библиотеки. Ниже приведен пример кода. Попробуйте запустить его у себя на компьютере. Должна произойти странная вещь.

Не спешите бежать и рассказывать о восстании машин. Так и было задумано. Теперь разберемся как это работает.

Keyboard.press(button) – эта команда говорит Leonardo о том, что нужно нажать кнопку на клавиатуре. Аргументом принимает букву или специальное обозначение клавиши. KEY_LEFT_CTRL – это левый Ctrl, например. Все обозначения можно посмотреть тут.

Можно нажимать комбинации клавиш. Для этого пропишите несколько строк кода с нужными клавишами. Например, чтобы сохранить текст есть комбинация Ctrl + s, Leonardo тоже сможет сохранить текст если выполнить такой код:

Keyboard.releaseAll() – команда говорит Leonardo отпустить клавиши. Заметьте, что предыдущая команда говорит Leonardo только о нажатии клавиши. Если не прописать Keyboard.releaseAll(), то клавиша будет зажата и дальше. Прямо как в реальности. Попробуйте открыть текстовый редактор и зажать клавишу.

Keyboard.println(“Some text“) – эта команда отвечает за печать текста. Тут все предельно ясно. Работает как Serial.println.

Там есть и другие функции, но эти – самые основные. Их нам хватит, чтобы сделать педаль для гитары. Если кому интересно, что еще есть в этой библиотеке или в похожей для мыши, то можно открыть примеры/USB и почитать тут. Переходим к сборке педали.

С конструкцией можно подумать, а схема устройства крайне проста. Ниже приведена схема на макетке.

На видео показан тест устройства в Microsoft Word и использование в качестве педали для переключения пресетов в guitar Rig 5. Для этого я создал новый контроллер, запомнил клавишу и задал действие.

Оказывается, существуют и другие Arduino, не менее полезные, а где-то и более полезные чем UNO.

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

Автоматизация ввода пароля без клавиатуры

Сегодня соберем устройство для хранения и автоматического ввода паролей одним нажатием кнопки. Оно подключается к USB компьютера и эмитирует работу клавиатуры. Пример кода для ардуино и подробное описание процесса сборки ниже.

Собирать будем на базе Arduino Pro

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

Готовое устройство получилось компактным и ну ооочень красивым:

Для отображения текущей информации будет использоваться дисплей OLED 128X32.
Управлять будет Arduino Pro Micro. Хотел взять микроконтроллер проще, но в Attiny не влезла прошивка из-за дополнительных библиотек и по тому Pro плюс к тому на ней уже есть USB – Profit! половина схемы уже спаяна!

Основная идея в том, что устройство делает вид буд-то оно USB клавиатура. Для подключения хватает стандартных драйверов.

Быстро собираем все на “скрутке”, заливаем простой скетч и неприглядный девайс готов.

Нужно облагородить внешний вид. В программе Sketchup чертим корпус, режем его в слайсере и заливаем G-код в принтер.


Пока печатается принтере можно немного порелаксировать.

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

Ставим кнопки и плату Pro.

Пропихиваем толкающие болванки кнопок.

После сборки у нас годное компактное устройство, которое легким движением руки подключаются к компьютеру. В него можно залить много логинов/паролей и освободить голову и руки для других вещей.

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


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

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

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

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

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

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

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

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

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

Тем не менее (после шантажа сосиской) удалось убедить его выдать мне сертификат соответствия:
https://github.com/Den-W/PwKeeper

Arduino.ru

Пароль

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Доброго времени суток!

Подскажите как сделать проверку на “хозяина” т.е. пароль
Например
Введите пароль:
123
ок

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Считайте serial.read в строку пока new line не встретите

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

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Считайте serial.read в строку пока new line не встретите

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

Я делал как 1 из способов таким образом

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

С точки зрения языка Си++ вы написали глупость

оператор == сравнивает числа, а не строки. Поэтому он сначала преобразовал “123” в число, а потом выполнил сравнение

так как слева байт, то и справа был использован всего один байт

к тому же read возвращает один символ, вам надо в цикле делать read пока нет новой строки и все символы пихать в String или char буфер

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Дельный совет опытного чела.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Дельный совет опытного чела.

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

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

В старину (году в 1994, когда я был во втором классе) у меня была двойка, она же 80286. А в её корпусе (да и всех тогдашних, наверно), была очень удобная фича, называемая keylock. Это такой замок, совмещенный с выключателем. Вместо пароля можно поставить его, т. к. сейчас такой можно купить, чтобы не устраивать раскопки в старых складах и помойках.

Выглядит примерно так:

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Правильнее написать скетч, распознающий “хозяина” по сетчатке глаза, т.к. последовательность нажатия клавиш злодеи могут подсмотреть.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Замочек вскрывается мелкой отверткой без повреждений замка

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Замочек вскрывается мелкой отверткой без повреждений замка

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Правильнее написать скетч, распознающий “хозяина” по сетчатке глаза, т.к. последовательность нажатия клавиш злодеи могут подсмотреть.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

голосую за установку навесного замка в аудиторию

дабы студенты с паралельного курса не могли ардуину попользовать у лаборанта

заодно пачяльник стырить

канифоль всю пожечь

в тапках лаборанта походить

подышать через форточку лаборанта

нарисовать на столе лаборанта нехорошее слово

1.пароль это строка

2.влетаемые символы надо загонять в строку до появления символа окончания строки “n”

все теория защиты систем окончена

Устанваливаю сложность 6 символов Кербериос (Только латиница большие и маленкие и цифры)

принесите работающие коды для нашей лаборатной системы на Васике или С

компиляторы можете взять у лаборанта

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

или скачать с нашего универского сайта

приветсвуются решения в желез например на arduino которые вы все таскаете на переменках например

Источники:

http://cxem.net/arduino/arduino231.php

http://diytimes.ru/post/42

http://arduino.ru/forum/programmirovanie/parol

http://arduinoplus.ru/podsvetka-ambilight-dlja-televizora-svoimi-rukami-na-arduino/

Ссылка на основную публикацию