Arduino своими руками с USB портом
Хочу представить вам свой проект-вариант широко известного контроллера Arduino.
Начну с короткой предыстории. Электроникой и радиотехникой я занимаюсь больше 10 лет. А вот интерес к микроконтроллерам появился не так давно. Изучал язык С, программировал микроконтроллеры от фирмы Atmel, успех был переменчивым. И как-то, изучая просторы интернета на тему программирования микроконтроллеров, попал на сайт www.arduino.ru. Их контроллеры мне понравились, захотелось такой себе. Поскольку паяльник «в руках держать умею», покупать контроллер отказался и начал искать в интернете информацию по самостоятельному его изготовлению, но ничего подходящего не нашел. Вариант платы, которую собирают на страницах http://robocraft.ru/blog/arduino/19.html сайта, мне не подходит, да и не сильно нравится. Хотелось с USB разъемом. Скачал файлы схем оригинальных версий контроллера Arduino, даташит на микросхему FT232R, распечатал статью «Ардуино хоум мэйд» (ссылка выше) и думал как это все соединить, чтобы получилось то, что я хотел найти. И получилась вот такая схема: Используемые в схеме детали:
Резисторы я использовал SMD типоразмером 0805:
— R1, R2, R4, R7 – от 300 Ом до 1 кОм (какие найдете);
— R3 – 10 кОм;
— R5, R6 – 1 кОм. Конденсаторы:
— С2, С3, С5, С13, С8, С10, С11 – SMD (0805) номиналом 0,1 мкф;
— электролиты С1, С4, С9, С12 – я использовал по 22 мкф*50 В, мне они подошли по высоте. Номинал не особо важен, не ниже 10 мкф на напряжение не ниже 10 В, кроме С9, его напряжение должно быть больше не 20 % напряжения питания внешнего источника;
— С6, С7 – керамика по 22 пф. Светодиоды любые (форма, габариты, цвет) на ток 15-20 мА. Диод D5 – 1N4007 тоже в SMD корпусе.
Кварц – 16 МГц. Микросхемы:
— DA1 – L7805 в корпусе ТО220;
— DD1 – FT232RL (хорошая микра, но в большем корпусе не выпускают);
— DD2 – сам наш микроконтроллер, я использовал ATmega168, можно ATmega8, думаю, что и ATmega328 тоже подойдет, главное загрузить соответствующий загрузчик (bootloader). По итоговой стоимости точно сказать не могу (SMD компоненты не покупались, нашлись в коробочках электронщика-радиолюбителя). А затраты были следующие (г. Ростов-на-Дону): FT232RL – 200 р., ATmega168 – 220 р., L7805 – 15 р., разъемы, предохранитель, гребенки, панелька, кнопка – около 100 р.
При подключении собранного устройства к компьютеру определится новое устройство, нужно установить драйвер, указав путь к директории «FTDI USB Drivers» (в скаченной программе Arduino IDE). С печатной платой (ПП) были некоторые проблемы, но мне помогла картинка ПП в статье. Все распиновки и расстояния разъемов совпадают с оригинальной платой ардуино, можно будет подсоединять различные arduino-совместимые платы расширения. Назначение этого контроллера может быть самое различное – от «учебника» по программированию до создания серьезных охранных систем. Информации по его применению в интернете очень много.
Работает контроллер просто. На компьютер устанавливается программа Arduino IDE, скаченная бесплатно с официального сайта www.arduino.cc. В ней Вы пишите свою программу (скетч) для исполнения контроллером. Потом, нажимая кнопку в среде Arduino IDE «загрузить», компьютер компилирует Вашу программу в язык понятный микроконтроллеру и через виртуальный com порт, созданный микросхемой FT232R, передает ее микроконтроллеру. После загрузки программы, она начинает сразу исполняться, если не отключено питание контроллера. Также микросхема FT232R имеет выходной сигнал для автоматического перезапуска микроконтроллера, необходимого при загрузке скетча. Плата контроллера может питаться как от usb, так и от внешнего источника питания (8-25 В) для чего установлен микросхемный стабилизатор L7805. Присутствует на плате предохранитель 500 мА по +5 В от usb, чтобы не повредить usb порт при неполадках в плате контроллера. С помощью разъема ICSP можно программировать микроконтроллер внешним программатором. Кнопка, установленная на плате, сбрасывает работу микроконтроллера, и он начинает исполнение загруженной программы заново. Диод D5 защищает микроконтроллер от переполюсовки питания. Фото готового контроллера:
Расположение некоторых деталей на фото платы не совпадает с файлом ПП, по причине совершенствования на момент создания статьи. Файл ПП в программе Sprint-Layout 5.0 прилагается. Правильно собранный и прошитый контроллер начинает работать сразу. Отмечу – что после первой (и возможно последующей) загрузки бутлоадера, начинает моргать с небольшой частотой светодиод D3. Прошить бутлоадер готового устройства несложно. Самая сложность заключается в наличие программатора. Поскольку я имел опыт программировать микроконтроллеры, то у меня уже был собран программатор Prottoss AVR910. Лошадка рабочая, автору 5 из 5! Далее подключаем программатор к плате ардуино, открываем программу для программирования микроконтроллеров AVR (я использовал CodeVisionAVR), открываем окно прошивки микроконтроллера, нажимаем load flash, находим наш (для ATmega168) файл прошивки в скаченном дистрибутиве «…arduino-1.0.1\hardware\arduino\bootloaders\atmega\ ATmegaBOOT_168_diecimila.hex. Далее необходимо выставить lock и fuse биты так, как показано на рисунке:
Узнать фьюз- и лок-биты для своего микроконтроллера можно посмотреть в файле: «…arduino-1.0.1\hardware\arduino\boards.txt», использовав калькулятор фьюзов для AVR (можно легко найти в интернете).
Если же у Вас нет программатора, но есть программатор у друга, соседа. то есть другой, более быстрый и полезный способ прошить загрузчик. Для этого нужно собрать программатор по этой схеме. Схема рабочая и проверенная мной. Простота этого метода заключается в том, что не нужно искать прошивку микроконтроллера, выставлять фьюз и лок-биты. При подключении этого программатора к компьютеру с установленными драйверами и подключенным программируемым МК, Вы, выбрав в программе Arduino IDE порт, на котором «сидит» программатор и свою прошиваемую плату и подключенный программатор, просто нажимаете на кнопку во вкладке сервис «прошить загрузчик» и радуетесь. Если же у Вас присутствует проблема «яйца и курицы», то я посоветую собрать вот этот программатор (сам его не собирал, но думаю вешь хорошая). Или погуглить интернет на тему AVRISP-mkII. Еще вложу архив с информацией по этому программатору с файлами и описанием. Про альтернативный метод прошивки бутлоадера можно почитать здесь.
Теперь (с устанвленными драйверами на компьютере, открываете программу Arduino IDE, во вкладке «Сервис» наводим курсор на вкладку «плата» и выбираем свое устройство (в моем варианте это – Arduino Diecimila or Duemilanove w/ ATmega168). Далее, там же, выбираем порт к которому подключен контроллер (можно посмотреть в диспетчере устройств компьютера). Реализуем свои мысли в скетче и радуемся работе контроллера! Все возникшие вопросы присылайте в личку.
Плату контроллера разработал и успешно использует ростовский радиолюбитель Ананьев Валерий. Логин на сайте: kaznachej
Список радиоэлементов
Прикрепленные файлы:
- diy_arduino.rar (2357 Кб)
Теги:
Ананьев В.
Опубликована: 2012 г.
0
0
Вознаградить Я собрал 0 0
Оценить статью
- Техническая грамотность
Оценить Сбросить
Средний балл статьи: 0 Проголосовало: 0 чел.
Комментарии (27)
| Я собрал ( 0 ) | Подписаться
Для добавления Вашей сборки необходима регистрация
0
Игорь 04.01.2013 09:59 #
Я в своей «деревне» смог найти только FT232BM, она в другом корпусе. В рунете прочитал, что она старее чем RL и требует большей обвязки. Вы не сталкивались с этой микросхемой? Насколько сильно изменится схема?
0
Павел 04.01.2013 14:29 #
Игорь на каждую микру есть свой даташит. Всегда начинайте с него. Вот конкретно ваш случай: http://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT232BM.pdf страница 14
0
Саша 13.02.2013 08:05 #
Не могу найти кварц на 16 МГц, есть 15.8 и 16.4. Будет ли схема работать?
0
Валерий 16.02.2013 23:03 #
Работать будет, вот как — это вопрос. Если будете требовать от контроллера точности в работе, то ожидания не оправдаются
0
Сергей 14.03.2013 12:18 #
Собрал данную плату, только вот вместо меги 168 есть атмега8, правда пришлось доработать печатку добавить Х3 четыре контакта для FT232. Подключил к компу, комп увидел сразу, нашел и установил дрова, чему я был удивлен, т.к. с первого раза заработало. Попытался загрузить boot loader светодиод горел во время загрузки, в конце написано ок (это из разряда — делаю то не зная что). Ну а сам вопрос такой: можно ли в данной версии использовать 8мегу? Или же надо 168 и выше
0
валерий 03.04.2014 22:09 #
Можно ставить мегу 88 и мегу 328 без проблем.
0
kamaz6141 19.03.2013 12:15 #
F1 — это предохранитель? Какие параметры? И тоже интересует можно ли использовать мегу8? Т.к. завалялось.
0
morokoriss 25.05.2013 10:59 #
F1 — предохранитель, ну какие параметры, ну обычно 500 мА, самое большое для USB я встречал 1 ампер. Ставьте 1,6 и не парьтесь. Только на 5 вольт его еще поискать нужно, в смд много где встречаются. Мега 8 конечно будет работать, только у неё памяти меньше и загрузчик соответственно другой будет.
0
morokoriss 25.05.2013 11:05 #
А прошить это дело лучше 5 проводками. Ибо это нужно сделать всего один раз, а то незнающие из-за этого будут париться ещё и по поводу Prottoss AVR910. А страшные рассказы про якобы сгоревшие LPT порты не более чем миф. Сколько не пытался, так и не смог его угробить, главное сначала коммутировать LPT, а только потом подавать питание и всё будет ровно. Отключать в обратной последовательности.
0
серёга 22.08.2013 21:50 #
atmega328 тоже пойдёт?
0
aspire89 25.08.2013 15:09 #
Собрал схему, контроллер поставил уже с прошитым загрузчиком из рабочей ардуины, в IDE выбрал соответствующую плату и порт.
При загрузке любого кода получаю ошибку:
Using Port : \\.\COM15
Using Programmer : arduino
Overriding Baud Rate : 57600
avrdude: Send: 0 [30] [20]
avrdude: Send: 0 [30] [20]
avrdude: Send: 0 [30] [20]
avrdude: Recv:
avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude done. Thank you.
Пробовал закоротить rx-tx, то все что отправляю приходит обратно. В чем может быть проблема?
0
alexandr 11.09.2013 10:04 #
Я такую проблему победил установкой старой версии драйверов для FT232RL из дистрибутива Arduino 1.0.4. Последняя версия с сайта FTDI ни как не хотела работать. При закорачивании Tx и Rx ответ то не приходил, то другие символы
0
Николай 30.09.2013 12:11 #
После прошивки FT232RL программами FT_PROG, Terminal — перестал опознаваться Windows. Собрано только подключение к USB. Это восстановить возможно?
0
Алексей 10.01.2014 12:19 #
А можете сказать какой предохранитель использовался? И что подразумевается под словом гребёнки и панелька?
0
kaznachej 18.02.2014 10:14 #
В этом варианте (начальном) стоит обычный выводной плавкий предохранитель на 0,5 А. Впоследствии был впаян самовосстанавливающийся предоханитель того же номинала.
0
Алексей 13.01.2014 10:30 #
Вот FT232R — стоит около 500 руб, а ATmega168 — 300 руб, + все пассивные компоненты, в итоге получится дороже чем готовая Ардуина. Но ради того, чтобы поиграть — можно попробовать.
0
валерий 03.04.2014 22:19 #
Это где вы такие цены взяли? В чип нн, мега168-120р. фт232-140р. И это ещё не самые низкие цены.
0
Алексей 23.06.2014 22:19 #
Это на дальнем востоке! Можете подсказать, пожалуйста, можно ли вместо smd кондёров использовать керамические? Такой же ёмкости
0
first-leon 24.08.2014 11:44 #
Arduino nano можно купить за 140 рублей например на AliExpress
А в ручном режиме имеет смысл собрать переходник с Arduino Nano на Arduino Uno.
С правилами публикации комментариев ознакомлен, но будет очень обидно, если человек в попытках сэкономить, потратить время на самостоятельную сборку, а потом выяснится, что он переплатил, причем многократно.
Да и время затраченное на сборку и отладку может быть потрачено на проектирование и сборку конечного продукта. Не ради ардуино люди собирают ардуино, а ради конечного проекта, где ардуино всего лишь очередной компонент.
0
cariad 07.09.2014 12:57 #
А какие были внесены изменения в ПП? Спаял по приложенной ПП. В итоге загрузчик через программатор прошился (D3 моргает). А при загрузке любого скетча ошибка avrdude: stk500_getsync(): not in sync: resp=0x00
При закорачивании TX-RX с МК ответа нет, без МК все норм возвращается.
0
Максим 07.02.2015 12:28 #
Ку, не подскажете, что за компонент находится под гребенкой Х1 (выделен оранжевым прямоугольником, без маркировки) на схеме печатной платы?
У меня уже даже мысль появилась, может быть, это еще одно возможное место установки конденсатора С8?
0
Lictor 21.03.2015 15:00 #
Я связался с автором статьи, если кому интересно, то неизвестная деталь кондер на 0.1 мкФ. Схему собрал, все отлично работает.
0
Игорь 18.02.2016 21:45 #
R1, R2, R4, R7 – от 300 Ом до 1 кОм (какие найдете);
Все таки по теории лучше ставить меньше 300 Ом.
0
Дмитрий 19.03.2016 09:05 #
Почему это? Вам нужно чтобы светодиоды жгли глаза?
0
Артём 13.02.2018 10:46 #
А зеркалить изображение разводки нужно? При распечатке на принтере
0
Анатолий 25.06.2018 18:35 #
Не робит, все прозвонил, перепаял, перепрошил, При загрузки скетч пишет, что ошибка загрузки на плату и при подкл к пк мигает светодиод r2
0
Максим 26.07.2020 23:41 #
Автор, спасибо за схему. Начал собирать, но заметил что плата в зеркальном изображении. Прошу в статье упомянуть, что плату зеркалить при изготовлении не требуется. Наталкивает на отзеркаливание надпись «STORONA_DETALEJ». Возможно из-за этого у многих не получается повторить.
Arduino сделать самому своими руками. Arduino UNO сделать самому своими руками
Arduino — это контроллер, который используется в электрических цепях для обработки данных. Его часто можно встретить в системах умного дома. Существует множество модификаций данного элемента, которые отличаются по проводимости, напряжению и предельной перегрузке. Также стоит отметить, что модели производятся с различными комплектующими элементами. При необходимости устройство можно собрать самостоятельно. Однако для этого стоит ознакомиться со схемой модификации.
Как устроен контроллер Arduino?
Обычная модель включает в себя транзистор, который работает от переходника, а также цепь трансиверов. Для поддержки стабильного тока имеется реле. Контакторы у контроллеров применяются разной направленности. Выпрямительные блоки у контроллеров устанавливаются с обкладками. Конденсаторы во многих моделях имеются с фильтрами низкочастотного типа.
«Ардуино» – это электронный конструктор с возможностью подключения разных периферийных.
Сборка Arduino UNO
При необходимости можно сделать контроллер Arduino UNO своими руками. С этой целью применяются два трансивера и одна обкладка. Конденсаторы разрешается использовать с проводимость от 50 мк. Рабочая частота у элементов находится на уровне 300 Гц. Для установки транзистора применяется регулятор. Фильтры можно припаивать в начале цепи. Довольно часто они устанавливаются переходного типа. В данном случае трансиверы разрешается использовать расширительного типа.
Сборка Arduino UNO R3
Собрать Arduino UNO R3 своими руками довольно просто. С этой целью потребуется заготовить трансивер переходного типа, который работает от переходника. Стабилизатор разрешается использовать с проводимостью от 40 мк. Рабочая частота у контроллера будет составлять около 400 Гц. Специалисты советуют не использовать проводниковые транзисторы, поскольку они не способны работать при волновых помехах. Многие модели делаются с саморегулируемыми трансиверами. Коннекторы у них подключаются с проводимостью от 340 мк. Номинальное напряжение у контроллеров данной серии равняется не менее 200 В.
Микроконтроллеры являются небольшими, но одновременно очень удобными.
Сборка модификации Arduino Mega
Сделать Arduino Mega своими руками можно только на базе коллекторного трансивера. Контакторы довольно часто устанавливаются с переходниками, а чувствительность у них равняется не менее 2 мВ. Некоторые специалисты рекомендуют использовать инвертирующие фильтры, однако надо помнить, что они не могут работать при пониженной частоте. Транзисторы используются только проводникового типа. Блок выпрямителя устанавливается в последнюю очередь. При возникновении проблем с проводимостью эксперты рекомендуют проверить номинальное напряжение устройства и поставить емкостные конденсаторы.
Как собрать Arduino Shield?
Собрать контроллер Arduino Shield своими руками довольно просто. С этой целью трансивер можно заготавливать на два переходника. Транзистор разрешается использовать с подкладкой и проводимостью на уровне 40 мк. Рабочая частота у контроллера данной серии равняется не менее 500 Гц. Эксплуатируется элемент при напряжении от 200 В. Регулятор для модификации потребуется на триоде. Преобразователь нужно устанавливать для того, чтобы не перегорел трансивер. Фильтры часто используются переменного типа.
Статья посвящена управляющим контроллерам для «умных.
Сборка Arduino Nano
Контроллер Arduino Nano своими руками делается с двумя трансиверами. Для сборки используется стабилизатор полюсного типа. Всего потребуется два конденсатора малой емкости. Транзистор устанавливается с фильтром. Триод в данном случае обязан работать при частоте не менее 400 Гц. Номинальное напряжение контроллеров данной серии составляет 200 В. Если говорить про другие показатели, то стоит отметить, что чувствительность составляет не менее 3 мВ. Реле для сборки потребуется с сеточным фильтром.
Сборка транзисторов SMD
Чтобы сделать с транзистором SMD умный дом своими руками (Arduino), потребуется только один трансивер. Для поддержания стабильной частоты устанавливаются два конденсатора. Емкость у них обязана составлять не менее 5 пФ. Для установки тиристора применяется обычный проводной переходник. Стабилизаторы в начале цепи устанавливаются на диодной основе. Проводимость у элементов должна составлять не менее 55 мк. Также следует обращать внимание на изоляцию конденсаторов. Для уменьшения количества сбоев в работе системы рекомендуется применять только преобразовательные компараторы с низкой чувствительностью. Также стоит отметить, что существуют волновые аналоги. Показатель чувствительности у них равняется 200 мВ. Регуляторы подходят только дуплексного типа.
Модель на базе DA1
Транзисторы данной серии обладают отличной проводимостью и способны работать с выходными преобразователями разной частоты. Сделать модификацию своими руками пользователь способен на базе проводникового трансивера. Контакты его подключаются напрямую через конденсаторный блок. Также стоит отметить, что регулятор устанавливается за трансивером.
При сборке контроллера рекомендуется применять емкостные триоды с низкими тепловыми потерями. У них высокая чувствительность, а проводимость находится на уровне 55 мк. Если использовать простой стабилизатор переходного типа, то фильтр применяется с обкладкой. Специалисты говорят о том, что тетроды разрешается устанавливать с компаратором. Однако стоит учитывать все риски сбоев в работе конденсаторного блока.
Сборка на транзисторе DD1
Транзисторы DD1 обеспечивают высокую скорость отклика при незначительных тепловых потерях. Чтобы собрать контроллер Arduino своими руками, рекомендуется заготовить трансивер. Целесообразнее применять линейный аналог, у которого высокая проводимость. Также надо отметить, что рынок переполнен однополюсными модификациями, и показатель чувствительности у них находится на уровне 60 мВ. Для качественного контроллера этого явно недостаточно.
Регулятор стандартно устанавливается дуплексного типа. Триод для модели подбирается на диодной основе. Непосредственно компаратор устанавливается в начале цепи. Он обязан работать при сопротивлении не ниже 50 Ом. Номинальное напряжение при этом обязано составлять около 230 В.
Модель на базе DD2
Транзисторы DD2 эксплуатируются при проводимости 300 мк. У них высокая чувствительность, однако они способны работать лишь при высокой частоте. С этой целью на контроллер устанавливается расширительный трансивер. Далее чтобы сделать Arduino своими руками, берется проводниковый коммутатор. Выходные контакты элемента соединяются с реле. Сопротивление у коммутатора обязано составлять не менее 55 Ом.
Дополнительно стоит проверить сопротивление на конденсаторном блоке. Если данный параметр превышает 30 Ом, то фильтр используется с триодом. Тиристор устанавливается с одним стабилизатором. В некоторых случаях за транзисторами припаиваются выпрямители. Данные элементы не только поддерживают стабильность частоты, но и частично решают проблему с проводимостью.
Сборка на транзисторе L7805
Собрать контроллер Arduino своими руками (на базе транзистора L7805) довольно просто. Трансивер для модели потребуется с сеточным фильтром. Проводимость элемента должна составлять не менее 40 мк. Дополнительно стоит отметить, что конденсаторы разрешается использовать двоичного типа. Специалисты говорят о том, что номинальное напряжение не должно составлять выше 200 В. При этом чувствительность зависит от многих факторов. Компаратор чаще всего на контроллер устанавливается с линейным переходником. На выходе припаивается триод на диодной основе. Для стабилизации процесса преобразования применяется однопереходный фильтр.
Модель на базе FT232RL
Чтобы правильно сделать контроллер Arduino своими руками, рекомендуется подобрать высоковольтный трансивер. Проводимость элемента обязана составлять не менее 400 мк при чувствительности 50 мВ. Контакторы в данном случае устанавливаются на выходе цепи. Реле разрешается использовать низкой проводимости, но важно обратить внимание на показатель предельного напряжения, который не должен превышать 210 В. Триод можно устанавливать только за обкладкой.
Также стоит отметить, что для контроллера потребуется один преобразователь. Конденсаторная коробка используется с двумя фильтрами низкой проводимости. Уровень выходного сопротивления элемента зависит от типа компаратора. В основном он используется на дипольном переходнике. Однако есть импульсные аналоги.
Сборка контроллера с транзистором 166НТ1
Транзисторы указанной серии обладают проводимостью в 400 мк, и у них хорошая чувствительность. Чтобы сделать котроллер своими руками, рекомендуется применять дипольный трансивер. Однако фильтры для него подходят только с обмоткой. Специалисты говорят о том, что контактор следует устанавливать с переходником. В данном случае хорошо подойдет линейный компонент, а номинальное напряжение в цепи обязано составлять не менее 200 В. Таким образом, рабочая частота у контроллера не будет опускаться ниже 35 Гц.
«Ардуино» – это электронный конструктор с возможностью подключения разных периферийных устройств и программирования. Он призван заменить громоздкие аналоговые устройства или микросхемы и идеально подойдет в качестве подарка всем .
Микроконтроллеры являются небольшими, но одновременно очень удобными приспособлениями для тех, кто желает создавать различные удивительные роботизированные или автоматизированные вещи у себя дома. В рамках этой статьи будет рассмотрено .
Статья посвящена управляющим контроллерам для «умных домов». Рассмотрены особенности таких систем, функции, рабочие элементы, а также модели.
Одна из основных проблем пользователей ESP8266 — подключение и правильная настройка устройства для работы в сети. В этой статье вы узнаете, как это сделать.
Для практического использования микроконтроллеров пользователю необходим доступный и недорогой инструментарий. Существует много технических решений таких устройств и аматорских, и промышленного исполнения. В этой статье мы рассмотрим, как можно .
Что можно создать с помощью доступных нам микроконтроллеров? Какие особенности при этом необходимо учитывать?
При работе с Arduino многие радиолюбители пользуются шаговыми двигателями. Но что же это такое? Как его подключать? А как работать с ним? И вообще, где они используются? Ответы на все эти вопросы будут представлены в этой статье!
Для передачи сигнала различной длины применяются трансиверы, которые по параметрам довольно сильно отличаются друг от друга. Чтобы сделать устройство самостоятельно, необходимо очень точно рассчитать предельную нагрузку на систему. При этом антенна и блок питания подбираются отдельно.
Сейчас печи с индукционной системой повсеместно используются в процессе плавки металлов. Ток, производимый в поле индуктора, способствует нагреву вещества, и эта особенность таких устройств является не только основной, но и важнейшей. Обработка приводит к тому, что вещество претерпевает несколько превращений.
Arduino Uno представляет собой открытую платформу, позволяющую собирать разнообразные электронные устройства. Эта плата будет полезна и интересна творческим людям, программистам, дизайнерам и другим пытливым умам, которые любят конструировать собственные гаджеты. Arduino Uno может работать как в связке с компьютером, так и автономно.
Собираем самодельный Arduino – Shrimp
Вы когда-нибудь хотели программировать микроконтроллеры как плату Arduino, не используя программатор? Или, может быть, просто собрать свою Arduino плату? Тогда в этой статье вы узнаете, как можно собрать Arduino-совместимый микроконтроллер, при этом обойтись без пайки и сделать это на макетной плате.
Я поведаю о самом простом варианте, не содержащем USB-порта, разъёма для питания, светодиодов для индикации, и состоящем лишь из самого микроконтроллера и минимальной необходимой обвязки. Разработчики (shrimping.it) дали этой схеме название “Shrimp”(Креветка). Она полностью копирует Arduino UNO (если использовать контроллер ATMEGA328P-PU).
Следует отметить, что для прошивки загрузчика в микроконтроллер понадобится плата Arduino. Однако, этот пункт можно опустить, если в ваш контроллер уже вшит загрузчик Arduino. Он нужен для того, чтобы прошивать контроллер можно было без использования программатора, применяя только последовательный порт. В платы Arduino его записывают ещё при производстве, а нам придётся делать это самостоятельно.
Итак, для сборки Shrimp нам понадобятся следующие компоненты:
- Микроконтроллер ATMEGA328P-PU. Поддерживаются и другие контроллеры: ATmega8, ATmega168, ATmega168P, ATmega168PB, ATmega328, ATmega328P, ATmega328PB;
- Тактовая (тактильная) кнопка;
- Внешний кварцевый резонатор на 16 мГц;
- Электролитический конденсатор ёмкостью от 10 до 100 мкФ;
- 2 керамических конденсатор на 22 пФ;
- 4 керамических конденсатора на 100 нФ;
- Резистор на 10 кОм;
- Макетная плата. Как вариант – спаять схему;
- Провода для макетной платы;
- USB-UART преобразователь;
Все компоненты вы можете приобрести в нашем магазине, по низким ценам и с быстрой доставкой:
- Микроконтроллер ATMEGA328P-PU
- Тактовая кнопка SWT 12×12-7.3
- Внешний кварцевый резонатор на 16 мГц;
- Набор электролитических конденсаторов – 12 номиналов по 10шт.
- Набор керамических конденсаторов – 25 номиналов по 10шт.
- Набор резисторов (100 шт.)
- Макетная плата на 400 точек
- Набор макетных проводов “папа-папа”
- USB-UART преобразователь CP2102
Если у вас микроконтроллер без прошитого загрузчика, придётся это исправить. Для начала скачиваем программу OptiLoader для платы Arduino, которая послужит программатором, с официального репозитория проекта на GitHub. Скачанную папку “OptiLoader-master” переименуем в “OptiLoader”. Загружаем скетч в Arduino, отключаем её от питания.
Теперь собираем на макетной плате приведённую схему:
Как сделать самому ардуино
Можно сделать клон Arduino на простейшей отладочной плате с отверстиями (stripboard, veroboard), который называется veroduino. Вместе с переходником USB — COM TTL он будет работать точно так же, как и дорогой фирменный Arduino.
Как только проект проходит стадию отладки и опытного образца, то уже не нужно использовать полную версию Arduino. Даже с учетом падающей стоимости Arduino-совместимых плат, таких как Arduino Nano и Arduino Mini, часто бывает излишне дорого использовать заводскую плату Arduino. К счастью, можно очень просто создать собственную схему на микроконтроллере ATmega, которая будет работать как аналог Arduino, и она обойдется очень дешево. В память микроконтроллера ATmega нужно прошить Arduino-загрузчик, и после этого Ваша плата будет работать в среде Arduino IDE точно так же, как и оригинальный Arduino.
[Используемые детали для veroduino]
В этом примере базовый Arduino собирается на маленьком куске стрипбоарда (квадрат примерно 5 на 5 см), и все что Вам понадобится — несколько недорогих радиодеталей и немного времени. В таблице перечислены используемые детали (цены указаны приблизительные, на момент публикации статьи).
Наименование | Шт. | Цена, руб. |
Кусочек stripboard/veroboard | 1 | ? |
Atmel ATmega328P-PU | 1 | 120 |
Сокет 28 pin DIL | 1 | 17 |
Кварц 16 MHz, усеченный корпус | 1 | 6 |
Линейный стабилизатор LM7805 | 1 | 6 |
Электролитический конденсатор 100uF 25V | 2 | 3 |
Конденсатор 22pF керамический дисковый | 2 | 0.5 |
Конденсатор 100nF керамический дисковый | 1 | 0.6 |
Диод 1N4001 (ставить необязательно) | 1 | 0.6 |
Кнопка (ставить необязательно) | 1 | 0.8 |
Резистор 10K 0.25W (ставить необязательно) | 1 | 0.2 |
Коннектор папа 6 pin (ставить необязательно) | 1 | 0.3 |
Медный одножильный луженый провод | ? |
Плата stripboard (veroboard) представляет из себя обычно просто кусок односторонне фольгированного текстолита, в котором насверлены отверстия 0.9 мм со стандартным шагом 2.54 мм (100 mil). Фольга стрипбоард разделена на прямолинейные дорожки, из которых путем разрезания полосок и установок перемычек формируется электронная схема. Имеется даже специальное программное обеспечение, которое позволяет разработать конфигурацию монтажа схемы на стрипбоард [6]. Платку стрипбоард можно легко сделать самому с помощью микродрели (дремеля) и самодельного резака из ножовочного полотна, либо купить готовую в магазине или на радиорынке.
Схему можно слегка упростить/урезать, если кое-что на ней Вам не нужно. Например, если не нужна возможность программирования прямо на плате, то тогда можно выкинуть из схемы соответствующий 6 pin коннектор (JP1 FTDI) и конденсатор на 100 нФ. Если Вам не нужна кнопка сброса и сброс от FTDI, то можно выкинуть также и резистор на 10 кОм. Может быть также не нужен диод 1N4001, который защищает от ошибочной обратной полярности питания. Часто можно выбросить из схемы конденсаторы на 22 пФ, которые подключены к кварцу и на землю — кварцевый генератор микроконтроллера заработает и без них, однако выбрасывать эти конденсаторы в общем случае не рекомендуется.
Частота используемого кварцевого резонатора может отличаться от 16 МГц, однако для того, чтобы правильно работал бутлоадер, он должен быть скомпилирован на нужную частоту кварца. Кроме того, чтобы точно вычислялись интервалы времени в скетчах (программах микроконтроллера) Arduino IDE, нужно правильно выставить частоту кварцевого резонатора в проекте. В качестве микроконтроллера можно использовать либо ATmega168A, ATmega168PA (у него память Flash/EEPROM/SRAM в два раза меньше по размеру, чем у ATmega328P) либо ATmega328P (что предпочтительнее, так как часть FLASH памяти программ будет занята загрузчиком Arduino).
[Сборка veroduino]
На рис. 2 показано размещение на stripboard деталей нашего Arduino, и нужные соединения. Для монтажа Вам понадобится стрипбоард 20 X 19 отверстий (20 отверстий на каждой из 19 полосок фольги). Если не нужна кнопка для сброса и коннектор FTDI для программирования через среду Arduino IDE, то можно обойтись платой stripboard меньшего размера, 14 X 19 отверстий (14 отверстий на каждой из 19 полосок фольги).
Рис. 1 — принципиальная схема veroduino
Рис. 2 — монтажная схема veroduino
Красными крестиками помечены места, где нужно разрезать полоски фольги на стрипбоард. Черными перемычками показана шина земли (GND), а красными перемычками шина питания VCC (+5V). Разрежьте монтажным ножом дорожки на стрипбоард в местах, помеченных красными крестиками, и сделайте монтаж в соответствии с рис. 2. Если Вы не дружите с паяльником, и не знаете, как делать монтаж на стрипбоард, то почитайте [6]. Убедитесь, что установленный сокет для микроконтроллера ориентирован правильно, его выемка, соответствующая 1 выводу, должна быть сверху, напротив стабилизатора LM7805. Правильно установите диод — его конец, помеченный полоской (катод) должен быть сверху (ориентирован к краю платы). Соблюдайте также полярность электролитических конденсаторов 100 мкФ. Положительный вывод конденсатора 100 мкФ (на рис. 2 помечен символом +) обычно не имеет метки на бочонке конденсатора, а отрицательный вывод помечен белой полоской. Кнопку сброса установите так, чтобы при нажатии она замыкала верхнюю и нижнюю полоски фольги. Другие детали можно устанавливать в любой полярности и ориентации.
[Подключение питания к veroduino]
Вы можете подключить плюс источника постоянного напряжения 7..9V к точке VIN, а отрицательный к точке GND (см. рис. 2). Можно использовать либо стабилизированный, либо нестабилизированный источник питания. В качестве нестабилизированного источника питания может служить трансформатор, диодный мост и конденсатор на 1000..2200 мкФ 16 вольт. Можно также использовать напряжение выше 9V (например, 12V), но тогда для стабилизатора LM7805 может понадобиться охлаждающий радиатор. Можно также подать питание через переходник FTDI USB-TTL RS232 (от шины 5V USB), но тогда нужно убедиться, что Вы отключили от VIN другой источник питания. Если хотите иметь подключенными одновременно и внешнее питание на VIN, и переходник FTDI, то нужно убрать синюю перемычку возле коннектора FTDI (см. рис. 2).
[Подключение к портам I/O микроконтроллера]
Цифровые и аналоговые линии показаны на рис. 2, это сигналы D0..D13 и A0..A5 соответственно. Имейте в виду, что расположение физическое расположение коннекторов и разводка сигналов отличается от оригинального Arduino, однако их все равно можно использовать в скетчах Arduino IDE. В списке деталей эти коннекторы не указаны, так как в готовом проекте Вы можете захотеть напрямую подключиться (припаять нужные провода) прямо к ножкам микроконтроллера (или к соответствующим полоскам фольги stripboard).
[Arduino bootloader, FTDI connector]
Чтобы платка veroduino полноценно работала в среде Arduino IDE как оригинальная плата Arduino, (т. е. чтобы загружались в платку программы-скетчи, можно было видеть отладочный вывод через последовательный порт), Вам понадобятся две вещи:
1. Прошить в память микроконтроллера бутлоадер Arduino (загрузчик Arduino) [5].
2. Подключить к 6-pin коннектору FTDI переходник, который преобразовывает TTL сигналы (с уровнями 5 вольт) RXD и TXD последовательного порта микроконтроллера в виртуальный COM-порт на компьютере (через подключение по USB, класс USB CDC).
Для того, чтобы прошить бутлоадер в память Вашего микроконтроллера ATmega328P (или ATmega168), понадобится программатор AVR [4]. В качестве программатора может также работать готовая платка Arduino с соответствующим шилдом. Готовые прошивки бутлоадера на разные микроконтроллеры можно взять в архиве [5] (см. в архиве папку Arduino-bootloader, файлы с расширением HEX). Имейте в виду, что кроме бутлоадера, в память микроконтроллера нужно прошить также правильные значения фьюзов, так как необходимо обеспечить запуск кода бутлоадера при сбросе микроконтроллера, а также нужна работа тактового генератора от кварцевого резонатора. Фьюзы также прописываются с помощью программатора, нужные значения фьюзов можно посмотреть в файле readme.txt архива. Если у Вас нет программатора, и Вам его лень делать самому, можно попросить запрограммировать микроконтроллер на радиорынке.
Переходник USB TTL COM-port (он подключается с одной стороны к 6-pin коннектору FTDI, а с другой стороны к компьютеру по USB) лучше купить готовый. Обычно такой переходник сделан по простейшей схеме на основе чипа FT232 (компания FTDI) или CP210x (компания Silicon Labs). Драйвер для переходника можно скачать с сайта соответствующей компании или взять в архиве [5]. Кроме того, в качестве такого переходника можно использовать макетную плату AVR-USB162 или AVR-USB162MU [3]. Хорошие переходники USB to TTL Serial Cable FTDI (или на чипе CP210x) можно купить на eBay, dealextreme или aliexpress [7], есть даже предложения с бесплатной доставкой. При покупке выбирайте 5V версию (иногда бывают версии на 3.3V). Самый лучший вариант – когда можно выбрать перемычкой рабочие уровни порта TTL RS-232 (3.3V или 5V). Если уровни сигналов на переходнике USB to TTL и на veroduino не совпадают, то понадобятся последовательно включенные резисторы номиналом около 1…2 кОм.
[Программирование veroduino в среде разработки Arduino IDE]
Запустите Arduino IDE, подключите платку veroduino к компьютеру через переходник FTDI, проверьте, что Вы правильно подали питание на veroduino. Нажмите кнопку сброса veroduino, и загрузите скетч в память микроконтроллера стандартным образом (для загрузки скетча используется бутлоадер Arduino, заранее прописанный в память микроконтроллера).
[Ссылки]
1. Veroduino site:nathan.chantrell.net — материал на английском языке, который взят за основу статьи.
3. AVR: отладочный вывод через UART (RS232 debug).
4. Программаторы для AVR.
5. Arduino bootloader source code (исходный код различных бутлоадеров Arduino), готовые прошивки бутлоадеров Arduino, драйверы для переходников FTDI (VCP, Virtual COM Port на основе чипов FT232 и CP210x).
6. Что такое макетная плата stripboard, как её использовать.
7. USB to TTL 5V Serial Cable site:ebay.co.uk (FTDI-FT232 for Arduino UNO mini duemilanove Mega), USB 2.0 to TTL UART 6PIN CP2102 Module Serial Connector Converter Adaptor Cable site:ebay.co.uk , CP2102 USB to TTL Converter Module — Red site:dx.com , 1Mbps USB To TTL/COM Converter Module buildin-in CP2102-10000066 site:aliexpress.com .