На этот раз я поведаю о том, как сделать Ардуино своими руками, да еще и без паяльника. Схема этого простого Ардуино-клона называется Shrimp. Самодельный Shrimp полностью совместим с Arduino IDE, так что можно легко запускать на нем любые скетчи.
Сразу следует отметить, что для создания Shrimp с нуля потребуется рабочая плата Ардуино. Она необходима для установки загрузчика на пустой микроконтроллер. Если под рукой нет Ардуино, то можно приобрести уже прошитый микроконтроллер и сразу прыгнуть к разделу 2.
Для создания Shrimp нам потребуется:
- микроконтроллер ATMEGA328P-PU;
- резистор 10 кОм;
- конденсатор 10-100 мкФ, электролитический;
- конденсатор 22 пФ, керамический — 2 шт;
- конденсатор 100 нФ, керамический — 4 шт;
- кнопка тактовая;
- кварц 16 МГц;
- макетная плата;
- набор перемычек для макетной платы;
- USB — UART конвертер на основе FT232R, CP2102 или CH340.
1. Копирование загрузчика на чистый микроконтроллер
Обычно, чтобы записать программу в микроконтроллер требуется использовать отдельное устройство — программатор. Ардуино же хороша тем, что программатор ей не нужен. Вместо него, используется особая микропрограмма, называемая загрузчиком (bootloader). Этот загрузчик умеет принимать программы из вне и записывать их во флеш-память микроконтроллера.
Так вот, загрузчик записывается в микроконтроллер на заводе. И чтобы заставить наш Shrimp работать, мы должны повторить эту процедуру. Вот здесь-то нам и потребуется другая плата Ардуино, о которой упоминалось в самом начале. Процедура установки загрузчика состоит из трёх шагов.
Шаг 1. Установка на рабочую плату Ардуино специальной программы — OptiLoader
Открытая программа OptiLoader позволяет прошить загрузчик optiboot в микроконтроллер нашего Shrimp. На момент написания статьи OptiLoader поддерживал микроконтроллеры: ATmega8, ATmega168, ATmega168P, ATmega168PB, ATmega328, ATmega328P, ATmega328PB. Качаем архив по одной из ссылок:
- из официального репозитория: https://github.com/WestfW/OptiLoader
- с нашего сайта: http://git.robotclass.ru/download/Arduino/optiLoader.zip
Распаковываем архив и открываем скетч в Arduino IDE. Загружаем скетч в рабочую плату Ардуино. Отключаем Ардуино от питания USB.
Примечание. Если скачать программу с github, то нужно будет переименовать папку «optiLoader-master» в просто «optiLoader»
Шаг 2. Подключение чистого микроконтроллера
Соединяем рабочую плату Ардуино с чистым микроконтроллером по приведенной схеме. Здесь все очень просто. Внимательно смотрим на картинку, вставляем проводки, семь раз проверяем.
Принципиальная схема
Внешний вид макета
Шаг 3. Прошивка загрузчика (bootloader)
Теперь подключим Ардуино к питанию через USB. Сразу после включения, программа начнет копирование загрузчика на чистый микроконтроллер. При это будут активно мигать светодиоды RX и TX. Как только светодиоды перестанут мигать — копирование окончено.
Если что-то пошло не так и светодиоды не мигают, можно открыть COM-монитор. OptiLoader отображает весь процесс копирования загрузчика. В случае успеха, отчет о процедуре будет выглядеть следующим образом.
2. Загрузка программ на Shrimp
Итак, теперь у нас есть самодельный Arduino с прошитым загрузчиком. Чтобы залить на него какой-нибудь скетч, нам потребуется частично разобрать предыдущую схему, и дополнить её новыми элементами.В частности, добавляется кнопка сброса, и защитные цепи питания.
После того как схема собрана, подключаем её к компьютеру через USB — UART модуль. Выбираем в Arduino IDE тип платы «Arduino Uno» и правильный COM-порт, а затем загружаем программу мигания светодиодом. Готово!
Примечание. Если у вас не получается загрузить программу, попробуйте поменять местами провода RX и TX на USB-UART мосту.
Полезные ссылки
Если используется UCB-UART мост на основе CP2102 — устанавливаем драйвера с официального сайта silabs:
http://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx
Если FT232R, то отсюда:
http://www.ftdichip.com/Drivers/VCP.htm
Если CH340, то качаем китайские драйвера:
http://arduino-project.net/CH341SER.ZIP
Не думал, что получится собрать с первого раза.
Смутил диод на картинке, параллельно подтягивающему сопротивлению на кнопку, и не мешало бы добавить схему, которая пересобирается после прошивки (нарисовано не очень хорошо, плохо понятно, куда что идёт).
На завершающей картинке светодиод на ногу D9 подключен, это может ввести в замешательство начинающих. Я сам с этим ещё только пару недель занимаюсь, и меня это сбило с толка.
Наборчик хороший, без лишнего обвеса.