Arduino pro micro распиновка. Разные платы Arduino: распиновка и схема подключения. Компактные платы ардуино

  • 04.11.2019

В своей статье я хотел бы подробно и с иллюстрациями рассказать про схему подключения и распиновку 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) и происходит перезагрузка микроконтроллера (кнопка сброса).

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

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

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


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

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

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

  • RAW — внешнее питание для платы. Когда плата запитана от порта USB, на данном выводе будет напряжение около 4,8В (5В на USB минус падение на диоде Шоттки). Внешний источник питания следует подключать через этот вывод, допустимое напряжение — до 12В
  • VCC — напряжение, подаваемое на микроконтроллер (выход после регулятора напряжения на плате). Если плата запитана от внешнего источника, этот вывод можно использовать для питания других устройств стабилизированным напряжением
  • RST — вывод сброса микроконтроллера, подтянут к +5В резистором на 10кОм. Для сброса микроконтроллера его следует соединить с GND
  • GND — общий.

Главное достоинство данной платы, кроме цены (менее 200 рублей) — это наличие встроенного в микроконтроллер USB порта, который может выступать не только как интерфейс связи Ардуино с ПК, но и как обычное USB-устройство ввода (клавиатура, мышь и даже джойстик). При этом данное устройство определяется и устанавливается ОС без дополнительных драйверов. Драйвер необходим только непосредственно для программирования самой платы.

При работе в программе нужно выбирать работа с Arduino Leonardo:

Данное устройство можно купить еще вот .

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

Микроконтроллер 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 соединителя. Компоновка позволяет легко размещать плату в беспаечном макете.

Добрый день, 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

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