Програмиране в среда Arduino

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

Продуктите Arduino се разпространяват като хардуер и софтуер с отворен код, лицензиран под LGPL/GPL лиценз, разрешаващ производството и разпространението от всеки. Платките и наборите се продават в сглобен или в „направи си сам“ вариант, достъпни са и като чертежи, схеми и изходен код за изцяло самостоятелно разработване.

Платките Arduino използват 8-битови (AVR) микроконтролери или 32-битови (ARM) процесори Atmel (най-новите модели Arduino включват и платки с други процесори, но ние ще наблегнем на Uno, Mega 2560 и Due моделите, като най-разпространени и достъпни на пазара). Платките са снабдени с множество цифрови и аналогови входно-изходни изводи (pins), които могат да бъдат свързвани с разнообразни платки за разширение (shields) и други схеми. Те включват и сериен или USB интерфейс, с чиято помощ може да се зареждат програми от компютър. Микроконтролерите обикновено се програмират с помощта на езиците за програмиране C и C++, като специално за платките Arduino се препоръчва да се използва Arduino IDE средата, базирана на Processing.

Първата платка Arduino е представена през 2005 г. Екипът на проекта е целял да предостави на любители, ученици и професионалисти евтин и лесен начин да създават устройства, способни да взаимодействат с околната среда чрез сензори и изпълнителни устройства. Обичайни примери за използване са създаването на прости роботи, термостати и датчици за движение.

Учебникът "Програмиране в среда Arduino" се разпространява безплатно и само в електронен вариант (ISBN 978-619-202-261-7) по лиценз Creative Commons ShareAlike CC BY-SA. alt="Корица на учебника" />

Учебник "Програмиране в среда Arduino"

Корица на учебника Учебник Учебник "Програмиране в среда Arduino Source code Изходен код на проектите към учебника "Програмиране в среда Arduino Презентация част 1 Презентация за първата част: Програмиране в среда Arduino Презентация част 2 Презентация за втората част: Програмиране в среда Arduino за напреднали Презентация част 3 Презентация за третата част: Програмиране в среда Arduino с 32-битови контролери Презентация наука Презентация за Arduino в обучението и научните изследвания

За контакти

Интересни връзки за Arduino

Arduino – основният сайт на Arduino. Ползвайте секциите Learning, Forum и Blog.

Игрището на Ардуино — българската секция в сайта на Arduino.

Adafruit Learn — ресурси за Arduino модулите, продавани от Adafruit.

SparkFun Electronics – секциите за Arduino, Blog, Tutorials и Learn.

Instructables Arduino — пълни указания за проекти с Arduino.

Circuits @Home — интересни проекти с Arduino.

Роботев — сайт на българската фирма Роботев, ползвайте секциите Библиотека и Блог, имат ресурси и за Raspberry Pi.

Arduino Bulgaria — може да се включите в групата Arduino Bulgaria във Facebook.

Arduino For Disabilities — материали за хора с увреждания и Arduino.

Arduino Projects — ресурси за Arduino на руски език.

Raspberry Pi

Raspberry Pi Foundation — основният сайт на Raspberry Pi.

Adafruit — ресурси за Raspberry Pi модулите, продавани от Adafruit.

GitHub — ресурси за Raspberry Pi в GitHub.

Hackter.IO — общност за проекти с Raspberry Pi.

Hackaday.IO – проекти с Raspberry Pi.

DIY Hacking — проекти с Raspberry Pi.

Софтуерен университет — може да търсите за ресурси и записани на видео безплатни семинари на български език за Arduino и Raspberry Pi.

Важна информация за студентите от ФМИ (редовно и задочно обучение), записали избираема дисциплина Програмиране в среда Arduino, за есенния триместър 2022-22 уч. година.

Анотации на избираемите дисциплини

Част 1 — Програмиране в среда Arduino

Анотация: Целите на курса са студентите да придобият основни познания за програмирането на 8-битови микроконтролери Atmel AVR в среда Arduino и да се запознаят с принципите на създаването на прости схеми и устройства с тези контролери. Arduino e платформа за електронно прототипиране с отворен код, базирана на гъвкави и лесни за използване хардуер и софтуер. Системата общува със средата, получавайки сигнали от множество сензори и датчици и може да взаимодейства с нея, контролирайки светлини, дисплеи, двигатели и други устройства. Микроконтролерът в платката се програмира с Arduino език за програмиране (базиран на Wiring и подобен на С++) в развойна среда Arduino (базирана на Processing). За нуждите на курса са осигурени платки Duemilanove и Mega2560, както и множество сензори, дисплеи, бутони и прототипни платки, с цел практическото усвояване и тестване на получените знания.

Съдържание на курса (по седмици)

1. Обзор на микроконтролерите и развойните платки. Представяне на хардуерната среда Arduino. Запознаване със софтуерната среда Arduino IDE.

2. Работа с цифровите изводи и с аналоговите входове. Принципи на PWM регулирането. Обща структура на софтуерен проект в Arduino средата. Секция Setup и секция Loop. Зареждане на проекта в паметта на контролера.

3. Първи реално работещ проект – управление на светодиод, зумер и 16х2 дисплей.

4. Работа с таймери, прекъсвания, управление на двигатели и релета. Роботи и други изпълнителни устройства.

5. Основни принципи на връзката с потребителя при микроконтролерите – бутони, клавиатури, IR дистанционно управление и 320х240 сензорен дисплей.

6. Управление на паметта, работа с външна памет – SD карта и външна RAM/EEPROM. Комуникация по I2C протокол. Безжични комуникации по 433MHz ASK протокол и 2.4GHz GFSK с nRF24L01. Управление на LAN модул и връзка с Интернет.

7. Задаване на индивидуален проект за разработване. Обсъждане на основните трудности и проблеми. Начален sketch на проекта.

8. Работа по проекта. Отстраняване на възникналите проблеми. Изготвяне на хардуерен прототип с прототипна платка.

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

10. Представяне и защитаване на проекта. Крайна оценка.

Част 2 — Програмиране в среда Arduino за напреднали

Анотация: Целите на курса са студентите да придобият допълнителни познания за програмирането на 8-битови микроконтролери Atmel AVR в среда Arduino и да се запознаят с принципите на създаването на по-сложни схеми и устройства с тези контролери. Arduino e платформа за електронно прототипиране с отворен код, базирана на гъвкави и лесни за използване хардуер и софтуер. Системата общува със средата, получавайки сигнали от множество сензори и датчици и може да взаимодейства с нея, контролирайки светлини, дисплеи, двигатели и други устройства. Микроконтролерът в платката се програмира с Arduino език за програмиране (базиран на Wiring и подобен на С++) в развойна среда Arduino (базирана на Processing). За нуждите на курса са осигурени платки Duemilanove и Mega2560, както и множество сензори, дисплеи, бутони, шасита, серво механизми и прототипни платки, с цел практическото усвояване и прилагане на получените знания.

Съдържание на курса (по седмици)

1. Обзор на микроконтролерите и развойните платки. Представяне на хардуерната среда Arduino. Запознаване със софтуерната среда Arduino IDE. Преговор на наученото в част 1 на избираемата („Програмиране в среда Arduino”).

2. Работа с дисплеи, бутони и I2C/TWI устройства.

3. Контролен проект – управление на ТМ1638 дисплей с бутони и индикация.

4. Експерименти с таймери, прекъсвания, управление на двигатели, серво и релета. Роботи и други изпълнителни устройства – проектиране на механизмите и алгоритмите.

5. Тест на робот с 4WD и серво – реален експеримент.

6. Управление на робота с безжична връзка – Bluetooth модул HC-06 и модул 433MHz.

7. Задаване на индивидуален проект за разработване на робот, серво или друг механизъм. Обсъждане на основните трудности и проблеми. Начален sketch на проекта.

8. Работа по проекта. Отстраняване на възникналите проблеми. Изготвяне на хардуерен прототип с прототипна платка.

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

10. Представяне и защитаване на проекта. Крайна оценка.

Част 3 — Програмиране в среда Arduino с 32-битови контролери

Анотация: Целите на курса са студентите да придобият допълнителни познания за програмирането на 32-битови микроконтролери ARM Cortex-M3 и Cortex-M4F (Atmel SAM3X8E и TI LM4F120 процесори) в среди Arduino и Energia и да се запознаят с принципите на създаването на схеми и устройства с тези контролери. Arduino e платформа за електронно прототипиране с отворен код, базирана на гъвкави и лесни за използване хардуер и софтуер. Системата общува със средата, получавайки сигнали от множество сензори и датчици и може да взаимодейства с нея, контролирайки светлини, дисплеи, двигатели и други устройства. Микроконтролерът в платката се програмира с Arduino език за програмиране (базиран на Wiring и подобен на С++) в развойна среда Arduino (базирана на Processing). За нуждите на курса са осигурени платки Arduino Due и TI Stellaris LM4F120 Launchpad, както и множество сензори, дисплеи, бутони, шасита, серво-механизми и прототипни платки, с цел практическото усвояване и прилагане на получените знания.

Съдържание на курса (по седмици)

1. Обзор на 32-битовите ARM Cortex микроконтролери и развойните платки Arduino Due и Stellaris Launchpad. Представяне на хардуерните среди Arduino и Launchpad. Запознаване със софтуерните среди Arduino IDE 1.5 и Energia. Преговор на наученото в предходните части на избираемата („Програмиране в среда Arduino” и „Програмиране в среда Arduino за напреднали”).

2. Работа с датчици за напрежение, ток, влага, температура, барометрично налягане, осветеност, акселерометри, жироскопи, магнитометри, RTC и др.

3. Контролен проект – управление на ТМ1638, MAX7219, I2C 7-сегментни и TFT сензорни дисплеи с бутони и индикация, с получаване на информация от разнородни датчици.

4. Експерименти с таймери, прекъсвания, DMA, управление на двигатели, серво и релета. Управление на паметта при по-сложни проекти. Работа с EEPROM.

5. Разработка на метеорологична станция – реален експеримент.

6. Управление на устройства с безжична връзка – Bluetooth модули HC-05/06 и безжични модули nRF24L01 2.4GHz. Работа с Wiznet W5100 Ethernet модули за връзка с LAN и Интернет. Управление по Интернет – локален web сървер.

7. Задаване на индивидуален проект за разработване на метеорологична станция, управление на робот или система за домашна автоматизация „умен дом“. Обсъждане на основните трудности и проблеми. Начален sketch на проекта. Симулиране в симулатор.

8. Работа по проекта. Отстраняване на възникналите проблеми. Изготвяне на хардуерен прототип с прототипна платка.


Источник: enkov.com