Направи си сам
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 конвертер (ИС FT232, 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 година