Arduino как hid устройство

Arduino.ru

В интернетах и на официальном сайте пишут что для Windows (Andorid) в качестве HID-устройств могут выступать только Arduino Leonardo и что-то специальное Teensy 2 за 30$ минимум.

В целом весь интернет перерыл 2 дня вроде как-бы да выбор невелик.

А дай думаю поищу на самых распространненых на распаянную новомодну ATmel16U2 прошивки какие есть USB-ишные.

Это микросхема сменила старую FT232 на последних версиях Arduino Uno R3

Да будет новым HID-joystick-ом больше на Arduino Uno R3

2 мегабайта для теста игрушек как-то не нашел за 2 часа брожения по интернету.

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

Pacman все тоже поедатель


ArduinoUnoR3 после резета непосредственно штырков reset ATmel16U2 а не общей кнопки резет

О чудо появилось некое устрйтсво Atmel16U2 чтобы это могло быть?

калибруем выбираем куда джойстик воткнуть чтоб в Windows 7 совпало

Айяй яй анолог A0

Aйяй яй аналог A1

в принципе если бы была куча джойстиков можно было бы еще поугадывать модные нынче

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

Вопрос кто-нибудь может понять схему клавитуры?

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

только когда идешь по ссылке упираешся в некое чудо

про другие операционные системы все как-то глухо

китайцы уже девайсы готовые впаривают бракованные

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

на свой страх и риск я от туда прошивку и h выдрал, а потом в windows занимался танцами с бубном

научным тыком занимался

тык не сгорела еще

есть еще сайт но там про операционные системы нет

Щас буду архив от Atmel рассматривать не от туда повыковыривали эти уникальне прошивки?

А одночиповая ArduinoLeonardo меня не впечатлила для домашнего развлечения

2 штуки сгорели по аналоговым портам

а впаривали мне их по 25$ за штуку

Вобщем молодец что неверишь.

Я тоже не поверил. Проверил.

Если найдешь на официальном сайте Arduino HID-device прошивку маякни?

Я когда увидел что уже некая фирма из-за неотработанности этох HеловенческоIнтелектульнойDевайсов уже свою только плату за 30$ предлагает. Понял что надо на один пост в мире побольше сделать

вон посмотри если купишь их совместимую с ArduinoIDE плату то получишь максмиально совместимые USB-HID-Device очевидно что без них это нелегко стало

заявлено что платки по 16$ вот только менее 23$ без доставки что-то не обнаруживается

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

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

Оригинальные файлы для 8ю4 (usb-to-serial)

Да, не официальная прошивка, но неспроста эта магия с dfu описывается в разделе Hacking же! Это, так сказать, для продвинутых фича, не очевидная и далеко не всем нужная. Как из DFU и вашего кода собрать прошивку для 8ю4 можно просто нагуглить.

признаю, что на ородруино.цц не оень корректно написано, да. Но если знать что искать.. 🙂

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

спасибо щас посмотрю

что-то многа букАв у Atmel-а не могу осилить

ну все обозвали меня Hack

ну все согласно американским фильмам за мной будет бегать американское ФБР

побегу хаватся в бульбу

вроде это стандартные

а я кричу что ардуино джопстик через ардуину в винду не втыкается

Типа Гуманные Девись Гуманные Девись

а как копнешь так совсем не гуманные

на LPT не помню чтоб такие секреты бали чтоб воткнуть на DOS Win3.11 Win95 Win98

как пошла чудо Win2000 с чудо USB все через косяк какой-то

смотрю до сих пор станки с ЧПУ гонят продукцию и управляются по LPT

все вроде везде есть а начнешь собирать фигни какой-то старой нет

промежуточной програмной хрени днем с огнем не сыщешь

насколько я понял HID девисов актуально всего два Клава да мышь остальное от них производные

копаю в сторону клавиатурного поля

код вроде есть но опять танцами с бубном попахивает где схемы

типа на верхней чудо-каталонец дурко резисторов 18 штук навтыкал а внятно какой код клавиши в комп летит мутно все как-то

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

чужие косяки правлю чтоб компиляция проходить хоть начала

автор что-то перемудрил с таймерами

надо просто подождать 15 мин перед выключением

а тут какая-то муть на ровном месте да еще не компилируется

Ты с Timer-ами не игрался?

Что за чудо функция

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

насколько я понял автор ради задержки 15 минут

какуюто чудо библиотеку прикрутилъ

такое обьявление чисто синтаксически наверно допустимо

но как потом не запутаться кто кого вызывает

для приличия нормальные кодеры пишут хотябы

блин что-то от дурного когда голова кругом пойду чайку попью

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 апреля, которая будет нажимать клавиши через определенные интервалы. Такая штучка доставит вашей цели кучу незабываемых эмоций. Только тсс, я этого не говорил.

PureBasic – форум

Меню навигации

Пользовательские ссылки

Информация о пользователе

Вы здесь » PureBasic – форум » Программирование микроконтроллеров » Простое USB HID устройство на ATmega32U4 (Arduino Pro Micro)

Простое USB HID устройство на ATmega32U4 (Arduino Pro Micro)

Сообщений 1 страница 8 из 8

Поделиться102.02.2016 21:52:17

  • Автор: Пётр
  • Активный участник
  • Зарегистрирован : 14.06.2009
  • Приглашений: 0
  • Сообщений: 2445
  • Уважение: [+78/-5]
  • Позитив: [+0/-0]
  • Пол: Мужской
  • Последний визит:
    27.05.2020 21:07:56

В предыдущей статье было рассмотрено несложное USB HID устройство на микроконтроллере ATmega8. В нем нет аппаратного модуля USB и ресурсов микроконтроллера хватает для поддержки сравнительно медленной версии USB 1.1 со скоростью обмена 1,5 Мбит/с (Low-Speed). Существуют микроконтроллеры семейства AVR фирмы Atmel имеющие встроенный аппаратный модуль USB, который как правило поддерживает USB 2.0 и обеспечивает скорость обмена 12 Мбит/с (Full-Speed). Например AT90USB162, AT90USB1287, ATmega16U4, ATmega32U4 и т. д. Их преимущество кроме увеличенной скорости обмена еще в том что процессор микроконтроллера не участвует в приеме и дешифрации USB пакетов, а значит его ресурсы можно использовать для других целей повысив общую производительность микроконтроллера по сравнению с программной реализацией.
Одним из недостатков этих микроконтроллеров – отсутствие вариантов в DIP корпусе. В продаже можно найти различные платы с микроконтроллером и его обвязкой (цепи питания и сброса, цепи тактирования, USB и т. д.) Одна из таких плат это Arduino Pro Micro с микроконтроллером ATmega32U4.
Выглядит плата так.

Прошивается это “чудо” по USB. В микроконтроллере нестандартный загрузчик (не тот что по умолчанию с завода, а от Arduino). Он активируется при сбросе микроконтроллера и ждет начала программирования в течение нескольких секунд. Если за это время программирование не началось, работа загрузчика завершается и микроконтроллер начинает выполнять основную программу. Во время работы загрузчика в системе присутствует виртуальный COM порт с именем “Arduino Leonardo bootloader (COMx)”, где COMx это номер COM порта, присвоенный системой.
Прошивка выполняется программной Boot32u4.exe.

В программе нужно указать путь к прошивке формата HEX и выбрать COM порт загрузчика. Его можно узнать в диспетчере устройств в момент активности загрузчика. Как писал выше у него имя “Arduino Leonardo bootloader (COMx)”, где COMx это номер COM порта, присвоенный системой.
Т. к. загрузчик активен всего несколько секунд, то для упрощения прошивки в программе введен режим ожидания появления виртуального порта с таймаутом 20 секунд.
Последовательность прошивки такова.
1. Необходимо запустить программу Boot32u4.exe и при необходимости указать путь к прошивке и номер порта, а затем нажать на кнопку “Прошить”.
2. В течение 20 секунд после этого необходимо перезагрузить микроконтроллер кратковременно замкнув на плате выводы RST и GND.
3. Ожидать завершения прошивки.

Теперь о тестовой прошивке и программе для компьютера. Они как и в прошлой статье были написаны на BASCOM-AVR (прошивка) и PureBasic (программа для ПК). Компьютерная программа осталась без изменений и для тестирования ее можно взять из прошлой статьи.
Светодиод использован находящийся на плате, а кнопку нужно подключить к выводам 2 и GND платы.

Скачать тестовую прошивку и программу для компьютера. http://pure-basic.narod.ru/forum_files/ … _16MHz.zip

Дальнейшее развитие темы – USB HID устройство на STM32F103C8T6 Простое USB HID устройство на STM32F103C8T6

[Arduino] Программируемая клавиатура своими руками.

Доброго времени суток всем.
Немного предыстории.

Идея заиметь себе программируемую клавиатуру родилась у меня довольно таки давно. По работе и не только, я уже около 7 лет пользуюсь замечательными программами PunoSwitcher и Mkey. У них есть свои минусы, но все таки – все они здорово облегчают и автоматизируют многие рутинные задачи. И, в целом, основную массу моих потребностей в скриптах и программируемых клавишах можно реализовать софтверно через вышеописанные программы. Но здесь есть 3 существенных минуса:
Оговорюсь сразу, все это чистой воды субъективщина, и ИМХО

1) Программы “съедают” некоторые клавиши. Например переназначив всю Numpad клавиатуру, вы останетесь без удобного ввода цифровых значений, и каждый раз переключать режимы в том же Mkey(который имеет свойство зависать в самый нужный момент), не очень удобно.
2) При смене рабочей машины приходится каждый раз переназначать настройки и устанавливать софт. Да, можно сделать экспорт настроек и все такое прочее, но это не Plug&Play,в плане удобства.
3)Кроссплатформенность. Так вышло, что у меня основной машиной для “взять с собой в поездку налегке” является старенький нетбук AcerAspire One с Linux Arch на борту, ибо только он там работал адекватно. И оказавшись без своих скриптов и переназначенных клавиш, было очень некомфортно работать.
справедливости ради стоит упомянуть, что через какое-то время я накатил на него облеченную версию WIN 7 и все стало прекрасно, но пост это об этом).
И так как цены на программируемые клавиатуры кусались, и я подумал, “а что если сделать ее на Ардуино?”. И вот в результате родилось это “чудо”.
За основу я взял проект из ролика небезызвестного @AlexGyver, о комп.пранке.(ссылка)
Саня если ты это читаешь – огромное тебе спасибо. Ты не только вдохновил меня на это все, но облегчил разработку своими удобными библиотеками по работе с кнопками.

Читайте также:  Расчет триггера шмитта на оу

Комплектующие
Для создания проекта понадобится:
Arduino Pro Micro – 1 шт

PNP транзистор – 1 шт.

NPN транзисторы – 3 шт.

10 кОм – 1 шт.USB разъем (или PS/2 разъем) – 1 шт.

LED светодиоды – 3 шт.

Я использовал старые советские КТ315 / КТ 361, просто потому что они были под рукой.

Да, можно было бы выбросить транзисторы с LED светодиодов, но я решил немного заморочится).

Поначалу проект разрабатывался под старую PS/2 клавиатуру, поэтому на ранних фото вы можете наблюдать в схеме PS/2 разъем.

В ходе экспериментов стало ясно, что некоторые клавиатуры могут работать с Аодуиной, как Ps/2 устройства, после перезагрузки.Именно для этого в схеме есть PNP транзистор для перезагрузки клавиатуры, через полсекунды после подключения Ардуины.

Затем,специально под этот проект, на Али была куплена Numpad клавиатура за 300р, которая оказалась вонючим куском пластика, к тому же еще и с бракованной клавишей, которая вывалилась при распаковке.

И хотя к ее работоспособности у меня претензий нет, и удалось вернуть полцены, эту клаву к покупке не рекомендую. Сейчас, за 400-500р можно взять Numpad-механику. Но ее определение как PS/2 устройство, и совместимость с моим проектом я не гарантирую.

Одна из самых важных функций этой клавиатуры – возможность эмуляции нажатий нескольких клавиш – уже делает эту клаву, очень удобным инструментом в работе.Например.
Как то давно, на Пикабу был выложен пост “Создание МОЩНОЙ программируемой клавиатуры”, путем использования программы HIDmacros.
МОЩНОЙ!

Злой HID. Делаем и программируем хакерский девайс для HID-атак

Содержание статьи

HID-атаки

HID-атака — хитрая разновидность BadUSB. Ее суть сводится к тому, что в USB-порт вставляется простейший хакерский девайс, эмулирующий устройство ввода. Практически любая современная ОС поддерживает plug-n-play и содержит универсальный драйвер устройства каждого класса. Хакерский девайс автоматически определяется ОС как нужный нам Human Interface Device — HID. Далее ОС безо всяких проверок принимает его команды.

