Arduino pro micro размер платы. Опять "Безумные эксперименты" или обзор Arduino Pro Micro

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

Arduino Micro , именно так без приставки Pro , звучит название оригинальной платы, которая была разработана совместно с компанией Adafruit. В китайском варианте плата была модифицирована, это отразилось на размерах и цене.

Оригинальная плата на момент написания этой статьи стоила €18 , в то время как китайский аналог обошёлся мне за $3.63 с доставкой.

Для наглядности оригинальная плата Arduino Micro и китайский аналог. Размер оригинальной платы 48 х 18 мм.

Китайский аналог имеет такие же размеры (33 х 18 мм) как и плата Pro Mini, видимо поэтому в название была добавлена приставка Pro .

Обратная сторона плат.

Плату удалось уменьшить исключив из схемы некоторые узлы и разместив более плотно оставшиеся радиокомпоненты. Были исключены: разъем ICSP (для внутрисхемного программирования), физическая кнопка сброса, светодиод на 13 пине и ряд радиокомпонентов, которые необходимы для реализации соответствующих напряжений на пинах «5V» и «3V3».

В погоне за минимализмом и ценой, китайский аналог Pro Micro лишился следующих пинов, которые присутствуют на оригинальном Arduino Micro:

- цифровые пины 12, 11 и 13, два крайних по совместительству являются ШИМ выводами;
- аналоговые A4, A5 и A11;
- пин RX_LED/SS - данный вывод соединён со светодиодом RX, но так же может использоваться как вывод SS в SPI-интерфейсе;
- пины с напряжениями 5V и 3,3V;
- пин AREF

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

Плата построена на микроконтроллере ATmega32u4.

Отличия Ардуиносовместимых плат на ATmega32u4, от плат с другими микроконтроллерами:

1. В ATmega32u4 встроен USB-контроллер, поэтому отпадает необходимость в отдельных USB-UART микросхемах таких как: ATMEGA16U2, CH340G , PL2303 и FT232.

2. Может эмулировать клавиатуру, мышь или игровой манипулятор и определятся в системе как HID-устройство.

3. Устройства построенные на ATmega32u4 имеют виртуальный последовательный порт, что приводит к разрыву USB-соединения с компьютером, при каждом сбросе платы. Эту особенность нужно учитывать при установке драйверов, прошивки и взаимодействии с другими устройствами.

4. При обращении к аппаратному последовательному порту нужно использовать класс Serial1 , вместо Serial , как в других Ардуино-платах.

В семействе платформы Arduino имеется две платы, построенные на ATmega32u4: Arduino Leonardo и Arduino Micro . Основное их отличие - форм-фактор. Плата Leonardo построена в форм-факторе Uno, что бы легко было цеплять различные шилды. Плата Micro построена в компактном корпусе, как Arduino Nano.

Оригинальная плата Arduino Micro бывает только в варианте 5В, с разведёнными на плате пинами 5 и 3,3В. Китайский аналог Pro Micro может быть в 2-х вариантах: 3,3 или 5 вольт питания. Если не знаете на какое напряжение ваша плата, посмотрите на частоту кварца, которая указана на его корпусе. 5-вольтовая плата работает на частоте 16 МГц, а 3,3-вольтовая на 8 МГц.

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


Входы и выходы Pro Micro.

18 цифровых вывода могут работать как входами, так и выходами. Напряжение на выводах 5 или 3,3В в зависимости от версии платы, при токе в 40мА на каждом пине;
- последовательный интерфейс с пинами TX и RX;
- I2C интерфейс с пинами SDA и SCL;
- ШИМ выводы: 3, 5, 6, 9, 10;
- SPI интерфейс с пинами MISO, MOSI и SCK;
- Светодиоды сигнализирующие: наличие питания, RX и TX;
- 9 аналоговых входов A0-A3 и A6-A10;
- RESET – вывод для перезагрузки микроконтроллера, аналогичен физической кнопки сброса.


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

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

