Робототехнічна модель на мікроконтролері сімейства AVR
ВНЗ
"Відкритий
Міжнародний Університет Розвитку Людини "Україна"
Новокаховський
гуманітарний інститут
Кафедра
Комп’ютерної інженерії
Курсова
робота
з
дисципліни: Комп’ютерна схемотехніка
на
тему:
Робототехнічна модель на мікроконтролері сімейства
AVR
Виконав
Арутюнов А.А.
Перевірив:
Шиліна
В.О.
Нова
Каховка
2011
р.
Зміст
Реферат
Вступ
. Постановка задачі
2. Аналіз існуючих рішень
. Апаратне забезпечення
керуючого автомату
4. Опис електричної схеми
керуючого автомату
5. Опис принципової схеми
керуючого автомату
6. Програмне
забезпечення керуючого автомату
Висновки
Додаток
Реферат
Пояснювальна записка містить
аркушів, таблиці, рисунки.
В курсовій роботі розглядається
робототехнічна модель на мікроко-нтролері сімейства AVR.
Для даного пристрою розглянута структурна та принципова схеми.
Робот - автоматичний пристрій, яки
частково або повністю замінює людину при виконанні робіт у небезпечних для
життя умовах, при відносній недоступності об'єкта або для іншого використання.
Робот може управлятися оператором,
або працювати за заздалегідь складеною програмою. Використання роботів дозволяє
полегшити або зовсім замінити людську працю на виробництві, в будівництві, при
рутинній роботі, при роботі з важкими вантажами, шкідливими матеріалами, а також
в інших важких або небезпечних для людини умовах.
В курсовій роботі робототехнічна
модель реалізована на мікроконтролері AT Tiny26 серії AVR компанії Atmel який
має Flash-пам'ять
2Кбайт, пам’яттю EEPROM
на 128 байта, 16 лініями введення\виведення.
СХЕМА ЕЛЕКТРИЧНА СТРУКТУРНА, СХЕМА
ЕЛЕКТРИЧНА ПРИНЦИПОВА, МІКРОКОНТРОЛЕР, РОБОТ
Вступ
Темою курсової роботи є
"Проектування робототехнічної моделі на мікроконтролері сімейства
AVR".
Робототехніка грає
важливу роль в людській діяльності. Актуальність теми не можна переоцінити.
Робот може управлятися оператором, або працювати за заздалегідь складеною
програмою. Використання роботів дозволяє полегшити або зовсім замінити людську
працю на виробництві, в будівництві, при рутинній роботі, при роботі з важкими
вантажами, шкідливими матеріалами, а також в інших важких або небезпечних для
людини умовах.
Існую такі типи роботів на
сьогоднішній день:
андроїд;
бойовий робот;
побутовий робот;
персональний робот;
промисловий робот;
соціальний робот;
шаробот.
В якості основного компонента
системи управління робота взято мікроконтроллер. Його головні переваги -
універсальність, програмна гнучкість, можливість цифрової обробки даних в
реалізації складних алгоритмів керування, крім цього мікроконтролери дозволяють
значно скоротити час розробки пристрою. Інтеграція в одному корпусі великої
кількості периферійних пристроїв забезпечує компактність і низьку вартість
кінцевих приладів. Впровадження мікроконтролера в схему дає можливість зменшити
кількість її компонентів і тим самим знизити енергоспоживання пристрою.
Під микроконтроллером в загальному
випадку розуміють мікропроцесорний пристрій, здатний виконувати обмежений набір
функцій.
Найбільшого поширення
мікроконтролери отримали у вбудованих системах контролю та управління.
Головною причиною популярності
мікроконтролерів служить той факт, що вони є практично повністю готовими
обчислювальними пристроями, що не вимагають для своєї роботи додаткового
обладнання. Крім того, можливість програмувати роботу мікроконтролера дозволяє
реалізовувати досить складні електронні пристрої, в яких велика частина
функціоналу реалізується програмно.
Область застосування
мікроконтролерів - це різні контролери пристроїв автоматики, пластикові картки,
контролери периферійних пристроїв. Розвиток мікроелектроніки та її широке
застосування промисловому виробництві, в пристроях і системах управління
найрізноманітнішими об'єктами і процесами є в даний час одним з основних
напрямів науково-технічного прогресу. Використання мікроконтролерів у виробах
не тільки приводить до підвищення техніко-економічних показників (вартості,
надійності, споживаної потужності, габаритних розмірів), але і дозволяє
скоротити час розробки виробів і робить ії модифіковуваними, адаптивними.
Використання мікроконтролерів в системах управління забезпечує досягнення
високих показників ефективності при низькій вартості.
В даний час одними з найбільш
популярних однокристальних ЕОМ є мікроконтролери сімейства AVR фірми Atmel.
Вони представляють собою потужний інструмент, прекрасну основу для створення
сучасних високопродуктивних і економічних вбудованих контролерів
багатоцільового призначення.
Незважаючи на те, що мікроконтролери
AVR з'явилися на ринку близько 10 років тому, їх популярність до цих пір дуже
висока. З кожним роком вони захоплюють все нові і нові ніші на ринку. Не
останню роль в цьому відіграє співвідношення показників ціна / швидкодія /
енергоспоживання, до цих пір є чи не найкращим на ринку 8-бітних
мікроконтролерів Все це дозволяє говорити про мікроконтролери AVR як про індустріальний
стандарт серед 8-бітних мікроконтролерів.
1.
Постановка задачі
Завданням даного курсової роботиє
розробка робото технічної моделі на мікроконтролері сімейства AVR.
У ході виконання курсової роботи
необхідно розробити:
принципову електричну схему робототехнічної
моделі;
структурну схему робото технічної
моделі;
програму робототехнічної моделі.
Оформити пояснювальну записку
відповідно до регламентів ДСТУ.
2.
Аналіз існуючих
рішень
Аналогічний робот з фотодатчиком, що
реагує на відбите світло. Цей робот зможе бігати по лінії, намальованої на
поверхні, і навіть взяти участь у змаганнях з відстеження лінії. Крім того, для
нього можна написати програму, яка буде утримувати робота в межах області,
обмеженої лінією, що дозволить прийняти участь в змаганнях
"Кегельрінг". Також варто зазначити, що датчик кордону, є необхідною
частиною при створенні сумо-роботів.
В якості драйвера двигунів
використовуємо мікросхему L293D, входи якого з'єднані до входів мікроконтролера
так, як показано на схемі (див. рисунок 1),. У даному прикладі буде розглянуто
мікроконтроллер ATmega8, хоча можна використовувати і інший мікроконтроллер
(наприклад, ATtiny26 який розглядається в курсовій роботі або який-небудь
мікроконтроллер з сімейства Mega).
Рисунок 1 - Схема робота на
мікроконтролері AVR
На схемі робота входи драйвера
двигунів L293D підключені до входів порту C мікроконтролера ATmega8, але їх
можна підключити до будь-якого з портів мікроконтролера.
Електролітичний конденсатор C3 (1000
мкф, 10-25 ст.) Необхідний для того, щоб згладити кидки з живленням, викликані
роботою моторів. Цей конденсатор дуже важливий. Саме він дає можливість
працювати схемою з необхідним рівнем стабільності. Замість одного конденсатора
можна використовувати два. Номінал кожного з них в цьому випадку може бути
близько 470 мкф. При цьому один з конденсаторів встановлюють у безпосередній
близькості від висновків харчування мікроконтролера, а другий - поруч з
висновком Vs мікросхеми драйвера моторів L293D. Забезпечення стабілізації
живлення - один з найважливіших аспектів проектування пристроїв на
мікроконтролерах.
Принцип роботи датчика кордону
заснований на властивості поверхоні по-різному відображати падаюче на них
світло. Чорні або темні поверхні відбивають світло набагато гірше, ніж білі або
світлі. Вловлюючи відбите світло, ми зможемо визначити тип поверхні, що
знаходиться під датчиком.
Для виготовлення датчика кордону нам
знадобляться фототранзистор і яскравий світлодіод. Світлодіод і фототранзистор
спрямовані в бік досліджуваної поверхні. Відстань до поверхні залежить від сили
світіння світлодіода і чутливості фототранзистора.
Схема датчика дуже проста,
складається безпосередньо з фототранзистора, світлодіода і обмежуючих
резисторів.
При спрацьовуванні фототранзистори
на виході формується сигнал низького рівня, який і подається на один з вільних
входів мікроконтролера.
.
Розробка структури пристрою
На фотодатчик 1 і фотодатчик 2
потрапляє світло, а операційні підсилювачі ОУ1 і ОУ2 підсилюють сигнал з
фотодатчика, що потрапляє на АЦП, де він перетворюється в цифрові
десятирозрядний дані D0-D10. Дані з обох датчиків обробляються в ядрі
мікроконтролера tiny26. Їх рівні порівнюються за допомогою логічних і
арифметичних дій, і в залежності від результату порівняння приймається рішення
про напрямок руху всієї конструкції робота.
Крім того, на рішення схеми
управління впливає замикання контактів перешкоди, встановлених ззаду і спереду
конструкції. Якщо РІС наїхав на перешкоду, то він повинен від'їхати назад і
згорнути вліво, щоб об'їхати перешкоду. Схема управління через порти А і В
подає код в драйвери обмоток D1-D4, які можуть комутувати струм через обмотку в
обох напрямках.
Драйвер побудований за мостовою
схемою. Для кожної обмотки крокового двигуна (ШД) використовується свій
драйвер, тому потрібно чотири мікросхеми. У світовій практиці застосовують
готовий драйвер обмоток ШД L298 , однак вага мікросхеми L298 через наявність
радіатора в два рази перевищує вагу двох мікросхем LB1642, тому було вирішено
використовувати невеликі LB1642.
У міру протікання струму в обмотках
збудження виникає обертове магнітне поле. Вал ШД1 і ШД2, в свою чергу,
обертається згідно послідовності збудження магнітного поля. При подачі певної
послідовності коду ШД1 і ШД2 обертаються, і конструкція рухається прямо або
повертає в сторону.
.
Вибір елементної бази
Мікроконтролер ATTINY26-16PU
Основним компонентом робота є
мікроконтроллер. У процесі дослідження мікроконтролерів сімейства AVR обраний
AT Tiny26.є 8 - бітним микроконтроллером побудованим на розширеній AVR RISC
архітектурі. Використовуючи команди виконуються за один машинний такт,
контролер досягає продуктивності в 1 MIPS на робочій частоті 1 МГц, що дозволяє
розробнику ефективно оптимізувати споживання енергії за рахунок вибору
оптимальної продуктивності./ L містить 2Кбайт FLASH пам'яті програм, 128 байт
EEPROM, 128 байт SRAM, до 16 висновків цифрових входів / виходів загального
застосування, 32 робочих регістра, 2 8 - бітових таймера-лічильника, один з
виходом ШІМ, внутрішній і зовнішній генератор тактової частоти , внутрішні та
зовнішні переривання, програмований Watchdog таймер, 11-и канальний, 10-й
бітний АЦП з двох рівневим підсилювачем диференціального сигналу, і чотирма
режимами заощадження енергії. В режимі очікування ЦПУ не функціонує в той час
як функціонують таймери / лічильники і система переривань. В ATtiny26 існує
спеціальний режим придушення шуму АЦП, при цьому в цілому в сплячому режимі
функціонує тільки АЦП. В режимі Вимк. процесор зберігає вміст всіх регістрів,
заморожує генератор тактових сигналів, призупиняє всі інші функції кристала до
приходу зовнішнього переривання або надходження зовнішньої команди Reset.
Другий режим очікування практично повторює режим Викл. але доступний зовнішній
генератор тактових частот. Завдяки швидкому переходу в нормальний режим роботи
в тому числі і за зовнішнім переривання ATtiny26 успішно пристосовується до
зовнішніх умов роботи і вимагає менше енергії, частіше опиняючись в режимі
Вимк.
Мікросхеми випускаються при
використанні Atmel технології енергонезалежній пам'яті високої щільності.
Комбінація розширеної 8 - і бітноїархітектури ЦПУ і твердотільної FLASH пам'яті
забезпечують ATtiny26 високу гнучкість та економічну ефективність у вбудованих
системах управління.
Рисунок 2 - Блок схема
мікроконтролера ATtiny26/L
Рисунок 3
- Розположення виводів мікроконтролера ATtiny26/L
Характеристики:
· Высокая производительность при малом
потреблении
· RISC архитектура
· 118- команд, большинство исполняемых
за один машинный такт
· 328 рабочих регистра общего
назначения
· Полностью статический режим
· 16 MIPS производительность при 16
МГц
· Память
· 2К байтов FLASH памяти программ с
внутрисистемным программированием
· 1000 циклов записи- стирания
· 128 байтов EEPROM c внутрисистемным
программированием
· 100 000 циклов записи- стирания
· 128 байтов внутренней SRAM
· Программируемый ключ доступа к
программам и памяти данных
· Периферия
· 8- битный таймер/счётчик с
программируемым предделителем
· 8- битный скоростной делитель с
программируемым предделителем
· 2 скоростных ШИМ выхода с отдельным
выходным регистром сравнения
· не совмещённый выход инверсной ШИМ
· Универсальный последовательный
интерфейс с детектором старта
· 10- бит АЦП
· 11 простых униполярных входа
· 8 дифференциальных входа
· 7 дифференциальных входа с
программируемым усилением ( 1, 10 )
· Встроенный аналоговый компаратор
· Внешние прерывания
· 11 прерываний по изменению
потенциала вывода
· Программируемый Watchdog с
переключаемымим генераторами
· Специальные функции контроллера
· Режим экономии энергии, режим
подавления шума, режим Выкл.
· Сброс при включении и понижению
напряжения питания
· Внешние и внутренние источники
прерывания
· Внутрисистеммное программирование
через SPI порт
· Внутренний калиброванный RC
генератор
· 20- выводной корпус PDIP или SOIC
· 16 программируемых входа-выхода
· Рабочее напряжение питания:
· 2.7 В до 5.5 В ATtiny26L
· 4.5 В до 5.5 В ATtiny26
· Рабочая тактовая частота:
· 0- 8 МГц ATtiny26L
· 0-16 МГЦ ATtiny26
Фототранзистор
Компонентом робота є є
фототранзистор - СФ2-2. Фоторезистори призначені для застосування в якості
приймачів і датчиків оптичного випромінювання в складі оптоелектронної
апаратури, систем фотоелектричної автоматики і телемеханіки, в радіометрах і в
лічильно-вимірювальних приладах, експонометріческій приладах, що працюють в
діапазоні хвиль від 0,4 до 1,1 мкм (фоторезистори видимої області спектра) і
від 1,5 до 3,2 мкм (фоторезистори інфрачервоної області спектра).
Рисунок 3 - Схема фототранзистор -
СФ2-2
Технічні параметри
довжина волниλ
макс, мкм 0,6 - 0,7
робоча напруга, Uраб, В (не більше)
2
Загальний струм, Iобщ, мкА (не
менше) 500
темновий опір, Rтем, мОм (не менше)
1
темновий струм, Iтем, мкА (не
більше) 2
Основною областю застосування
фоторезисторів є автоматика, де вони в деяких випадках з успіхом замінюють
вакуумні та газонаповнені фотоелементи.
Акумулятор Ni-Cd
Акумулятор Ni-Cd обраний незвичайно.
Його параметри: 4,8 В, 700 мАг. Компанія-виробник - Konnoc (див. Рисунок 4).
Рисунок 4 - Акумулятор Konnoc
Нікель-кадмієві акумулятори (Ni-Cd)
- єдиний вид акумуляторів, які можуть зберігатися розрядженими. На відміну від
нікель-метал-гідридних акумуляторів (Ni-MH), які потрібно зберігати повністю
зарядженими і від літій-іонних акумуляторів (Li-ion), які необхідно зберігати
при 40%-ом заряді від ємності акумулятора.
Малогабаритні нікель-кадмієві
акумулятори використовуються в різній апаратурі як заміна стандартного
гальванічного елемента, особливо, якщо апаратура споживає великий струм. Так як
внутрішній опір нікель-кадмієвого акумулятора на один-два порядки нижче, ніж у
звичайних марганець-цинкових і марганець-повітряних батарей, потужність
видається стабільніше і без перегріву.
Нікель-кадмієві акумулятори
застосовуються на електрокарах (як тягові), трамваях і тролейбусах (для
живлення ланцюгів управління), річкових і морських суднах. Широко
застосовуються в авіації в якості бортових акумуляторних батарей літаків і
вертольотів. Використовуються як джерела живлення для автономних шуруповертів,
гвинтоверти і дрилей.
Незважаючи на розвиток інших
електрохімічних систем і посилення екологічних вимог, нікель-кадмієві
акумулятори залишаються основним вибором для високонадійних пристроїв, які
споживають велику потужність, наприклад, ліхтарів для дайвінгу.
Ni-Cd акумулятори виробляють безліч
фірм, в тому числі великі інтернаціональні фірми, такі як GP Batteries Int.
Ltd., VARTA, GAZ, KONNOC, METABO, EMM, Advanced Battery Factory, Panasonic /
Matsushita Electric Industrial, ANSMANN та інші.
5. Опис
принципової електричної схеми
Схема робота складається з п'яти
мікросхем. Задіяні в схемі деталі:
• фоторезистори Rl, R2 - СФ2-2;
• С2 - танталовий конденсатор
ємністю 1 ТОВ мкФ, 6,3 В або електролітичний конденсатор з малим струмом
витоку;
• мікроконтроллер ATTINY26-16PU в корпусі
DIP;
• кнопки SI, S2 взяті з дисковода;
• електролітичні конденсатори -
малогабаритні;
• індуктивність L5 - слабкострумове
(не більше 50 мА) на 47 мкГн;
• кварцовий резонатор - 4,194 МГц;
• світлодіоди - на 3 мА;
• крокові двигуни - від дисководів.
Всією конструкцією робота управляє
мікроконтролера tiny26
Живлення від акумуляторної батареї
подається на плату (висновки +5 В і GND). Живлення - нестабілізована (напруга -
від 4 до 5,5 В).
Мінімальна напруга, при якому
нормально працює вихідний каскад на основі LB1642, становить 4,0 В .
Максимальна напруга живлення мікроконтролера tiny26 - 5,5 В.
Оскільки вимикач живлення повинен
забезпечувати струм споживання близько 1 А, його габарити і вага значно
впливають на повноцінну роботу конструкції робота. З цієї причини вимикач
живлення в схемі не використовується. Але тут виникає проблема: робот починає
автоматично працювати при подачі напруги. Для її вирішення функцію відключення
живлення виконує двопозиційна кнопка "RESET". При комутації кнопки S3
на "землю" мікроконтролер виявиться в стані режиму
"Скидання", поки на виводі 10 буде низький логічний рівень. Про
наявність живлення плати управління свідчить засвічення світлодіода LED1. Для
активізації робота досить вийти з режиму "Скидання", розімкнувши
зв'язок кнопки S3 з "землею".
У якості інформації про стан робота
світяться два світлодіоди: LED2 і LED3. Це означає, що живлення присутнє, однак
напруга - недостатня для роботи РІС, і необхідна підзарядка.
Роботу мікроконтролера tiny26
координує кварцовий резонатор Q1 номіналом 4,194 МГц. В такому режимі
мікроконтролер працює більш стійко.
Аналоговий сигнал про освітленість
шляху знімається з фотодатчиків R1 і R2. Вони включені за схемою дільників
напруги, відповідно: Rl, R4 і R2, R5 (R4, R5 - під лаштуванні). На середній
точці дільників АЦП мікроконтролера заміряє рівень напруги. Далі виконується
програма.
Робота програми також залежить від
стану контактів S1 та S2. У разі їх замикання робота змінює напрямок руху. При
цьому замикання контактів сигналізує один із світлодіодів: LED2 або LED3. Якщо
батарея живлення розрядилася, то засвітяться обидва світлодіода.
При комутації обмоток КД виникають
провали в загальному живленні схеми. Щоб уникнути цього ефекту паралельно
висновками харчування кожного драйвера підключені електролітичні конденсатори
С6-С8. Крім того, при роботі обмоток КД можуть З'явиться електромагнітні скачки
комутації, і, як наслідок, - електромагнітні перешкоди. Для їх усунення до
висновків плати на обмотки КД підключені конденсатори С9-С16.
6. Розробка
програми управління
Програма починається з установки стану портів
введення висновку. Потім по черзі настроюється і опитується АЦП фотодатчика 1 і
АЦП фотодатчика 2). Дані наводяться до середнього арифметичного і формуються
значення D і S відповідно до освітленістю кожного фотодатчика. Для вирішення
логічного завдання мікроконтролеру легше оперувати невеликими позитивними або
негативними цифрами, близькими до нуля, тому на наступному етапі виконується
віднімання F = D - S, а отриманий результат порівнюється по модулю з 10. Якщо
він менший, то робот рухається
прямо, якщо F> +10, то робот
рухається вліво, якщо ж F <-10 то
робот
рухається вправо. В аналоговій техніці даний результат досягається легко, однак
вона вимагає установки декількох корпусів операційних підсилювачів і
резисторів, що збільшує вагу конструкції. Крім того, в ході експериментів може
знадобитися програмно розширити область значень (наприклад, до ± 20 або ± 30).
В аналоговій техніці для цього буде потрібно змінити схему, що трудомістко і невиправдано
складно. В нашому ж варіанті робота програма може мінятися скільки завгодно під
різні завдання і вимоги, але конструкція РІС залишається колишньою.
Наступний етап - перехід до другого алгоритму,
що аналізує перешкоди на шляху прямування. У відповідній підпрограмі
перевіряється стан контактних датчиків S1 та S2. Якщо спрацював датчик S2 , то робот
робить чотири кроки назад,
невеликий поворот вліво і чотири кроки вперед, після чого знову опитувається
датчики S1 та S2. Якщо ситуація повторилася чотири рази, то робот
зупиняється на одну хвилину для відновлення заряду акумулятора.
Як тільки ситуація з S1 та S2 виправилася, і
контакти не замкнуті, підпрограма виходить в основну програму. Далі
повторюються кроки робота,
поки їх кількість не досягне десяти. Це число можна змінити під час
експериментів з маневреністю робота.
Оптимальний діапазон - від двох до 20 кроків. Як тільки відлік кроків
завершений, програма переходить в початок, і весь цикл повторюється. Для
підвищення точності руху робота
можна збільшити кількість фотодатчиків або розмістити фотодатчик на поворотній
платформі.
У розглянутій конструкції закладена програма із
затримкою між імпульсами, поданими на КД,
близько 3 мс. Це забезпечує постійне, досить швидкий рух робот.
Програма на асемблері представлена в
додатке .
Для зменшення швидкості в підпрограмі zader
досить збільшити паузу між імпульсами. Для майбутніх розробок підпрограму zader
краще реалізувати у вигляді відліку таймера і переривання. Це дозволить
програмі зайнятися більш ретельною обробкою вступників сигналів. У ситуації з
перешкодою на шляху проходження швидкість руху краще зменшити в два рази. Для
цього слід збільшити вдвічі паузи між імпульсами. Даний прийом можна назвати
"адаптацією до обстановки".
Блок-схема алгоритму розділена на
дві частини, відповідні механічної (див. рисунок 5) і логічної (див. рисунок
6)частин програми. У першій блок-схемі вибирається курс руху РІС, а в другій -
встановлюється маршрут руху (зародження примітивної штучної логіки мислення). Оскільки
програма РІС має складну логічну структуру, поведінка робота в тій чи іншій
ситуації відповідає окремим, неявним блокам стану. Неявні блоки стану виходять
із загальної концепції логіки поведінки РІС, описаної вище, і змінюються при
зміні поведінки на більш агресивне або малорухливе. Неявними блоками стану
розглянутої моделі РІС є курс і маршрут руху. Збільшивши кількість неявних
блоків (наприклад, додавши "зір" або здатність аналізувати розміри
перешкоди), при достатньому ресурсі мікроконтролера (або наявності декількох
мікроконтролерів) можна створити повноцінного робота. При створенні групи
блоків, у вигляді групи мікроконтролерів, пов'язаних пріоритетами і логікою
поведінки, досягається штучний інтелект. В цьому випадку побудова неявних
блоків має відповідати поставленому завданню
робот мікроконтролер
програмний автомат
Рисунок 5 - Алгоритм вибору напрямку
руху робота
Рисунок 6 - Визначення
маршруту руху робота
При русі РІС необхідно вирішувати проблему
орієнтації. Орієнтація при повороті може бути задана заздалегідь за допомогою
кодової таблиці, визначається по орієнтиру (датчик магнітного поля землі,
GPS-навігатор) або за допомогою зворотного зв'язку у вигляді телекамери.
Зрештою, автоматичному роботу нема чого розпізнавати положення півдня і
півночі. Йому досить пересуватися в локальній області, прийнятної для виконання
поставленого завдання. У розглянутому РОС застосована кодова таблиця заданої
траєкторії руху.
Розглянемо блок-схему (див. рисунок
5). У її верхній частині АЦП зчитує дані двох фотодатчиків, які потім
віднімаються і, залежно від результату, вибирається гілку управління рухом РІС.
У кожної гілки присутня перевірка стану контактних датчиків S1
і S2 (див. рисунок 6)..
Результат перевірки відображається на зміна маршруту згідно алгоритмом (див.
рисунок 6)
При виникненні перешкоди руху робот
реагує не відразу. Дрібні перешкоди робот може подолати силою, проштовхуючи їх
по ходу руху. Якщо перешкода не зіштовхнути, то робот
виконує маневр. Будь-які автоматичні дії робота
засновані на проходженні заданої кількості кроків. Кожен поворот складається з
комбінації повороту вала ШД1 і ШД2 на 360 °. Так, для повороту вліво необхідно
виконати наступні операції: ШД1 (лівий) - один крок назад, ШД2
(Правий) - два кроки вперед. При повороті вліво вал ШД1 обертається проти
годинникової стрілки, а вал ШД2 - за годинниковою стрілкою. Тим самим
досягається гарна маневреність корпуса робота.
Автоматичний маневр у вигляді
комбінації поворотів відповідає блок-схемою (див. рисунок 6).
На ній зазначена вихідна точка "А" і кінцева точка "В"
логіки управління. У точці "В" присутній загальна лінія зв'язку у
вигляді штрихової лінії.
Висновки
Згідно з завданням розрглянуто
робототехнічну модель. В якості основного компонента спроектованого пристрою
виступає мікроконтролер AT Tiny 26 серії AVR компанії Atmel.
Була розглянута програма для
мікроконтроллера, яка забезпечує роботу пристрою згідно і завданням.
Розглянуті електрична принципова та
електрична структурна схеми.
В ході виконання роботи виникає питанням:
"Навіщо нам цей робот
із практичної точки зору?". Припустимо, ми хочемо доручити роботу
автоматично обробляти землю. Вранці "Мисливець за
світлом" буде працювати в східному напрямку. Опівдні,
коли сонце буде деякий час знаходиться над роботом, він зробить невелику
перерву, накопичуючи енергію в сонячних батареях. Увечері "Мисливець
за світлом" продовжить обробляти землю у
зворотному напрямку, на захід сонця, і зупиниться в повній темряві. Після
закінчення однієї смуги обробки робот переходить на іншу. Через певний час
можна прийти і перевірити його роботу. Звичайно, це - спрощений варіант
використання "Мисливеця за світлом".
Конструкцію можна забезпечити датчиком магнітних ліній землі або орієнтувати за
допомогою двох випромінювачів на краях поля і повністю автоматизувати
управління і орієнтацію робота.
Собівартість конструкції робота
становить близько 20 євро
Додаток А
Програма роботу "мисливець
за свiтлом"
.include "с:\Program
Files\Atmel\AVR Studio\Appnotes\tn26def. inc"
.list
.def
adr = r0
.def
adcl = r27
.def
prgl = r24
.def
prg2 = r25
.def
dl = rl6
.def
d2 = r17
.def
tmp2 = rl8
.def
tmp3 = r28
.def
tmp = r20
.def
adc2 = r21
.def
F = r22
.def
Fl =
r23
.def
par =
r26
.def S1 = r19
.def S2 = r29
. cseg
.
.org 0RESET;rjmp
EXT_INT0;rjmp EXT_PCINT;rjmp TIME_CMPA;rjmp TIME_CMPB;rjmp TIME_OVF1;rjmp
TIME_OVF0;rjmp UCI_START;rjmp UCI_OVF;rjmp EE_RDY;rjmp ANA_COMP;rjmp ADC
.org 20: noptmptmp,
$0FDDRB, tmpPORTB, tmptmptmp, $F0DDRA, tmptmp
out PORTA, tmptmp,
lowSP, tmp: noptmptmp2tmp3adc1, $40adc2, $C5adcnd1, tmp2
mov d2, tmp3
ldi adc1, $40adc2,
$C5adcnS1, tmp2S2, tmp3arifm2, minF, $0Apram: nopF, $0ApramvpramnStart: nop
rcall SSF1, $0A:
noponevlevzaderF1nus
rjmp nStart:
nopSSFl, SOA: noponevpravzaderFlnipnStart: nopSSFl, SOA: nop
nop
rcall
zader
nop
clz
dec
Fl
brio
not
nop
rjmp
nStart
adcn:
nop
nop
clr tmp: noptmp,
S04assADMUX, adcltmp2tmp3ADCSR, adc2tmp2, ADCLtmp3, ADCHr2, tmp2r3, tmp3r4, г
2r5, r3r6, r4r7, r5tmpawe: nopr8
clctmp2, r2r9, r8tmp2,
r4r9, r8tmp2, r6r9, r8r9tmp2r9tmp2r9tmp3, r3r9, r8tmp3, r5r9, r8tmp3, r7r9,
r8r9tmp3r9tmp3: nopdl, SId2, 0
breq loki
clr
cmp
rol
tmp
sub
d2, S2
sub
d2, cmp
loki:
nop
ret
SS:
nop
clr
tmp3
in
tmp3,
nop
ldi
tmp.
and
tmp3,
nop
clz
cpi
tmp3, 504
breq
vperl
nop
clz
cpi
tmp3, S08
breq
nazad
nop
clztmp3,
SOC
breq stopic
nop
Vperl: nop
rcall nop
onestep
rjmp
qlo
nazd:
nop
rcall nop
zadstep
rjmp
qlo
stopic:
nop
rcall
Stop
qlo: nop
ret
onevlev:
nop
clr
Tmp
ldi
tmp.
clr
par
cln
cls
sfg: nop
cpi
par, $08
breq
prn2
ldi
ZH,high(2*pro)
ldi
ZL,Low(2*prog)
Add
ZL, par
LPM
mov
prgl, adr
out
PORTB, prgl
ldi
ZH,high(2*pro)
ldi
ZL,Low{2*prog)
Add
ZL, par
LPM
mov
prg2, adr
swap
prg2
out
PORTA, prg2
-call
zader
rjmp
sfg
prn2:
nop
clr
par
cln
dec
tmp
brmi
hk}
rjmp
sfg
hk}:
nop
ret
onevprav:
nop
clr
tmp
ldi
tmp, $0A
clr
par
cln
els
sld: nop
cpi
par, $08
breq
prv
ldi
ZH, high(2*progl)
ldi
ZL, Low(2*progl)
Add
ZL, Par
LPM
mov
prg2 , adr
swap
prg2
out
PORTA, prg2
ldi
ZH, high(2*prog2)
ldi
ZL, Low(2*prog2)
Add
Z L, par
LPM
mov
prgl, adr
out
PORTB, prgl
rcall
zader
inc
par
rjmp
sld
prv:
nop
clr
cln
par
dec
tmp
brmi
nert
rjmp
sld
nert:
nop
ret
onestep:
nop
clr
tmp
ldi
tmp, $0A
clr
par
cln
cls
sldl:
nop
cpi
par, $08
breq
prvl
ldi
ZH, high(2*progl)
ldi
ZL, Low(2*progl)
Add LPM
ZL, par
mov
prg2, adr
out
PORTS, prg2
swap
prg2
out
PORTA, prg2
rcall
zader
ПС oar
rjmp
sldl
prvl: nop
clr
par
cln
dec
tmp
brmi
nertl
rjmp
sldl
nertl:
nop
ret
zadstep: nop
cpi
par, 508
breq
prv2
Id:
ZH, higb (2*prog2)
ldi
ZL, Low (2*prog2)
Add
ZL, par
LPM
mov
prg2, adr
ouc
PORTB, prg2
swap
prg2
ouc
PORTA, prg2
rcall
zader
inc
par
rjmp
sld2
prv2:
nopparcmpnert2sld2: nop: noptmpDDRB, tmpPORTB, tmpadc1, $49adc2, $C5adcnd1,
tmp3d2, tmp3tmp3, $02foomint: nop
zader:
: nop wdr
ldi
YL, low(9999)
ldi
YL, high(9999)
ddd:
Sbiw YL,
1
brne
ret
ddd: nop
wdrZL, low(9999)ZL, high(9999)zader
dddl: sbiw
ZL, 1
brne
ret dddl
.org S200
progl:
. DB
$08,
SOA, $02, $06, $04, $05,
$01, $09
.org $220
prog2 :
.DB $09,
$01, $05, $04, $06, $02, $0А, $08
.EXIT
Додаток Б
Код управління роботом.
FC
C000000000000000000000000000001D
08001OOÛ0OO0O0OOU0U00OO0E8
4274FE04 7BB4 8BB442740EF4ABB8A
BBB4FED4DBF00004 4272227CC2758
O4 8000OO0BOE4 55EC4
6D0022F1C2FOO00B0E4AD
EC40D0322FDC2F00006DDOOOC032F07C
O0O680000O0C8946A3O4
0F100O00ACO0O00A894 5B
C894 6A3009F100008CF40000DDCF00005C
D000007AE000007FD0000007D1B3
A95C0F30000CECF00005 6D0A7
A80000007AE0000092DOOOOOF9D000009894
97
B8007A95C0F30000C0CF00004
8D000007AE075
C8000000A5DOOOOOEBD0000098947A95ÇOF30A
D8000000B2CF0000000044270000443070F454
E800B7B92227CC2
756B924B1C5B1222E3C2E4 8
F8004 22C532C642C752C4
395EFCF0000882498
100108008894220D981C240D981C2
60D981C889400
C30D981CAZ
C50D981CC70D981C8894
9694C7959694ED
C79500000895000003l59894i03021F02
3
8004427441F1D1B141B000008950000CC27E2
CBB300004CEOC42300009894C43049FOAD
C8304
9F000009894CC304
9FOC9
CD0000006C0000064D0000061
C000007CDOOOOOO895000044274AE027
AA27A894C894
0000A83081FOF4EOEOE011
A800EA0FC895802D88BBF4E0E0E4EA0FC89513
B800902D92959B3B7
3DOA395EDCFOOOOAA2.7F5
C800A894
4A950AFOE7CF000008950000442754
D8004AEOAA27A894C8940000A83081FOF4E067
E800EOEOEAOFC895902D92959BBBF4EOEOE41F
F800EAOFC895802D88BB52DOA395EDCF00009B
AA27A894
4A950AFOE7CF000008950000AD
AEOAA27A894C8940000A83059FOB7
F4E0E0E0EA0FC895902D98BB92959BBB4F
6D0A395F2CF0000AA27A8944A950AFÛD1
10024 800ECCF0000089500004
4274AEOAA27A894AC
D98BB92959BBB1ADOA395F2CF000016
AA27A8944A950AFOECCF0O000895000038
BB4
8BB0000B9E4
55EC23DF022FE5
C2FOOOOC2300CF40
9D0000008950000A3
A800A895CFE0C7E22197F1F708950000A89537
0C02B800EFE0E7E2F4DF3197F1F7089582
А020604050109С7
А0887
FF