Есть много готовых девайсов для атак через USB-порт. Например, Rubber Ducky и ее разновидности. На мой взгляд, интереснее разобраться, как сделать такую штуку самому. Это довольно просто (когда знаешь как) и дешево. Нам даже флешка на этот раз не понадобится.

Преимуществ HID-атаки перед атакой вручную сразу несколько: это скорость, незаметность и автоматизация. Все необходимые действия выполнятся быстрее, чем ты сможешь набрать то же на клавиатуре, и без опечаток (если их не было изначально). Подключить к USB-порту миниатюрное устройство можно за пару секунд. Это не такое палево, как садиться за чужую клавиатуру и поминутно оглядываться через плечо. Из-за малых габаритов самодельный девайс легко спрятать и пронести через охрану даже на режимный объект. В крайнем случае можно просто выдать его за флешку и «случайно» уничтожить легким нажатием ботинка, после чего изготовить хоть мешок других таких же.

WARNING

Статья написана в исследовательских целях. Вся информация в ней носит ознакомительный характер. Ни автор, ни редакция не несет ответственности за неправомерное использование упомянутых в ней аппаратных платформ, программ и техник!

Выбираем аппаратную платформу

Сотворить такую хакерскую железку можно и на одноплатниках (вроде Raspberry Pi), но это все равно что перевозить ноутбук на фуре. Есть «братья меньшие» не такие известные, но не менее «злые» и опасные в руках из плеч. По сути, для выполнения HID-атаки нам необходим микроконтроллер, USB-порт и минимальная электронная обвязка, чтобы это все заработало.

Arduino Micro Pro

На мой взгляд, это один из идеальных кандидатов на роль хакерского девайса.

Arduino Micro Pro

Плата размером 33×16 мм работает на микроконтроллере ATmega32u4 и имеет на борту 28 Кбайт свободной памяти (вообще памяти 32 Кбайт, но 4 Кбайт уже заняты загрузчиком). С ней очень легко работать, так как проект Arduino хорошо поддерживается и для него написано много документации. Также для него есть готовая среда разработки Arduino IDE с дистрибутивами для Windows, Linux и macOS. Купить плату можно от 350 рублей.

Teensy Low Cost

Хорошая альтернатива — семейство плат Teensy, совместимых с Arduino. С ними также можно использовать Arduino IDE. Например, плата Teensy LC размером 17×35 мм оснащена процессорным ядром ARM Cortex-M0+ и 64 Кбайт памяти. Купить ее в России может быть проблематично (основной упор делается на продажи Teensy 3.2–3.6), но заказать из-за рубежа вполне возможно. Цены на Teensy LC начинаются от 10 долларов.

Digispark

Многие думают, что Digispark — это самая подходящая плата для HID-атак. Да, она выигрывает по некоторым параметрам у остальных: крошечный размер 18×22 мм, практически нет лишних функций (и точек отказа), USB-разъем типа А и смешная цена порядка 100–150 рублей.

Однако в использовании она не так проста. Даже подключать ее стоит в порт USB 2.0 (или через USB-хаб v.2.0) либо лезть в BIOS, отключать xHCI и выставлять режим USB 3.0 порта как USB 2.0 compatible. Обратная совместимость у версий USB 3.0 и 2.0 заявлена, но порой нужен бубен, чтобы она реально заработала, особенно на Windows 10.

Digispark

Работает данная плата под управлением микроконтроллера Attiny85. С памятью у нее негусто — всего 8 Кбайт, из которых два уже заняты загрузчиком. Совсем не вдохновляет ограничение ROM в 512 байт под исполняемый код, но оптимизация тебе в помощь.

Процессор (если его можно так назвать) опять же совместим с Arduino IDE, только желательно использовать версию 1.6.5r2, а 1.6.6 и 1.6.7 не рекомендуется вовсе. Digispark Wiki любезно предоставляет мануал по «вживлению» этой платы в Arduino IDE, или можно скачать уже специально заточенные версии ПО.

Альтернативы

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

NodeMCU и SparkFun с микроконтроллером ESP8266. Этот чип разрабатывался с направлением на поддержку Wi-Fi, поэтому платы с беспроводным модулем получились довольно большими. NodeMCU имеет размер 60×30 мм при не самой выгодной цене от 400 рублей. Однако если планируется многоэтапная атака, то беспроводное подключение будет совсем не лишним.

