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

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

Micro схож с Arduino Leonardo тем, что ATmega32u4 имеет встроенную поддержку USB-соединения, благодаря чему не требуется вспомогательный процессор. Это позволяет Micro появляться на подключенном компьютере в качестве мыши или клавиатуры в дополнение к виртуальному (CDC) последовательному порту (COM). Это влечет и другие изменения в работе платы, которые детально обсуждаются на странице начало работы .

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

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

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

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

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

Каналы ШИМ 7

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

12

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

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

Флеш-память

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

2,5 Кб (ATmega32u4)

1 Кб (ATmega32u4)

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

Схема и исходные данные
Питание

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. Выводы земли.
Память

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

Входы и Выходы

Каждый из 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 Micro показывает полную функциональность всех выводов для использования их аналогично Leonardo.

Связь

Micro имеет несколько средств для связи с компьютером, другим Arduino, или иными микроконтроллерами. Контроллер ATmega32U4 предоставляет UART TTL (5V) для последовательной связи, доступный на цифровых выводах 0 (RX) и 1 (TX). Также 32U4 разрешает последовательный обмен (CDC) через USB и появляется для компьютерного программного обеспечения как виртуальный COM-порт. Кроме того, кристалл работает как «full speed» USB устройство при использовании стандартных драйверов USB COM. Для Windows требуется.inf файл (смотри пункт 4 для Arduino Uno). Программное обеспечение Arduino включает монитор последовательной шины (Serial monitor), позволяющий принимать и посылать с платы Arduino простые текстовые данные. Светодиоды RX и TX на плате будут вспыхивать при передаче данных через USB соединение с компьютером (но не при последовательной связи через выводы 0 и 1) В библиотеке SoftwareSerial предусмотрена последовательная связь через любой из цифровых выводов Micro.

Micro может появляться как обычная клавиатура или мышь, и может быть запрограммирован для управления этими устройствами ввода при помощи классов Keyboard и Mouse .

Программирование

Контроллер ATmega32U4 на Arduino Micro поставляется с уже записанным загрузчиком (бутлодером), позволяющим загружать новый код без использования внешнего аппаратного программатора. Связь осуществляется по протоколу AVR109 .

Можно также обойти загрузчик и программировать микроконтроллер через разъем ICSP (In-Circuit Serial Programming, последовательное внутрисхемное программирование); более подробная информация приведена в инструкциях .

Автоматический (программный) сброс и инициация загрузчика

Вместо того чтоб требовать физического нажатия кнопки сброса перед загрузкой, Micro разработан так, что его можно сбросить программно при помощи кода, запущенного на подключенном компьютере. Сброс запускается, когда виртуальный (CDC) последовательный / COM порт Micro открывается при скорости 1200 бод и затем закрывается. При этом процессор будет сброшен, разрывая USB подключение к компьютеру (что означает, что виртуальный последовательный COM порт) исчезнет. После сброса процессора стартует загрузчик, который остается активным около 8 секунд. Загрузчик также может быть запущен нажатием кнопки Reset на Micro . Обратите внимание, что при первой подаче питания платы, она сразу перейдет к выполнению пользовательского кода, при его наличии, а не к запуску загрузчика.

Вследствие такого способа сброса платы Micro , лучше всего перед загрузкой инициировать сброс программой Arduino, особенно если вы обычно перед загрузкой нажимаете кнопку Reset на других платах. Если программа не может сбросить плату, можно всегда запустить бутлодер нажатием кнопки сброса на плате.

Защита от токовых перегрузок на USB

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

Физические характеристики

Максимальная длина и ширина печатной платы Arduino Micro составляют соответственно 4,8 и 1,77 см, без учета выступающего за указанные габариты USB соединителя. Компоновка позволяет легко размещать плату в беспаечном макете.

Arduino Micro не сильно отличается от своих собратьев. На плате расположены 12 аналоговых вводов и 20 цифровых вводов/выводов. 7 из них могут быть использованы как ШИМ выходы. Так же имеется кварцевый генератор с частотой 16 МГц, кнопка перезагрузки и разъем микро-USB. Основное отличие ардуино микро от заключается в самом микроконтроллере. Здесь использован ATmega32u4. Он имеет встроенную поддержку USB соединения. Благодаря этому Arduino Micro может определяться компьютером не только как последовательный COM порт, но и как периферийное устройство. Можно сказать что это уменьшенная копия

Версия Arduino Pro Micro отличается меньшими размерами и имеет 22 пина. Из них 5 могут быть использованы в качестве ШИМ выводов и 4 как аналоговые входы.

