Tag Archives: atmega328p-pu

Сделай сам себе ардуину: Часть 1 – ATMega

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

Очевидное преимущество – это то, что вы можете уменьшить размеры вашего проекта. Собрав и протестировав прототип на полноформатной платформе, его затем можно перенести на уменьшенную версию и использовать в более миниатюрных корпусах и/или платформах.

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

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

20160205_205831Одна микросхема ATmega328p-pu, один кристалл на 16 Mhz, два конденсатора на 22 пикофарад и резистор – вот и весь Arduino Uno. Да у него нет USB и ещё много чего вроде самовостанавливающегося предохранителя, но для конечного проекта этого как правило и не важно.

Чтобы собрать такой Arduino нужно вставить 16 МГц кристалл между 9 и 10 ножками. Два конденсатора идут между землёй – ножка 8 и ножками кристалла, например один конденсатор между и 10й, а второй между и .

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

ArduinoISPЗатем поменять настройки и выбрать плату в которую будут заливаться скетчи, а в качестве программатора выбрать Arduino as ISP. Залить bootloader используя Arduino Uno, соединив контакты следующим образом (для Arduino Uno/Nano)

D10 -> Reset (Первая нога)
D11 (MOSI) -> MOSI (17я нога)
D12 (MISO) -> MISO (18я нога)
D13 (SCK) -> SCK (19я нога)

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

nanoviauno 20160211_210204

Теперь можно заливать Sketch-и в Arduino у которых поломан или отсутствует USB.

Вот, например, мой проект по мониторингу качества воздуха работает на самодельной Arduino Uno собранной на макетной плате:

IMG_20160206_153044Но что если хочется ещё меньше? Первое, что попалось мне в интернете это ATTiny45/85:

Собственно работает неплохо. Например я собрал простенькую схему для управления светодиодами на основе ws2812b:

20160117_204324Так любимая мной шина i2c тоже работает но с некоторыми переделками.

Схема подключения для программирования с использованием Arduino Uno в качестве программатора аналогична подключению к Arduino Nano, достаточно посмотреть распиновку для ATTiny в Googl-е:

20160407_135833 20160407_140704

Другая альтернатива – это Arduino Nano или ATmega328p-au, которая немного больше ATtiny, но полнофункиональна как ATmega328p-pu на Arduino Uno.

20160206_12302120160227_124652

Мне понравился вариант SEM0010, который идёт сразу с большой макетной областью:

20160206_123029Минусом является то, что отсутствует USB для заливки скетчей, однако тут тоже можно использовать другой Arduino в качестве программатора. К тому же тут есть ICSP разъём, что позволяет подключить её без пайки. Вот например простейший пример Blink, залитый через ICSP:

20160227_165127Собственно ICSP это те же самые MOSI/MISO/SCK, так что по прежнему используются pin-ы с 10 по 13й на Arduino, которая выступает в качестве программатора. Кстати если вы откроете стандартный sketch ArduinoISP вы даже найдёте там описание того, как использовать Arduino в качестве программатора.

Ещё один вариант миниатюризации – это Искра Мини от Амперки.

20160315_150541Это та же ATMega328p-au, так что с ней можно работать так же как и с Arduino Nano.

Но что если хочется больше мощности при компактных размерах? Для этого можно воспользоваться реализацией на основе процессоров от ARM, но это уже в следующий раз.

Если вам интересно, есть что добавить или покритиковать – не стесняйтесь оставлять комментарии.