argon bulletin board

Експертно търсене  

Новини:

Регистрирането на нови потребители е временно деактивирано.

Автор Тема: Анонс на нова избираема дисциплина - Програмиране на Ардуино  (Прочетена 9531 пъти)

Светослав Енков

  • Неактивен Неактивен
  • Публикации: 1864
    • Shark's Home Page

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

гл.ас. Светослав Енков (и проф. дмн. Георги Тотков)


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

Изисквания
Основни познания по програмиране на С++, начални познания по електроника и електротехника (от курса по Физика в средното училище). Не се предвижда да има входен тест. Курсът завършва с разработка и защита на индивидуален проект (схема и програма на устройство с Arduino) и текуща оценка. Дисциплината е предназначена за студентите на ФМИ от всички специалности и курсове, но се препоръчва на студентите от специалност Информатика след 1-ви курс (при взети дисциплини Програмиране и ООП, както и Компютърни Архитектури).

Съдържание (по седмици)
1.   Обзор на микроконтролерите и развойните платки. Представяне на хардуерната среда Arduino. Запознаване със софтуерната среда Arduino IDE.
2.   Работа с цифровите входове и с аналоговите изходи. Принципи на PWM регулирането. Обща структура на софтуерен проект в Arduino средата. Секция Setup и секция Loop. Зареждане на проекта в паметта на контролера.
3.   Първи реално работещ проект – управление на светодиод, зумер и 16х2 дисплей.
4.   Работа с таймери, прекъсвания, управление на двигатели и релета. Роботи и други изпълнителни устройства.
5.   Основни принципи на връзката с потребителя при микроконтролерите – бутони, клавиатури, IR дистанционно управление и 320х240 сензорен дисплей.
6.   Управление на паметта, работа с външна памет – SD карта и външна RAM/EEPROM. Комуникация по I2C протокол. Безжични комуникации по 433MHz ASK протокол. Управление на LAN модул и връзка с Интернет.
7.   Задаване на индивидуален проект за разработване. Обсъждане на основните трудности и проблеми. Начален sketch на проекта.
8.   Работа по проекта. Отстраняване на възникналите проблеми. Изготвяне на хардуерен прототип с прототипна платка.
9.   Довършване и тестване на проекта. Писане на техническа документация.
10.   Представяне и защитаване на проекта. Крайна оценка.

За задочното обучение ще е по-съкратено съдържанието - все пак там ще е 2 дена по 10 часа.

Очаквам мнения и коментари, както и кой ще желае да се запише (не е записване тук).

Планирам занятията с редовното обучение да са 2 (зимен) триместър, в петък следобед. Не можело в събота, затова ще го направя поне да е в петък следобед, за да могат тези от вас, които работят, да се откопчат след 13:30 да идват поне на някои занятия.
« Последна редакция: 25.11.2011, 16:39:34 от Светослав Енков »
Активен

lamerko

  • Неактивен Неактивен
  • Публикации: 211
    • Моят блог

Нещо, което бих записал. За съжаление е малко късно. Но се раздвам, че има подобна избираема. Както и че се дава възможност и на задочниците да я запишат.  Според мен ще е добре ако материалите станат публични - хора, които не са я записали, както и външни за унивеситета да имат достъп (до материалите).
Активен

griph

  • Неактивен Неактивен
  • Публикации: 18

С голямо желание ще се запиша!  :-) От няколко месеца чета за микроконтролери и тъй като имам интереси в областта на роботиката, много се радвам, че има такъв курс. Имам два въпроса - първо: могат ли да се запишат магистри втора година от двугодишната магистратура, и второ: необходими ли са стабилни познания по Асемблер?
Активен
...wonderland is an understatement:)

Светослав Енков

  • Неактивен Неактивен
  • Публикации: 1864
    • Shark's Home Page

Асемблер - не - езика е С++.

За Магистри не знам дали могат - писал съм Всички специалности на ФМИ, но не знам това включва ли магистри.

Ще слагам материали в сайта, така че които не могат да присъстват - ще участват 'задочно', като ще дойдат на 1-2 упражнения, не на 10-те. Важното е накрая да има работещ проект и придобити знания (аз помагам и извън часовете по чата и фейсбук).
Активен

griph

  • Неактивен Неактивен
  • Публикации: 18

Благодаря за бързия отговор! Зимния и пролетния семестър имаме избираеми дисциплини по учебен план, ще попитам инспекторката дали може да се запиша, предполагам, че тя ще знае.
Активен
...wonderland is an understatement:)

Светослав Енков

  • Неактивен Неактивен
  • Публикации: 1864
    • Shark's Home Page

Ако ти е готино, идвай без протокол, но няма да имаш кредити и оценка. Аз (докато има място в залата) няма да гоня хора. То няма и да има супер наплив (познавам си стоката, на РНР бяха тъпканак, после се изнизаха).
Активен

Михаил Петров

  • Неактивен Неактивен
  • Публикации: 18
  • информатика 1 курс редовно обучение

Аз съм вътре със сигурност само се надявам зимният триместър в петък да нямам съвпадащи занятия понеже съм 1 курс и нямам избирателни. Под краен проект в края на обучението се има в предвид ФИЗИЧЕСКИ или СОФТУЕРНО реализиран такъв.
Активен

Светослав Енков

  • Неактивен Неактивен
  • Публикации: 1864
    • Shark's Home Page

Ами то винаги са и двете неща - проекта си е скеч (софтуер) и схема (хардуер). Понеже няма как да има за всеки отделна платка (купил съм 2 с мои си пари - не мога да ви карам да си купувате и вие), ще го измислим някак си. Това да е проблема. Има и емулатори - http://emulare.sourceforge.net/ - Не съм го пробвал този Emulare - но изглежда ОК, ще го пробваме и него.

За 1 курс - вие нямате право на избираема официално, но има начини - с инд. протокол накрая и важи за 2 курс. Питайте инспекторката.

Стига да нямате лекции баш по това време - упражненията се разместват.

Предполагам дотогава ще работи и Роболаб и ще може да ползваме и механизми за роботи към края на курса (за редовните).
« Последна редакция: 11.11.2011, 07:10:10 от Светослав Енков »
Активен

Емил Дойчев

  • Неактивен Неактивен
  • Публикации: 278

Да, забравих да кажа, че ще сложа материалите и прогреса на лекциите в Интернет. Още умувам къде (сигурно в сайта на ПУ или ФМИ, че моят сайт си има все пак трафик лимит и е платен).

Мога да ти предложа да използваш библиотеката на DeLC. Платформата е Liferay, ползва Фокус за оторизация. Има възможност за задаване на детайлни права по факултет/специалност/курс/група... Другото го знаеш. Ако решиш - пиши да направим необходимите настройки.
Активен

Светослав Енков

  • Неактивен Неактивен
  • Публикации: 1864
    • Shark's Home Page

Ще използваме по всяка вероятност Библиотеката на DeLC портала. Сигурно и тестовете и форума ще ползваме, ако е възможно.
Активен

Светослав Енков

  • Неактивен Неактивен
  • Публикации: 1864
    • Shark's Home Page

Вече почвам да качвам материали. Все още има проблеми (с големината на файловете, най-вече).

http://delc.fmi.uni-plovdiv.bg/bg - логвате се тук с Фокус регистрацията си.
Избирате Библиотека. Избирате Избираеми Дисциплини. Избирате подпапка Програмиране в среда Arduino. И там засега е само подпапка Books (засега 3 книги, защото лимита е 3МВ, а другите книги са по-големи). В по-горните папки ще слагам и материали и проекти, а ще можете и вие да си качвате материали, за да не ползвате общи пощи и файл-шеринг системи.

ПП. Лимита вече е 100МВ и съм качил още материали.
« Последна редакция: 18.11.2011, 06:54:31 от Светослав Енков »
Активен

Светослав Енков

  • Неактивен Неактивен
  • Публикации: 1864
    • Shark's Home Page

За студенти 1 курс Информатика / БИТ, процедурата е следната: след като приключи записването и ако има свободни места (за мераклиите ще има), се записвате при секретарките в 330 кабинет при Константина Иванова и веднага или накрая на семестъра си взимате индивидуален протокол от инсп. Ненка Трайкова за оценката.

« Последна редакция: 17.11.2011, 15:45:19 от Светослав Енков »
Активен

Rick

  • Неактивен Неактивен
  • Публикации: 3

Аз питах инспекторката в каб. 330, дали е възможно ние, студентите от магистърските програми, да запишем избираема дисциплина от списъка, който е обявен за бакалавърските програми и отговорът беше положителен. Каза ми, че трябва да отида на обявената дата за записване и да упомена пред преподавателя, че съм в магистърска програма, за да ме добави той в края на списъка си. И така, можем ли да се запишем?
Активен

jdbc

  • Неактивен Неактивен
  • Публикации: 14

...
 Има и емулатори - http://emulare.sourceforge.net/ - Не съм го пробвал този Emulare - но изглежда ОК, ще го пробваме и него.
...

На прима-виста работи, малко странно обаче. Отне ми доста време докато разбера как се правят елементарни връзки - прецизно кликане в/у пиновете (които са по 1 пиксел широки линийки) му е майката. Документация - йок.
Към момента сценария за работа ми изглежда така:
0.) Дефиниране на идеята - какво точно ще представлява проекта. Преглед в emulare дали разполагаме с необходимите компоненти.
1.) Сетъп на тестовата постановка - борд + външен хардуер в emulare.
Предупреждение - по-честичко Save-айте борда, щото emulare гърми често(поне при мен)
2.)  Пишете програмата във офиц. среда за разработка
3.)  Компилирате, като преди това чеквате опцията
File->Preferences->Show verbose output during:compilation
4.) От съобщенията генерирани по време на компилацията, в прозореца под сорса,
се локализира файла с компилирания код, който ще се зареди в emulare, например:
C:\DOCUME~1\bongo\LOCALS~1\Temp\build1634757864387928133.tmp\bongo.cpp.hex
... при вас ще се казва по друг начин, търсите файла с разширение .cpp.hex
5.) Зареждане на кода във виртуалния микроконтролер, който е сетъпнат в 1.), става така:
right-click в/у микроконтролер-а и -> Load program
6.) старт ! : Run->Start
Още няколко хинта:
* emulare емулира atmega328p
* Полезно е да се следи състоянието на пиновете по време на ринтайма, става с right-click в/у микроконтролер-а и -> Pins
* За да не се чудите, кой пин къде е, на сайта има ПинМапинг:
http://www.arduino.cc/en/Hacking/PinMapping
Активен

Светослав Енков

  • Неактивен Неактивен
  • Публикации: 1864
    • Shark's Home Page

Браво за положените старания да опишеш процеса - ще бъде полезно на колегите ти. При мене на Win XP пък виртуалният СОМ порт ми се инсталираше 15 минути и бях загубил вече надежда (пък виждах, че не е забило). Та, с тия опън-сорс неща търпение му е майката, а и мазол на Ctrl-S или Save All.

Вече имаме още 1 Arduino Mega2560 и 1 3pi Pololu роботче с 2 безжични модула и 1 Pololu AVR програматор. http://erelement.com/robots/pololu-3pi-robot

Да изкажа сърдечна благодарност на фирма Пастел Студио и Христо Инджов за дарението!

Сега ще поръчам с мои пари ей това, че го пропуснах, а без него няма как да ползваме безжичният модул: http://erelement.com/robots/3pi-expansion-kit
« Последна редакция: 09.12.2011, 12:20:19 от Светослав Енков »
Активен

jdbc

  • Неактивен Неактивен
  • Публикации: 14


Вече имаме още 1 Arduino Mega2560 и 1 3pi Pololu роботче с 2 безжични модула и 1 Pololu AVR програматор. http://erelement.com/robots/pololu-3pi-robot

Тоя малкия е голям змей !
- Описание на 3pi Pololu: http://www.youtube.com/watch?v=TxxYvlARPqk
- Състезание по заобикаляне на препятствия: http://www.youtube.com/watch?v=SwSKEaJcOV8
Активен

Георги Соколов

  • Модератор
  • *****
  • Неактивен Неактивен
  • Публикации: 51
    • website

Хайде малко коледно настроение за нашите роботизирани специалисти:

http://www.engadget.com/2011/12/19/arduino-hack-lights-up-the-tree-with-every-email-spammers-get-i/
Активен
Компютрите не правят това което искаш да правят. Правят това което им кажеш да правят!

Светослав Енков

  • Неактивен Неактивен
  • Публикации: 1864
    • Shark's Home Page

Най-сетне тръгна отново (12 дни Коледен блякаут) DeLC

http://delc.fmi.uni-plovdiv.bg/en/library/-/document_library/view/46683

тук съм качил материалите. Ще добавям и нови.

Дойдоха ми и двете развойни платки MSP-EXP430G2 Launchpad и една 430BOOST-SENSE1 Capacitive Touch BoosterPack, като сега си поръчах и чакам и една MSP-EXP430FR5739 Experimenter Board от TI, та ще разнообразим и сравним TI MSP430 Launchpad с Ардуино (AtMega 328P/2560). Особено по-скъпичката EXP430FR5739  е много готинка, ама и тия MSP-EXP430G2 са на смешна цена 4.30$ с доставката (при това доставят с FedEx Express Intl Priority куриер, паднах - за 4 дни от САЩ - дават до 3 платки да се купят и пише SAMPLE, буустерпака е 10$, а 5739 е 29$). Code Composer Studio е от сорта на Eclipse, огромно, бавно и мощно IDE.
Активен

Светослав Енков

  • Неактивен Неактивен
  • Публикации: 1864
    • Shark's Home Page

Петък, 13-ти януари, 12:45, 532 К.З. - ако няма промяна.

На първото занятие смятам да е повече теория и запознаване с нещата.

В DeLC съм сложил книгите и слайдовете.

Имаме вече и едно Arduino Nano.
« Последна редакция: 16.02.2012, 22:37:12 от Светослав Енков »
Активен