Arduino Pro Micro выглядит вот так:

Arduino Pro Micro

Arduino Micro

Так как ардуино микро и про микро практически не отличаются друг от друга, я расскажу подробнее про одну из них.

Характеристики:

  • Микроконтроллер: ATmega32u4
  • Предельное напряжение питания: 5-20 В
  • Рекомендуемое напряжение питания: 7-12 В
  • Цифровых вводов/выводов: 20 (18 в Pro версии)
  • ШИМ: 7 цифровых пинов могут быть использованы как выводы ШИМ (5 в Pro версии)
  • Аналоговые выводы: 12 (4 в Pro версии)
  • Максимальная сила тока: 40 mAh с одного вывода и 500 mAh со всех выводов.
  • Flash память: 32 КБ
  • SRAM: 2,5 КБ
  • EEPROM: 1 КБ
  • Тактовая частота: 16 МГц

Подключение питания к Arduino Micro

Этот микроконтроллер можно питать через порт micro-USB от компьютера, паувербанка или от адаптера, подключенного в розетку.Так же пин +5V является не только выводом, но и вводом. Можно подавать ток на него и все это будет работать только при условии, что напряжение подаваемого тока строго равно пяти вольтам!
Еще можно подавать постоянный ток с напряжением от 6 до 20 вольт на пин VIN. Это предельные значения! При подачи напряжения 20 вольт на плате будет сильно греться стабилизатор напряжения вплоть до выхода из стоя. Если же подавать 5 вольт, то ардуинка может вообще не заработать. Если и заработает то на цифровых пинах напряжение будет ниже 5 вольт. Это связанно с тем, что стабилизатор напряжения имеет не 100% КПД. Рекомендуемое напряжение для питания через пин VIN — от 7 до 12 вольт.


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

Аналоговые входы: A0 — A5, A6 — A11 (на цифровых выводах 4, 6, 8, 9, 10 и 12). Всего Micro имеет 12 аналоговых входов, причем входы с A0 по A5 маркированы непосредственно на выводах, а другие, к которым также можно получить доступ в программе с использованием констант с A6 до A11, распределены соответственно на цифровых выводах 4, 6, 8, 9, 10 и 12. Все они также могут использоваться в качестве цифровых вход/выходов. Они измеряют поступающее на них напряжение и возвращают значение от 0 до 1024 при использовании функции . Эти пины измеряют напряжение с точностью до 0,005 В.

Широтно-импульсная модуляция (ШИМ) Arduino Micro

У ардуино микро есть 7 выводов ШИМ, это пины 3, 5, 6, 9, 10, 11 и 13. Для использования ШИМ у Arduino есть специальная функция .

Другие пины:

  • Пины 0 (RX) и 1 (TX) используются для передачи данных по последовательному интерфейсу.
  • Выводы для связи по интерфейсу SPI не подключены к цифровым пинам.
  • Так же на выводе D13 имеется встроенный в плату светодиод.
  • Пины 2 (SDA) и 3 (SCL) могут использоваться для связи с другими устройствами по шине I2C. Подробнее про этот интерфейс вы можете почитать на википедии . В среде разработке Arduino IDE есть встроенная библиотека «wire.h» для более легкой работы с I2C.

Физические характеристики

Arduino Micro имеет следующие размеры: длина 48 мм и ширина 18 мм. Однако разъем USB немного выпирает за пределы печатной платы. Arduino Micro весит всего около 12 грамм. Плата имеет 4 отверстия для возможности ее закрепления на поверхности. Расстояние между выводами равняется 2,54 мм.

Принципиальная схема Arduino Micro


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

Arduino Micro - это устройство на основе микроконтроллера ATmega32u4 (), разработанное совместно с Adafruit . В его состав входит все необходимое для удобной работы с микроконтроллером: 20 цифровых входов/выходов (из них 7 могут использоваться в качестве ШИМ-выходов, 12 - в качестве аналоговых входов), кварцевый резонатор на 16 МГц, разъем micro-USB, разъем ICSP для внутрисхемного программирования и кнопка сброса. Для начала работы с устройством достаточно просто подключить его к компьютеру посредством USB-кабеля. Устройство разработано таким образом, чтобы его можно было удобно размещать на макетной плате.

Как и в Leonardo, в Arduino Micro используется микропроцессор ATmega32u4 со встроенным контроллером USB. Такое решение исключает необходимость использования дополнительного контроллера, и при подключении к компьютеру позволяет Ардуино Micro определяться в системе как обычная мышь, клавиатура или виртуальный COM-порт. Помимо этого, использование данного микроконтроллера оказывает влияние на поведение платы, о чем подробнее описано на странице "Начало работы ".

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

Схема и исходный проект

Питание

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

В качестве внешнего источника питания (не USB) может использоваться любой источник питания постоянного тока (DC) или обычный аккумулятор/батарея. Для этого выводы аккумулятора или DC-источника питания необходимо подсоединить к выводам Gnd и Vin.

Напряжение внешнего источника питания может быть в пределах от 6 до 20 В. Однако, уменьшение напряжения питания ниже 7В приводит к уменьшению напряжения на выводе 5V, что может стать причиной нестабильной работы устройства. Использование напряжения больше 12В может приводить к перегреву стабилизатора напряжения и выходу платы из строя. С учетом этого, рекомендуется использовать источник питания с напряжением в диапазоне от 7 до 12В.

Основные выводы питания перечислены ниже:

  • VIn . Напряжение, поступающее в Arduino непосредственно от внешнего источника питания (не связано с 5В от USB или другим стабилизированным напряжением). Через этот вывод можно подавать внешнее питание.
  • 5V . Стабилизированный источник напряжения, используемый для питания микроконтроллера и других компонентов устройства. Это напряжение может поступать как от встроенного стабилизатора напряжения Vin, так и от USB или другого стабилизированного источника питания на 5В.
  • 3V . Питание 3.3В, формируемое встроенным стабилизатором напряжения. Максимальный выходной ток этого вывода составляет 50 мА.
  • Gnd Выводы земли.

Память

Объем памяти программ микроконтроллера ATmega32U4 составляет 32 КБ (из них 4 КБ отведены под загрузчик). Помимо этого, он имеет 2.5 КБ оперативной памяти SRAM и 1 КБ EEPROM (для взаимодействия с которой служит библиотека EEPROM).

Входы и выходы

Micro может определяться как обычная клавиатура или мышь, и с помощью библиотек Keyboard и Mouse может быть запрограммирован на управление этими устройствами ввода.

Программирование

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

Автоматический (программный) сброс и запуск загрузчика

Чтобы каждый раз перед загрузкой программы не требовалось нажимать кнопку сброса, Micro спроектирован таким образом, который позволяет осуществлять его сброс программно с подключенного компьютера. Сброс срабатывает после закрытия виртуального COM-порта, который предварительно был открыт на скорости 1200 бод. При срабатывании этого условия, процессор сбросится, разорвав USB соединение с компьютером (при этом виртуальный COM-порт исчезнет). После перезагрузки процессора, запускается загрузчик, оставаясь активным на протяжение приблизительно 8 секунд. Помимо этого, инициировать загрузчик можно, нажав кнопку сброса на плате Micro. Обратите внимание, что при первом включении устройства вместо запуска загрузчика, контроллер сразу перейдет к выполнению пользовательской программы (если таковая есть).

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

Защита USB от перегрузок

В Arduino Micro есть восстанавливаемые предохранители, защищающие USB-порт компьютера от коротких замыканий и перегрузок. Несмотря на то, что большинство компьютеров имеют собственную защиту, такие предохранители обеспечивают дополнительный уровень защиты. Если от USB-порта потребляется ток более 500 мА, предохранитель автоматически разорвет соединение до устранения причин короткого замыкания или перегрузки.

Физические характеристики

Максимальная длина и ширина печатной платы Micro составляет 4.8 см и 1.77 см соответственно, с учетом разъема USB, выступающего за пределы платы. Печатная плата устройства спроектирована таким образом, чтобы его можно было удобно размещать на беспаечной макетной плате.

Arduino Micro не сильно отличается от своих собратьев. На плате расположены 12 аналоговых вводов и 20 цифровых вводов/выводов. 7 из них могут быть использованы как ШИМ выходы. Так же имеется кварцевый генератор с частотой 16 МГц, кнопка перезагрузки и разъем микро-USB. Основное отличие ардуино микро от заключается в самом микроконтроллере. Здесь использован ATmega32u4. Он имеет встроенную поддержку USB соединения. Благодаря этому Arduino Micro может определяться компьютером не только как последовательный COM порт, но и как периферийное устройство. Можно сказать что это уменьшенная копия

Версия Arduino Pro Micro отличается меньшими размерами и имеет 22 пина. Из них 5 могут быть использованы в качестве ШИМ выводов и 4 как аналоговые входы.

Arduino Pro Micro выглядит вот так:

Arduino Pro Micro

Arduino Micro

Так как ардуино микро и про микро практически не отличаются друг от друга, я расскажу подробнее про одну из них.

Характеристики:

  • Микроконтроллер: ATmega32u4
  • Предельное напряжение питания: 5-20 В
  • Рекомендуемое напряжение питания: 7-12 В
  • Цифровых вводов/выводов: 20 (18 в Pro версии)
  • ШИМ: 7 цифровых пинов могут быть использованы как выводы ШИМ (5 в Pro версии)
  • Аналоговые выводы: 12 (4 в Pro версии)
  • Максимальная сила тока: 40 mAh с одного вывода и 500 mAh со всех выводов.
  • Flash память: 32 КБ
  • SRAM: 2,5 КБ
  • EEPROM: 1 КБ
  • Тактовая частота: 16 МГц

Подключение питания к Arduino Micro

Этот микроконтроллер можно питать через порт micro-USB от компьютера, паувербанка или от адаптера, подключенного в розетку.Так же пин +5V является не только выводом, но и вводом. Можно подавать ток на него и все это будет работать только при условии, что напряжение подаваемого тока строго равно пяти вольтам!
Еще можно подавать постоянный ток с напряжением от 6 до 20 вольт на пин VIN. Это предельные значения! При подачи напряжения 20 вольт на плате будет сильно греться стабилизатор напряжения вплоть до выхода из стоя. Если же подавать 5 вольт, то ардуинка может вообще не заработать. Если и заработает то на цифровых пинах напряжение будет ниже 5 вольт. Это связанно с тем, что стабилизатор напряжения имеет не 100% КПД. Рекомендуемое напряжение для питания через пин VIN — от 7 до 12 вольт.


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

Аналоговые входы: A0 — A5, A6 — A11 (на цифровых выводах 4, 6, 8, 9, 10 и 12). Всего Micro имеет 12 аналоговых входов, причем входы с A0 по A5 маркированы непосредственно на выводах, а другие, к которым также можно получить доступ в программе с использованием констант с A6 до A11, распределены соответственно на цифровых выводах 4, 6, 8, 9, 10 и 12. Все они также могут использоваться в качестве цифровых вход/выходов. Они измеряют поступающее на них напряжение и возвращают значение от 0 до 1024 при использовании функции . Эти пины измеряют напряжение с точностью до 0,005 В.

Широтно-импульсная модуляция (ШИМ) Arduino Micro

У ардуино микро есть 7 выводов ШИМ, это пины 3, 5, 6, 9, 10, 11 и 13. Для использования ШИМ у Arduino есть специальная функция .

Другие пины:

  • Пины 0 (RX) и 1 (TX) используются для передачи данных по последовательному интерфейсу.
  • Выводы для связи по интерфейсу SPI не подключены к цифровым пинам.
  • Так же на выводе D13 имеется встроенный в плату светодиод.
  • Пины 2 (SDA) и 3 (SCL) могут использоваться для связи с другими устройствами по шине I2C. Подробнее про этот интерфейс вы можете почитать на википедии . В среде разработке Arduino IDE есть встроенная библиотека «wire.h» для более легкой работы с I2C.

Физические характеристики

Arduino Micro имеет следующие размеры: длина 48 мм и ширина 18 мм. Однако разъем USB немного выпирает за пределы печатной платы. Arduino Micro весит всего около 12 грамм. Плата имеет 4 отверстия для возможности ее закрепления на поверхности. Расстояние между выводами равняется 2,54 мм.

Принципиальная схема Arduino Micro


Добрый день, MySKU!
Сегодня мы продолжим изучение такой замечательной штуки как Arduino, путем использования модификации Pro Micro в очередной безумной поделке! В очередной раз убедимся, что ардуино это не только скучно, но и весело. Также мы научимся оживлять старые геймпады и подключать их к ПК и даже создавать свои собственные устройства ввода! Если вам интересно, то заходите под кат!

09.01.2015 Небольшой апдейтик + новое видео.

Вступление

Отпраздновав новый год, отдохнув пару дней, и поиграв с детьми в снежки, приходишь к тому, что выходных еще много, а делать уже ну совсем нечего… А что делает настоящий мужчина когда он устает лежать на диване? Правильно! - продолжает лежать на диване, но вот беда: в этом году я бросаю курить! И бросается ну очень тяжело… И вот когда настроение стало уже совсем ни к черту, и единственным желанием было желание кого-нибудь убить, я решил перебрать посылки полученные незадолго до нового года и в одной из посылок находилась вот эта маленькая прелесть

Arduino Pro Micro


Посмотрев на нее, в голове появился зачаток идеи, который в конечном итоге привела к весьма интересному результату…

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

Заказ

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

Упакованы платы были в антистатические пакетики, которые находились в небольшой картонной коробочке.

Адруино Мега, Нано, Микро

Прелесть этой версии Ардуино в том, что USB интерфейс на ней реализован силами самого контроллера ATmega32u4, что дает нам возможность настроить USB интерфейс так, что при подключении плата будет распознаваться как стандартное HID устройство (клавиатура, мышь и… геймпад) и даже больше, энтузиасты активно работают над расширением данного списка.

Часть первая

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

А нашел я старый геймпад от Sony PlayStation

Ну и что тут думать? Будем собирать геймпад…

«Железная» часть

Разбираем устройство

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

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

Процедура простая, главное - быть аккуратным.

Для полноты эксперимента я решил приклеить на плату небольшой потенциометр, которым я проверю работу аналоговых осей в будущем геймпаде.

Подключение потенциометра к ардуинке - простейшая задача. Один крайний контакт подключаем к 5 вольтам, второй к земле, а центральный подаем на один из аналоговых пинов, например - A0

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

Спереди я просверлил дырочку для потенциометра

Ардуино я разместил также с обратной стороны и припаял провода от кнопок к цифровым пинам, а общий провод припаял к земле.

Закрепил все термоклеем

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

И прорезал дырочку в корпусе, чтобы иметь к нему доступ.

Закрыл корпус и приступил к программной части

Программная часть

А вот тут случилась заминка и добрую половину дня я убил на поиски библиотеки, и главное - попытки установить её.

Мной была обнаружена замечательная библиотека от NicoHood

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

Supported HID devices:

Keyboard with Leds out (modifiers + 6 keys pressed at the same time)
Mouse (5 buttons, move, wheel)
Media Keys (4 keys for music player, webbrowser and more)
System Key (for PC standby/shutdown)
1 Gamepad (32 buttons, 4 16bit axis, 2 8bit axis, 2 D-Pads)
Supported Arduinos:

Uno
Mega
Leonardo
(Pro)Micro
Any other 8u2/16u/at90usb162/32u2/32u4 compatible board

Скачиваем распаковываем и запускаем arduino.exe

В меню Инструменты\плата выбираем Arduino Micro Hid-Project

В меню Инструменты/USB-cores выбираем желаемый режим работы, в нашем случае serial + gamepad hid

Что заставит нашу ардуину определятся как геймпад

Ими написан монструозный комбайн-приложение, которое вытягивает из игр различные данные, будь то показания спидометра или тахометра, либо значения перегрузок по осям, крен и еще очень много параметров. Затем это приложение выполняет с ними нужные вам преобразования и отправляет на ваше железо. В роли железа выступают различного рода индикаторы и ДАЖЕ САМОДЕЛЬНЫЕ СИМУЛЯТОРНЫЕ УСТАНОВКИ С КУЧЕЙ ОСЕЙ. Я был просто поражен при виде всего этого - это потрясающе!

Порывшись в галерее на портале нашел скетч для ардуино и профиль для x-sim, который выполняет функционал близкий к тому, что требовалось мне

Спасибо товарищу tronicgr за то, что он поделился своим профилем и скетчем. Самостоятельно с нуля разбираться в X-sim мне пришлось бы долго.

Итак, взяв за основу прошлый скетч я приступил к написанию нового. Можете скачать его отсюда

В первой части мы подключаем библиотеку FastLed и указываем количество диодов на ленте и пин, к которому она подключена. Также мы указываем пины для кнопок и осей и объявляем переменные

В фунции setup мы инициализируем serial соединение с компьютером на скорости 115200, настраиваем яркость ленты и включаем встроенную подтяжку для цифровых входов. Ну и в самом конце инициализируем геймпад.

В главном цикле идет даже немного упрощенный код для геймпада из прошлого примера

Затем идет код взятый с портала x-sim, в котором ардуина получает данные из serial шины и записывает их в буфер, а затем разбивает по переменным, масштабирует данные о количестве оборотов до 8 (по количеству диодов на ленте) и сообщает, что данные получены

Затем в зависимости от полученных данных мы зажигаем нужное количество диодов с необходимым цветом и отправляем команду на ленту.

Отправляем скетч.

Скачав последнюю версию программы x-sim, устанавливаем её (лучше сразу удалить из папки с установленной программой папку «interfaceplugins» , чтобы избежать ненужной долгой проверки всех интерфейсов при запуске), открываем профиль скачанный с форума по ссылке выше, это автоматически настроит программу на получение нужных данных. Открываем программу «X-sim Conveter» и в разделе Output -> universal serial output сверху выбираем нашу микро и жмем «add entry to list» и внизу копируем строчку с шаблоном данных из стандартного порта профиля в такую же строчку но в порт нашей ардуины, старый порт можно удалить после этого. Цифра «95» в шаблоне (на скриншоте 77) - это максимальные обороты поделенные на 100, к сожалению придется забивать руками под вашу игру, я использовал значения 75-80 для Dirt 2.

Запускаем вторую половину программы «X-sim Extractor» она автоматически просканирует компьютер на наличие совместимых игр и создаст их список слева. После этого для каждой игры можно отключить передачу данных на приводы и прочее, хотя это и не мешает.

Все! Если все собрано и настроено, то можно выбрать игру и жать кнопку «Play Game» , и в момент запуска или после него надо нажать кнопку старт в «X-sim Converter».

Пользуясь данными библиотеками и примерами описанными здесь можно создать любой, даже самый безумный контроллер для вашего ПК или андроид устройства (да да, устройство должно определиться как стандартное устройство ввода) с любыми датчиками: температуры, пульса, давления, ну и датчиком влажности, например для игры в хоррор;-). Подключайте старые геймпады от денди и играйте в эмуляторы на родных для игр контроллерах. А если у вас есть большое желание, то можете даже собрать полноценный симулятор пользуясь замечательной программкой x-sim. Проявите фантазию!

Апдейт

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

В Dirt 3 наблюдается странный и заметный input lag, не знаю откуда и почему, возможно что-то с настройками игры или баг (все-таки это баг игры, я нашел похожие отзывы в гугле).

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

Вот новое видео (возможно будет некоторое время обрабатываться ютюбом)

+170 +325

Эта статья также доступна на следующих языках: Тайский

  • Next

    Огромное Вам СПАСИБО за очень полезную информацию в статье. Очень понятно все изложено. Чувствуется, что проделана большая работа по анализу работы магазина eBay

    • Спасибо вам и другим постоянным читателям моего блога. Без вас у меня не было бы достаточной мотивации, чтобы посвящать много времени ведению этого сайта. У меня мозги так устроены: люблю копнуть вглубь, систематизировать разрозненные данные, пробовать то, что раньше до меня никто не делал, либо не смотрел под таким углом зрения. Жаль, что только нашим соотечественникам из-за кризиса в России отнюдь не до шоппинга на eBay. Покупают на Алиэкспрессе из Китая, так как там в разы дешевле товары (часто в ущерб качеству). Но онлайн-аукционы eBay, Amazon, ETSY легко дадут китайцам фору по ассортименту брендовых вещей, винтажных вещей, ручной работы и разных этнических товаров.

      • Next

        В ваших статьях ценно именно ваше личное отношение и анализ темы. Вы этот блог не бросайте, я сюда часто заглядываю. Нас таких много должно быть. Мне на эл. почту пришло недавно предложение о том, что научат торговать на Амазоне и eBay. И я вспомнила про ваши подробные статьи об этих торг. площ. Перечитала все заново и сделала вывод, что курсы- это лохотрон. Сама на eBay еще ничего не покупала. Я не из России , а из Казахстана (г. Алматы). Но нам тоже лишних трат пока не надо. Желаю вам удачи и берегите себя в азиатских краях.

  • Еще приятно, что попытки eBay по руссификации интерфейса для пользователей из России и стран СНГ, начали приносить плоды. Ведь подавляющая часть граждан стран бывшего СССР не сильна познаниями иностранных языков. Английский язык знают не более 5% населения. Среди молодежи — побольше. Поэтому хотя бы интерфейс на русском языке — это большая помощь для онлайн-шоппинга на этой торговой площадке. Ебей не пошел по пути китайского собрата Алиэкспресс, где совершается машинный (очень корявый и непонятный, местами вызывающий смех) перевод описания товаров. Надеюсь, что на более продвинутом этапе развития искусственного интеллекта станет реальностью качественный машинный перевод с любого языка на любой за считанные доли секунды. Пока имеем вот что (профиль одного из продавцов на ебей с русским интерфейсом, но англоязычным описанием):
    https://uploads.disquscdn.com/images/7a52c9a89108b922159a4fad35de0ab0bee0c8804b9731f56d8a1dc659655d60.png