Как сделать Arduino Uno своими руками
В этой статье мы расскажем, как своими руками собрать Arduino на обычной макетной плате.
Для этого нам понадобится микроконтроллер ATmega328 — такой же, как и в оригинальной Arduino Uno.
Распиновка ATmega328
В начале работы с любым микроконтроллером необходимо изучить его распиновку. После этого уже можно приступать к сборке необходимой обвязки. Ниже представлена распиновка микроконтроллера ATmega328.
Сборка Arduino на макетной плате
Необходимые компоненты
Для работы с микроконтроллером понадобятся:
Конденсатор 22 пф
Схема сборки
Соберите на макетной плате компоненты по следующей схеме:
Эксперимент «маячок» из Матрёшки
Добавьте к схеме светодиод на 13 пине. Для этого повторите первый эксперимент из набора Матрёшка Z — маячок.
Обратите внимание, 13 пин Arduino — это не 13-я ножка микроконтроллера. Чтобы найти нужный пин, воспользуйтесь распиновкой ATmega328
Схема эксперимента собрана. Осталось прошить нашу Arduino.
Прошивка ATmega328
У микроконтроллера нет собственного USB-порта. К компьютеру его можно подключить одним из двух способов:
Рассмотрим их подробнее.
Прошивка ATmega328 через USB-UART преобразователь
Для сборки программатора нам понадобится:
Собранная в предыдущем эксперименте схема
Соберите следующую схему
Аппаратная часть готова. Теперь скачайте и установите на компьютер интегрированную среду разработки Arduino IDE и прошейте свой контроллер.
Прошивка ATmega328 через Arduino Uno
Для сборки программатора нам понадобится:
Собранная в предыдущем эксперименте схема
Аккуратно извлеките из платы Arduino Uno микросхему ATMega328P. Не беспокойтесь, вы сможете вставить её обратно позднее.
Соберите следующую схему
Аппаратная часть готова. Теперь скачайте и установите на компьютер интегрированную среду разработки Arduino IDE и прошейте свою плату.
Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution-Noncommercial-Share Alike 4.0 International
Производные работы должны содержать ссылку на http://wiki.amperka.ru, как на первоисточник, непосредственно перед содержимым работы.
Вики работает на суперском движке DokuWiki.
diy/arduino.txt · Последние изменения: 2022/06/23 13:34 — mik
Инструменты страницы
- Показать исходный текст
- История страницы
- Ссылки сюда
- Наверх
Arduino своими руками — Shrimp
На этот раз я поведаю о том, как сделать Ардуино своими руками, да еще и без паяльника. Схема этого простого Ардуино-клона называется 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
Изменено: 27 Фев, 2017 01:16
Arduino своими руками — Shrimp : Один комментарий
RoboDOG говорит 23.01.2019 в 17:45 :
Не думал, что получится собрать с первого раза.
Смутил диод на картинке, параллельно подтягивающему сопротивлению на кнопку, и не мешало бы добавить схему, которая пересобирается после прошивки (нарисовано не очень хорошо, плохо понятно, куда что идёт).
На завершающей картинке светодиод на ногу D9 подключен, это может ввести в замешательство начинающих. Я сам с этим ещё только пару недель занимаюсь, и меня это сбило с толка.
Наборчик хороший, без лишнего обвеса.
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Минимальная Arduino своими руками
Arduino — это хорошо, когда хочется быстро реализовать идею, не заморачиваясь мелочами. Но когда идея проверена, лишняя функциональность начинает просто мешать.
Собирая робота на гусеничном шасси, я столкнулся с тем, что бутерброд из Arduino + MotorShield + Sensor Shield плюс ко всему аккумулятор и прочие компоненты обросли проводами и стали с трудом помещаться на не самом крошечном шасси. Городить еще кучу шилдов, чтобы избавиться от лишних проводов не хотелось.
Появилась идея избавиться от всего, что в Arduino не требуется в готовом девайсе. Попутно хотелось снизить стоимость робота.
Многих интересующихся электроникой отпугивает еще и стоимость Arduino в магазинах. С ebay и китайских магазинов посылка идет долго, изобретательский пыл успевает остыть, поэтому приобретение откладывается «на потом», «когда сын подрастет». Поэтому я решил собрать Arduino-совместимую плату из деталей, которые всегда можно купить в городе.
В итоге я получил Arduino-совместимую плату, стоимостью в 210 рублей на макетной плате и в ~270 рублей в готовом для наращивания функционала виде.
«Minimalist Arduino»
С нуля до полной готовности собирается с дешевым 40Вт паяльником за 1 выходной без каких-то особых навыков.
Лазерного принтера у меня нет, печатные платы самостоятельно никогда не разводил, поэтому решено было использовать не ЛУТ, а макетную плату с односторонней металлизацией (максимально дешевая, всегда есть в продаже).
Сначала я хотел купить Atmega328P в DIP корпусе, чтобы воспользоваться статьей Arduino on a Breadboard и собрать Arduino на беспаечной макетке.
Но оказалось, что в DIP28 ее в Москве крайне трудно найти, да к тому же в этом корпусе она существенно дороже. Зато в наличии навалом Atmega168 в любом корпусе. Но цена DIP28 и TQFP-32 отличается тоже довольно существенно. Для робота на гусеничном шасси и домашней автоматизации возможностей Atmega168 более чем достаточно, поэтому поборов страх, я решил сэкономить и использовать 168ю в TQFP-32 корпусе (шаг ножек — 0.8мм)
Все компоненты кроме эпоксидной макетки я купил в Москве, в одном магазине (макетки продаются в любом радиомагазине или на рынке, просто у меня уже было 5 штук, купленных ранее на ebay).
Итак, для начала нужно припаять микроконтроллер размером 9х9 мм на DIP переходник, чтобы более комфортно с ней было работать.
mkpochtoi не работал, поэтому купить готовую макетную плату не получилось, купил макетку MP-QFP, от которой ножовкой по металлу отпилил кусок под TQFP-32.
Просмотрев видеоурок по пайке от DIHALT я водрузил микруху на макетку с помощью обычного 40Вт паяльника, потратив на это чуть больше 5 минут (опыта пайки таких мелких компонентов и вообще SMD компонентов у меня не было). В качестве флюса использовал несколько капель глицерина (попросил у девушки, она занимается мыловарением). Отмыл горячей водой и высушил феном.
«Atmega 168PA-AU»
40-ногую линейку PBS-40 кусачками настрогал на кусочки по 4 ножки и впаял с обратной стороны. Я взял гнезда, а не штырьки, чтобы микроконтроллерную плату можно было подключать к макетке проводками без пайки.
Дальше все как в статье — собрал на макетной плате схему, использовав datasheet от семейства Atmega 48/88/168 (номера ножек на DIP28 и TQFP-32 различаются).
Поскольку процессор я взял чистый, то предстояло прошить его бутлоадером от Arduino. Тут меня поджидала засада:
Arduino IDE знает только Atmega168 и ничего не знает об Atmega168P (точнее Atmega168PA-AU) — более свежей версии микросхемы. Прошивать она его отказалась. А еще раньше я выяснил, что Freeduino Nano v5.0 почему-то не хочет работать ISP программатором. Пришлось разобрать робота и достать Freeduino 2009. с помощью скетча ArduinoISP и примера на Freeduino.ru удалось заставить avrdude игнорировать различие в сигнатуре (ключ -F) и прошить бутлоадер, фьюзы и лок.
У меня сработал такой вариант:
::Прошиваем bootloader (порт COM9 нужно поменять на Ваш)
avrdude -F -C avrdude.conf -p m168p -c avrisp -P COM9 -b 19200 -e -U flash:w:optiboot_diecimila.hex
::Прошиваем fuse и lock биты
avrdude -F -C avrdude.conf -p m168p -c avrisp -P COM9 -b 19200 -Uefuse:w:0x00:m -Uhfuse:w:0xdd:m -Ulfuse:w:0xff:m -Ulock:w:0x0F:m
На официальном сайте есть описание подключения для прошивки:
Как вариант, можно обновить файл avrdude.conf, прописав правильную сигнатуру, но нужды в этом особой нет.
Все, Arduino на макетке готова. Можно подключать любой USB — serial TTL (или RS-232-TTL) адаптер и зашивать скетч из Arduino IDE, выбрав Board->Arduino Diecimila, Duemilanove or Nano w/Atmega168.
«Breadboard Arduino»
Убедившись в работоспособности, я занялся переносом на макетную плату.
Сложнее всего оказалось оптимально разместить элементы. Для этого наиболее простым бесплатным инструментом оказался Fritzing. Правда нагромождение картинок и проводов выглядит страшно, но позволяет при сборке не запутаться в проводах:
«Minimalist Arduino»
Я старался уменьшить количество отдельных проводов, припаивая где возможно выводы воткнутого компонента к нужному контакту просто сгибая его ножки и обрезая излишек.
Добавив примерно 65 р на запчасти я получил вот такой результат:
«Minimalist Arduino»
Для удобства я добавил шину питания и землю (2 гребенки справа внизу), кнопку питания, гнездо RX, TX, DTR для загрузки скетчей и ICSP разъем для прошивки микроконтроллера программатором прямо на плате.
«Minimalist Arduino в сборе»
Воткнув микроконтроллерную плату с Atmega328P-AU, можно прогапгрейдить девайсик для задач, где 16 кб под скетч не хватает. Оставшееся на макетке место я собираюсь использовать под сенсоры, драйвер мотора и прочие нужные вещи.
Вот список компонентов и цен:
Наименование | Цена | Кол-во | Стоимость |
---|---|---|---|
Mакетная плата MP-QFP | 64 | 1 | 64 |
Glass-Epoxy Board Prototyping PCB 9×15 FR4 | 43 | 1 | 43 |
PBS-4 | 4 | 8 | 32 |
PBS-6 | 4 | 2 | 8 |
PLS-40 | 4 | 1 | 4 |
ATMega168PA-AU | 62 | 1 | 62 |
LM7805 1A 5V Positive Voltage Regulator | 15 | 1 | 15 |
16.000MHz Clock Crystal | 10 | 1 | 10 |
22pF Capacitor | 1 | 2 | 2 |
10uF Capacitor | 5 | 2 | 10 |
100nF Capacitor | 1 | 1 | 1 |
10kOhm Resistor | 1 | 1 | 1 |
150 Ohm Resistor | 1 | 2 | 2 |
DTS-61 кнопка | 2 | 1 | 2 |
PS-22E85L | 7 | 1 | 7 |
WF-02 вилка на плату | 1 | 1 | 1 |
Red 3mm LED | 2 | 1 | 2 |
Green 3mm LED | 2 | 1 | 2 |
Итого | 268р. |
Сантиметров 20 монтажного провода, припой и флюс я не посчитал 🙂
Получилось даже чуть-чуть дешевле чем Arduino Pro Mini ($9.5), при этом удобнее в использовании и не нужно ждать 3 недели, пока приедет из китая ).
Но самое приятное — это может собрать каждый и все компоненты есть в продаже и легко доступны. Ждать и искать ничего не нужно. Увидели на хабре интересный проект на ардуино? Соберите его!
Если нет знакомых с ардуино или прогрмматором, то бутлоадер за 50 рублей вам может прошить продавец, а переходник USB — Serial TTL покупать не обязательно, если у компа есть COM порт.
Я собрал вот такой переходник из MAX232CPE, разъема DB9F и 4 конденсаторов по рублю штука:
«Loading Sketch»
Arduino своими руками
Плата Ардуино используется в первую очередь для обучения начинающих радиолюбителей основам программирования микроконтроллеров и созданию микроконтроллерных устройств своими руками без серьезной теоретической подготовки. Среда разработки Arduino позволяет , скомпилировать и загрузить в память платы готовый код, причем его загрузка очень проста. Arduino – это потрясающая электронная платформа для создания различных радиолюбительских проектов и решений. Она максимально проста в эксплуатации и намного дешевле практически аналогичных профессиональных отладочных плат. Но Ардуино можно спаять самим еще дешевле. И в этом материале мы постараемся показать, как сделать плпту Ардуино своими руками, используя радиоэлементы из местного радио рынка.
Для этого самодельного проекта Ардуино нам понадобится:
Конечно же микроконтроллер AVR ATmega 168
Макетная плата для прототипирования (на 440 или 840 контактов) или другой наиболее удобный вам вариант
Конвертор интерфейсов COM-USB на напряжение 3.3 В
Стабилизатор напряжения на микросхеме 7805, или ее аналог
Провода для монтажа сечением 22 AWG
Два сопротивления по 220 Ом
Два индикаторных светодиода для платы Ардуино своими руками
резистор 10 КОм
Два конденсатора емкостью 10 мкФ и 22 пФ
Осциллятор 16 МГц
Штыревой разъем
Кнопка
Arduino своими руками, питание схемы
В первую очередь подводим питающее напряжение к микроконтроллеру. Для этого нам понадобится микросборка регулятора напряжения 7805 на 5 В. На рисунке ниже показана схема соединения на макетной плате Ардуино.
В роли источника питания будем использовать батарейку типа Крона на +9 В. Питание заводим на черный (-) и красный (+) квадраты. Затем устанавливаем конденсатор емкостью 10 мкФ, т.к это электролит, то нужно обязательно соблюдать полярность. Как правило на всех электролитах, вывод анода (плюс) длиннее вывода катода (минус). Также большинство емкостец маркируются полоской со стороны минуса. Дальше следуют два провода, которые «перебрасывают» питающее напряжение на другую часть макетку. Затем ставим стабилизатор напряжения. Здесь также важно соблюдать полярностью. Если смотреть на регулятор спереди, то левый контакт будет входом (Uвхода), средний землей (GND), а правый выходом (Uвыхода). К выходу также, подключаем второй электролит номиналом 10 мкФ. Для большего удобства сборки питающие линии перенесем на левую сторону макета.
Для индикации добавим в схему светодиодный индикатора, говорящий о наличии питания в схеме. Подключение светодиода необходимо делать через сопротивление номиналом 220 Ом (на рисунке ниже резистор промаркирован одной коричневой и двумя красными полосками). Резистор соединяем с плюсом светодиода. Катод подключен на землю. (gnd)
Выводы Arduino
Теперь берем микроконтроллер. В данном примере Ардуино своими руками я взял МК ATmega 168, но лучше взять ATmega 328, он работает на той же скорости и имеет тоже назначение выводов, но у нее в два раза больше флеш и EEPROM памяти. Назначение выводов для Ардуино приведено на следующем рисунке:
Arduino подключаем остальные необходимые компоненты
Для наглядности, Подключение радио компонентов приведем сначала относительно одной стороны микроконтроллера, затем с его другой стороны. Схема со стороны выводов 15-28:
Заведите землю на 22 пин микроконтроллера. Затем питание на 21 контакт (аналоговое опорное напряжение для АЦП) и 20 вывод (питание АЦП). На заводском варианте схемы Arduino вывод для светодиода обозначается как Pin 13, но по отношению к микроконтроллеру он будет 19-ым. Поэтому на 19-й пин заводим плюс светодиода, а его катод через сопротивление номиналом 220 Ом подключаем на общий. При программировании самодельного Ардуино не забывайте о том, что для зажигания светодиода необходимо посылать команду на 13-й контакт МК (Pin 13).
Теперь можно переходить к противоположной стороне макетной платы Ардуино:
К первому выводу подключаем кнопку. Она необходима для ручного сброса микроконтроллера. Прежде чем записать новый скетч (программный код) в Arduino, нужно будет нажать на кнопку Reset. От соединения кнопки с первым выводом необходимо подсоединить резистор 10 сопротивлением КОм на питание. А другой контакт кнопки подключаем на общий провод. Восьмой пин 8 (GND) также кидаем на общий (земля), а седьмой контакт подключаем к питанию к питанию Ucc. Осциллятор 16 МГц подсоединен к контактам 9 и 10. От него также отведены конденсаторы 22 пФ на общий провод.
С левой стороны макета Ардуино имеется небольшой разъем для программирования. Функционал выводов, начиная с крайнего левого такой: GND, NC, 5V, TX, RX, NC. NC последнии два никуда не подсоединены. Вывод RX подключаем ко второму выводу МК, а TX к третьему. Теперь можно программировать эту самодельную плату Ардуино.
Программирование Arduino своими руками
Теперь нам понадобится плата переходника USB COM, можно использовать как готовый, так и самодельный вариант. После подключения данного устройства к выводам TX и RX, а также питанию +5В нужно запустить бесплатную среду разработки Arduino IDE и выбрать пример (раздел Example sketch files) Blink из подраздела Digital. Далее необходимо указать активный COM-порт, например, COM1. Далее в зависимости от используемого в схеме микроконтроллера выбираем плату (раздел Tools/Board): Arduino Decimila, Duemilanove or Nano
w/ATmega128 или Arduino Duemilanove w/ATmega328.
Нажимаем на иконку загрузить и одновременно с этим нажимаем кнопку reset. После этого в микроконтроллер на макетной плате Ардуино должна записываться программа. Если вы все сделали правильно, то светодиод на макете будет мигать с периодом 1 секунда.
После того как, микроконтроллер запрограммирован, USB-переходник можно отсоединить и подключить внешнее питание на Ардуино +9В от батарейки кроны.
Печатный вариант платы Arduino своими руками
Если вы хотите сделать более приличный вариант платы Arduino своими руками, то можете вытравить сами печатку. Файлы для этого можно скачать здесь.
Готовая плата Ардуино устройство и пример работы
У платы Arduino имеется 28 выводов для связи с внешними цифровыми устройствами, датчиками, лампочками и светодиодами, моторами, магнитными запирающими устройствами и множетсвом других электронных устройств. Начать работать с этой платформой очень просто. Надо только купить ее, хотя я бы предпочел сделать своими руками. Можно купить дешевую китайскую копию, или оригинал на мировой барахолке АлиЭкспресс. В рамках этой статьи разберем из каких блоков и компонентов состоит, наиболее популярная плата Arduino UNO и с чем ее едят.