argon bulletin board
Факултети => Факултет по математика и информатика => Темата е започната от: Светослав Енков в 10.11.2011, 12:26:59
-
Програмиране в среда 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 да идват поне на някои занятия.
-
Нещо, което бих записал. За съжаление е малко късно. Но се раздвам, че има подобна избираема. Както и че се дава възможност и на задочниците да я запишат. Според мен ще е добре ако материалите станат публични - хора, които не са я записали, както и външни за унивеситета да имат достъп (до материалите).
-
С голямо желание ще се запиша! :-) От няколко месеца чета за микроконтролери и тъй като имам интереси в областта на роботиката, много се радвам, че има такъв курс. Имам два въпроса - първо: могат ли да се запишат магистри втора година от двугодишната магистратура, и второ: необходими ли са стабилни познания по Асемблер?
-
Асемблер - не - езика е С++.
За Магистри не знам дали могат - писал съм Всички специалности на ФМИ, но не знам това включва ли магистри.
Ще слагам материали в сайта, така че които не могат да присъстват - ще участват 'задочно', като ще дойдат на 1-2 упражнения, не на 10-те. Важното е накрая да има работещ проект и придобити знания (аз помагам и извън часовете по чата и фейсбук).
-
Благодаря за бързия отговор! Зимния и пролетния семестър имаме избираеми дисциплини по учебен план, ще попитам инспекторката дали може да се запиша, предполагам, че тя ще знае.
-
Ако ти е готино, идвай без протокол, но няма да имаш кредити и оценка. Аз (докато има място в залата) няма да гоня хора. То няма и да има супер наплив (познавам си стоката, на РНР бяха тъпканак, после се изнизаха).
-
Аз съм вътре със сигурност само се надявам зимният триместър в петък да нямам съвпадащи занятия понеже съм 1 курс и нямам избирателни. Под краен проект в края на обучението се има в предвид ФИЗИЧЕСКИ или СОФТУЕРНО реализиран такъв.
-
Ами то винаги са и двете неща - проекта си е скеч (софтуер) и схема (хардуер). Понеже няма как да има за всеки отделна платка (купил съм 2 с мои си пари - не мога да ви карам да си купувате и вие), ще го измислим някак си. Това да е проблема. Има и емулатори - http://emulare.sourceforge.net/ - Не съм го пробвал този Emulare - но изглежда ОК, ще го пробваме и него.
За 1 курс - вие нямате право на избираема официално, но има начини - с инд. протокол накрая и важи за 2 курс. Питайте инспекторката.
Стига да нямате лекции баш по това време - упражненията се разместват.
Предполагам дотогава ще работи и Роболаб и ще може да ползваме и механизми за роботи към края на курса (за редовните).
-
Да, забравих да кажа, че ще сложа материалите и прогреса на лекциите в Интернет. Още умувам къде (сигурно в сайта на ПУ или ФМИ, че моят сайт си има все пак трафик лимит и е платен).
Мога да ти предложа да използваш библиотеката на DeLC (http://delc.fmi.uni-plovdiv.bg). Платформата е Liferay, ползва Фокус за оторизация. Има възможност за задаване на детайлни права по факултет/специалност/курс/група... Другото го знаеш. Ако решиш - пиши да направим необходимите настройки.
-
Ще използваме по всяка вероятност Библиотеката на DeLC портала. Сигурно и тестовете и форума ще ползваме, ако е възможно.
-
Вече почвам да качвам материали. Все още има проблеми (с големината на файловете, най-вече).
http://delc.fmi.uni-plovdiv.bg/bg - логвате се тук с Фокус регистрацията си.
Избирате Библиотека. Избирате Избираеми Дисциплини. Избирате подпапка Програмиране в среда Arduino. И там засега е само подпапка Books (засега 3 книги, защото лимита е 3МВ, а другите книги са по-големи). В по-горните папки ще слагам и материали и проекти, а ще можете и вие да си качвате материали, за да не ползвате общи пощи и файл-шеринг системи.
ПП. Лимита вече е 100МВ и съм качил още материали.
-
За студенти 1 курс Информатика / БИТ, процедурата е следната: след като приключи записването и ако има свободни места (за мераклиите ще има), се записвате при секретарките в 330 кабинет при Константина Иванова и веднага или накрая на семестъра си взимате индивидуален протокол от инсп. Ненка Трайкова за оценката.
-
http://www.sparkfun.com/products/10745
http://www.ixbt.com/news/hard/index.shtml?15/25/49
-
Аз питах инспекторката в каб. 330, дали е възможно ние, студентите от магистърските програми, да запишем избираема дисциплина от списъка, който е обявен за бакалавърските програми и отговорът беше положителен. Каза ми, че трябва да отида на обявената дата за записване и да упомена пред преподавателя, че съм в магистърска програма, за да ме добави той в края на списъка си. И така, можем ли да се запишем?
-
...
Има и емулатори - 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
-
Браво за положените старания да опишеш процеса - ще бъде полезно на колегите ти. При мене на 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
-
Вече имаме още 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
-
Хайде малко коледно настроение за нашите роботизирани специалисти:
http://www.engadget.com/2011/12/19/arduino-hack-lights-up-the-tree-with-every-email-spammers-get-i/
-
Най-сетне тръгна отново (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.
-
Петък, 13-ти януари, 12:45, 532 К.З. - ако няма промяна.
На първото занятие смятам да е повече теория и запознаване с нещата.
В DeLC съм сложил книгите и слайдовете.
Имаме вече и едно Arduino Nano.
-
http://www.ecs.umass.edu/ece/m5/tutorials/tip122_transistor_tutorial.html
http://www.ecs.umass.edu/ece/m5/tutorials/tutorials.html
http://arduino-for-beginners.blogspot.com/
Хубави указания за връзване на неща към Ардуино - използвайте за вашите проекти.
-
Надъхвам се за това (вижте пидефа) http://www.ti.com/tool/ez430-chronos (https://estore.ti.com/eZ430-Chronos-433-Chronos-Wireless-development-tool-in-a-watch-P1734.aspx), обаче нямам нерви за разправии с Fedex и митницата отново, не и докато не се оправи времето, иначе за парите - ще ми излезе 49$ + 20% ДДС на тях + 1 лв банков превод + 12 лв комисиона за Fedex за освобождаване от Митница Летище София. Пълномощно вече съм им дал (с указание за многократно използване), дано го пазят, че иначе и за него 6 лв и ходене до нотариус. EORI номер вече си имам... Абе, 101.50 лв някъде, ако не се наложи нотариус. Но е готино - има термометър, висотомер/барометър и триосен акселерометър (става за крачкомер) и най-важното - има възможност за препрограмиране и връзка с до 4 външни 433Mhz сензора (има такива за сърдечен ритъм, за кръвно налягане, за квото се сетите). Малко неудобно са направили препрограмирането - разглобява се часовника, за да се осигури достъп до JTAG/USB конектора, можеха да го измислят с чисто microUSB - на Garmin са така моделите с подобни функции (ама те, първо са 3-4 х по-скъпи, второ се свързват само с Garmin аксесоари на луда цена и трето, нямат препрограмиране /изключвам одобрен от Garmin firmware update/). То и тук има простотии, че безплатните компилатори на TI за CC430 са лимитирани до 16КБ изходен код, но тук има начини за заобикаляне или други компилатори.
-
Дойде и ултразвуковият далекомер.
http://iteadstudio.com/application-note/arduino-ultrasonic-ranging-with-hc-sr04/
http://www.elechouse.com/elechouse/images/product/Arduino%20Ultrasonic%20Range%20Detection%20Sensor/Arduino%20Ultrasonic%20Range%20Detector.pdf
И модула с 2 релета по 10А. Вече може да управляваме сериозни неща.
-
Дойдоха и 2 LCD Keypad shield-a.
http://www.robotshop.com/dfrobot-lcd-keypad-shield-arduino-1.html
-
Роботче-художник с Ардуино http://www.3dnews.ru/news/625358
-
Дойде и това стъпково двигателче с ULN2003 управляващ чип
http://www.ebay.co.uk/itm/5V-4-phase-Stepper-Motor-Driver-Board-ULN2003-Arduino-/220885759668?pt=LH_DefaultDomain_0&hash=item336dd136b4#ht_2168wt_1396
http://iteadstudio.com/store/index.php?main_page=product_info&products_id=274
Ще пробваме този проект, нашето двигателче е 5 волтово
http://www.betasix.net/connecting-a-unipolar-stepper-to-arduino/
-
Поръчах 30 сини и 40 бели светодиода, да пробваме 3х3х3 кубче:
http://www.planetarduino.org/?cat=71
http://www.youtube.com/watch?v=JxUbwSWTUqU
http://simharry3.wordpress.com/2011/02/08/3x3x3_led_cube_pt1/
-
Поръчах и едно такова дисплейче
http://ladyada.net/products/nokia5110/
http://www.sparkfun.com/products/10168
-
Ето един полезен линк http://www.robotev.com
Аз от тук пазарувам, пичовете са големи фенове а и на сайта има бая полезни линкове.
-
Знам ги Роботев, но за жалост са точно 2 пъти по-скъпи от Ebay. Предимство е, ако не ти се чака. Иначе са си пичове, да! И курсове, семинари, състезания организират. Ползвам някои материали от тях (книжки и линкове).
-
http://vbox7.com/play:a74908c406 - 3x3x3 Кубчето готово работещо след два Петъка запояване и разпояване и т.н.т...забавно беше.
-
Благодаря на мераклиите. Кубчето е много ефектно. http://vbox7.com/play:a74908c406
Мисля да оферирирам за мераклиите свободно достъпни занимания с контролерите и чарковете по време на моите занятия по Курсов Проект 1 пролетният семестър. Е, оценки няма да има, но ще си се пробвате, ако имате мерак и свободно време. Засега се очертава да имам четвъртък следобед 13-15ч и сряда 10-15ч. Има и семинари на РобоЛаб - ще видим как и къде да ги обявяваме и кога да са.
-
Не е първоаприлска шега, тоя е маниак http://hackaday.com/2011/09/09/program-an-arduino-using-your-sound-card/
И изобщо в хак-ъ-дей при търсене на Ардуино дава интересни и шантави идеи http://hackaday.com/?s=arduino