Про питание Pro Micro.

Pro Micro может быть запитана от USB порта вашего ПК, для этого используется USB разъём на плате.

Для питания платы от внешнего не стабилизированного источника, питание нужно подавать на вывод RAW . На этот вывод рекомендуется подавать от 7 до 12В. Если питать плату от 6В, плата может работать не стабильно. При напряжении более 12В, встроенный стабилизатор напряжения может сгореть. С этого вывода, напряжение будет преобразовываться внутренним стабилизатором до необходимого и питать микроконтроллер.

VCC – данный пин можно использовать как для подачи напряжения для питания платы, так и для снятия напряжения, для запитки всевозможных датчиков / сенсоров. Для питания платы через этот пин, нужно строго подавать то стабилизированное напряжение, на которое рассчитана плата. С этого пина напряжение не идёт через внутренний стабилизатор, а напрямую подаётся на контроллер, поэтому если оно будет выше необходимого - плата сгорит.
При питании платы через USB разъём или RAW, на данном выводе будет присутствовать напряжение, равное напряжению питания Pro Micro. Этим напряжением можно запитывать различные датчики. Максимальный выходной ток для всей платы не должен превышать 500мА, на отдельный пин не больше 5 - 10мА.

J1 – Если плата прошита загрузчиком Arduino Micro, то эти контакты используются при конфигурировании версии платы. При 5-вольтовой версии контакты запаяны, при 3,3В - разомкнуты. Поскольку у меня плата распознаётся как «Leonardo», эта перемычка не используется и она разомкнута.


Установка драйвера на Pro Micro.

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

В диспетчере устройств появится неизвестное устройство "Arduino Leonardo ". Почему так, а не "Pro Min i"? Потому что разработчик прошил микроконтроллер загрузчиком от Leonardo, на работе это никак не скажется.

Для Windows 10 ничего не придётся скачивать, драйвер установится автоматически.

Для остальных систем семейства Windows скачиваем драйвер и устанавливаем его в ручном режиме.

При установки драйвера на Windows 7 у меня появилось сообщение о невозможности проверки издателя драйверов. В таком случае выбираем «Всё равно установить этот драйвер ».

В итоге, в диспетчере устройств появится устройство "Arduino Leonardo ". Рядом будет указан номер виртуального COM-порта, в моём случае это COM14 .

Загрузка скетча в Arduino Leonardo и Pro micro.

Попробуем загрузить в плату скетч Blink и убедится в её работоспособности. Открываем стандартный скетч "Blink". Выбираем в Arduino IDE плату.

Поскольку загрузчик в ней от Leonardo, значит эту плату и выбираем: "Инструменты" - Плата: "Arduino Leonardo".

Если у вас загрузчик будет от Arduino Micro, значит выбираете его. Не забывайте так же выбрать версию платы 5 или 3,3В, как это выбирается с платой Pro mini. Отсюда выплывает объяснение, почему 5-вольтовый китайский аналог Micro, прошит загрузчиком Leonardo. Плата Leonardo присутствует в Arduino IDE, а плату Pro Micro нужно добавлять вручную через менеджер плат. Видимо что бы пользователи не заморачивались в этих настройках, плату прошивают как Leonardo. Подобные доводы имеют место быть, если мы говорим про версию платы 5В. Если нужна плата на ATmega32u4 с логическими уровнями 3,3В, без ручного добавления платы в Arduino IDE не обойтись.

Выбираем номер виртуального COM-порта, который прописан в Диспетчере устройств, в моём случае это COM14 .

Нажимаем кнопку "Вгрузить" (Upload) и ждём загрузку скетча.

В процессе загрузки в колонках услышите звук извлечения / подключения USB устройства. Это происходит потому что последовательный порт с которым взаимодействует устройство, на платах Leonardo и Micro является виртуальным. При каждом автоматическом сбросе платы, виртуальный порт исчезает, затем вновь появляется, чем объясняется характерный звук в колонках.
Обычно скетч загружается в плату без нажатия кнопки reset, видимо поэтому на китайском аналоге решили избавится от этой кнопки. В редких случаях, когда автоматический сброс не сработает, нужно использовать физическую кнопку сброса или пин reset.

Загрузив в плату скетч "Blink" мы не сможем наблюдать мигание светодиода. Дело в том, что на плате Pro Micro нет светодиода подключенного к 13 пину. Придётся его отдельно подключать к ножкам через резистор . Можно поступить по другому, на плате имеются светодиоды RX и TX, можно ими помигать.

Загружаем следующий скетч:

int LED_RX = 17;
void setup() {
Serial.begin(9600);
pinMode(LED_RX, OUTPUT);
} void loop() {
Serial.println ("Hello World!");
digitalWrite(LED_RX, LOW);
delay(1000);
digitalWrite(LED_RX, HIGH);
delay(1000);
}

Увидим как мигает RX светодиод.

Если открыть монитор последовательного порта, увидим надпись Hello World! и теперь светодиоды RX и TX будут перемигиваться.

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

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

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 — платформа конструктор под создание проектов электроники. Проект Arduino содержит физическую печатную плату (программируемый микроконтроллер) плюс интегрированную среду разработки (IDE). Эта среда совместима с классическим ПК и успешно используется для написания компьютерного кода с последующей загрузкой на физическую плату. Платформа Arduino быстро завоевала популярность среди начинающих электронщиков. Это понятно, потому как конструктор Arduino неприхотлив в отношении аппаратного обеспечения. К тому же налицо форм-фактор, где все функции современного микроконтроллера разбиты на мелкие пакеты.

СОДЕРЖИМОЕ ПУБЛИКАЦИИ:

Конструктор Arduino: совершенству нет предела

Серия «Unos» виделась одной из самых популярных плат в , считалась отличным выбором для новичков. Но это видение исчезло с появлением SparkFun Pro Micro – как заявлено разработчиками, крутой новинки. Один чип на плате полностью перекрывает функциональность «Unos», «Duemilanoves» и «Diecimeillas». Посмотрим?

Обзор оборудования SparkFun Pro Micro

Прежде чем заниматься вопросами установки и применения SparkFun Pro Micro, рассмотрим конфигурацию платы с аппаратными причудами.

Также отметим, что первая часть наименования продукта — это всего лишь торговая марка известного магазина электроники, обслуживающего жителей США.

Контактный интерфейс печатной платы

Все входы/выходы микропроцессора SparkFun Pro Micro сосредоточены на двух параллельных кромках платы. Часть контактов предназначается для подвода или отвода линий питания. Другая часть контактов предназначена под функции системного ввода-вывода (I/O) – цифровые или аналоговые.

Схема расположения клеммных групп: PWM — интерфейс ШИМ; Analog — аналоговые сигналы; SPI — последовательный периферийный интерфейс; I2C — последовательная ассиметричная шина; Serial — линии сигналов TX/RX; Arduino — контактный шлейф материнки; Power — шина 3.3 или 5.0В

Функционал SparkFun Pro Micro останется «выключенным», пока линия сброса не возвратится к состоянию с высоким потенциалом.

Клемма GND, соответственно, является общей шиной платы конструктора, где присутствует цокольное напряжение (0В опорного напряжения) системы.

Клеммы системного ввода-вывода (I/O)

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


Плата соответствует своему названию «микро». Размеры текстолита, на котором размещены миниатюрные радиодетали, сопоставимы с размерами пятирублевой монеты

Эти контакты являются частью IDE и применяются для обращения к Arduino с помощью целочисленных значений от 0 до 21. (Контакты A0-A3 могут использовать под цифровой или аналоговый сигнал).

