Arduino своими руками с usb портом

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

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

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

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

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

Как сделать свою собственную плату Arduino Uno

В уроке мы покажем вам, как сделать свою собственную плату 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.

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

Шаг 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 UNO своими руками



Об остальных материалах, дабы ничего не напутать, будет рассказано по ходу статьи.

Шаг первый: понимание схемы Arduino UNO

Прежде чем приступить к пайке, нужно было понять, что именно находится на плате Arduino UNO. Мастер разделил схему на 4 блока:
ATmega328 MCU
ATmega328P PDIP
16 МГц кварцевый генератор
Конденсаторы
Цепь питания
Регулятор от 7-12 В до 5В
Регулятор от 5 В до 3,3 В
USB / входной разъем, схема автоматического выбора
защита от обратного тока
Схема USB-UART
Разъем USB
Чип последовательного преобразователя (ATMEGA8U2-MU) с осциллятором и разделительными конденсаторами
Сигнальные светодиоды
индикатор питания
светодиод по умолчанию (D13)
Светодиоды TX / RX

Шаг второй: ATmega328 MCU и дорожки
Монтаж мастер начинает с микроконтроллера ATmega328 и дорожек цифрового и аналогового ввода / вывода. Arduino UNO имеет продуманную компоновку дорожек, которая хорошо соответствует компоновке 28 контактного DIP-пакета ATMEGA328. Дорожки не пересекаются, а идут параллельно друг другу. Мастер делает бумажный шаблон дорожек с оригинальной платы Ардуино и из проволоки изготавливает дорожки аналогичной формы. Припаивает и к микроконтроллеру.

Единственный внешний компонент для ATmega328, после монтажа которого устройство может работать, — это внешний генератор с частотой 16 МГц. Для его работы нужны два конденсатора 22 пФ. Мастер монтирует детали согласно семы. Минимальное аппаратное обеспечение для ATmega328P готово. Теперь можно сделать первый тест с программатором USBasp через интерфейс AVR ISCP.



Шаг третий: цепь питания
Мастер сделал для проекта рамку из монтажной платы, которая удерживает детали на месте, оставляя достаточно места для пайки.

ATmega328 питается от 5В. Arduino UNO имеет два источника питания — 7-12В и 5В через разъем USB. Он также обеспечивает источник питания 3,3 В для внешних компонентов. Т.е на устройстве размещены два регулятора мощности. Сначала нужно преобразовать 7-12 В в 5 В, а затем преобразовать 5 В в 3,3 В. Мастер использовал два регулятора AMS1117 5 В и 3,3 В. В схеме так же присутствуют конденсаторы смонтированные в соответствии с рекомендациями в технических описаниях.

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




Шаг шестой: основание
Модуль Freeduino получился довольно красиво, но неустойчивым. Тогда мастер решил сделать для него основание, а чтобы это было красиво, основание будет сделано из эпоксидной смолы.

На 3D-принтере он напечатал форму, установил в форму устройство и залил эпоксидкой. После отверждения смолы он убрал форму и отполировал основание.

Системный интегратор

Самодельный Arduino, UNO совместимый, на макетке и с USB-DATA кабелем

В нашем самодельном Arduino микроконтроллер ATmega328P-PU работает на частоте 16 МГц, есть USB интерфейс, кнопка сброса и схема сброса в начале загрузки скетчей. И самое главное, в микроконтроллер зашит bootloader (загрузчик) Arduino Uno.

Таким образом, наш самодельный Arduino максимально совместим с Arduino UNO, но благодаря тому, что наш Arduino собран на макетной плате Breadboard Half (BREADBOARD — 456 HOLES) размером 82х59 мм., он получился более удобным в эксплуатации.

Основное преимущество самодельного Arduino, собранного на макетной плате в том, что его размер может не превышать размеров аналогичных моделей, собранных промышленным способом на печатных платах. В то же время, на макетной плате еще остается много места для создания своих устройств на базе Arduino. Например, этот самодельный Arduino можно успешно использовать для программирования микроконтроллеров в DIP-8, DIP-14, DIP-16, DIP-20 и DIP-24 корпусах. Если удалить схему сброса и сместить микроконтроллер ATmega328P-PU к краю макетной платы, можно будет программировать и микроконтроллеры в DIP-28 корпусах, и тиражировать Arduino. Схему самодельного Arduino можно повторить на значительно большей макетной плате и использовать для всестороннего тестирования своих устройств и программ.

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

Ниже приводим монтажную схему самодельного Arduino, UNO совместимого, на микроконтроллере ATmega328P-PU.

Принципиальная схема самодельного Arduino, UNO совместимого, на микроконтроллере ATmega328P-PU:

Обратите внимание , в цепи DTR установлен конденсатор емкостью 2 мкФ. На линии DTR со стороны преобразователя USB-UART (микросхема CP2101 и т.п.) на время передачи устанавливается сигнал низкого уровня. В момент отрицательного перепада сигнала на линии DTR, RC цепочкой (10 кОм и 2 мкФ) на 1 ножке микроконтроллера формируется короткий отрицательный импульс RESET. Это позволяет по инициативе IDE ARDUNO сбрасывать микроконтроллер и запускать на нем, программу bootloader (загрузчик) перед передачей скетчей (прошивок).

Замечание , когда Вы будете использовать Ваш Arduino в качестве ISP программатора других микроконтроллеров, разрывайте цепь DTR, вынимая конденсатор 2 мкФ. Это предотвратит запуск на Вашем Arduino программы bootloader. Ваш Arduino должен работать в качестве ISP программатора под управлением скетча ArduinoISP из примеров к программе Arduino IDE.

Читайте также  Автоматическое управление дворниками и омывателем ветрового стекла для нивы

Микроконтроллер ATmega328 имеет

  • 14 входов/выходов 6 из которых могут использоваться как выходы ШИМ (с широтно импульсной модуляцией);
  • 6 аналоговых входов.

Каждый из 14 цифровых входов/выходов Arduino может быть настроен как вход или выход, используя функции pinMode(), digitalWrite() и digitalRead() на языке C в программе Arduino IDE. Цифровые входы/выходы работают при напряжении 5 В.

На принципиальной электрической схеме самодельного Arduino синим цветом нанесены надписи в точности повторяющие маркировку на разъемах оригинального Arduino UNO R3.

Reset Низкий уровень сигнала на выводе перезагружает микроконтроллер.

0 . 13 Входы/выходы. Из них:

11. Выходы с ШИМ с разрешением 8 бит. Управление скважностью сигнала на выходе при помощи функции analogWrite().

A0 . A5 Аналоговые входы каждый разрешением 10 бит. Диапазон измеряемых напряжений 0 . 5 В.

AREF Опорное напряжение для аналоговых входов. Позволяет изменить верхний предел измеряемого напряжения на входах A0 . A5. Используется с функцией analogReference(). Внешнее напряжение рекомендуется подключать к выводу AREF через резистор 5 кОм.

С программным обеспечением некоторые выводы имеют специальное назначение:

0 (RX) и 1 (TX) для передачи данных по UART (порт последовательной передачи данных). Используется программой bootloader.

2 и 3 Инициализация внешнего прерывания. Используется с функцией attachInterrupt().

10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Для обмена данными по протоколу SPI, для чего используется библиотека SPI.

4 (SDA) и 5 (SCL) Для осуществления связи по протоколу I2C (TWI). Используется библиотека Wire.

Подбор USB-DATA кабеля вместо USB-UART модуля для самодельного Arduino.

В современных сотовых телефонах микросхема USB-UART встроена в телефон и кабель от них нам не подходит. В старых телефонах, для связи телефона с компьютером по USB интерфейсу использовался USB-DATA кабель, в который была встроена микросхема USB-UART, такой кабель нам и нужен.

Убедиться, что мы нашли или купили подходящий кабель можно следующим образом:

  • Под Windows, при подключении кабеля к USB интерфейсу компьютера, в операционной системе появится новое устройство.
  • Под Linux, необходимо подключить USB кабель к компьютеру и выполнить команду lsusb

Обратите внимание на последнюю строку. В системе появился Sony-Ericsson / Samsung DataCable. Отличная новость! Но, чтобы развеять сомнения, запустим программу Arduino. Под Windows, возможно, предварительно необходимо будет установить драйвер для кабеля.

В программе Arduino установите Сервис / Последовательный порт / порт на который подключился Ваш USB-DATA кабель. Запустите Сервис / Монитор порта . Соедините на кабеле провода RXD с TXD. В моем кабеле оказалось 5 проводов. Два провода питание 5В вычислить легко с помощью тестера, или светодиода с резистором. Так же сразу определите полярность питания. Три оставшихся провода RXD, TXD и DTR. DTR полезен, но не обязателен. И з них RXD и TXD можно вычислить с помощью Монитора порта, поочередно соединяя по 2 провода из трех (3 комбинации).

