Arduino USB сделай сам (DIY). Минимальный клон Arduino за $3 на ATmega8A с модифицированным bootloader'ом Распиновка Arduino ATmega8

Самую простую схему Arduino вы можете собрать на макетной плате своими руками и без паяльника. Для сборки Arduino вам понадобится микроконтроллер ATmega8A-PU, адаптер USB-UART CP2102, резистор на 10k и кнопка.

Собрать схему можно на макетной плате Breadboard Half (BREADBOARD - 456 HOLES) размером 82х59 мм. При чем, на такой макетной плате, после сборки Arduino, еще останется много места для тестирования своих устройств или для программатора микроконтроллеров. Для большей помехо-защищенности Вашего самодельного Arduino могут понадобиться, но не обязательно, по одному конденсатору на 220мкФ, 2мкФ, 22нФ и 2 резистора по 1k.

Секрет такой простоты и функциональности самодельного Arduino 8 mini (назовем его так, от слова минимальный) кроется в том, что мы будем использовать микроконтроллер ATmega8-PU на частоте 8МГц с внутренним генератором.

Микроконтроллер ATmega8-PU для использования на частоте 8МГц необходимо подготовить. Необходимо выставить фьюзы и загрузить подходящий bootloader (загрузчик). Для наших целей мы воспользовались Конструктором загрузчика . и получили файл загрузчика a8_8MHz_a4_dc.hex и следующие настройки Arduino:

############################################################## a8_8MHz.name=ATmega8-mini (8 MHz internal) a8_8MHz.upload.protocol=arduino a8_8MHz.upload.maximum_size=7680 a8_8MHz.upload.speed=115200 a8_8MHz.bootloader.low_fuses=0xa4 a8_8MHz.bootloader.high_fuses=0xdc a8_8MHz.bootloader.path=optiboot a8_8MHz.bootloader.file=a8_8MHz_a4_dc.hex a8_8MHz.build.mcu=atmega8 a8_8MHz.build.f_cpu=8000000L a8_8MHz.build.core=arduino a8_8MHz.build.variant=standard ##############################################################

Эту секцию настроек необходимо добавить в файл hardware/arduino/boards.txt.

После того как схема будет собрана -

  • Загрузите в плату Arduino sketch ArduinoISP из примеров: Файл / Примеры / ArduinoISP
  • Установите в меню Сервис / Программатор / Arduino as ISP .
  • Выполните Сервис / Записать загрузчик

После записи загрузчика (bootloader) в ATmega8-PU кварц больше не понадобится, а схему, собранную для программирования можно разобрать и приступить к сборке схемы Arduino 8 mini.

Принципиальная схема Arduino 8 mini предназначенная для сборки своими руками на макетной плате:

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

  • Установите в меню Сервис / Программатор / AVRISP mkII .
  • Установите в меню Сервис / Плата / ATmega8-mini (8 MHz internal)
  • Выберите Сервис / Последовательный порт

Для загрузки скетчей, одновременно нажимайте кнопку загрузить в программе Arduino и кнопку Reset на плате Arduino 8 mini.

Загрузите в свой самодельный Arduino 8 следующий скетч:

Void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(1500); digitalWrite(13, LOW); delay(500); }

Если Вы все сделали правильно, светодиод должен мигать.

Как я уже упоминал, резисторы по 1k в линию RX и TX можно не ставить, конденсатор 2мкФ можно заменить проводником и не ставить конденсаторы 220мкФ и 22нФ, под Вашу ответственность.

Arduino. Всем известный и полюбившейся многим девайс стал на столько популярен, что даже маленькие дети не успев родится уже пытаются написать скетч. Зы, вот это стеб... Короче и я не хочу отставать и в данной статье расскажу как превратить плату расширения ATmega8A в arduino. Кто не знает что эта за плата, могут почитать . Да, я понимаю, многие скажут, а где тут самодельность. А самодельность заключается в том, что для Arduino нужно всего несколько вещей. Первое - микроконтроллер. Для дешивизны пойдет ATmega8. Второе - кварц на 16МГц. Третье - два керамических кондера на 22пф. И четвертое - преобразователь USB TTL, любой. Для сборки нужно присоединить кварц к ножкам МК XTAL1 и XTAL2. К этим же ножка прицепить два кондера, а другие ножки кондерев на землю и все.

А теперь переходим к практическим действиям. Превращать в Arduino будем отладочную плату, но все действия спроведливы для простого МК, кварца и пары кондеров. И так, поехали.
На плате расширения по умолчанию установлен кварц на 7,3728МГц. Для Arduino это не пойдет. Значит берем и меняем его на 16МГц.

Далее нам понадобится залить загрузчик в нашу плату. Для этого берем любую плату Arduino. У меня под рукой Arduino UNO. Если у вас еще нет Arduino, то пора ее преобретси. Купить ее можно в магазине Чип Резистор . И так, Arduino UNO у нас есть. кладем перед собой справа на столе Arduino UNO, а слева плату расширения ATmega8A. С правой стороны у этих плат есть разъем ISP с классической Атмеловской распиновкой.

Смело берем проводки и соеденяем эти разъемы один к одному за исключением 5 пина.


Теперь берем проводок и одним концом вставляем в 5-й пин на плате расширения ATmega8A, а второй конец на вывод Arduino UNO Digital 10. Должно получится вот так.

В итоге после всех манипуляций, у нас должен быть вот такой вид.

Если все отлично, то подключаемся к USB компьютера. При правильном подключении должны загорется светодиоды на Arduino UNO и красный светодиод на плате расширения ATmega8A. (К сожелению на фото провода загородили светодиод, но поверьте он горит)

Переходим к программным процедурам. А вот тут всех любителей МК ATmega8 ждет большая подстава от производителей Arduino. На текущий момент версия IDE 1.6.3 не поддерживает эти МК. Точнее конфигурационные файлы и загрузчик есть, но залить его нельзя. Дело в том что Arduino перешли на минимальный МК ATmega328P, а эта зараза имеет Extended Byte Fuse. А порстая восьмерка нет. Из-за этой дряни загрузчик не заливается, а ругается на отсутствия этих битов. Поэтому нужно загрузчик заливать старой версией IDE. У кого ее нет, можете скачать у меня . Это версия 1.0.3 и ее не надо устанавливать. Просто разархивируйте куда-нибудь и все. Далее просто запустите программу из этой папки. А теперь давайте настроим программу для заливки нашего МК. Для начала выбераем из примеров программатор ArduinoISP и заливаем его в Arduino UNO или какую вы сейчас используете.

После заливки, нужно заменить плату Arduino UNO или какая у вас на Arduino NG or older w/ATmega8 .

Все. Можно заливать. Нажимаем Сервис -> Записать загрузчик и ждем окончания записи.

Готово. Arduino родилась. Отключаем все провода, а плату расширения вешаем на отладочную плату GSMBOARD 1.1. Далее берем плату расширения USB-TTL и соединяем проводами GND - GND, RXD - TXD, TXD - RXD и подаем питание. Должен загореться зеленый светодиод.

Если все заработало, выключаем старую прогу и запускаем самцю последнюю версию. На сегодня это 1.6.3 и пишем вот такой код. void setup() { pinMode(2, OUTPUT); } void loop() { digitalWrite(2, HIGH); delay(2000); digitalWrite(2, LOW); while(1); } Собственно что тут происходит. Сначала инициализируем пин 2 на выход. Затем выводим на него единицу, ждем две секунды и прижимаем к нулю. Затем вваливаемся в бесконечный цикл. Дабы было понятно, вот картинка во что превратилась отладочная плата.

Как видно второй пин как раз отвечает за включение и выключение модуля. Теперь самое время залить наш скетч в свежеиспеченную Arduino. Для этого перенастроим IDE выбрав пункты как на картинке ниже. И не забудьте поменять порт на USB-TTL.

Все настроили. Жмем залить скетч. Все бы хорошо да ошибка вылезла. Эх. Вот тут что за грабля заволялась. На Arduino используется виртуальный COM порт для загрузки программ. Работает это так. Сначала IDE компилит проект, затем дергает ножку ресета МК, а так как сначала запускается загрузчик, то IDE увидев его начинает лить программу во флеш. А если после компиляции не дернуть ресет МК, то IDE загрузчика не дождется и вывалит ошибку. Для дерганья ресета на всех Arduino заведена ножка COM порта DTR. На плате расширения USB-TTL этой ноги нет, поэтому когда IDE скомпилит проект и напишет Вгружаем .

Судорожно нажимаем и отпускаем кнопку сброса на плате расширения ATmega8A. IDE подцепит загрузчик и зальет программу во флеш. Все, прога потупит немного и включит GSM модуль. Если все сделали правильно, то должно быть как на картинке.

Для счастливых обладателей переходников USB-RS232 можно вывести ножку DTR из порта (естественно через микросхему MAX3232) на ресет МК. Это пин 5 на разъеме ISP через конденсатор 100нф. То есть DTR - конденсатор - RES. И тогда IDE будет сама дергать ресет. В любом случае должна получится вот такая картина. Программа отработала и включила модуль.

Теперь можно ковыряться с GSM модулем. Если возникнут вопросы, пишите. Попробуем разобраться. 

АНОНИМ 02.02.16 22:32

Спасибо за статью. Теперь в своей ардуино уно я могу использовать и мегу 8.

niko19 25.12.16 23:03

Нахрена проделывать все это с платой расширения и получить Ардуину, если на столе уже готовая Ардуина лежит? Вопрос стоит, как сделать самодельную Ардуину, скажем так на макетной плате, из завалявшейся Мега8 и кварца.Что нужно залить в Мегу, буквально по пунктам, а еще лучше готовый файл прошивки, У меня например имеется параллельный программатор, впрочем и последовательный тоже есть, а готовой Ардуины нет...

Алексей 25.12.16 23:40

Ардуино это микроконтроллер фирмы атмел с залитым загрузчиком для работы с IDE от ардуины. Все что нужно так это выстовить фьюзы для загрузчика, из папки прошивок выбрать для своего мк и залить его. Если в краце.

Сразу признаюсь, что заголовок призван привлекать внимание — конечно, за $3 полноценную Arduino-плату не собрать, но минимальное решение вполне можно.

Платы проекта Arduino идеальны для макетирования и сборки прототипов, а для законченных устройств хотелось найти что-то более дешевое и доступное. В этой заметке будет описана минимальная Arduino-совместимая конструкция.

В качестве отправной точки использовались статьи Minimal Arduino with ATmega8 (внимание : в этой статье есть ошибка, значения fuse-битов неверны) и страница об ArduinoISP из официальной wiki . К сожалению, ни одна из этих статей в своё время не ответила на все мои вопросы, кроме того появилось желание немного «подкрутить» стандартный bootloader, но об этом ниже.

Поддержка новых плат и IDE
(дополнение от 01.05.2012 , файлы исправлены 27.05.2012 )

Действия, описанные в статье, проверялись на Arduino IDE 0023 и клоне Arduino Duemilanove . С момента написания статьи были выпущены новые платы и обновлена среда. Судя по комментариям пользователей к этой записи, всё работало если в качестве платы-программатора использовались Arduino Uno и Arduino Mega 2560 . Для новой версии среды Arduino IDE 1.0.1 я подготовил обновлённый архив (доступен в конце статьи), обновление необходимо из-за незначительных изменений в формате файла boards.txt

Минимальная Arduino-конструкция за $3.5
(дополнение от 02.05.2012)

Этот способ является альтернативным описанному в статье ниже!
В комплекте Arduino IDE 1.0 поставляется новый бутлоадер Optiboot , который занимает всего 512 байт (бутлоадер, описанный в этой статье в два раза больше — 1 Кб) и работает на высоком бодрейте — 115200 (в статье ниже — 38400). Для работы этого бутлоадера дополнительно к описанным в статье компонентам нужен внешний кварц на 16МГц и два конденсатора на 22пФ его обвязки (этим объясняется увеличение стоимости на $0,5:)). В комплекте с Arduino IDE 1.0 есть уже скомпилированная версия для ATmega8, достаточно только добавить в boards.txt следующее и прошить бутлоадер:
############################################################## atmega8optiboot.name=ATmega8 (optiboot, 16Mhz XTAL) atmega8optiboot.upload.protocol=arduino atmega8optiboot.upload.maximum_size=7680 atmega8optiboot.upload.speed=115200 atmega8optiboot.bootloader.low_fuses=0xBF atmega8optiboot.bootloader.high_fuses=0xCC atmega8optiboot.bootloader.path=optiboot atmega8optiboot.bootloader.file=optiboot_atmega8.hex atmega8optiboot.bootloader.unlock_bits=0x3F atmega8optiboot.bootloader.lock_bits=0x0F atmega8optiboot.build.mcu=atmega8 atmega8optiboot.build.f_cpu=16000000L atmega8optiboot.build.core=arduino:arduino atmega8optiboot.build.variant=arduino:standard В версии файлов к статье от 14.07.2012 настройки для этого способа добавлены в состав архива , поэтому править главный boards.txt больше нет необходимости.



Что будет нужно:
  • Arduino-совместимая плата (я использовал китайский клон Arduino Duemilanove , на момент написания заметки новая Arduino Uno не поддерживается скетчем ArduinoISP. Обновление : по сообщениям пользователей ArduinoISP из Arduino 023 поддерживает Arduino Uno). Плата будет использоваться в качестве программатора для прошивки bootloader"а и в дальнейшем как USB-TTL конвертер;
  • Arduino IDE версии 0022 (последняя на момент написаний статьи);
  • Микроконтроллер в корпусе DIP-28 ATmega8 или ATmega8A ( , версия с буквой «A» имеет более низкое энергопотребление). Для тактирования будет использоваться внутренний RC-осциллятор с максимальнй для него частотой 8Mhz.
  • Провода для соединения всего этого на время прошивки bootloader"a (я использовал беспаечную макетную плату и набор зачищенных проводов к ней)
Опциональные компоненты:
  • 1 светодиод и токоограничительный резистор на 220-500 Ом (подключается к пину №19 (PB5), это тот же выход Digital pin 13, к которому на большинстве Arduino-совместимых плат подключен светодиод L );
  • 1 резистор на 10 кОм (подключается от RESET"а микроконтроллера к +5V для предотвращения произвольного сброса);
  • 1 конденсатор 100 нФ (подключается между плюсом и минусом питания для фильтрации помех).

Выбор именно ATmega8(A) объясняется очень просто: в местных магазинах радиотоваров не было никаких других контроллеров, поддерживаемых средой Arduino. С одной стороны, это сильно ограничило меня в объёме кода, с другой — именно благодаря тому, что код моего проекта на Arduino не поместился в память контроллера, я был вынужден разобраться с WinAVR и переписать проект под AVR-GCC. Времени на вспоминание C и чтение datasheet"ов ушло довольно много, но код получился раз в пять компактнее и, пожалуй, к программированию в среде Arduino я врядли вернусь:).

Подготовка IDE

Скачайте архив с настройками и bootloader"ом и разархивировать его в папку Sketchbook (путь можно посмотреть в пункте меню File -> Preferences Arduino IDE). После перезапуска Arduino IDE в меню Tools -> Board должен появиться новый пункт .


В архиве находится следующее:
  • Модифицированный bootloader для ATmega8 от проекта Arduino. Оригинальный исходный код можно найти в папке hardware\arduino\bootloaders\atmega8 . Этот bootloader занимает всего 1 Кб (512 слов) в памяти контроллера, в отличие от более нового hardware\arduino\bootloaders\atmega , который используется для плат на основе ATmega168 и ATmega328. Отличия от оригинальной версии заключаются в следующем: уменьшено время ожидания скетча при сбросе микроконтроллера, скорость загрузки поднята до 38400;
  • Файл boards.txt , в котором описана конфигурация нового типа платы (с более высокой скоростью загрузки и fuse-битами для работы от внутреннего RC-осциллятора на частоте 8Mhz).
Превращение Arduino-совместимой платы в программатор

В Arduino нужно загрузить скетч ArduinoISP (File -> Examples -> ArduinoISP ), после этого Arduino может играть роль ISP-программатора практически для любых AVR чипов (я проверял на ATmega8 и ATtiny45).


Подключение «программатора» к контроллеру


Схема продублирована в тексте скетча ArduinoISP:

// this sketch turns the Arduino into a AVRISP // using the following pins: // 10: slave reset // 11: MOSI // 12: MISO // 13: SCK
Обновление от 30.10.2011: Для Arduino Mega назначение выводов другое:

// 50 (MISO) // 51 (MOSI) // 52 (SCK) // 53 (slave reset)
Дополнительно можно подключить светодиоды, которые будут перемигиваться при прошивке (их наличие или отсутствие на функциональность не влияет):

// Put an LED (with resistor) on the following pins: // 9: Heartbeat - shows the programmer is running // 8: Error - Lights up if something goes wrong (use red if that makes sense) // 7: Programming - In communication with the slave
Проверка подключения

Arduino использует для компиляции скетчей avr-gcc , штатной утилитой для прошивки в котором является программа avrdude (расположен в этой папке: \hardware\tools\avr\bin\ ). Прежде чем предпринимать что-либо дальше необходимо проверить, правильно ли мы подключили контроллер с помощью следующей команды:


avrdude -v -patmega8 -cstk500v1 -PCOM10 -b19200
Назначение параметров:
  • -v — выводить больше информации
  • -patmega8 — тип контроллера (для ATmega8A нужно всё равно указывать atmega8)
  • -cstk500v1 — тип программатора (ArduinoISP эмулирует STK500)
  • -PCOM10 — номер COM-порта (можно посмотреть в меню Tools -> Serial Port в Arduino IDE)
  • -b19200 — скорость обмена, скетч ArduinoISP работат на этой скорости
Если всё подключено правильно, контроллер должен радостно ответить примерно следующее:

AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.05s avrdude: Device signature = 0x1e9307 avrdude: safemode: lfuse reads as E1 avrdude: safemode: hfuse reads as D9 avrdude: safemode: lfuse reads as E1 avrdude: safemode: hfuse reads as D9 avrdude: safemode: Fuses OK avrdude done. Thank you.

Важно! Если всё подключено правильно, а всё равно не работает, возможно, проблема в версии avrdude . На одной из моих тестовых плат возникла следующая ситуация: avrdude из ArduinoIDE плату-«программатор» с ArduinoISP не видит, а avrdude из WinAVR работает отлично. Решение этого непонятного бага довольно простое — на время прошивки bootloader"a заменить файл \hardware\tools\avr\bin\avrdude.exe на более новую версию из WinAVR. Bootloader может прошиться не с первого раза, а со второго — жалоб о таком поведении на форумах тоже хватает. После прошивки bootloader"а можно восстановить оригинальную версию avrdude .

Прошивка bootloader"a

Самая простая часть. Нужно запустить Arduino IDE, выбрать в пункте меню Tools -> Board следующую плату: ATmega8(A) (8MHz int. RC osc, short bootloader delay, 38400 baud rate) . Здесь указывается целевая плата, поэтому нужно выбрать именно этот пункт, а не модель Arduino-совместимой-платы, которая работает ISP-программатором.

После этого нужно запустить процесс прошивки bootloader"а командой Tools -> Burn Bootloader -> w/ Arduino as ISP . Процесс прошивки занимает 1–2 минуты.


Что же получилось в итоге

После прошивки bootloader"а и установки fuse-битов новая ATmega8A будет работать от встроенного RC-осциллятора на частоте 8Mhz. Программы в флеш-памяти контроллера ещё нет, поэтому bootloader будет запускаться снова и снова, о чём будет свидетельствовать постоянное помигивание светодиода L.


Bootloader ждет команд по UART около половины секунды после сброса микроконтроллера. Для заливки прошивки в контроллер можно использовать:

  • USB-TTL конвертер (его можно собрать или купить);
  • Arduino-совместимая плата со снятым контроллером.
Зачем нужен bootloader, если есть ArduinoISP?
  • использование bootloader"a обеспечивает совместимость и с Arduino IDE, и с AVR Studio;
  • меньше проводов для подключения (вместо линий ISP только UART). При этом UART часто используется для отладки, поэтому его все равно приходится подключать.
Скачать

EGYDuino – это клон Arduino, который можно изготовить самостоятельно, на односторонней печатной плате. Это простое и дешевое решение, которое можно изготовить в домашних условиях, причем на 100% совместимое с Arduino.

Описание

Микроконтроллер ATmega8 отвечает за последовательное подключение по USB. Он может быть запрограммирован с помощью . AVR-CDC создает виртуальный СОМ-порт на ПК после подключения устройства и устанавливает соответствующий драйвер. Микроконтроллер ATmega 8,168 следует запрограммировать с помощью загрузчика ArduinoNG boatloader . Данную операцию можно выполнить с использованием еще одной платы Arduino (выберите ISP программатор) и среды разработки Arduino IDE, или отдельного программатора (USB, последовательного или параллельного), например, USBasp с надлежащим программным обеспечением. Также вы можете использовать загрузчик Arduino Duemilanove для ATmega 168 или 328.

Плата имеет следующие характеристики:

Использует микроконтроллер ATmega8 как интерфейсную ИС
- USB-соединение с ПК
- Стандартная кнопка RESET
- 100% совместимость по выводам с Arduino
- Регулятор 5В
- Выход 3.3В
- Совместимый размер и конструкция
- Все компоненты вставляются в сквозные монтажные отверстия на плате
- USB или DC выключатель питания
- Светодиод для вывода PIN13 с перемычкой
- Светодиод питания
- ICSP-разъем
- Легко изготовляемая
- Микроконтроллеры ATmega8,168,328 с использованием загрузчика arduinoNG
- Стандартное гнездо DC питания

Плата EGYDuino может запитываться через USB-коннектор, или стабилизатор напряжения внешнего адаптера.

Схема

Полная схема устройства показана ниже

Печатная плата

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
IC1 Микроконтроллер ATmega8-P 1 В блокнот
IC2 МК AVR 8-бит

ATmega328

1 В блокнот
IC3 Линейный регулятор

LM7805

1 В блокнот
D1 Выпрямительный диод

1N4001

1 В блокнот
D2, D3 Стабилитрон 3.6 В 2 В блокнот
С1, С2, С5, С6 Конденсатор 22 пФ 4 В блокнот
С3 Конденсатор 1000 пФ 1 В блокнот
С4, С7, С10 Конденсатор 0.1 мкФ 3 В блокнот
С8, С9 Электролитический конденсатор 100 мкФ 2 В блокнот
R1, R2 Резистор

68 Ом

2 В блокнот
R3 Резистор

1.5 кОм

1 В блокнот
R4, R6 Резистор

10 кОм

2 В блокнот
R5 Резистор

1 кОм

1 В блокнот
R7 Резистор

470 Ом

1 В блокнот
Q1, Q2 Кварцевый резонатор 16 МГц 2 В блокнот
LED1 Светодиод Красный 1

Микроконтроллеры – отличная основа для большого количества устройств. По сути своей они напоминают компьютер: постоянная память; оперативная память; вычислительное ядро; тактовая частота.

Среди многих семейств и видов МК новички часто выбирают контроллеры AVR Atmega. Однако язык программирования может показаться сложным, поэтому преподаватель из Италии решил разработать простую и удобную плату для обучения.

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

С этими платами от Ардуино вы получаете целый ряд преимуществ:

  • готовая разведенная печатная плата со всеми необходимыми компонентами и разъёмами;
  • микроконтроллеры Atmega;
  • возможность программировать без программаторов – через ЮСБ порт;
  • питание от любого источника 5-20 вольт;
  • простой язык программирования и возможность использования чистой C AVR без переделок платы и прошивки.

Характеристики чипа

  • Частота ATmega8: 0-16 МГц
  • Напряжение ATmega8: 5 В
  • Частота ATmega8L: 0-8 МГц
  • Частоат ATmega8A: 0-16 МГц

В реальности почти все микроконтроллеры при рабочем напряжении в 5 вольт работают с частотой 16 мегагерц, если участвует внешний кварцевый резонатор. Если брать внутренний генератор, то частоты составят: 8, 4, 2 и 1 МГц.

Распиновка Arduino ATmega8

Ниже приводим распиновку атмега8, которую можно также найти на официальном сайте производителя:

Добавление устройств АТмега

Есть один нюанс по работе с эти чипом - нам нужно внести некоторые изменений в один файл, чтобы дальше можно было бы программировать микроконтроллеры Arduino ATmega8.

Вносим следующие изменения в файл hardware/arduino/boards.txt :

Atmega8o.name=ATmega8 (optiboot 16MHz ext) atmega8o.upload.protocol=arduino atmega8o.upload.maximum_size=7680 atmega8o.upload.speed=115200 atmega8o.bootloader.low_fuses=0xbf atmega8o.bootloader.high_fuses=0xdc atmega8o.bootloader.path=optiboot50 atmega8o.bootloader.file=optiboot_atmega8.hex atmega8o.bootloader.unlock_bits=0x3F atmega8o.bootloader.lock_bits=0x0F atmega8o.build.mcu=atmega8 atmega8o.build.f_cpu=16000000L atmega8o.build.core=arduino:arduino atmega8o.build.variant=arduino:standard ############################################################## a8_8MHz.name=ATmega8 (optiboot 8 MHz int) a8_8MHz.upload.protocol=arduino a8_8MHz.upload.maximum_size=7680 a8_8MHz.upload.speed=115200 a8_8MHz.bootloader.low_fuses=0xa4 a8_8MHz.bootloader.high_fuses=0xdc a8_8MHz.bootloader.path=optiboot a8_8MHz.bootloader.file=a8_8MHz_a4_dc.hex a8_8MHz.build.mcu=atmega8 a8_8MHz.build.f_cpu=8000000L a8_8MHz.build.core=arduino a8_8MHz.build.variant=standard ############################################################## a8_1MHz.name=ATmega8 (optiboot 1 MHz int) a8_1MHz.upload.protocol=arduino a8_1MHz.upload.maximum_size=7680 a8_1MHz.upload.speed=9600 a8_1MHz.bootloader.low_fuses=0xa1 a8_1MHz.bootloader.high_fuses=0xdc a8_1MHz.bootloader.path=optiboot a8_1MHz.bootloader.file=a8_1MHz_a1_dc.hex a8_1MHz.build.mcu=atmega8 a8_1MHz.build.f_cpu=1000000L a8_1MHz.build.core=arduino a8_1MHz.build.variant=standard ############################################################## a8noboot_8MHz.name=ATmega8 (no boot 8 MHz int) a8noboot_8MHz.upload.maximum_size=8192 a8noboot_8MHz.bootloader.low_fuses=0xa4 a8noboot_8MHz.bootloader.high_fuses=0xdc a8noboot_8MHz.build.mcu=atmega8 a8noboot_8MHz.build.f_cpu=8000000L a8noboot_8MHz.build.core=arduino a8noboot_8MHz.build.variant=standard

Таким образом, если мы перейдем в меню Сервис → Плата , то увидим устройства:

  • ATmega8 (optiboot 16MHz ext)
  • ATmega8 (optiboot 8 MHz int)
  • ATmega8 (optiboot 1 MHz int)
  • ATmega8 (no boot 8 MHz int)

Платы Arduino

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

Сердце платы – микроконтроллер семейства AVR. Изначально был применён микроконтроллер atmega8, но его возможности не безграничны, и плата подвергалась модернизации и изменениям. Стандартная плата, которая наиболее распространена у любителей – это плата версии UNO, существует много её вариаций, а её размеры сравнимы с кредитной карточкой.

Плата – полный аналог большего собрата, но в гораздо меньших размерах, версия arduino atmega168 была самой популярной и недорогой, но её сменила другая модель – arduino atmega328, стоимость которой аналогична, а возможности больше.

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

Клеммная колодка – отличный способ сделать надёжное разъёмное соединение и быстро выполнить изменения в схеме прототипов ваших устройств. Для тех, кому не хватает стандартных разъёмов, есть более крупные и мощные платы, например, на atmega2560, у которой доступно полсотни портов для работы с периферией.

На фото изображена плата . На её основе можно собрать довольно сложного робота, систему умного дома или 3d-принтер на ардуино.

Не стоит думать, что младшие версии слабы, например, микроконтроллер atmega328, на котором построены модели Uno, nano, mini и другие, имеет вдвое больше памяти по сравнению с 168 моделью – 2 кб ОЗУ и 32 кб Flash памяти. Это позволяет записывать более сложные программы в память микроконтроллера.

Проекты на основе Arduino ATmega

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

Пример 1

Можно сделать тестер с 11 функциями на микроконтроллере atmega32.

Устройство имеет крайне простую схему, в которой использовано немногим более дюжины деталей. Однако вы получаете вполне функциональный прибор, которым можно производить измерения. Вот краткий перечень его возможностей:

  1. Прозвонка цепи с возможностью измерять падение напряжения на переходе диода.
  2. Омметр.
  3. Измеритель ёмкости.
  4. Измерение активного сопротивления конденсатора или ESR.
  5. Определение индуктивности.
  6. Возможность счёта импульсов.
  7. Измерение частоты – пригодится в диагностике, например, для проверки ШИМ источника питания.
  8. Генератор импульсов – тоже полезен в ремонте.
  9. Логический анализатор позволит просмотреть содержимое пачек цифровых сигналов.
  10. Тестер стабилитронов.

Пример 2

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

Пример 3

Для продвинутых радиолюбителей есть возможность собрать более чем бюджетный осциллограф. Мы опубликуем данный урок в дальнейших статьях.

Для этого вам понадобится:

  1. Arduino uno или atmega
  2. Tft дисплей 5 дюйма.
  3. Небольшой набор обвязки.

Или его упрощенный аналог на плате Nano и дисплее от nokia 5110.

Такой осциллографический пробник станет полезным для автоэлектрика и мастера по ремонту радиоэлектронной аппаратуры.

Пример 4

Бывает, что управляемые модули удалены друг от друга или возможностей одной ардуино не хватает – тогда можно собрать целую микроконтроллерную систему. Чтобы обеспечить связь двух микроконтроллеров стоит использовать стандарт RS 485.

На фото приведен пример реализации такой системы и ввода данных с клавиатуры.

Цветомузыка на микроконтроллере Arduino ATmega8

Для школьной дискотеки можно собрать ЦМУ на 6 каналов.

Транзисторы VT1-VT6 нужно подобрать с учетом мощности ваших светодиодов. Это силовые компоненты – они нужны, потому что мощности микроконтроллера не хватит, чтобы запустить мощные лампы или светодиоды.

Если вы хотите коммутировать сетевое напряжение и собрать цветомузыку на лампах накаливания, вместо них нужно установить симисторы и драйвер. Дополнить каждый канал ЦМУ вот такой конструкцией:

Ардуино своими руками

Atmega2560 – хоть и мощный и продвинутый контроллер, но проще и быстрее собрать первую плату на atmega8 или 168.

Левая часть схемы – это модуль связи по USB, иначе говоря, USB-UART/TTL конвертер. Его, вместе с обвязкой, можно выбросить из схемы, для экономии места, собрать на отдельной плате и подключать только для прошивки. Он нужен для преобразования уровней сигнала.

DA1 – это стабилизатор напряжения L7805. В качестве основы можно использовать целый ряд avr микросхем, которые вы найдете, например, серии, arduino atmega32 или собрать arduino atmega16. Для этого нужно использовать разные загрузчики, но для каждого из МК нужно найти свой.

Можно поступить еще проще, и собрать всё на беспаечной макетной плате, как это показано здесь, на примере 328-й атмеги.

Микроконтроллеры – это просто и весело – вы можете сделать кучу приятный и интересных вещей или даже стать выдающимся изобретателем, не имея при этом ни образования, ни знаний о низкоуровневых языках. Ардуино – шаг в электронику с нуля, который позволяет перейти к серьезным проектам и изучению сложных языков, типа C avr и других.

Windows 8