Девять контактов имеют аналого-цифровые преобразователи (АЦП) и могут использоваться как аналоговые входы. Они полезны для работы, к примеру, с потенциометрами или другими аналоговыми устройствами с использованием функции analogRead.

На плате SparkFun Pro Micro имеются пять контактов, поддерживающих передачу сигналов широтно-импульсной модуляцией (PWM), что позволяет использовать возможности аналоговых выходов с использованием функции analogWrite.

Отмеченные клеммы обозначены на плате конструктора круговым кантом белого цвета. Также доступны аппаратные клеммы: UART, I2C, SPI. Эта контактная группа предназначена для взаимодействия с цифровыми устройствами:

  • дисплеями ЖК,
  • радио-модулями XBee,
  • сенсорами IMU,
  • другими датчиками.

Плата конструктора SparkFun Pro Micro поддерживает пять внешних прерываний, которые позволяют мгновенно вызывать функцию триггера, при высоком или низком уровне потенциала на контакте (или и тем и другим).

Если назначается прерывание контакта, необходимо помнить о конкретных прерываниях, вызывающих действия триггера:

  • клемма 0 прерывание 2,
  • клемма 1 прерывание 3,
  • клемма 2 прерывание 1,
  • клемма 3 прерывание 0,
  • клемма 7 прерывание 4.

Конфигурация SparkFun Pro Micro предусматривает применение трёх светодиодов разного свечения: красного, жёлтого, зелёного. Красный светодиод в активном состоянии отображает наличие питания.


Светодиодная индикация состояния и линия сброса: 1 — индикатор желтого света; 2 — индикатор зелёного света; 3 — индикатор красного цвета; К1 — линия сброса

Два других светодиода указывают факт передачи данных через USB интерфейс. Желтый светодиод представляет данные USB, поступающие по каналу RX, а зеленый светодиод указывает отправление данных по каналу TX.

Напряжение питания и частота

Интерфейс USB можно брать от компьютера, USB-концентратора, внешнего адаптера. Последнее устройство, как правило, обеспечивает повышенную мощность.

В качестве альтернативы, когда нет никакой возможности применить USB-интерфейс, микроконтроллер SparkFun Pro Micro может питаться через контакты RAW или VCC.

Питание, поступающее через клемму RAW, регулируется до правильного (допустимого) рабочего уровня (5.0В или 3,3В). Максимальный порог входного напряжения RAW не должен превышать 12В.

Если подключение SparkFun Pro Micro осуществляется через клемму VCC, регулировка входного питания не предусматривается.


Вариант подключения энергии батарей на Про Микро, которым поддерживается рабочий вольтаж 5.0В. На адаптере используются четыре батареи по 1.5В

Поэтому клемму VCC разумно применять только в случае наличия источника питания с конкретным выходным уровнем – 3.3В или 5.0В. Кстати, 3.3-вольтную версию допускается питать от литий-ионных батарей или аккумуляторов иного типа.

Программатор микросхем SPI Flash на базе Arduino

Возможности конструктора Arduino в области базовой электроники безграничны. Между тем электронщикам этот конструктор должен быть интересен ещё и свойствами программатора.

Так, на базе платы расширения SparkFun Pro Micro с лёгкостью собирается широко распространённых SPI Flash микросхем 25 серий.


Схема программатора на основе платы расширения Arduino: U+ — индикатор рабочего состояния; RX — индикатор приёма данных; TX — индикатор передачи данных

На практике подтверждена успешная работа программатора на базе SparkFun Pro Micro с чипами:

  • PM25LD010
  • W25Q64FVSIG
  • 25P16VG,
  • MX25l8005
  • 25l8000
  • PM25lV512
  • 25Q128FVSG
  • 25L3206E

Для выполнения функций программного характера требуется софт программатора , а также системные библиотеки и скетч-файл . Здесь ПО для 64-битных версий Windows. Особенности монтажа: рекомендуется делать проводники максимально укороченные, скрученные в жгут.

Основополагающие принципы Arduino



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: