Целите на курса са студентите да придобият допълнителни познания за програмирането на 32-битови микроконтролери ARM Cortex-M3 и Cortex-M4F (Atmel SAM3X8E и TI LM4F120 процесори) в среди Arduino и Energia и да се запознаят с принципите на създаването на схеми и устройства с тези контролери. Arduino e платформа за електронно прототипиране с отворен код, базирана на гъвкави и лесни за използване хардуер и софтуер. Системата общува със средата, получавайки сигнали от множество сензори и датчици и може да взаимодейства с нея, контролирайки светлини, дисплеи, двигатели и други устройства. Микроконтролерът в платката се програмира с Arduino език за програмиране (базиран на Wiring и подобен на С++) в развойна среда Arduino (базирана на Processing). За нуждите на курса са осигурени платки Arduino Due и TI Stellaris LM4F120 Launchpad, както и множество сензори, дисплеи, бутони, шасита, серво-механизми и прототипни платки, с цел практическото усвояване и прилагане на получените знания.
Изисквания – основни познания по програмиране на С++, начални познания по електроника и електротехника (от курса по Физика в средното училище). Не се предвижда да има входен тест. Предимство имат посещавалите другите части на курса („Програмиране в среда Arduino” и „Програмиране в среда Arduino за напреднали”). Курсът завършва с разработка и защита на индивидуален проект (схема и програма на устройство с Arduino) и текуща оценка. Дисциплината е предназначена за студентите на ФМИ от всички специалности и курсове, но се препоръчва на студентите, изучавали вече дисциплини, свързани със С++ и Компютърни Архитектури.
|
Съдържание (по седмици)
- Обзор на 32-битовите ARM Cortex микроконтролери и развойните платки Arduino Due и Stellaris Launchpad. Представяне на хардуерните среди Arduino и Launchpad . Запознаване със софтуерните среди Arduino IDE 1.5 и Energia. Преговор на наученото в предходните части на избираемата („Програмиране в среда Arduino” и „Програмиране в среда Arduino за напреднали”).
- Работа с датчици за напрежение, ток, влага, температура, барометрично налягане, осветеност, акселерометри, жироскопи, магнитометри, RTC и др.
- Контролен проект – управление на ТМ1638, MAX7219, I2C 7-сегментни и TFT сензорни дисплеи с бутони и индикация, с получаване на информация от разнородни датчици.
- Експерименти с таймери, прекъсвания, DMA, управление на двигатели, серво и релета. Управление на паметта при по-сложни проекти. Работа с EEPROM.
- Разработка на метеорологична станция – реален експеримент.
- Управление на устройства с безжична връзка – Bluetooth модули HC-05/06 и безжични модули nRF24L01 2.4GHz. Работа с Wiznet W5100 Ethernet модули за връзка с LAN и Интернет. Управление по Интернет – локален web сървер.
- Задаване на индивидуален проект за разработване на метеорологична станция, управление на робот или система за домашна автоматизация „умен дом“. Обсъждане на основните трудности и проблеми. Начален sketch на проекта. Симулиране в симулатор.
- Работа по проекта. Отстраняване на възникналите проблеми. Изготвяне на хардуерен прототип с прототипна платка.
- Довършване и тестване на проекта. Писане на техническа документация.
- Представяне и защитаване на проекта. Крайна оценка.
|