Інтелект
Монокристальний PIC мікроконтроллер, причини використання, програмування. Компілятор PICBASIC Pro, нові можливості інтегрованого середовища обробки. Додатки використання мікроконтроллера. Нечітка логіка і нейронні датчики. Схема нейронного ланцюжка.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 21.12.2014 |
Размер файла | 3,8 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Міністерство освіти, науки, молоді і спорту України
Національний університет “Львівська політехніка"
Кафедра ФОТОНІКИ
Курсова робота
З дисципліни: «Основи мехатроніки і робототехніки»
На тему: «Інтелект»
Львів 2013
ВСТУП
Інтелект, що знаходиться в роботі, приймає одну з двох форм:програмно підтримуваний інтелект (експертна система) і інтелект у формі нейронної мережі. Можливе одночасне функціонування цих форм інтелекту. Такий синтез з часом буде широко використовуватися в роботах для створення систем розвиненого ИИ. Експертні програми ИИ, засновані на системі вирішальних правив добрі відомі більшості користувачів ПК. Це програми, написані на мові високого або низького рівня типу З++, Basic або асемблері. З іншого боку, нейронні системи використовують штучні, електронні нейрони для управління і генерації поведінки робота. Подібна архітектура побудови нейронних ятерів, що управляють поведінкою роботів, була уперше запропонована Вільямом Грей Вальтером у кінці 40-х качану 50-х років. Пізніше за Родні Брукс з Массачусетського технологічного інституту розробив поведінково орієнтовану структуру ятерів роботів під назвою предикативної (умовною) архітектури. Пам'ятайте, що роботові нейронних ятерів можливо імітувати з допомогою спеціальних програмних систем. Заслуговує на увагу тій факт, що практично вусі матзабезпечення після нейронних ятерів функціонує на звичайних програмованих комп'ютерах, використовуючи спеціальні програми для імітації роботи ятерів.
1. МОНОКРИСТАЛЬНИЙ PIC МІКРОКОНТРОЛЛЕР
Нині постачання "інтелектом" невеликого робота або роботизованной системами є досить просте завдання. Існує ціле сімейство однокристальних комп' ютерів (більше відомих як мікроконтроллери), здатних виконувати різноманітну роботові. Як випливає з назви, однокристальний комп'ютер цілісний комп'ютерний пристрій, поміщений в корпус ІС. Мікроконтроллер, виконаний на мініатюрній підкладці з кремнію, містить в собі властивості і можливості звичайного персонального комп'ютера (ПК). Раніше всього, мікроконтроллер здатний зберігати і виконувати програми, що являється його найбільш важливою властивістю. Контроллер містить центральний процесор (ЦПУ), оперативну пам'ять (ОП), постійне пристрій, що запам' ятовує (ПЗП), шини введення виводу, послідовний і паралельний псуй, таймери і деякі інші периферичні пристрої типу АЦП і ЦАП.
2. ПРИЧИНИ ВИКОРИСТАННЯ МІКРОКОНТРОЛЛЕРА
Здатність мікроконтроллера до зберігання і виконання унікальної (заданої користувачем) програми обумовлює гнучкість його застосування. Наприклад, можна запрограмувати мікроконтроллер на ухвалення рішень ((виконання функцій) на основі визначених заздалегідь станів шин введенню висновку і показників датчиків. Його здатність виробляти математичні і логічні операції дозволяє моделювати складні логічні ланцюжки і роботові цифрових електронних схем. Програми іншого роду дозволяють імітувати роботові нейронних ятерів і пристроїв з нечіткою логікою. Мікроконтроллер здатний управляти роботою двигунів постійного струму (використовується управління по напрузі або ШИМ), сервомоторів крокових двигунів і так далі. Якщо запрограмувати реакції мікроконтроллера на показники чутливих датчиків і команди ДУ, то робот придбає здатність "інтелектуального" реагування. Нині усі найбільш "розумні" електронні пристрої на споживчому ринку забезпечені мікроконтроллерами, які, очевидно, можуть бути використані і в наших роботах.
3. ПОДРОБИЦІ ПРОГРАМУВАННЯ PIC МІКРОКОНТРОЛЛЕРА
Програмування PIC мікроконтроллера відбувається в три етапи. Проте перш ніж приступити до власне програмуванню, вам необхідно придбати дві речі: програму компілятор PICBASIC і програматор EPIC Створюємо робота андроїда своїми руками(плата, куди поміщається мікроконтроллер).
Мал. 1 - Компілятор PICBASIC
Сам PIC мікроконтроллер і його додаткові частини не відносяться до цих компонент. Я рекомендую почати з PIC мікроконтроллера типу 16F84, оскільки він є досить універсальний пристрій в корпусі з 18 виводами, що має 13 шин введення-виводу і перезаписувану flash -память. Flash -память дозволяє виробити до 1000 циклів перепрограмування. Це виявиться досить корисним при тестуванні і відладці програм і електричних схем. Компілятор PICBASIC (Мал. 1) може бути встановлений на стандартний ПК. Програма працює під DOS або у вікні "MS - DOS Prompt" при встановлених Windows. Скорочено MS - DOS Prompt мі далі означатимемо просто як вікно DOS. Програма DOS може бути запущена на будь-якому ПК, починаючи від PC XT з версією DOS 3.3 або вище. Компілятор підтримує широкий асортимент PIC мікроконтроллерів.
Мал. 2 - Плата програмування EPIC
Мал. 3 - Мікроконтроллер 16F84
Компілятор генерує шістнадцятиричний машинний код, який може бути використаний і з іншими програматорами. Ціна програмного забезпечення компілятора PICBASIC близько $99,95. Плата програматора EPIC (див. Мал. 2) має панельку для вставки ІС PIC контроллера і з'єднання з ПК через порт принтера для здійснення програмування. Плата програматора приєднується до комп'ютера з допомогою кабелю DB25, вставленого в порт принтера (паралельний порт). Якщо в комп' ютері є єдиний паралельний порт, в який вже вставлянь кабель принтера, то для програмування PIC цей кабель має бути заздалегідь від'єднаний. У парі з компілятором PICBASIC плата програматора EPIC підтримує програмування багатьох типів PIC мікроконтроллерів. Ціна плати програматора разом з тією, що додається дискетою складає $59,00. Мікроконтроллер PIC 16F84 зображений на Мал. 3. Він представляє собою універсальний пристрій, забезпечений flash -памятью. Flash -память, як було відмічено вище, є пам'яттю з можливістю перезапису. Пам'ять допускає мінімум 1000 циклів стирання-запис, тому ви можете перепрограмувати і знову використовувати мікроконтроллер до 1000 разів. Година збереження пам' яті без перезапису складає приблизно 40 років. З 18 висновків ІС 16F84 13 є шини введення-виводу. Зміна стану шин введення-виводу можна легко здійснити з програми. Інші функції включають управління живленням по перезапуску, режим енергозбережної моди, таймер включення і захист кодів. Інші функції архітектура PIC 16F84 буде приведено по ходу викладу.
Завантаження програмного забезпечення
Передусім необхідно завантажити матзабезпечення компілятора PICBASIC і програматора EPIC згідно з інструкціями, приведеними в їх описах. Для завантаження я створив директорію на жорсткому диску під назвою APPLICS. Для того, щоб викликати компілятор і програматор з однієї і тої ж директорії, я використовував покажчик шляху DOS. Вусі необхідні текстові файли я створив і зберіг в тій же директорії APPLICS.
Крок 1: Пишемо програми мовою BASIC
Програми на мові PICBASIC мають бути написані в текстовому редакторові, здатним створювати текстові файли формату ASCII або DOS text. Усі сучасні редактори, яких я використовував, мають цю функцію. Використовуйте команду Save as і виберете розширення MS - DOS text, DOS text або ASCII text. Готовий текст компілюється за допомогою PICBASIC. Якщо у вас немає текстового редактора, то скористайтеся програмою Windows Notepad, яка є у версіях Windows 3.x, 95, 98 для того, щоб написати початковий файл на BASIC. (У Windows дивитеся Додатки.) У оболонці DOS ви можете використовувати редактори EDIT. При збереженні файлу необхідно забезпечити його розширенням.bas. Якщо ви зберігаєте програму під ім 'ям Wink, то її повне ім 'я буде Wink.bas.
Крок 2: компіляція програми
Компілятор PICBASIC запускається командним рядком pbc з набором імені необхідного текстового файлу. Наприклад, якщо мі назвали файл wink.bas, то командний рядок в DOS command prompt буде: pbc wink.bas Компілятор BASIC обробляє початковий файл і створює два додаткових файли:.asm (файл на мові асемблера) і.hex (файл в шістнадцятиричних машинних кодах). Файл wink.asm є трансляцією BASIC файлу на мову асемблера. Файл wink.hex є файлом машинних кодів, записаних в шістнадцятиричному виді. Для програмування PIC завантажується файл.hex. Якщо при компіляції початкового тексту на BASIC компілятор виявить помилки, то він відмітить кожну з них в рядку, що містить цю помилку і перерве роботові. Для успішного завершення компіляції необхідно заздалегідь виправити усі відмічені помилки в початковому тексті програми.
Крок 3: програмування ІС PIC
З' єднаєте плату програматора з портом принтера комп'ютера при помощі кабелю DB25. Перейдіть в моду DOS. У командному рядку наберіть:
EPIC
Мал. 4 - Вікно програмування EPIC
Мал. 5 - Текстовий файл програми PICBASIC
На Мал. 6.4 свідчень вид екрану монітора. Використовуйте опцію Open File і виберіть файл wink.hex із списку в діалоговому вікні. Після завантаження файлу послідовність чисел відобразиться у вікні ліворуч. Вставте PIC 16F84 в панельку і натисніть клавішу Program. Мікроконтроллер PIC запрограмується і буде готовий до роботи.
Перша програма на мові BASIC
Тепер мі готові написати нашу деру програму. Введіть програму за допомогою текстового редактора в точності, як вона представлена нижче:
''Перша програма на BASIC для поперемінного мигання двох світло діодів підключених до порту В.
Loop: High 0 'Включити світлодіод, підключений до порту RB0
Low 1 'Вимкнути світлодіод, підключений до порту RB1
Pause 500 'Затримка 0,5 с.
Low 0 'Вимкнути світлодіод, підключений до порту RB0
High 1 'Включити світлодіод, підключений до порту RB1
Pause 500 'Затримка 0,5 с.
goto loop 'Перехід по мітці Loop поперемінне мигання світлодіодів
End
Подивитеся на мал. 5. Збережете цей текст як текстовий файл при допомозі команди Save у файловому меню. Присвойте файлу ім 'я wink.bas (див. Мал. 6). Якщо ви випадково зберегли текст як wink.txt, то не розстроюйтеся. Ви можете легко перейменувати файл в wink.bas у файловому меню редактора за допомогою команди Save as.
Компіляція
Компілятор PICBASIC має бути запустінь під системою DOS або з вікна DOS prompt в системі Windows. Я виробляв запуск компілятора з директорії APPLICS. Переконаєтеся, що файл wink.bas також знаходиться в директорії компілятора PICBASIC. Компілятор PICBASIC сумісний з багатьма типами різних PIC мікроконтроллерів. Для компіляції програми під наявний мікроконтроллер необхідно повідомити програму його тип. Для компіляції програми під PIC 16F84 необхідно додати _p16f84 до команди pbc.
Мал. 6 - Збереження текстового файлу
Мал. 7 - Введення команди компіляції
Таким чином, повна команда виглядатиме: pbc - p16f84 wink.bas.
У DOS prompt наберіть команду і натисніть клавішу введення (див. Мал. 7).
C:\APPLICS>pbc - p16f84 wink.bas
Компілятор видасть заголовок, що містить назву версії і почне компілювати початковий текст (див. Мал. 8). Якщо початковий текст на BASIC не містить помилок, то він створить два додаткові файли. Якщо компілятор знайде помилки, то він видасть список помилок з вказівкою номера відповідної рядка. Зіставте номери рядків помилок з рядками початкового тексту. Компілятор завершити програму тільки тому випадку, якщо усі помилки будуть виправлені. Ви можете подивитися отримані файли за допомогою команди dir. Наберіть dir в командному рядку і натисніть клавішу введення (див. Мал. 9).
C:\APPLICS> dir
Команда dir відображує усі субдиректорії і файли, що містяться в цій директорії. На рис 6.9 можна помітити появу двох додаткових файлів. Одним з них є файл wink.asm, що являється початковим файлом на мові асемблера, яка автоматичний запускає макро-асемблер для перекладу асемблерного коду в шістнадцятиричний машинний код. Іншим створеним файлом є файл wink.hex, що містить шістнадцятиричний машинний код.
Програмування ІС PIC
Для програмування ІС PIC необхідно з'єднати плату програматора EPIC з комп'ютером (див. Мал. 10). Плата EPIC з'єднується з портом принтера. Якщо комп'ютер містить єдиний порт принтера, то від'єднаєте принтер, якщо він був підключений, і підключите плату EPIC при дпомозі кабелю DB25 завдовжки 2 метри.
Мал. 8 - Програма компілятора
При підключенні плати звернете особливу увагу на ті, щоб PIC мікроконтроллер не був вставлянь в плату. Якщо у вас є зовнішнє мережеве джерело живлення для плати програматора, вставте його у відповідне гніздо. Якщо у вас немає мережевого джерела живлення, то скористайтеся двома
новими батареями на 9 В і перемкнете джампер "Batt on" для подачі напруги. Підключення плати до комп'ютера і подача живлячого напруги повинні вироблятися до запуску програм. Інакше комп'ютер "не побачить" пристрій, приєднаний до порту принтера, і видасть повідомлення про помилку "EPIC programmer not connected". Після подачі напруги і з'єднання з портом принтера на платі програматора може запалитися і згаснути світлодіод. До закінчення відробітку програми установки зв'язку в EPIC програматором не вставляйте PIC мікроконтроллер в панельку програматора.
Мал. 9 - Командна директорія
Мал. 10 - Плата програматора EPIC
Програмне забезпечення плати програматора EPIC
Існують дві версії програмного забезпечення EPIC: EPIC.exe під систему DOS і EPICWIN.exe під Windows. Матзабезпечення під Windows являється 32 розрядним і може використовуватися під версії Windows 95, 98 і NT, але не підходить для 3.Х.
Використання DOS версії EPIC
При використанні версії Windows 95 або вище ви можете відкрити вікно MS - DOS prompt або перезавантажити комп'ютер в DOS моді. Під Windows 3.ХХ необхідно завершити сесію.
Припустимо, що мі знаходимося в DOS моді і тільки що завершили компіляція wink.bas за допомогою компілятора pbc. Скопіюйте файл wink.hex в директорію EPIC. У моді DOS prompt наберіть "EPIC" і натисніть клавішу введення для запуску DOS версії програми EPIC (див. Мал. 11).
Відображення програми EPIC на моніторі показане на Мал. 12. Використовуйте мишу для натиснення на клавішу Open або натисніть Alt + O на клавіатурі. Виберіть файл wink.hex (див. Мал. 13). Коли hex файл завантажиться ви побачите послідовність чисел у вікні ліворуч (див. Мал. 6.14). Ця послідовність є машинним кодом програми. На правій стороні екрану висвічуються параметри конфігурації, які нам необхідно буде встановити перед качаном програмування PIC ІС.
Проглянемо в порядку черговості список параметрів конфігурації:
_ Device: Визначення типу прибудую. Встановимо параметр 8Х.
_ ROM size (K): Встановлює місткість пам' яті ПЗП. Виберемо 1.
_ OSC: Установка типу осцилятора. Виберемо ХТ для кварцевого резонатора.
_ Watchdog timer: Виберемо On.
_ Code protect: Виберемо Off
_ Power - up time enable: Виберемо High.
Мал. 11 - Команди EPIC
Після установки параметрів вставте PIC мікроконтроллер 16F84 в панельку. Клацніть по Program або натисніть Alt + P на клавіатурі для запуску програмування. Передусім програма EPIC визначає, чи являється пам'ять ІС мікроконтроллера "порожньої". У цьому випадку EPIC програма інсталює задану вами програму в мікроконтроллер. Якщо пам'ять мікроконтроллера не порожнить, то видається опція перервати виконання програми або записати нову програму поверх існуючої. Якщо в пам' яті мікроконтроллера вже існує якась програма - записуйте поверх неї. У міру програмування PIC робочі рядки машинного коду підсвічують. Потім закінчення процесу мікроконтроллер запрограмований і повністю готовий до роботи.
Мал. 12 - Вікно програми EPIC
Мал. 13 - Вибір шістнадцятирічного файлу
Перевірка PIC мікроконтроллера
На приведеній схемі видно, що для забезпечення роботи мікроконтролера потрібно дуже невелику кількість додаткових деталей. Передусім потрібний резистор зміщення, приєднаний до виводу 4 ((MCLR), кварцевий резонатор на частоту 4 Мгц з двома конденсаторами по 22 пФ і джерело живлення 5 В.
На виході прибудую підключено два світлодіоди, сполучені послідовно з обмежувальними резисторами. Сморід дозволяти оцінити нам правильність роботи мікроконтроллера. З' єднаєте компоненти без допомоги спайки на макетній платі відповідно до схеми на мал. 15. Готовий пристрій матиме вигляд, подібний до зображеного на Мал. 16. Хоча специфікація на ІС 16F84 стверджує, що мікроконтроллер здатний працювати в інтервалі напруги від 2 до 6 В, я віддав перевагу використання стабілізованого джерела живлення 5 В. Стабілізатор напруги включає регулювальник напруги на ІС 7805 і два конденсатори фільтру.
Мал. 14 - Шістнадцятирічний файл, завантажений в програму EPIC
Мигання
Подайте напругу живлення на схему. Світлодіоди, підключені до ІС, почнуть поперемінно включатися і вимикатися, по черзі блимаючи.
Тепер ви знаєте, що для програмування мікроконтроллера і його запуску потрібно зовсім невеликі зусилля. У міру накопичення досвіду використання компілятора і програматора стані вашою "іншою натурою". Процедура перестане бути для вас "по кроковою", і уся ваша увага зосередиться на створенні найбільш эфективних програм на PICBASCI.
Місткості конденсаторів резонитора 22 пФ
Мал. 15 - Схема
Мал. 16 - Схема, змонтована на макетній платі
Перевірка несправностей
У цій простій схемі помилки практично не зустрічаються. Якщо Світлодіоди не включаються, то необхідно перевірити полярність їх включення. Якщо смороду включені із зворотною полярністю, то сморід не будуть запалюватися.
Стабілізатор напругикомпілятор PICBASIC Pro
Існує старша версія компілятора PICBASIC, яка має назва PICBASIC Professional компілятор. Версія Pro компілятора набагато дорожча і коштує близько $249,95. Версія Pro має набагато більший і розгорнутий набір команд, чим стандартна версія компілятора. Деякі з таких команд, які містяться в Pro версії, можуть управляти перериваннями, забезпечують пряме управління ЖК- дисплеєм, генерують тоны DTMF і видають команди Х- 10. Хоча ця версія є в цілому більше здійсненою, вона не підтримує дві з моїх улюблених (і дуже корисних) команд: команду Peek (прочитати байт за адресою) і команду Poke (записати байт за адресою). Хоча в описі ці команди відмічені як "корисні", підкреслюється, що для версії PICBASIC Pro сморід не можуть бути використані. Якщо відкинути емоції, таке рішення представляється невдалим хоч би тому, що воно разрушає вертикальну сумісність компіляторів PICBASIC, якщо в програмі використовуються команди Peek або Poke.
4. НОВІ МОЖЛИВОСТІ ІНТЕГРОВАНОГО СЕРЕДОВИЩА ОБРОБКИ (IDE)
З недавнього годині компілятори PICBASIC і PICBASIC Pro комплектуються додатковою дискетою, що містить інтерфейс інтегрованої середовища обробки інформації (integrated development environment IDE), котрий має назву CodeDesigner Lit (див. мал. 17). CodeDesigner Lite дозволяє складати і компілювати програми PICBASIC в оболонці Windows. Кожен оператор виділяється кольором, що дозволяє з більшою наочністю виділяти помилки і вичитувати коди. Демонстраційна версія дозволяє писати програми завдовжки до 150 рядків і одночасно відкривати до трьох файлів з метою полегшення їх переміщення і копіювання. Найбільш важливою рисою інтерфейсу CodeDesigner IDE є можливість спершу ввести початковий текст програми, потім компілювати програму в машинний код і, нарешті (теоретичний), запрограмувати мікроконтроллер в межах одного вікна Windows. Таке компонування зменшує годину роботи програми. Зазвичай я пишу програму в DOS моді або використовую вікно MS - DOS Prompt під Windows. Після закінчення я виходжу з режиму редактора і вручну компілюю програму. Якщо програма містить помилки (що найчастіше і відбувається), я знову входжу в редактор і виробляю відладку програми. Колі програма повністю відлагоджена, я завантажую її в мікроконтроллер за допомогою програматора і програми EPIC. Після цього виробляється тестування мікроконтроллера і остальний схеми. Якщо вусі працює правильно, то завдання вирішене; у осоружному випадку я починаю переписувати програму.
При використанні CodeDesigner легкість написання і відладки програми на PICBASIC, а також завантаження її в мікроконтроллер сильно підвищують продуктивність роботи. Мій досвід показує, що оптимальним являється створення і відладка програми під Windows, але програмування краще здійснюється в DOS моді.
Демонстраційній версії CodeDesigner Lite для більшості випадків виявляється досить, але за бажанням можна розширити її до повної версії CodeDesigner. CodeDesigner має любительську версію за $45,00 і стандартну версію за $75,00.
Любительська версія CodeDesigner може працювати тільки з компілятором PICBASIC. Стандартна версія підтримує обидва компілятори: PICBASIC і PICBASIC Pro. Деякі відмітні характеристики CodeDesigner приведені нижче:
_ Автодоповнення тексту: CodeDesigner робить написання тексту програми простішим за допомогою спливаючих вікон Windows, автоматично заповнюваних необхідними операторами і даними.
_ Підтримка роботи з декількома файлами.
_ Підсвічування рядків, що містять помилки: CodeDesigner під час компіляції тексту PICBASIC прочитує інформацію про помилки і підсвічує відповідні рядки програми.
_ Синтаксична підтримка: Опція оперативної синтаксичною підтримки відображує синтаксис операторів серед допустимих операторів PICBASIC.
_ Опис оператора: Якщо оператор є допустимим для PICBASIC дескриптор оператора з'являється в полі рядка стану.
_ Роз'яснення функцій операторів: Досить поставити курсор оператор PICBASIC, щоб отримати роз'яснення його функції.
_ Список міток: Вікно списку міток висвічує поточну мітку і дозволяє вам вибрати потрібну мітку із списку для здійснення переходу.
_ Виділення кольором в PICBASIC: Можливо виділяти різним кольором різні слова, рядки, дані, коментарі, визначення і т.д. Подібне виділення дозволяє легше читати текст програми PICBASIC.
_ Закладки: Для відмітки потрібних місць в програмі CodeDesigner має систему закладок.
_ Можливість відміни/призначення попередньої дії: Якщо ви по помилці видалили рядок, то для її відновлення потрібне нажати клавішу "відмінити".
_ Система вікон перегляданню: Наявність декількох вікон перегляданню дозволити вам легко редагувати текст програми.
_ Друк тексту програми.
_ Переміщення і вставка тексту.
_ Можливість вставки, видалення і копіювання після рядків і стовпцях.
_ Пошук і заміна в тексті.
_ Компіляція і запуск прибудую програматора.
Мал. 17 - CodeDesigner Line
Установка програмного забезпечення
У процесі установки компонент CodeDesigner створює піддиректорію в директорії Program Files і встановлюється туди. Ярлик CodeDesigner поміщається в меню програм Windows.
5. ПЕРША ПРОГРАМА НА PICBASIC PRO
Ця програма аналогічна по функції програмі wink.bas для
PICBASIC, але текст її має відмінності. Запустите програму CodeDesigner
((((Litе) - див.рис. 6.18 - і введіть наступний текст:
' ' Програма блималка
' ' Поперемінне мигання двох світлодіодів, підключених до порту В Loop:
High PORTB.0 'Включити світлодіод, підключений до порту RB0
Low PORTB.1 'Вимкнути світлодіод, підключений до порту RB1
Pause 500 'Затримка Ѕ з
Low PORTB.0 'Вимкнути світлодіод, підключений до порту RB0
High PORTB.1 'Включити світлодіод, підключений до порту RB1
Pause 500 'Затримка Ѕ з
got Loop 'Перехід по мітці Loop для безперервного мигання світлодіодів
CodeDesigner за умовчанням створює вихідний код під мікроконтроллер PIC 16F84. Це тип мікроконтроллера, з якого я рекомендував би почати.
Для зміни типу прибудую викличте меню пристроїв і виберіть в ньому відповідний тип мікроконтроллера.
Для компіляції програми необхідно вибрати команду компіляції відповідному меню або натиснути клавішу F5. CodeDesigner автоматично завантажить компілятор PICPASIC Pro для здійснення компіляції.
Перед качаном компіляції необхідно вибрати відповідні опції в меню компілятора. CodeDesigner "попросити" вибрати директорію, в якій знаходиться програма PICBASIC Pro і директорію для збереження початкового і що компілює файлів.
Після завершення компіляції мі можемо приступити до наступного етапу - завантаженню програми в мікроконтроллер за допомогою програматора EPIC.
Необхідно наслідувати порядок, викладеному раніше в інструкції для компілятора PICBASIC.
Мал. 18 - Програма PICBASIC Pro, написана за допомогою CodeDesigner
Мал. 19 - Запуск програми EPIC з CodeDesigner
CodeDesigner і програматор EPIC
За бажанням ви можете запрограмувати ІС також з допомогою CodeDesigner. Виберіть опцію "Завантажити програматор" в меню програматора або натисніть F6. CodeDesigner автоматичний запустити EPICWIN.exe під Windows. Колі програма EPIC під Windows запущена, необхідно встановити параметри конфігурації в меню опцій:
_ Device: Встановите тип прибудую. Поставте опцію 16F84 (за умовчанням).
_ Memory size (K): Встановлює місткість ПЗП. Поставте 1.
_ OSC: Установка типу осцилятора. Встановите ХТ - кварцевий резонатор.
_ Watchdog timer: Таймер режиму очікування. Встановите On.
_ Code protect: Захист коду. Встановите Off.
_ Power - up timer enable: таймер режиму включення. Встановите High.
Після установки параметрів конфігурації вставте мікроконтроллер
PIC 16F84 в панельку плати програматора EPIC. У випадку якщо CodeDesigner при запуску програми EPIC видає помилку "Програматор EPIC не знайдений" ((((див. Мал. 19) ви можете або виробити діагностику програми, або спробувати запустити EPIC в DOS моді. Інструкції по запуску матзабазпечення EPIC під DOS приведені в розділі опису PICBASIC. Схема тестового пристрої аналогічна схемі для компілятора PICBASIC.
Мигання
Включіть живлення схеми. Світлодіоди, підключені до мікроконтроллера, поперемінно включатимуться і вимикатимуться.
6. ДОДАТКИ ВИКОРИСТАННЯ МІКРОКОНТРОЛЛЕРА
Заразом наставши година продемонструвати вам, як використовуються мікроконтроллери в різних схемах. Ви вже маєте початковий досвід програмування мікроконтроллера 15F84. У цій главі приведені деякі основні функції використання мікроконтроллерів в різних прибудовах. Ці функції повсюдно реалізуються в мікроконтроллерах використовуваних в різних схемах і розробках. Спершу подивимося, як мікроконтроллер може визначити замыкание ланцюги. Для цієї мети можуть бути використані будь-які з 13 шин введення/вивід, які працюють в логіці TTL. Для визначення замиканнями використовуватимемо ці логічні рівні в з'єднанні з вимикачами (див. Мал. 20).
Вимикачі низького рівня
На Мал. 20 вимикач з міткою А видає на шину введення/виведення сигнал високого логічного рівня до моменту замикання. Після замикання шина "сідає" на землю, тобто отримує сигнал низького рівня. Коли мікроконтроллер отримує сигнал замикання, він може виробити ряд операцій або функцій управління. У нашому випадку замикання контакту вимикача викличе мигання світлодіода. Зрозуміло, що світлодіод може бути замінений транзистором, перетворювачем, електронною схемою або іншим мікроконтроллером або комп'ютером.
Програма на PICBASIC має наступний вигляд:
''PICBASIC компілятор
''REM перевірка вимикача низького рівня
' ' Ініціалізація змінних
input 4 'Призначити шину PB4 для визначення стану вимикача
start:
if pin4 = 0 then blink 'Якщо вимикач видає низький рівень - светодиод блимає
goto start 'Якщо немає - перевірити стан вимикача
blink: 'Процедура мигання
high 0 'Високий рівень на шині RB0 для запалення світлодіода
pause 250 'Затримка ј з
low 0 'Низький рівень на шині RB0 для гасіння світлодіода
pause 250 'Затримка ј з
goto start 'Перевірка стану вимикача
Програму на PICBASIC Pro можна скласти таким чином:
''REM BASIC Pro компілятор
''Rem перевірка вимикача низького рівня
input portb.4 'Призначити шину PB4 для визначення стану вимикача
start:
if port.b = 0 then blink 'Якщо вимикач видає низький рівень - світлодіод блимає
goto start 'Якщо немає - перевірити стан вимикача
blink: 'Процедура мигання
high 0 'Високий рівень на шині RB0 для запалення світлодіода
pause 250 'Затримка ј з
low 0 'Низький рівень на шині RB0 для гасіння світлодіода
pause 250 'Затримка ј з
goto start 'Перевірка стану вимикача
Схема прибудую для вимикача низького рівня приведена на Мал. 21. Вимикач сполучений з шиною введення/виводу, поміченою RB4. Світлодіод сполучений з шиною RB0 через обмежувальний резистор 470 Ом.
Мал. 20 - Перемикачі логічних рівнів
Вимикачі високого рівня
Програми і схемні рішення для даного випадку комплементарні попередньому прикладу. Подивимося знову на Мал. 6.20 - варіант В. Якщо перемикач з міткою В знаходиться в положенні "вимкнено", то шина виходу має низький логічний рівень. При замиканні перемикача на шину поступає сигнал високого логічного рівня.
Програма на PICBASIC має наступний вигляд:
''PICBASIC компілятор
''REM перевірка вимикача високого рівня
' ' Ініціалізація змінних
input 4 'Призначити шину PB4 для визначення стану вимикача
start:
if pin4 = 1 then blink 'Якщо вимикач видає високий рівень - светодиод блимає
goto start 'Якщо немає - перевірити стан вимикача
blink: 'Процедура мигання
high 0 'Високий рівень на шині RB0 для запалення світлодіода
pause 250 'Затримка ј з
low 0 'Низький рівень на шині RB0 для гасіння світлодіода
pause 250 'Затримка ј з
goto start 'Перевірка стану вимикача
Програму на PICBASIC Pro можна скласти таким чином:
''REM BASIC Pro компілятор
''Rem перевірка вимикача високого рівня
input portb.4 'Призначити шину PB4 для визначення стану вимикача
start:
if port.b = 0 then blink 'Якщо вимикач видає високий рівень -
світлодіод блимає
goto start 'Якщо немає - перевірити стан вимикача
blink: 'Процедура мигання
high 0 'Високий рівень на шині RB0 для запалення світлодіода
pause 250 'Затримка ј з
low 0 'Низький рівень на шині RB0 для гасіння світлодіода
pause 250 'Затримка ј з
goto start 'Перевірка стану вимикача
Схема прибудую для вимикача високого рівня показана на Мал. 6.22. Вимикач сполучений з шиною введення/виводу, позначеною RB4. Світлодіод підключений до шини RB0 через обмежувальний резистор 470 Ом.
Конденсатори резонатора 22 пФ
Мал. 21 - Схема ключа низького рівня
Прочитування даних компаратора
Мікроконтроллер може також прочитувати дані логічних рівнів інших мікроконтроллерів, схем і ІС. Як приклад розглянемо схему на Мал. 6.23. У цій схемі мікроконтроллер прочитує дані виходу компаратора. Вихід компаратора LM339 побудований за схемою NPN транзистора, тому для створення сигналу високого рівня потрібне використовувати резистор зміщення. Мікроконтроллер прочитує дані виходу компаратора аналогічно алгоритму вимикача низького рівня.
Конденсатори резонатора 22 пФ
Мал. 22 - Схема ключа високого рівня
Конденсатори резонатора 22 пФ
Мал. 23 - Схема читання компаратора
Прочитування цих резистивних датчиків
Мікроконтроллер може безпосередньо прочитувати дані резистивних датчиків в діапазоні від 5 до 50 кОм. До мікроконтроллера може бути приєднаний резистивний датчик будь-якого типу: фоторезистор (елемент на основі сульфіду кадмію CdS), термістор з позитивним або негативним ТК, датчик наявності отруйного газу, датчик вигину або вологості. Мікроконтроллер вимірює опори за годиною розряду конденсатора в RC ланцюжку (див. Мал. 24).
Командою для читання даних резистивного датчика є:
Pot pin, scale, var
Pot є ім 'ям команди, а pin - номер шини, до якої підключений датчик. Змінна scale використовується для завдання годині RC ланцюжки. При великому часі RC ланцюжка значення scale має бути низьким, а для малого годині RC ланцюжка scale повинне бути встановлено на максимальне значення, що становить 225. Якщо значення scale встановлене правильно, ті значення змінної var буде близьким до нуля при мінімальному опорі і досягати 225 - при максимальному.
Значення змінної scale може бути визначене експериментально. Для того, щоб знайти відповідне значення scale, необхідно визначити максимальний робочий опір датчика і рахувати свідчення var установці параметра scale рівним 225. За цієї умови значення змінній var буде хорошим наближенням значення scale. Основна схема зображена на Мал. 25. Для імітації резистивного датчика в схему включень змінний резистор 50 кОм. При зміні опори змінного резистора поклад від значення змінної В0 спалахуватиме один з двох світлодіодів. Якщо значення опору перевищить 125 - спалахне світлодіод 1, інакше буде горіти світлодіод 2.
Мал. 24 - Схема команди РОТ
Програма на PICBASIC має наступний вигляд:
''Компілятор PICBASIC ** прочитування цих резистивних датчиків **
''Тест_програма для фотоопорів
''Установка
start:
pot 2,255, b0 'Рахувати свідчення датчика на шині RB2
if b0 > 125 then l1 'Якщо значення більше 100, включити світлодіод 1
if b0 <= 125 then l2 'Якщо значення менше 100, включити світлодіод 2
l1: 'Процедура включення світлодіода 1
high 0 'Включити світлодіод 1
low 1 'Вимкнути світлодіод 2
goto start 'Повторення
l2: Процедура включення світлодіода 2
high 1 'Включити світлодіод 2
low 0 'Вимкнути світлодіод 1
goto start 'Повторення
Програму для компілятора PICBASIC Pro можна скласти наступним образом:
''Компілятор PICBASIC Pro ** прочитування цих резистивних датчиків **
''Тест_програма для фотоопорів
''Установка
output portb.0 'Установка шини RB0 як вихідний
output portb.1 'Установка шини RB1 як вихідний
b0 var byte
start:
portb.2,255, b0 'Рахувати свідчення датчика на шині RB2
if b0 > 125 then l1 'Якщо значення більше 100, включити світлодіод 1
if b0 <= 125 then l2 'Якщо значення менше 100, включити світлодіод 2
l1: 'Процедура включення світлодіода 1
high 0 'Включити світлодіод 1
low 1 'Вимкнути світлодіод 2
goto start 'Повторення
l2: Процедура включення світлодіода 2
high 1 'Включити світлодіод 2
low 0 'Вимкнути світлодіод 1
goto start 'Повторення
Мал. 25 - Схема команди РОТ
Можна зробити демонстрацію цікавішою, замінивши змінний опір фоторезистором на основі CdS. При правильному підборірезистора, темновий опір якого складає від 50 до 100 кОм іопір світлового насичення близько 10 кОм або нижче, при закритті резистора або в темряві запалюватиметься світлодіод 1. На яскравому світлі горітиме світлодіод 2.Можливе послідовне виведення чисельного значення змінної pot на ЖК дисплей, сполучений з мікроконтроллером через послідовний порт, або в ПК через послідовний порт RS232. Для організації послідовного порту потрібна команда: Serout Pin, Mode, Var
7. СЕРВОМОТОРИ
Сервомотори є двигунами постійного струму з редуктором, забезпечені системою зворотного зв'язку, який дозволяє позиціонувати положення ротора сервомотора з високою точністю. Вал більшості сервомоторів для любительського конструювання може бути позиціонується в інтервалі повороту не менше 90o (±45o). Сервомотор має три виводи. Два виводи підключаються до джерела живлення, як правило, від 4,5 до 6 В і до земляного дроту. По третьому дроту подається сигнал обратний зв'язку, позиціонуючий ротор мотора. Сигнал позиціонування є ланцюжком імпульсів змінної тривалості. Зазвичай тривалість імпульсів варіює в інтервалі від 1 до 2 мс. Своєї тривалістю імпульси управляють положенням валу сервомотора. Команда pulsout генерує на заданій шині імпульс заданої довжини з кроком 10 мкс. Таким чином, команда pulseout 1, 150 буде видавати імпульси завдовжки 1,5 мс на шині 1. Імпульс завдовжки 1,5 мс поверне вал сервомотора в середнє положення.
Мал. 26 - Схема включення сервомотора
Програма гойдання сервомотора
Демонстраційна програма гойдатиме вал сервомотора з лівого положення в праві і назад аналогічно гойданню параболічної антени радара. Схема прибудові приведена на Мал. 26.
Нижче приведена програма для компілятора PICBASIC:
''Програма гойдання сервомотора
''Компілятор PICBASIC
''Програма здійснює гойдання з лівого положення в праві і назад
b0 = 100 'Ініціалізація лівого положення
sweep: 'Процедура прямого проходу
pulsout 0, b0 'Посилка імпульсу в сервомотор
pause 18 'Очікування 18 мс (від 50 до 60 Гц)
b0 = b0 + 1 'Збільшення довжини імпульсу
if b0 > 200 then sweepback 'Кінець прямого ходу?
goto sweep 'Немає, продовження прямого проходу
sweepback: 'Процедура зворотного проходу
b0 = b0 - 1 'Зменшення довжини імпульсу
pulsout 0, b0 'Посилка імпульсу в сервомотор
pause 18 'Очікування 18 мс (від 50 до 60 Гц)
if b0 < 100 then sweep 'Кінець зворотного ходу?
goto sweepback 'Немає
Програма для компілятора PICBASIC Pro:
''Програма гойдання сервомотора
''Компілятор PICBASIC Pro
''Програма здійснює гойдання з лівого положення в праві і назад
b0 var byte
b0 = 100 'Ініціалізація лівого положення
sweep: 'Процедура прямого проходу
pulsout portb.0, b0 'Посилка імпульсу в сервомотор
pause 18 'Очікування 18 мс (від 50 до 60 Гц)
b0 = b0 + 1 'Збільшення довжини імпульсу
if b0 > 200 then sweepback 'Кінець прямого ходу?
goto sweep 'Немає, продовження прямого проходу
sweepback: 'Процедура зворотного проходу
b0 = b0 - 1 'Зменшення довжини імпульсу
pulsout portb.0, b0 'Посилка імпульсу в сервомотор
pause 18 'Очікування 18 мс (від 50 до 60 Гц)
if b0 < 100 then sweep 'Кінець зворотного ходу?
goto sweepback 'Немає
8. НЕЧІТКА ЛОГІКА І НЕЙРОННІ ДАТЧИКИ
При інтерпретації цих сенсорних датчиків можна скористатися деякими цікавими можливостями. За допомогою мікроконтроллера мі можемо імітувати роботові нейронних ятерів і/або пристроїв з нечіткою логікою.
Нечітка логіка
Перші роботи по нечіткій логіці булі опубліковані в 1965 році професором Каліфорнійського університету в Беркли Лотфи Заді. З самого качану принципи нечіткої логіки як посилено рекламувалися, так і піддавалися критиці.
По суті нечітка логіка намагається імітувати підхід людини визначенню груп і класів явищ. Визначення "нечіткості" можна пояснити деякими прикладами. Наприклад, на основі якого критерію теплий сонячний день може бути визначений, не як "теплий", але як жаркий і ким? Основою, на якій хтось визначає теплий день як жаркий може служити персональне відчуття тепло, яку у свою чергу залежить від його або її оточення (див. Мал. 6.27).
Не існує універсального термометра, який "стверджує", що 26,9 Сo це тепло, а 27 Сo вже жарко. Якщо розглянути цей приклад ширше, то люди, що населяють Аляску, матимуть інший інтервал температур для "Теплих днів" порівняно з жителями Нью-Йорка, і обоє ці значення будуть відрізнятися від відповідних значень для жителів Флориди. При цьому ще не треба забувати про часи року. Теплий зимовищ день відрізняється по температурі від літнього. Вусі зводиться до того, що основою класифікації (наприклад, поняття "Теплий день") може служити інтервал температур визначених думанням групи людей. Подальша класифікація може бути проведена порівнянням думань різних груп людей.
Для будь-якої температури мі можемо знайти групу, в температурний інтервал якою вона потрапляє. У деяких випадках температура може полягти в дві пересічні групи. Чітка приналежність до групи може бути визначена по відхиленню значення від середнього по групі.
Мал. 27 - Зміна температури від теплої до жаркої: плавно або стрибком
Ідея групової або інтервальної класифікації може бути розширена на багато інших розмов, такі як орієнтування, швидкість або зростання. Давайте використовуваний поняття зростання для ще одного прикладу. Якщо мі побудуємо графік зростання 1000 людей, його форма нагадуватиме деру криву на Мал. 28. Мі можемо використовувати цей графік для формування груп людей маленького, середнього і високого зростання. Якщо мі застосуємо жорстке вирішальне правило рахувати усіх нижче 170 см людьми низького зростання і усіх вище 180 людьми високого зросту, то графік набуде форми 2 на Мал. 28.
Таке правило рахує зростання 178 см "середнім", хоча насправді людина такого зростання знаходиться ближче до групи "високих" (від 180 см і вище).
Замість правив жорсткої "швидкої" логіки, зазвичай використовуваної в комп'ютерах, людина, як правило, використовує "м'якшу", неточнішу логіку або нечітку логіку. Для введення нечіткої логіки в комп'ютер мі визначимо самі групи і міру приналежності до групи. Таким чином людина зростанням 178 см майже не належатиме групі людей середнього зростання (слабка присутність) і упевнено належати групі високого зростання (сильна присутність).
Нечітка логіка є альтернативою оцифрованому графіку, представленому під номером 3 на Мал. 6.28. Графік, оцифрований з високим розділенням, дозволяє вимірювати зростання з такою ж точністю. Яка причина застосування нечіткої логіки замість використання оцифрованній моделі? Річ у тому, що методи нечіткої логіки вимагають більше простих форм математичного забезпечення і функцій навчення.Для моделювання нечіткої логіки в PIC мікроконтроллері для груп необхідно створити чисельні інтервали значень.
Мал. 28 - Угрупування людей по зростанню на підставі різних правив
Пристрій нечіткої логіки - система стеження за напрямом джерела світла
Зарази мі приступимо до виготовлення прибудую - системи стеження за напрямом джерела світла, що використовує принцип нечіткої логіки. Система відстежує напрям на джерело світла, застосовуючи нечітку логіку.
Для конструкції системи стеження нам буде потрібно два CdS фотоелемента, які є світлочутливими резистивними датчиками (див. Мал. 29). Опір такого елементу змінюється пропорційно інтенсивності світлового потоку, що падає на чутливу поверхню фотоелемента. У умовах темряви елемент має найбільший опір.
У продаж є багато різних типів CdS фотоелементів. Вибір відповідного елементу грунтується на темновому опорі елементу і опорі світлового насичення.
Термін "Опір світлового насичення" означає мінімальний опір елементу, який перестає зменшуватися при підвищенні рівня освітленості, тобто стає насиченим. Я використовую CdS фотоелементи, що мають темнове опір близько 100 кОм і опір світлового насичення порядку 500 Ом. За середніх умів освітленості опір варіює в межах 2,5-10 кОм.
Для проекту буде потрібно два CdS фотоелемента. Необхідно перевірити кожен елемент окремо, оскільки усередині елементів одного типу спостерігається розкид параметрів, що зажадає зміни коефіцієнта шкалування. Для команди pot я використовував місткість 0,022 мкФ і параметр множника шкали 225.
Принципова схема прибудую зображена на Мал. 30. CdS фотоелементи підключені до шини порту В (фізичні номери виводів 8 і 9).
Мал. 29 - Електричні характеристики CdS фотоелемента
Мал. 30 - Схема системи стеження за джерелом світла
Фотоелементи закріплені на невеликій пластині з пластика або дерева (див. Мал. 31). Для виводів фотоелементів в пластині просвердлені невеликі відчини. Із зворотного боку до виводів підпаяні провідники сполучені з виводами PIC мікроконтроллера. Для закріплення валу редуктора двигуна просвердлений отвір від 2,4 мм до 3 мм. Вал редуктора пропущений через отвір в блоці датчиків і закріплений клеєм (див. Мал.32).
Робота системи стеження показана на Мал. 33. При однаковому освітленні обох датчиків, їх відповідні опори приблизно однакові. У межах ±10 одиниць PIC програма вважає їх однаковою і не включає пристрій повороту. Іншими словами, утворюється група "подібності" з розмахом 20 одиниць. Подібна група і є група нечіткої логіки.
Мал. 31 - Конструкція блоку датчиків
Мал. 32 - Фотографія блоку датчиків, закріплених на редукторі двигуна
Коли один з датчиків потрапляє в зону тіні, тобто різниця свідчень датчиків перевищує діапазон 20 одиниць, PIC мікроконтроллер запускає двигун, що повертає блок сенсорів у бік джерела світла (тобто рівній освітленості датчиків).
Управління двигуном постійного струму
Для повороту блоку датчиків у бік джерела світла пристрій використовує двигун постійного струму з редуктором (див. Мал. 34). Коефіцієнт уповільнення редуктора 4000:1. Вал редуктора має швидкість приблизно 1 оборот в хвилину. При повторенні конструкції для повороту блоку датчиків рекомендується використовувати двигун з редуктором, що має подібні характеристики.
Блок датчиків прикріплений (приклеєний) до валу редуктора двигуна. Двигун через редуктор може повертати блок за годинниковою стрілкою або проти годинникової стрілки поклад від напряму струму, протікаючого через двигун. Для забезпечення реверсування напряму обертання двигуна необхідний пристрій, що забезпечує протікання струму в обох напрямах. Для цієї мети мі використовуємо мостову схему. У мостовій схемі використовуються чотири транзистори (див. Мал. 6.35). Розглянемо кожен транзистор як простий ключ, як показано у верхній частині малюнка. Схема названа бруківки, оскільки транзистори (ключі) включені її біля вигляді моста. При замиканні ключів SW1 і SW4 двигун обертається в одному напрямку. При замиканні ключів SW2 і SW3 двигун обертається в протилежному напрямі. Якщо ключі розімкнені, то відбувається зупинка двигуна. Управління мостом здійснюється за допомогою PIC мікропроцесора. Мостова схеми включає чотири NPN транзистора типу 120 Darlington, чотири діоди типу 1N514 і два резистори 10 кОм 0,25 Вт. Вихід 0 підключений до транзисторів Q1 і Q4. Висновок 1 підключений до транзисторів Q2 і Q3. Сигналами на виводах 0 і 1 відкриваються відповідні транзистори і двигун обертається по або проти годинникової стрілки відповідно даним блоку датчиків. Зверніть увагу на правильність підключення резисторів 10 кОм, інакше схема не працюватиме. Транзистори TIP 120 Darlington зображені на схемі як звичайні NPN транзистори. У багатьох схемах моста в "верхній" частині використовуються транзистори PNP провідності. Опір PNP транзисторів небагато вище. Таким чином, якщо мі використовуємо тільки NPN транзистори, то ККД пристрої декілька збільшиться.
Мал. 33 - Робота блоку датчиків поклад від напряму на джерело світла
Діоди
Для запобігання викидам напруга, яка може привести до скиданню або зависанню PIC мікропроцесора, використовуються захисні диоды, включені між емітером і колектором шкірного транзистора (від Q1 до Q4). Ці діоди гасять сплески напруга, що виникає при включении і виключенні обмоток двигуна.
Програма на PICBASIC має наступний вигляд:
''Програма нечіткої логіки для системи стеження
start:
low 0 'Низький рівень шини 0
low 1 'Низький рівень шини 1
pot 2,255, b0 'Читання свідчень фотоелемента 1
pot 3,255, b1 'Читання свідчень фотоелемента 2
Мал. 34 - Фотографія конструкції прибудую стеження в зборі
if b0 = b1 then start 'Якщо свідчення рівні, то нічого не робити
if b0 > b1 then greater 'Якщо більше, то наскільки
if b0 < b1 then lesser 'Якщо менше, то наскільки
greater: 'Процедура більша
b2 = b0 - b1 'Визначення різниці свідчень
if b2 > 10 then cw 'Усередині між? Якщо ні, перейти на cw
goto start: 'Якщо усередині між, вимірювати знову
lesser: 'Процедура менша
b2 = b1 - b0 'Визначення різниці свідчень
if b2 > 10 then ccw 'Усередині між? Якщо ні, перейти на ccw
goto start: 'Якщо усередині між, вимірювати знову
cw: 'Поворот блоку за годинниковою стрілкою
high 0 'Включити міст
pause 100 'Обертання 0,1 з
goto start 'Нова перевірка
сcw: 'Поворот блоку проти годинникової стрілки
high 1 'Включити міст
pause 100 'Обертання 0,1 з
goto start: 'Нова перевірка
Робота пристрою
При роботі система стеження обертається услід за переміщенням
джерела світла. Якщо обоє CdS фотоелемента освітлені приблизно одинакову, то повороту не відбувається. Для перевірки роботи прибудую закрийте пальцем один з CdS датчиків. Це повинне викликати включення двигуна і поворот валу редуктора.
Якщо вал обертається в напрямі, протилежному до заданого, то поміняйте або вхідні провідники датчиків, або вихідні провідники управління мостовою схемою, але не обидві операції одночасно.
Робота мостової схеми
Мал. 35 - Робота мостової схеми і її пристрій
Вихід, що не використовує нечітку логіку
Пристрій системи стеження з нечіткою логікою має двійковий вихід. Двигун може знаходитися в трьох станах: вимкнене і обертання за і проти годинникової стрілки. У багатьох випадках потрібно плавне (градуальное) зміна вихідного сигналу. Допустимо, ви проектуєте пристрій управління двигуном ліфта. Необхідною умовою в цьому випадку буде поступове, а не різке прискорення або зупинка ліфта (двигун не повинний просто вмикатися і вимикатися).
Чи можлива подібна зміна схеми нашого прибудую? Так, звісно. Замість простого включення двигуна, мі можемо живити його сигналом ШИМ, який управляє швидкістю його обертання. У ідеалі швидкість обертання двигуна має бути пропорційна різниці свідчень (опорів) двох CdS датчиків. Велика різниця призводитиме до більшої швидкості обертання. У міру обертання датчика і наближення його до положення рівноваги швидкість обертання двигуна динамічно змінюватиметься. Така програма управління виходом може бути ілюстрована графіками, розбиттям на групи і приналежністю до групи в термінах нечіткої логіки. У даному випадку використання подібної програми для системи стеження є надмірним. У цілях експерименту ви можете використовувати команди pulsout і pwm для управління швидкістю обертання двигуна.
Нейронні датчики (логіка)
За допомогою простої програми мі можемо перетворити датчики нечіткої логіки (CdS фотоелементи) в нейронні датчики. Нейронні мережі є великою областю, мі ж обмежимося одним невеликим прикладом. Для створення нейронного датчика мі візьмемо чисельні значення шкірного датчика, помножимо їх на відповідні вагові коэфіціенти і підсумовуємо результуючі величини. Отриманий результат потім порівнюватиметься зі значенням трирівневого порогового значення (див. Мал.36).
Наша невелика програма і датчики можуть виконувати усі функції властиві нейронній мережі. Більше того, введення багаторівневих порогових значень є нашою оригінальною розробкою. Чи існують багатопорогові системи в природі (біологічні системи)? Так, поза сумнівом.
Свербіж або короста є дуже незначним по рівню болем а паління може відчуватися як від жари, так і від дії холоду.
Багаторівневі порогові значення
Як правило, окремі нейрони нейронної мережі мають єдиний поріг (позитивний або негативний). Якщо значення перевищує порогове, то нейрон активується. У нашому випадку вихідний сигнал порівнюється з декількома пороговими значеннями і потрапляє, таким чином, у відповідну групу. Замість того щоб розглядати групи виходу як діапазони численних значень, скористаємося геометричною інтерпретацією. Розглянемо групи як групи круга, квадрата і трикутника відповідно. При накопиченні значення "На нейроні" його виходом буде служити геометрична форма, а не чисельне значення. Вихідні нейрони (світлодіоди) можуть бути зібрані в матриці відповідної форми. При попаданні сигналу в певну групу спалахує відповідна матриця. У нашому випадку кожен з рівнів виходу нейрона мі відноситимемо до трьох груп характерної "поведінки": сплячці, полюванню і годуванню, які відбивають основні типи поведінки "виживання" для робота "мисливця за світлом". Вибір типу "поведінки" ґрунтується на потоковому рівні освітленості. При низькому рівні освітленості робот-мисливець припиняє полювання і пошуки їжі (світла). Включається режим сну або сплячки. При середніх рівнях освітленості робот "полює" і вишукує місця з найбільшим рівнем світла. При високих рівнях освітленості "мисливець" зупиняється і "живитися", заряджаючи сонячні батареї.
Мал. 36 - Схема трирівневого нейрона
Можна позначити світлодіоди як "сплячка", "полювання" і "живлення". Кожен зі світлодіодів загорається поклад від інтенсивності світлового потоку, CdS, що приймається фотоелементами.
Програма на PICBASIC має наступний вигляд:
''Демонстрація роботи нейрона
''Установка параметрів
low 0 'Світлодіод 1 "сплячка" вимкнений
low 1 'Світлодіод 2 "полювання" вимкнений
...Подобные документы
Розгляд особливостей мови програмування С++: основні можливості, характеристика функцій. Аналіз файлів з вхідними даними. Використання похідних класів як ефективний засіб об’єктно-орієнтованого програмування. Способи роздруківки графічного вирішення.
курсовая работа [510,9 K], добавлен 14.03.2013Javascript як мова програмування, заснована на об'єктах: і мовні засоби, і можливості середовища представляються об'єктами. Структура програм на мові Javascript. Декларація змінних та сфер їх впливу. Типи даних та їх використання. Пріоритети операцій.
курсовая работа [51,4 K], добавлен 12.12.2010Створення електронного та WEB-документів. Програмування WEB-версії електронного документа. Можливості оформлення тексту і використання мультимедіа. Використання Dublin Core. Перехід від однієї сторінки до іншої. Посилання на інші електронні ресурси.
курсовая работа [2,7 M], добавлен 12.10.2012Розгляд поняття електронного освітнього ресурсу. Дослідження особливостей написання макросів засобами Visual Basic for Аpplications для використання у розробці розкладу студентів. Створення програми, яка демонструє використання офісного програмування.
курсовая работа [687,2 K], добавлен 18.03.2015Фундаментальні поняття об'єктно-орієнтованого програмування. Система лінійних нерівностей та опуклі багатогранники. Системи лінійних рівнянь лінійної алгебри як частковий випадок систем лінійних обмежень. Використання середовища програмування Delphi7.
курсовая работа [222,7 K], добавлен 20.05.2015Внутрішня побудова мікроконтроллера: процесор, пам'ять, порти вводу-виводу, таймери, мультиплексори, пристрої для послідовної передачі даних, контролер переривань та спеціалізовані регістри. Режими адресації даних. Система команд мікроконтроллерів.
реферат [53,6 K], добавлен 25.03.2011Відомості про мови програмування та методи програмування. Системні вимоги програми. Керівництво програміста та керівництво користувача. Використання консольного додатку візуального середовища Visual Studio 2010. Запуск програми "Толковый словарь".
курсовая работа [791,1 K], добавлен 18.01.2015Методика розробки компілятору з вхідної мови програмування Pascal, оболонка, якого розроблена в середовищі програмування Borland C під операційну систему Windows. Блок-схема програми. Розробка оптимізатора та генератора коду. Тестування компілятора.
курсовая работа [218,6 K], добавлен 04.06.2011Теоретичні основи мови програмування C++ та середовища розробки Microsoft Visual C++, яка дозволяє створювати як маленькі программи і утиліти для персонального використання, так і корпоративні системи, що працюють з базами даних на різних плтаформах.
реферат [26,5 K], добавлен 01.04.2010Використання графічного методу і симплекс-методу при вирішенні задач лінейного програмування. Сутність двоякого симплекс-методу і М-методу, приклади використання. Аналіз методу динамичного програмування. Специфіка вирішення матричної, антагоністичної гри.
контрольная работа [1,1 M], добавлен 02.07.2011Поняття мови програмування С++, її сутність та особливості, призначення та використання. Структура програми, її основні елементи та загальні правила роботи. Охорона праці при роботі з обчислювальною технікою. Апаратні вимоги для виконання програми.
курсовая работа [126,2 K], добавлен 29.03.2009Реалізація, за допомогою технології Windows Forms, програми обліку даних про волонтерів та подій, на які вони зареєстровані. можливості об'єктно-орієнтованого програмування. Створення класів. Методи, властивості. Використання Multiple Document Interface.
курсовая работа [1,5 M], добавлен 02.12.2015Загальні відомості про процедури та функції. Характеристика, особливості і можливості мови Pascal, її використання для розробки наочних, компактних, структурованих програм, створення умов для систематичного і цілеспрямованого процесу програмування.
реферат [30,0 K], добавлен 13.11.2010Алгоритми розв’язання задач у вигляді блок–схем. Використання мови програмування MS VisualBasic for Application для написання програм у ході вирішення задач на одномірний, двовимірний масив, порядок розв’язання задачі на використання символьних величин.
контрольная работа [742,9 K], добавлен 27.04.2010Характеристика мови програмування VBA (Visual Basic for Application): можливості й засоби. Використання редактора Visual Basic. Створення та виконання VBA-програм. Типи даних, змінні й константи, операції й вирази. Керуючі оператори, процедури й функції.
реферат [29,9 K], добавлен 28.06.2011Можливості Macromedia Flash. Анімація як візуальний графічний ефект. Створення інтерактивних фільмів і ключових кадрів; використання панелі Actions. Кадрування трансформ, груп і тексту; руху по траєкторії та зміни форми. Використання хінтів фігури.
реферат [1,6 M], добавлен 11.09.2012Характеристика мов програмування. Історія виникнення мови C#, її особливості, версії та нові можливості. Приклад програм виведення на екран, виведення поточної дати та часу та програми музичного програвача. Програмний код та результат виконання програм.
контрольная работа [321,3 K], добавлен 13.06.2012Основи використання інформаційних технологій у галузі освіти. Створення електронного щоденника мовою програмування. Вибір середовища розробки. Установка, налаштування та проектування шаблону програми. Наповнення сайту інформацією та створення бази даних.
магистерская работа [3,9 M], добавлен 25.02.2014Сутність Pascal як алгоритмічної мови програмування універсального призначення. Історія її виникнення і характерні особливості. Специфіка використання середовища розробки програм Borlan Delphi. Реалізація алгоритму визначення n! для великих значень n.
курсовая работа [22,9 K], добавлен 04.01.2014Підходи до розуміння проблеми штучного інтелекту. Тест Тьюринга і інтуїтивний підхід, символьний та логічний, агентно-орієнтований і гібридній. Машинний інтелект: загальна характеристика та головні сфери застосування на сьогодні, науковий напрямок.
курсовая работа [203,1 K], добавлен 09.04.2013