Меню Рубрики

Arduino nano своими руками

Содержание

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

Для этого нам понадобится микроконтроллер ATmega328 — такой же как и в оригинальной Arduino Uno.

Распиновка ATmega328

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

Сборка Arduino на макетной плате

Необходимые компоненты

Для работы с микроконтроллером понадобятся:

Схема сборки

Соберите на макетной плате компоненты по следующей схеме:

Эксперимент «маячок» из Матрёшки

Добавьте к схеме светодиод на 13 пине. Для этого повторите первый эксперимент из набора Матрёшка Z — маячок.

Обратите внимание, 13 пин Arduino, это не 13 ножка микроконтроллера. Чтобы найти нужный пин, воспользуйтесь распиновкой ATmega328

Схема эксперимента собрана. Осталось прошить нашу Arduino.

Прошивка ATmega328

У микроконтроллера нет собственного USB-порта. К компьютеру его можно подключить одним из двух способов:

Рассмотрим их подробнее.

Прошивка ATmega328 через USB-UART преобразователь

Для сборки программатора нам понадобится:

Соберите следующую схему

Аппаратная часть готова. Теперь скачайте и установите на компьютер интегрированную среду разработки Arduino — Arduino IDE — и прошейте свой контроллер.

Прошивка ATmega328 через Arduino Uno

Для сборки программатора нам понадобится:

Аппаратная часть готова. Теперь скачайте и установите на компьютер интегрированную среду разработки Arduino — Arduino IDE и прошейте свою Arduino.

В уроке мы покажем вам, как сделать свою собственную плату Arduino Uno своими руками, используя микроконтроллер ATmega328p IC. В итоге вы сможете понимать как в дальнейшем делать аналоги любых плат, плюс создавать свои. Может быть вы даже откроете свою компанию по производству плат и микроконтроллеров.

Так как Ардуино является платформой с открытым исходным кодом, довольно легко узнать о внутренностях и деталях всего того, что делает Arduino тем, чем она является. Таким образом, в этом уроке мы рассмотрим схему Arduino Uno, немного изменим ее в соответствии с нашими потребностями, изготовим под нее печатную плату и припаяем необходимые компоненты для создания финального продукта.

Мы не будем использовать какие-либо SMD-компоненты для создания своей версии Arduino Uno, потому что не у всех есть паяльная станция, а иногда найти SMD-компоненты очень сложно. Кроме того, наш метод в большинстве случаев дешевле, чем компоненты SMD. Для тех кто, только начинает разбираться в электронике – технологию поверхностного монтажа печатных плат также называют ТМП (технология монтажа на поверхность), SMT (англ. surface mount technology) и SMD-технология (от англ. surface mounted device — прибор, монтируемый на поверхность), а компоненты для поверхностного монтажа также называют «чип-компонентами».

Шаг 1. Изменения в оригинальной версии

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

Изменения будут следующими:

  • Мы не будем использовать какие-либо компоненты SMD. Все элементы будут в формате сквозных отверстий.
  • Мы не нашли ни одного чипа FTDI в формате сквозного отверстия, поэтому преобразование USB в TTL не будет выполняться. Для программирования нового Arduino будет использоваться отдельная отладочная плата FTDI.
  • Оригинальный Arduino использует компаратор Mosfet, чтобы определить, подключаем ли мы плату с помощью источника питания USB или постоянного тока. Но в нашей версии мы будем вручную переключать это с помощью перемычки.
  • Традиционно используется микросхема LP2985 от Texas Instruments, чтобы получить источник питания 3,3 В на борту. Но из-за недоступности платы в формате TH мы будем использовать простой линейный регулятор. Таким образом, LM1117 должен быть очевидным выбором, но чтобы сохранить стоимость изготовления еще ниже, мы будем использовать LM317 с R1 и R2 как 240E и 390E соответственно.
  • Последнее, что нужно на плате, – это достаточное количество линий питания и два разъема для каждого порта IO ввода-вывода. Поэтому мы будем размещать ряд разъемов папа и мама вокруг платы, что поможет подключить большее количество устройств непосредственно к Arduino.
Читайте также:  Usb в магнитолу своими руками вместо cd

Учитывая все изменения, мы можем записать окончательный список компонентов.

Шаг 2. Необходимые компоненты

Компоненты, которые вам нужны для этого проекта. Везде, где количество не указано, считайте его единственным.

  • Микроконтроллер Atmel Atmega328p-pu
  • 28-контактная база IC
  • 16 МГц кварцевый генератор
  • конденсатор 22 пФ – 2 шт.
  • конденсатор 100 нФ – 4 шт.
  • Электролитический конденсатор 100 мкФ – 3 шт.
  • 3 мм красный светодиод – 2 шт.
  • 330E 1/4W резистор – 2 шт.
  • 240E 1/4W резистор – 1 шт.
  • 390E 1/4W резистор – 1 шт.
  • 10K 1/4W резистор – 1 шт.
  • Кнопка для сброса
  • Диод общего назначения 1N4007
  • Линейный регулятор напряжения 7805
  • Линейный регулятор переменного напряжения LM317
  • DC разъем мама
  • 2-контактный винтовой клеммный блок
  • много разъемов "папа" и "мама"

Кроме всего вышеперечисленного для своей собственной Arduino Uno вам также понадобится паяльное оборудование и некоторые аппаратные средства, чтобы облегчить жизнь.

Вам также понадобится программатор USBASP ICSP или конвертер USB в TTL, такой как FTDI для программирования Arduino с вашего компьютера.

Вот проектная спецификация от компании Easyeda:

Собираем все компоненты и переходим к следующему шагу.

Шаг 3. Рисуем окончательную схему

Чтобы нарисовать окончательную схему, использовали Easyeda, набор инструментов EDA на основе веб-технологий. На этом портале очень просто рисовать большие схемы. Также это онлайн сервис. Таким образом, благодаря удобству использования что-то лучшее найти сложно. Рекомендуем вам использовать в своих проектах. Схема, которая разработана может быть скачена по ссылке ниже, PDF документ:

Шаг 4. Создаем печатную плату

Как только схема завершена, пришло время сделать печатную плату. Мы использовали веб-сайт JLCPCB (ссылка), чтобы сделать печатную плату. Эти ребята являются одними из лучших в производстве печатных плат в последние дни.

После завершения проектирования схемы преобразуйте ее в печатную плату и спроектируйте печатную плату на веб-сайте easyEDA (ссылка). Будьте терпеливы. Ошибка на этом шаге испортит вашу печатную плату. Проверьте несколько раз перед генерацией файла gerber. Вы также можете проверить 3d модель вашей платы здесь. Нажмите на создание файла gerber и оттуда вы можете напрямую заказать эту плату через JLCPCB. Загрузите файлы gerber, выберите правильную спецификацию, ничего не меняйте в этом разделе. Оставьте как есть. Это достаточно хорошие настройки для старта. Разместите заказ. Вы получите его через 1-2 недели.

Шаг 5. Пайка компонентов

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

Одна вещь, которую стоит пояснить, заключается в том, что значения конденсаторов не обязательно должны быть идеальными. Нечто близкое к тем величинам, что мы обсуждали выше, вполне будет работать. То же самое касается резисторов. Но сохраните значения R1 и R2 LM317.

Одна вещь, которую вы можете найти странной, что у arduino, который мы сделали, есть две кнопки сброса. На самом деле, когда разрабатывали макет, использовали четырехконтактную кнопку для справки. Но во время пайки стало понятно, что у нас её нет. Поэтому мы припаяли 2 двухполюсных переключателя сброса на место. Там нет ничего особенного.

Шаг 6. Запуск загрузчика на микроконтроллере

Если вы используете конвертер USB – TTL для программирования микроконтроллера, тогда загрузчик Arduino должен быть установлен в новый чип atmega328p. Об этом мы сделаем следующий большой урок. После этого процесс загрузки кода будет точно таким же, как и в обычной Arduino.

Если вы используете программатор ICSP, то есть программатор USBASP, тогда этот шаг не нужен. Но процесс загрузки кода немного отличается.

Читайте также:  Башкирские утки как отличить утку от селезня

Шаг 7. Программируем Ардуино

Подключите коммутационную плату к Arduino и подключите её к компьютеру. Откройте диспетчер устройств и наблюдайте за com-портом конвертера usb – ttl. В Arduino IDE выберите com-порт и плату правильно. Теперь здесь начинается сложная часть.

Если ваша плата FTDI имеет вывод DTR и она подключена для сброса, просто сохраните программу и загрузите ее в Arduino как обычно. Ошибки не будет. Но если у вас нет пина DTR, как у нас, то, прежде чем нажать кнопку загрузки, удерживайте кнопку сброса на плате, а затем нажмите кнопку загрузки. Удерживайте кнопку до тех пор, пока программа не скомпилируется, когда IDE говорит «загрузка», затем отпустите переключатель сброса. Затем код будет загружен.

Шаг 8. Итоговый результат

Здесь вы можете увидеть, что мы загрузили 3-контактный код в новую arduino, и все работает, как и предполагалось. Используя только 3 контакта, мы контролируем 6 светодиодов с промежутком 200 мс между ними. Мы проверяли другие программы, все они работают без нареканий.

Хочу представить вам свой проект-вариант широко известного контроллера 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.1hardwarearduinoootloadersatmega ATmegaBOOT_168_diecimila.hex. Далее необходимо выставить lock и fuse биты так, как показано на рисунке:

Узнать фьюз- и лок-биты для своего микроконтроллера можно посмотреть в файле: «…arduino-1.0.1hardwarearduinooards.txt», использовав калькулятор фьюзов для AVR (можно легко найти в интернете).
Если же у Вас нет программатора, но есть программатор у друга, соседа. то есть другой, более быстрый и полезный способ прошить загрузчик. Для этого нужно собрать программатор по этой схеме. Схема рабочая и проверенная мной. Простота этого метода заключается в том, что не нужно искать прошивку микроконтроллера, выставлять фьюз и лок-биты. При подключении этого программатора к компьютеру с установленными драйверами и подключенным программируемым МК, Вы, выбрав в программе Arduino IDE порт, на котором «сидит» программатор и свою прошиваемую плату и подключенный программатор, просто нажимаете на кнопку во вкладке сервис «прошить загрузчик» и радуетесь.

Если же у Вас присутствует проблема "яйца и курицы", то я посоветую собрать вот этот программатор (сам его не собирал, но думаю вешь хорошая). Или погуглить интернет на тему AVRISP-mkII. Еще вложу архив с информацией по этому программатору с файлами и описанием.

Про альтернативный метод прошивки бутлоадера можно почитать здесь.
Теперь (с устанвленными драйверами на компьютере, открываете программу Arduino IDE, во вкладке «Сервис» наводим курсор на вкладку «плата» и выбираем свое устройство (в моем варианте это – Arduino Diecimila or Duemilanove w/ ATmega168). Далее, там же, выбираем порт к которому подключен контроллер (можно посмотреть в диспетчере устройств компьютера). Реализуем свои мысли в скетче и радуемся работе контроллера!

Все возникшие вопросы присылайте в личку.
Плату контроллера разработал и успешно использует ростовский радиолюбитель Ананьев Валерий. Логин на сайте: kaznachej

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *