Міністерство науки і освіти України
Національний університет “Львівська політехніка”
Кафедра САПР
Доповідь
з курсу:
«Розробка систем комп’ютерного проектування»
на тему:
«Програмування мікроконтроллера. Автоемоції (Drivemocion)»
Львів 2010
1) актуальність
На дорогах, у корках і не тільки, деколи виникає необхідність спілкування між водіями. Ця необхідність виділяється не тільки у досвідчених водіїв, але і у початківців. Інструктори які навчають майбутніх автомобілістів їздити на машині, не забувати про автомобільний етикет, допомагати іншим водіям виїжджати із корків, не створювати аварійної ситуації, пропускати інші автомобілі, щоб не створювати інших корків, і багато чого іншого. Ще одним із способів авто спілкування є так зване «дякування» – тобто коли водій уступив дорогу іншому водію, той у свою чергу висловлює подяку задніми аварійними сигналами, у цьому і проявляється авто виховання.
Бувають ситуації, коли емоції вихлюпуються через край, але, на жаль - винуватець сидить в іншій машині і не чує обурені вигуки, які посилають йому навздогін.
Тому щоб урізноманітнити стандартні автомобільні «блимання» задніми фарами я пропоную розробити так званий «смайлик емоцій» (іноземці називають Drivemocion). А якщо водій поспішає і не зовсім коректно зробив обгін, напис на Drivemocion «пробач» миттєво згладить ситуацію.
2)Постановка задачі
Передімною стоїть завдання досить важливе і громістке, оскільки я маю насамперед порахувати кількість світодіодів які потрібні мені для смайлика, які саме види емоцій буде створено, потрібно зрозуміти який саме потрібно датчик передачі і датчик прийому на якій чистоті цей датчик буде працювати і чи не будуть відволікати сторонні частоти, також потрібно підібрати правильний ультрачервоний промінь щоб підходив для датчиків. Правильно згрупувати схему і проаналізувати її можливо щось і спростити. Для економії виводів на мікросхему(та економії світодіодів) створити мінімальну кількість груп для відображення повного цінної анімації. Створити програму яка б виконувала потрібні мені команди для регулювання автоемоції. Програма повинна вміти, сприймати імпульси які надходять від датчика передавання через ультрачервоний промінь до датчика прийому який знаходиться приблизно на відстані 2-х метрів ці імпульси повинні перетворюватись на певний вид емоцій і проявляти його у певній групі світодіодів. Кожний вид анімації повинен мати свою затримку і швидкість показу. Програма яка буде створена на мові С буде компілюватись у Codevizion – програма буде перетворювати код який сприймає мікросхема. Пізніше через програматор спаяний мною, буде прошиватись мікросхема через PonyProg, файл повинен бути з розширенням *.hex.
3) Що відомо
Даний виріб на теперішній час починає розвиватись за кордоном. Існує безліч різних версій станів емоцій. Спеціально розроблена версія для чоловіків, що має оригінальну упаковку. Виводить наступні пропозиції: "спасибі" посмішка, "привіт", "мила", "вибач", "братан", "ідіот" гнів, "не чіпай" "божевільний за рулем".
Спеціально розроблена версія для дівчат, що має оригінальну упаковку, оформлена у стилі "гламур". Вперше використовуються анімовані смайлікі. Виводіт наступні пропозиції: "дожени" мову, "упс" вибач, "не треба" "бібі",
"Сам такий" смуток, "спасибі" анімований поцілунок.
DriveMotion 5 смайликів оригінал.
Автомобільний комунікатор для спілкування водіїв. Він транслює на дисплей заздалегідь запрограмовані повідомлення - 5 смайликів.
Drivemocion працює від 4-х батарей АА, має бездротову систему управління і легко кріпиться до заднього скла автомобіля. Пульт дистанційного керування можна розмістити в передній частині салону, прикріпивши до лобового скла, панелі приладів або просто прибравши в бардачок. Для виведення зображення на дисплей, потрібно просто натиснути відповідну цьому зображенню кнопку на ПДУ.
Рис1 Анімаційні смайлики
Рис.2 Оригінальний пульт ДУ
Рис.3 деякі із видів анімацій Drivemocion
Останнім часом появились деякі аналоги у росіян DriveMotion
Автомобільний комунікатор для спілкування водіїв, що транслює на дисплей заздалегідь запрограмовані повідомлення. Смайли: посмішка, смуток, а також самі слова: спасибі, вибач, дожени, також надписи стоп.
Рис.4 Аналог росіян. Вид ззаду авто
Рис.5 «Смайлик» у комплекті
На рисунку видно що росіяни трішки видозмінили саму структуру смайлика і пульт дистанційного керування. Також видно кнопку включення і виключення ефектів. Виріб став займати значно менше місця, але емоції у «смайлика» стали невиразні, хоч і було витрачено мінімальну кількість світодіодів.
Рис.6 Надписи + смайлики
4) Що пропоную
Смайлик, який буде розроблений мною, буде показувати різні стани емоцій, які проявляються безпосередньо у водія, який перебуває підчас руху, або просто стоїть на місці. Це вібувається таким чином: водій сидячи за кермом при собі має пульт з 4-ма кнопками, на кожній кнопці нарисовані надписи зі станами смайликів злість, невдоволення, роздратування, подяка, радість та взаємопорозуміння. Для економії світо діодів я пропоную використовувати деякі групи світо діодів декілька раз для інших видів анімації. По-перше зменшиться кількість дротів для пропаювання діодів, по-друге мікроконтроллер який я буду програмувати має лише 20 ніжок. А отже на 20 ніжок я маю згрупувати приблизно 93 світодіоди, землю і живлення, тому все треба продумати і проаналізувати. Для правильного розміщення світлодіодів та їх групування, я створив та проаналізував у Photoshop графічний образ «смайлика». На відміну від оригінального «смайлика» я буду використовувати не звичайні батарейки «пальчик» а 9-ти вольтову крону.
Рис.7 Графічне зображення «смайлика», та розбиття його на групи.
Цікаві і зрозумілі зображення стануть гідною заміною викрикуванням або вдячності через стікло одного водія іншому.
Пульт ДУ:
У пульті знаходиться датчик передачі і через ультрачервоний промінь передає сигнал на датчик прийому який знаходиться на задньому склі авто, датчик передає сигнал на мікросхему, мікросхема за допомогою коду генерує відповідний смайл і видає його на світлодіоди. Кожний вид смайлика має свою затримку (кількість міл.сек) показування стану емоції.
Недоліки: смайлики які показуються можуть відволікати інших учасників руху які знаходяться ззаду авто, також може привертати увагу автоінспекторів ДАІ.
Складність роботи що необхідно зібрати більш менш якісний передавач і приймач, який працює саме в цьому діапазоні частот. Людям, які мало знайомі з аналоговою технікою а саме з налаштуванням коливальних контурів, з структурою гетеродинного приймача, дані завдання можуть здатися нерозв'язним і витратними за часом і з фінансів (якщо розглядати варіант покупки готових гетеродинів на частоту 433МГц наприклад). Якщо завдання управління об'єктом не містять жорстких вимог по дальності (до 10м) то в принципі можна застосувати рішення, яким користуються всі виробники побутової електроніки, а саме пульти дистанційного керування на ІЧ (інфра-червоних променях).
Як і в радіо прийнятий сигнал треба прийняти і обробити, щоб працювати з цифровими системами, наприклад з мікроконтролером. Для цього був розроблений цілий ряд протоколів RC5, RC6. Які застосовують саме для систем зв'язку на ІЧ променях. Я буду працювати на на на протоколі RC5 оскільки саме найчастіше його використовують у сучасні техніці.
Протокол RC5 це хороший приклад пакетної передачі даних, коли самі дані діляться на блоки-пакети. Пакет по протоколу RC5 містить 14 біт (послідовність з 14 цифр двійкової системи обчислення, одиничок та нуликів).
Призначення бітів у протоколі RC5:
Перші два біти називаються стартовими їх значення зазвичай завжди дорівнює одиниці. Після стартових бітів слід критичний біт, значення тригерній біта змінюється при кожному натисненні на кнопку (тобто, якщо затиснути і тримати кнопку на пульті ДУ значення тригерній біта не буде мінятися). Після йдуть 5 бітів ідентифікують адресу пристрою. У самому кінці йдуть 6 бітів власне команди.
Тривалість пакета протоколу RC5:
Тривалість одного пакета з точки зору часу становить (за стандартом) 1,778 х 14 = 25мс.
Де 1,788 - це час прийому / передачі одного біта, 14 - число бітів.
За протоколом RC5 після передачі пакета виконується пауза, затримка на 89мс. Що в сумі дає значення 25 89 = 114мс. Тобто на прийом однієї команди необхідно витратити 114мс. Зміна з низького рівня на високий визначає передачу 0-ля, зміна з високого на низький рівень передбачає передачу 1-ці.
Світлоліоди:
Світлодіо́д (англ. LED - light-emitting diode) — напівпровідниковий пристрій, що випромінює некогерентне світло, при пропусканні через нього електричного струму (ефект, відомий як електролюмінесценція). Випромінюване світло традиційних світлодіодів лежить у вузькій ділянці спектру, а його колір залежить від хімічного складу використаного у світлодіоді напівпровідника. Сучасні світлодіоди можуть випромінювати світло від інфрачервоної ділянки спекту до близької до ультрафіолету [1]. Існують методи розширення смуги випромінювання і створення білих світлодіодів. На відміну від ламп розжарювання, які випромінюють світловий потік широкого спектру, рівномірно у всіх напрямках, звичайні світлодіоди випромінюють світло певної довжини хвилі і в певному напрямі. Світлодіоди були удосконалені до лазерних діодів, - які працюють на тому ж принципі, але можуть напрямлено випромінювати когерентне світло
Мікросхема
ATtiny2313 - 8-бітний КМОП мікроконтролер з AVR RISC-архітектурою. Виконуючи команди за один цикл, ATtiny2313 досягає продуктивності 1 MIPS при частоті генератора, що задає 1 МГц, що дозволяє розробнику оптимізувати ставлення споживання до продуктивності.
Технічні характеристики: 2 КБ програмованої в системі Flash пам'ять програми, 128 байтних EEPROM пам'ять даних, 128 байтноє SRAM (статичний ОЗП), 18 ліній введення-виведення загального застосування, 32 робочих регістра загального призначення, Однопровідний інтерфейс для вбудованого отладчика, два гнучких таймера / лічильника зі схемами порівняння, внутрішні та зовнішні джерела переривання, послідовний програмований USART, універсальний послідовний інтерфейс з детектором стартового умови, програмований сторожовий таймер з вбудованим генератором і три програмно ініціалізіруемих режиму зниженого споживання.
У режимі Idle зупиняється ядро, але ОЗУ, таймери / лічильники і система переривань продовжують функціонувати. У режимі Power-вниз регістри зберігають своє значення, але генератор зупиняється, блокуючи всі функції приладу до наступного переривання або апаратного скидання. До резервного режимі генератор, що задає працює, в той час як інша частина приладу не діє. Це дозволяє дуже швидко запустити мікропроцесор, зберігаючи при цьому в режимі бездіяльності потужність.
Високощільна енергонезалежна пам'ять ІС забезпечується технологією виготовлення пам'яті компанії Atmel. Вбудована ISP Flash дозволяє перепрограмувати пам'ять програми в системі через послідовний SPI інтерфейс або звичайним програматором енергонезалежній пам'яті. Об'єднавши в одному кристалі 8-бітове RISC ядро з самопрограмуються в системі Flash пам'яттю, ATtiny2313 став потужним мікроконтролером, який дає велику гнучкість розробнику мікропроцесорних систем.
Відмінні особливості:
AVR RISC архітектура:
- 120 команд, більшість яких виконується за один тактовий цикл,
- 32x8-бітних робочих регістра загального застосування,
- Повністю статична архітектура;
Незалежна пам'ять програм і даних:
- 2 КБ самопрограмміруемой в системі Flash пам'яті програми, що забезпечує 10 000 циклів запису / стирання,
- 128 байт програмованої в системі EEPROM пам'яті даних, що забезпечує 100 000 циклів запису / стирання,
- 128 байт вбудованої пам'яті SRAM,
- Програмована захист від зчитування Flash пам'яті програми і EEPROM пам'яті даних;
Периферія:
- Один 8-розрядний таймер / лічильник з окремим предделителя,
- Один 16-розрядний таймер / лічильник з окремим предделителя, схемою порівняння, схемою захоплення і двома каналами ШІМ,
- Вбудований аналоговий компаратор,
- Програмований сторожовий таймер з вбудованим генератором,
- УЗД - універсальний послідовний інтерфейс,
- Повнодуплексний UART;
Спеціальні характеристики мікроконтролера:
- Вбудований відладчик debugWIRE,
- Внутрішньосистемний програмування через SPI порт,
- Зовнішні та внутрішні джерела переривання,
- Режими зниженого споживання Idle, Power-вниз і очікування,
- Удосконалена схема формування скидання при включенні,
- Програмована схема виявлення короткочасних зникнення живлення,
- Вбудований відкалібрований генератор;
Порти введення-виведення і корпусне виконання:
- 18 програмованих ліній введення-виведення,
- 20-вивідний PDIP, 20-вивідний SOIC і 20-контактний корпус МФ;
Діапазон напруги живлення:
- 1,8 - 5,5 В (ATtiny2313V),
- 2,7 - 5,5 В (ATtiny2313);
Робоча частота:
- ATtiny2313V: 0-4 МГц @ 1,8-5,5 В, 0-10 МГц @ 2,7-5,5 В,
- ATtiny2313: 0-10 МГц @ 2,7-5,5 В, 0-20 МГц @ 4,5-5,5 В;
Споживання
- Активний режим: 300 мкА при частоті 1 МГц і напрузі живлення 1,8 В,
20 мкА при частоті 32 кГц і напрузі живлення 1,8 В,
- Режим зниженого споживання
0,5 мкА при напрузі живлення 1,8 В.