Направи си сам Arduino
/kn34pc.com/конструкции/...

Проектът Arduino е основан на семейство развойни платки, състоящи се от 8-битов AVR (или 32-битов ARM) Atmel микроконтролер и прилежащите им електронни компоненти: кварцов резонатор (генератор), линеен стабилизатор, бутон, светодиоди, комуникационни интегрални схеми, конектори и др.

Стандартизираният входно-изходен интерфейс, достъпният и разпространен език (C/C++) и интегрираната среда за разработка (Arduino IDE) улесняват програмирането.

Многобройните споделени, готови проекти, библиотеки, алгоритми на работа и др. в интернет пространството помагат за лесно адаптиране на чужд код за собствени нужди и цели, напълно безплатно при това.

Лично причислявам себе си като пряк "потърпевш" от ардуино-идеята, за която е измислена ардуино-средата: предназначението й е за хора неспециалисти, които с помощта отворения код и на постепенно натрупващия опит успяват да реализират собствени прости идеи и проекти, свързани с електрониката и управлението.

Наред с моите закупени нискобюджетни (вече многобройни ) китайски Arduino-модули, в духа на изложеното по-горе реших за себе си (за удоволствие от заниманието) да "прозря" всеки момент от създаването на Arduino: да започна от "гол" (непрограмиран) микроконтролер и да го "свържа" в електрическата схема на Arduino.

Програмирането с bootloader на AVR ATMEGA328 беше другата интересна част от заниманието, като усвояването на последното способства за бъдещото скоростно "възстановяване" на "грешно" фабрично програмирани и/или "пострадали" при моята експлоатация (hi! ) Arduino-модули.

Придобития опит и последвалата "рутина" при подготовката на микроконтролерa ми помага за използване и в не-Ардуино проекти, където управляващият възел (микроконтролер) е изграден на самата печатна платка на устройството.

Допълнителните ползи от това сам да си изработиш Ардуино са няколко: получаваш опитна постановка ("полигон") за програмиране на ATMEGA328. За това е необходимо просто новият микроконтролер да се постави в наличния цокъл и да се програмира. След това микроконтролерът може независим да се използва в ново устройство. Няма притеснения относно дефект при боравене с входове и изходи - бързо се подменя от цокъла при нужда.

***

За направата на собствено Arduino (в случая Uno) са необходими следните компоненти:

1. Микроконтролер ATMEGA328 (нов, записан, втора употреба, ... това няма особено значение). Корпус DIP28 е лесен за монтаж: грубичък е според съвременните виждания за монтаж на електронни изделия, но за мен липсва момента на "пипкавост" и "недовиждане" при монтаж на дребните SMD компоненти (напр. 28/32 MLF package!, който без фабрична печатна платка едва ли ще запоя).

2. основа за изработка (печатна, експериментална платка). В краен случай: обемен монтаж тип "умряла буболечка"

3. линейни стабилизатори за 5V и 3.3V (напр. 78M05 и AMS117-3.3)

4. два светодиода (напр. 3 mm червен и зелен LED), изправителен средномощен диод (1N4001-7), резистори, кондензатори, бутон (за RESET) и др.

5. кварцов резонатор на 16 MHz

6. цокъл за DIP28, съединители, конектори, гъвкави/твърди свързващи проводници и др.


 

За програмиране на началната програма за установяване (bootloader) в микроконтролера вариантите са два:

1. с друго, налично, готово Arduino (UNO):

2. с програматор (в случая USBASP) за микроконтролери ATMEGA (ATMEGA328), който се свързва за предвидените за целта изводи (MOSI, MISO, SCK, RESET). Програматорът е наличен за използване в менюто на Arduino IDE.

За зареждане на работните програми в Arduino (sketch) е необходим: USB към /TTL RX-TX конвертер (ИС FT323, CP2102, CH340), напр. като показания по-долу USB към TTL конвертер на базата на ИС FTDI FT232R.

* * *

По принципната схема по-долу и няколко поредни вечери следваше запояване на електронните компоненти върху експерименталната платка с отвори.

Шегувам се , на по-късен етап пречертах схемата с помощта на графичния софтуер, но всъщност схемата ми беше "творчески импулс", началото на идеята за "Направи си сам Ардуино" и й дължа значимото за приятните часове, преминали в заниманията с поялник в ръката.

За записване на bootloader в ATMEGA328 на самоделното Arduino аз използвах метода с друго, налично Arduino UNO. За програмиране е необходимо е да се свържат компонентите по принципната схема по-горе, като са необходими настройки в средата Arduino IDE:

1. Нека да изберем платка Arduino Uno и да проверим дали е активен наличния порт за Arduno UNO (при мен COM13).

Файл - Инструменти - Платка: Arduino UNO и Файл - Инструменти - Порт: COM13

2. Нека да направим готовото Arduino UNO среда за програмиране (Arduino ISP = In-System-Programmer) като заредим за това наличния скетч от примерите.

Файл - Примери - ArduinoISP - ArduinoISP:

3. Нека да направим получения програматор с готовото Arduino UNO активен за използване от средата Arduino IDE.

Инструменти - Програматор: Arduino as ISP

... и да запишем bootloader в новия, свързан вече ATMEGA328. При изпълнението на процеса трябва да се натисне

Инструменти - Запиши буутлоудер


След печат и поставяне на съответните подсказващи надписи към изводите на готовото блокче, самоделното Arduino е готово за последващо експериментиране:

При бъдещото използване и препрограмиране на самоделното Arduino UNO аз използвам TTL конвертер на базата на ИС FTDI FT232R, като допълнително свързания кондензатор в RESET шината е за автоматизирано установяване на Arduino в начално състояние при всяко "заливане" на нов sketch в Arduino IDЕ средата.

    При последваща експлоатация на самоделното блокче Arduino като устройство, конверторът след програмиране може да се откачи.

Пожелавам повече приятни моменти в хобито, с мирис на колофон и с поялник в ръката.

eof();

73! LZ2WSG
 

Помощни препратки:
1. Building an Arduino on a Breadboard
2. Burn Bootloader using Arduino as ISP (youtube.com)
3. Arduino as ISP

LZ2WSG, KN34PC
18 януари 2018 година