В Мониторе порта в верхней строке наберите какое нибудь сообщение и нажмите кнопку послать:

Сообщение вернулось, значит мы нашли провода RXD и TXD:

С USB-DATA кабеля срежьте разъем «К телефону». Припаяйте к проводам кабеля коннекторы. Я, например, взял соединительные провода папа-папа, разрезал их пополам и припаял к проводам USB-DATA кабеля.

Переходник USB-UART сделанный из USB-DATA кабеля от телефона Sony-Ericsson.

Еще один USB-DATA кабель подходит на роль USB-UART интерфейса:

Это кабель китайского производства для телефона Nokia. По середине кабеля установлена пластмассовая коробочка с микросхемой CP2101 на маленькой плате.

К этой плате я и припаял выводы +5V GND RXD TXD и DTR.

Переходник USB-UART сделанный из USB-DATA кабеля от телефона Nokia.

Конечно же, можно воспользоваться и готовым интерфейсом USB-UART, например, на микросхеме CP2102.

Но у него свои недостатки — не распаяна линия DTR и вместе с кабелями, он более громоздкий, +2 лишних разъемных соединения. Но есть и + 3 светодиода на борту (сомнительный +).

Бюджетный USB Arduino своими руками

Очень давно хотел собрать свою плату Arduino, смотрел на схемы, но так и не решался. Причин было несколько:

  • В моем ноутбуке отсутствует COM порт, потому версия с COM портом мне не подходит
  • USB версия использует очень дорогую микросхему FT232R

Ну вот однажды я наткнулся на статью на Хабре, где использовали конвертер на AVR вместо FT232R (схемы там нет), а так же на Zelectro аналогичную реализацию, но на микроконтроллере Atmega8. Последняя была сделана на базе японского проекта. Именно все это и вдохновило меня сделать собственную реализацию Arduino.

И так, если зайти на сайт AVR-CDC и посмотреть последние изменения (в архиве с прошивкой , на сайте нет информации) то там реализованы линии Rx Tx, а так же DTR, CTS, RTS не только на относительно дорогой ATMega8, но и на дешевой AtTiny2313. Работают последние линии только на кварце в 16 или 20 мгц. Именно на основе данного чипа я решил собрать USB — UART преобразователь.

  • Прошивка AtTiny2313 под кварц 16 мгц — скачать
  • USB драйвер — скачать
  • Fuse bits — HFuse: CD; LFuse: FF

Часть Arduino взята с официального сайта практически без изменений.

Печатную плату можно — скачать тут.

Плата питается как от USB так и от внешнего питания. На плате установлен стандартный для программатора AVR910 разьем для прошивки основного чипа. В моем случае это AtMega8, но можно использовать и AtMega168.

Для работы программатора AVR910 в фале конфигурации программатора ..Arduinoarduino-1.0.6hardwarearduinoprogrammers.txt необходимо добавить следующие строки:

Выше указанный файл редактируется нормально только редактором Notepad++. В обычном Notepad он выглядит не читабельно.

Ниже привожу фото этого Arduino в сборке от Павла!

Самодельное USB Arduino с программатором

Самодельный USB Arduino обратная сторона платы

Приобрести Arduino и шилды нужные для проекта можно тут:

Комплект для работы с Arduino

Бюджетный USB Arduino своими руками : 30 комментариев

Добрый день, уточните пожалуйста печатку, а то что на картинке не совпадает с тем что на печатке.

  1. ravusiz Автор записи 28.02.2015

Arduino на фото собрано по этой печатке! В печатке были внесены мелкие правки (исправлены ошибки по цепи питания). И я не пойму с какой картинкой вы сравниваете? Если в Google+ то там черновик?

Скиньте пожалуйста печатку и схему на E-mail:depression@ex.ua

  1. ravusiz Автор записи 01.03.2015

Ссылка на последнюю версию печатки в статье выше!

Печатка не соответствует рисунку устройства! Допишите пожалуйста ВСЕ номиналы радиоэлементов.

  1. ravusiz Автор записи 28.02.2015

По печатке что с чем сравниваете? Конкретно киньте ссылки! Номиналы добавил на схему!

Если у кого есть конкретные вопросы по тому или другому элементу то задавайте их! Если таких нет то учите матчасть!

какой вы использовали конденсатор возле attiny2313?

  1. ravusiz Автор записи 31.03.2015

SMD размер 1206 на 100 нанофарад

И какой элемент стоит возле «+» електролетического конденсатора.

  1. ravusiz Автор записи 31.03.2015

Любой выпрямительный возле значка диода — означает что подойдет вообще любой выпрямительный диод…. Например SMD на на ток 1А. Его можно вообще не ставить, но если не правильно подключите питание, то сожжете оба контроллера((.

Скажите пожалуйста, какие вы использовали диоды слева от резисторов на 72Ом, какой конденсатор слева от attiny2313 и какой элемент стоит вверху «+» электролетического конденсатора? заранее спасибо.

  1. ravusiz Автор записи 08.04.2015

Антон, я по ходу Вас понял. Смотрите
http://good-chip.in.ua/load/Arduino/ArduinoSeverinoSchematic1.png
Диод СМД на 1 Ампер, Стабилитрон на 3,3 вольта например BZX55-c3v3, самовосстанавливающейся предохранитель на 0,1 ампер
P.S. Если еще будут какие то непонятные элементы, то высылайте скриншот и выделите непонятные элементы. Отвечу вечером.

Добрый день, скажите пожалуйста где взять bootloader для atmega328? Так будете ли работать тинька на частоте 20mhz(usb-uart) прошивку я где то здесь видел.

  1. ravusiz Автор записи 14.04.2015

BootLoader пришивается из ПО Arduino через программатор. AtMega328 это Arduino UNO.
Моя версия печатки рассчитана на подключение к AVR 910.
А тут я пишу как переделать его в USB ASP

После включения через usb начал плавится резюк 0.1Ом между 7-8 ногой atmega328, что это может быть?

  1. ravusiz Автор записи 18.04.2015

По схеме нет резисторов между 7 и 8 ногой. Это конденсатор на 0,1мкф. Сверяйтесь со схемой как делаете!

Добрый день. Я немного не понял что с чем на печатки кнопка должна соединять, та которая с фиксацией, подскажите пожалуйста.

  1. ravusiz Автор записи 11.05.2015

Переключатель внешний блок питания — USB

Собрал плату из данной статьи, с небольшими изменениями в деталях, индуктивность меньшей мощности была (в 10 раз) и смд конденсаторы неизвестной мощности 🙂 (ну не подписаны они на видеокарте были) тем не менее плата работает, за что автору спасибо. Хотел уточнить, как прошить тиньку внутри этой схемы и какой бутлоадер шили в мегу 8? с какими фьюзами? я зашил из архива взятого с офф сайтай арудуино, фьюзы не трогал, подозреваю что функциональность будет не полной. В общем подскажите новичку, это моя первая микроконтроллерная плата, не считаю AVR910 и USBasp через который я и зашивал контроллер. Заранее спасибо за ответ.

  1. ravusiz Автор записи 12.05.2015

Аttiny2313 я шил через программатор AVR910. Просто вытащил микроконтроллер и вставил в dipboard и залил прошивку. Bootloader зашивал через саму программу Arduino c помощью все того же AVR910. ПО Arduino автоматически зашивает прошивку и выставляет фьюзы. Как я прошивал Bootloader смотрите тут в низу статьи раздел бонус.

Раз уж вы отвечаете, тогда спрошу еще одну вещь, написал пробный скетч, на плавное затухание и плавный розжиг диода, но диод либо не горит либо светится в полную силу, со скетчем на мигание диодов все работает как надо. не подскажите, проблема в плате или в коде? (код брал из набора скетчей в комплекте с средой разработки)

  1. ravusiz Автор записи 13.05.2015
Читайте также  Нет жки-драйвера – есть калькулятор!

Не подскажу. Но это можно проверить? Если у Вас AtTiny на панельке то вытяните ее или выпаять резисторы между ATMega и AtTyny. Залейте скетч через программатор, в Arduino есть такая функция. Если результат будет без изменения то проблема в коде, если все заработает то проблема в плате. По коду Arduino я не помогу, так как я отказался от нее сразу после того как попробовал, так как он очень ограничивает возможности МК и Меги 8 не хватает. Сейчас я пищу на С в среде Code Vision. Могу помочь по Code Vision очень даже, так что если что, задавайте вопросы по коду тут.
P.S. Если Вы не против то давайте тут разместим фото Вашей Arduino. Если Вы согласны то пришлите фото на адрес serg@good-chip.in.ua

где можно взять прошивку на attiny2313 под кварц 20mhz? и какие fuse bit ставить

  1. ravusiz Автор записи 06.10.2015

Линия RTS не работает ни на одном контроллере и ни на одной из прошивок, я удивлён …Почему люди об этом не пишут? Только встречал одну жалобу…Вы что эту линию не используете?

  1. ravusiz Автор записи 31.10.2015

Да, данный UART интерфейс не идеален и немного глючный. И вообще не работе на новых ОС (как Windows так и Linux). Но для заливки скетча нужны линии TX, RX, DTR которые работают! Ноги этого растут от автора USB-COM интерфейса, ссылку смотри в статье, и посмотри когда он последний раз вносил изменения в проект.
Ввиду вышеизложенного от данной схемы я отказался, и сделал другую, о чем написано в Коментарии от 06.07.2015 В 00:04. Во второй схеме работает идеально все:
http://good-chip.in.ua/handmade_usb_arduino/
https://www.youtube.com/watch?v=T0Z_h-0H2KI

Возможно ли использовать вместо ATmega8 ATvtmega328 ?

  1. ravusiz Автор записи 14.01.2018

Да, запросто. И таким образом Arduino NG превратится в Arduino uno

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Arduino своими руками с USB портом

Принцип работы системы

Устройство Arduino работает следующим образом. Информация, собранная с различных датчиков в доме, направляется по беспроводной сети на планшет или ПК. Далее с помощью специального софта производится обработка данных и выполнение определенной команды.

Главную функцию выполняет центральный датчик, который можно приобрести или собрать самостоятельно. Разъемы на платах являются стандартными, что значительно упрощает выбор комплектующих.

Питание

Питание Arduino производится через USB разъем или от внешнего питающего устройства. Источник напряжения определяется в автоматическом режиме.

Если выбран вариант с внешним питанием не через USB, можно подключать АКБ или блок питания (преобразователь напряжения). В последнем случае подключение производится с помощью 2,1-миллиметровго разъема с «+» на главном контакте.

Провода от АКБ подключаются к различным выводам питающего разъема — Vin и Gnd.

Для нормальной работы платформа нуждается в напряжении от 6 до 20 Вольт. Если параметр падает ниже 7 вольт, на выводе 5V может оказаться меньшее напряжение и появляется риск сбоя.

Если подавать 12 В, возможен перегрев регулятора напряжения и повреждения платы. По этой причине оптимальным уровнем является питание с помощью 7 — 12 В.

В отличие от прошлых типов плат, Arduino Mega 2560 работает без применения USB-микроконтроллера типа FTDI. Для обеспечения обмена информацией по USB применяется запрограммированный под конвертер USB-to-serial конвертер.

На Ардуино предусмотрены следующие питающие выводы:

  • 5V — используется для подачи напряжения на микроконтроллер, а также другие элементы печатной платы. Источник питания является регулируемым. Напряжение подается через USB-разъем или от вывода VIN, а также от иного источника питания 5 Вольт с возможностью регулирования.
  • VIN — применяется для подачи напряжения с внешнего источника. Вывод необходим, когда нет возможности подать напряжение через USB-разъем или другой внешний источник. При подаче напряжения на 2,1-миллиметровй разъем применяется этот вход.
  • 3V3 — вывод, напряжение на котором является следствием работы самой микросхемы FTDI. Предельный уровень потребляемого тока для этого элемента составляет 50 мА.
  • GND — заземляющие выводы.

Принципиальную схему платы в pdf формате можно посмотреть ЗДЕСЬ.

Связь

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

Начало работы

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

Этапы

При организации системы «Умный дом» на базе Ардуино, стоит действовать по следующему алгоритму:

  • Инсталляция программного кода;
  • Конфигурация приложения под применяемое устройство;
  • Переадресация портов (для роутера);
  • Проведение тестов;
  • Внесение правок и так далее.

В Сети имеется весь необходимый софт на применяемое оборудование — его достаточно скачать с официального сайта и установить (ссылку смотрите выше).

Приложение позволяет увидеть информацию о датчиках. Если это требуется, настройки IP-адрес могут быть изменены.

Последовательность действий при подключении к компьютеру

Чтобы начать работать с Ардуино в Windows, сделайте следующие шаги:

  • Подготовьте необходимое оборудование — USB-кабель и Arduino.
  • Скачайте программу на странице arduino.cc/en/Main/Software.

  • Подсоедините плату с помощью USB-кабеля. Проследите, чтобы загорелся светодиод PWR.
  • Поставьте необходимый набор драйверов для работы с Ардуино. На этом этапе стоит запустить установку драйвера и дождаться завершения процесса.


    После жмите на кнопку «Пуск» и перейдите в панель управления. Там откройте вкладку «Система и безопасность» и выберите раздел «Система». После открытия окна выберите «Диспетчер устройств», жмите на название Ардуино и с помощью правой кнопки мышки задайте команду обновления драйвера. Найдите строчку «Browse my computer for Driver software!», кликните по ней и выберите соответствующий драйвер для вашего типа платы — ArduinoUNO.inf (находится в папке с драйверами). Это может быть UNO, Mega 2560 или другая.

  • Запустите среду разработки Ардуино, для чего дважды кликните на значок с приложением.
  • Откройте готовый пример (File — Examples — 1.Basics — Blink).

    Выберите плату. Для этого перейдите в секцию Tools, а дальше в Board Menu.

  • Установите последовательный порт (его можно найти путем отключения и подключения кабеля).
  • Скачайте скетч в Ардуино. Кликните на «Upload» и дождитесь мигания светодиодов TX и RX на плате. В завершение система показывает, что загрузка прошла успешно. Через несколько секунд после завершения работы должен загореться светодиод 13 L (он будет мигать оранжевым). Если это так, система готова к выполнению задач.
  • Прошивка ATmega328

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

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

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

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

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

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

    Разработка проекта

    На современном рынке представлено множество устройств Arduino, имеющих различную комплектацию. Но универсального решения «на все случаи жизни» не существует. В зависимости от поставленной задачи каждый комплект подбирается в индивидуальном порядке. Чтобы избежать ошибок, требуется разработка проекта.

    Какие проекты можно создавать на Arduino?

    Ардуино позволяет создавать множество уникальных проектов. Вот лишь некоторые из них:

    • Сборка кубика Рубика (система справляется за 0,887 с);
    • Контроль влажности в подвальном помещении;
    • Создание уникальных картин;
    • Отправка сообщений;
    • Балансирующий робот на двух колесах;
    • Анализатор спектра звука;
    • Лампа оригами с емкостным сенсором;
    • Рука-робот, управляемая с помощью Ардуино;
    • Написание букв в воздухе;
    • Управление фотовспышкой и многое другое.

    Составление проекта для умного дома

    Рассмотрим ситуацию, когда необходимо сделать автоматику для дома с одной комнатой.

    Такое здание состоит из пяти основных зон — прихожей, крыльца, кухни, санузла, а также комнаты для проживания.

    При составлении проекта стоит учесть следующее:

    • КРЫЛЬЦО . Включение света производится в двух случая — приближение хозяина к дому в темное время суток и открытие дверей (когда человек выходит из здания).
    • САНУЗЕЛ . В бойлере предусмотрен выключатель питания, который при достижении определенной температуры выключается. Управление бойлером производится в зависимости от наличия соответствующей автоматики. При входе в помещение должна срабатывать вытяжка, и загорается свет.
    • ПРИХОЖАЯ . Здесь требуется включение света при наступлении темноты (автоматическое), а также система обнаружения движения. Ночью включается лампочка небольшой мощности, что исключает дискомфорт для других жильцов дома.
    • КОМНАТА . Включение света производится вручную, но при необходимости и наличии датчика движения эта манипуляция может происходить автоматически.
    • КУХНЯ . Включение и отключение света на кухне осуществляется в ручном режиме. Допускается автоматическое отключение в случае продолжительного отсутствия перемещений по комнате. Если человек начинает готовить пищу, активируется вытяжка.

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

    После появления людей в здании этот параметр поднимается до прежнего значения. Рекуперация воздуха осуществляется в случае, когда система обнаружила присутствие владельца. Продолжительность процесса — не более 10 минут в час.

    Стоит обратить внимание, что если в доме планируется установка умных розеток, то для управления ими лучше использовать приложения на мобильных устройствах, WIFI или через SMS сообщения.