SparkFun в целом неплох, но смущает ценой (от 17 долларов за копеечный процессор). Однако его контроллер совместим с Arduino IDE, что делает разработку удобной.

Функционально Particle Photon похож на платы с ESP8266, но его цена гораздо выше. На борту у него довольно дорогой и ненужный для HID-атак ARM Cortex M3 STM32F205RGY6 с Wi-Fi-модулем Broadcom BCM43362, что поднимает цену до 2000 рублей и выше. Он будет оправдан в том случае, если помимо эмуляции клавиатуры планируется выполнять какие-то более сложные задачи, требующие универсального процессора архитектуры ARM.

Обрати внимание, что из всех рассмотренных плат лишь Digispark оснащен USB-портом типа А. Остальные имеют разъемы micro-USB и mini-USB, поэтому советую сразу обзавестись OTG-адаптером на интерфейс платы или кабелем для подключения нашего хакерского девайса к компу.

Делаем хакерский девайс за пять долларов

Приступим к практической части на примере платы Arduino micro Pro и переходника mini-USB ↔ USB Type A. В качестве основной ОС используется Kali Linux (4.14.0-kali3-amd64), но на других сборках Linux и в Windows проблем возникнуть не должно. Arduino IDE v. 1.8.6 скачана с официального сайта. В качестве жертвы выбран тот же компьютер.

Читайте также:  Ик линия связи в охранной системе

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее

Arduino Uno

Товары

  • Обзор
  • Программирование и связь с ПК
  • Система питания
  • Порты ввода/вывода
  • Память
  • Подведение итогов
  • Часто Задаваемые вопросы

Обзор

Arduino UNO представляет из себя отладочный комплекс, выполненный на базе микроконтроллера ATMega328. Проще говоря – это обычная плата, которая является «посредником» между пользователем и микроконтроллером, позволяя удобно цепляться к его ножкам и загружать в него прошивку прямо из среды программирования. Помимо всего прочего, плата наделена некоторыми дополнительными функциями, которые будут подробно рассмотрены в данной статье. Продуманное исполнение, небольшой размер, множество библиотек и примеров кода, позволили Arduino UNO завоевать симпатии миллионов разработчиков электронных устройств. На сегодняшний день в Интернете можно найти огромное количество проектов, в которых данная плата взята за основу.

Arduino UNO была разработана итальянскими инженерами как одна из основных плат, имеющих открытую архитектуру. По мере увеличения популярности, у платы появилось множество «клонов», полностью совместимых по программной и аппаратной части. На рисунке №1 показан внешний вид платы Arduino UNO с обеих сторон.

Рисунок №1 – плата Arduino Uno

Как видно из рисунка, подключение к пинам микроконтроллера выполняется через штыревые линейки, распаянные по обе стороны платы. Таким образом разработчик может связать ATMega328 с внешними устройствами при помощи макетных проводов. Также под топологию Arduino Uno создано огромное количество шилдов, обеспечивающих дополнительный функционал путём их каскадного включения. Пример такого включения показан на рисунке №2.

Рисунок №2 – Arduino Uno и шилд для ЧПУ

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

Удобно организованный доступ к портам микроконтроллера – это хорошо, но что ещё содержит Arduino Uno на своём борту? Разобраться в дополнительных деталях поможет рисунок №3, на котором обведены и подписаны все основные элементы платы и дана общая характеристика для штыревых контактов.

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

Рисунок №3 – распиновка платы Arduino Uno

Программирование и связь с ПК

В левом верхнем углу (рисунок №3) расположен USB-разъём. Он выполняет две функции. Первая – организация канала обмена данными между микроконтроллером и ПК и вторая – запись прошивки в ATMega328.

На аппаратном уровне за связь с компьютером отвечает модуль последовательного интерфейса передачи данных (UART), который встроен в ATMega328 и выведен на контактах 0(RX) и 1(TX) платы Arduino Uno. Однако просто передавать данные на компьютер не получиться. Посредником между ATmega328 и компьютером выступает отдельно установленный микроконтроллер ATMega16. Его специальная прошивка позволяет определять плату Arduino Uno как виртуальный СОМ-порт, когда та подключается к ПК. Обмен данными будет сопровождаться миганием соответствующих светодиодов RX и TX, расположенных справа от ATMega16.

Что касается записи прошивки, то этот процесс максимально упрощён и сводится к нажатию всего одной кнопки в среде Arduino IDE. Такая простота обусловлена тем, что Arduino Uno выпускается со встроенным прошитым загрузчиком, работающем по протоколу STK500. Следовательно, во внешнем программаторе нет никакой необходимости. Тем не менее, для любителей прошить контроллер напрямую, на плате предусмотрена колодка ICSP (справа посередине) для внутрисхемного программирования в обход загрузчика. Сам DFU-загрузчик находиться в ATMega16 и также может быть переписан путём внутрисхемного программирования через аналогичную колодку в верхней левой части платы.

Система питания

Для того, чтобы плата Arduino Uno могла функционировать, на неё необходимо подать питание. Сделать это можно несколькими способами, а именно:

Запитать непосредственно через USB-разъём с помощью шнура для программирования или связи с ПК;

Запитать от AC/DC адаптера с выходным напряжением 7-12В, подключившись через специальный разъём внешнего питания.

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

Также, плата Arduino Uno, предоставляет пользователю два контакта, на которых присутствуют напряжения 5В и 3,3В. Эти напряжения формируются встроенными линейными стабилизаторами при любом из вышеперечисленных способов питания. Максимальный ток, который способен обеспечить вывод 3,3В равен 50мА. Некоторые «умельцы» питают плату через один из этих выводов, однако это чревато выходом последней из строя, так как входное напряжение идёт в обход стабилизатора и любой скачок просто-напросто спалит микроконтроллер.

Вывод GND говорит сам за себя и является общим минусом. Все выводы GND на плате соединены между собой. Следует обратить внимание, что большинство странных глюков в работе с платой Arduino Uno связаны с тем, что разработчик проекта забывает соединить вывод GND платы Arduino с соответствующими выводами других модулей и датчиков, которые используются в проекте.

Вывод IOREF, служит для информирования подключаемых к Arduino Uno модулей или шилдов об уровне бортового напряжения. Если подключаемый модуль имеет возможность работать как с 5В, так и с 3,3В, то прочитав значение на выводе IOREF, он может выбрать для себя соответствующий режим работы.

Порты ввода/вывода

Arduino Uno предоставляет пользователю 14 цифровых и 6 аналоговых выводов. Цифровые выводы имеют нумерацию от 0 до 13 и способны работать в двух направлениях, т.е. каждый из них может быть как входом, так и выходом. Направление определяется функцией pinMode(). Помимо этого, для каждого цифрового пина имеется возможность программно включить подтягивающий резистор, соединённый с плюсом питания микроконтроллера. Номинал подтягивающего резистора лежит в диапазоне 20-50кОм. Следует учитывать, что максимальное выходное напряжение одного вывода составляет 5В, а максимальный ток – 40мА. Превышение допустимой нагрузки способно вывести микроконтроллер из строя.

Аналоговые выводы имеют обозначения А0-А5. Каждый из них соединён со встроенным 10-битным АЦП микроконтроллера ATMega328. Это означает, что мы можем одновременно измерять 6 напряжений и получать по 1024 значения для каждого канала. По умолчанию диапазон измеряемого напряжения равен 0-5В, т.е. при 0В значение АЦП будет равно 0, а при 5В значение АЦП станет равным 1023. Этот диапазон можно изменить подачей на вывод AREF своего опорного напряжения, которое станет верхней границей измерения. Если в аналоговых выводах нет необходимости, они без проблем могут использоваться как цифровые.

Помимо первичных функций, некоторые выводы Arduino Uno имеют дополнительные. Например:

выводы 3, 5, 6, 9, 10 и 11 способны формировать широтно-импульсную модуляцию (ШИМ) с помощью функции analogWrite().

выводы A4(SDA) и A5(SCL) представляют интерфейс связи по протоколу I2C.

выводы 10(SS), 11(MOSI), 12(MISO), 13(SCK) обеспечивают связь по SPI-интерфейсу.

выводы 0(RX) и 1(TX) – обеспечивают последовательный интерфейс передачи данных.

к выводу 13 подключен smd-светодиод, расположенный на плате.

RESET – подача низкого уровня на этот вывод приведёт к сбросу микроконтроллера.

Для удобства восприятия целесообразно всё свести в таблицу, которую можно использовать как «шпаргалку» при создании собственных проектов:

Рейтинг
( Пока оценок нет )
Загрузка ...
Adblock
detector