1-Laboratoriya Mavzu: Arduino platasi bilan tanishish va arduino dasturini ishga tushirish

1-Laboratoriya
Mavzu: Arduino platasi bilan tanishish va arduino dasturini ishga tushirish.
Arduino - bu kichik hajmdagi proyektlarni yaratish, turli robototexnika qismlarini yoki kichik o'lchamdagi robototexnikada foydalanish uchun mo'ljallangan plata hisoblanadi. Bunda siz professional bo'lmagan proyektlarni yaratishingiz mumkin. Masalan, siz RFID tizimi orqali yoki oddiy raqamli parol qurilmasini yasash orqali eshigingizga qulf qo'yishingiz yoki xonangizga kimdir kirganligini aniqlashda ishlatiluvchi qurilmalarni va yana oddiy haroratni o'lchovchi kabi qurilmalarni yasashingiz mumkin. Aslida Arduino sotuv markasi bo'lib, uning tarkibiga Arduino Uno, Arduino Mega, Arduino Leonardo, Arduino Ethernet, Arduino RS232, Arduino Diecimila, Arduino Pro, Arduino Nano, Arduino LilyPad, Arduino Robot, Arduino Esplora, Arduino Yun, Arduino Due kabi turlari kiradi. Bularning bir-biridan farqi, qo'llash mumkin bo'lgan imkoniyatlaridadir. Masalan, Arduino Uno kichik proyektlar, ko'p bo'lmagan modullarni boshqarish mumkin. Arduino Mega da esa Arduino Uno ga nisbatan ancha ko'p modullarni boshqara olish imkoniyatiga ega sababi unda Uno ga nisbatan portlari ancha ko'proq. Quyida Arduino Uno va Mega platalarining ko'rinishi:
ARDUINO MEGA
ARDUINO UNO
Endi qaysi platadan foydalanamiz degan savolga kelsak, biz Arduino Uno platasidan foydalanamiz. Sababi u juda ixcham, qulay va ko'plab funksialarni bajara oladi (biz darslar davomida o'rgatib boradigan). Arduino Uno imkoniyatlariga kelsak: Arduino Uno da Atmega328 mikrokontrolleri o'rnatilgan, unda 14ta raqamli (0-13) va 6ta analog (A0-A5) portlari mavjud, 3ta GND (ya'ni zemlya), 1ta 5V, 3.3V, AREF (ya'ni Analog portlardagi kuchlanishni boshqarish uchun), Vin (ya'ni tashqi kuchlanish manbai orqali arduinoga kuchlanish berish imkoniyatini beruvchi), IOREF (ya'ni kerakli kuchlanishga sozlab beruvchi), Reset (ya'ni Arduinoni qayta yuklash uchun), portlari mavjud. Yana bitta fizik tugma bo'lib, u Arduinoni qayta yuklash uchun ishlatiladi. Unga 2ta elektr tok manbaini ulash uchun port mavjud bo'lib, 1tasi USB orqali 5V li tok manbaidan elektr energiyasini olsa, ikkinchisi 220V (bu o'rtacha olganda) li o'zgaruvchan tok manbaidan elektr energiyasini oladi. Arduino ishlash kuchlanishi 5V bo'lib, unga kiruvchi kuchlanish 6-20V gachadir (tavsiya etilgan 7-12V gacha).
Arduino Uno bilan tanishib oldik, endi biz unga dastur yozuvchi muhit bilan ya'ni Arduino IDE bilan tanishamiz. U quyidagicha ko'rinishda bo'ladi:
Bu bizga kerakli dasturni yozish, uni tekshirish va kerakli Arduino ga yozishda bizga yordam beradi. U ochiq kodli hisoblanadi ya'ni Arduino platasiga yoziluvchi barcha dasturlarni internetdan topishingiz mumkin va uni olganligingiz uchun hech qanday pul to'lamaysiz. Undan qanday foydalanishni darslarimiz davomida sizlarga o'rgatib boramiz.
Xulosa qilib shuni aytish mumkin-ki, agar siz bunda dasturlashni va qurilmalarni yig'ishni o'rganib olsangiz, o'zingiz uchun kundalik hayotda ishlatish uchun mo'ljallangan qurilmalarni yasay olasiz deb ayta olamiz.
Oldingi darslarda ma’lumot berilganidek, Arduino platalari bilan ishlash, ya’ni daastur tuzish, uni kompilyatsiyalash, plataga yuklash ishlarini bajarish uchun integrallashgan dasturiy ta’minot — Arduino IDE ishlab chiqarilgan.
Undan foydalanish uchun kompyuterda kamida Windows 7 o’rnatilgan bo’lishi kerak.Arduino platalari bilan bo’lanish va ma’lumot almashinish uchun USB data-kabel bo’lishi kerak. Kam kontaktli, faqat zaryadlash uchun mo’ljallangan USB kabel to’g’ri kelmaydi!
Uning oxirgi va oldingi stabil versiyalarini har doim rasmiy saytidan yuklab olish mumkin (Windows 7 / 64 va uning keyingi versiyalari uchun oxirgi Arduino IDE ning 2.0.3 versiyaga to’g’ridan to’gri havola — bu yerda). Dasturni yuklash jarayonida ochilgan sahifada «JUST DOWNLOAD» tugmasini bosish kerak bo’ladi. Arduino IDE ning planshet va smartfonlar uchun mobil ilovasi ham mavjud, lekin unda ishlash noqulayligi va ko’pgina bibliotekalar notog’ri ishlashi mumkin. Shuning uchun uni tavsiya etilmaydi. Agar kompyuterda dasturning eski versiyasi mavjud bo’lsa, uni Windows boshqaruv paneli orqali o’chirib yuborish zarur (papkadagi fayllarini qo’lda o’chirilmasligi kerak, aksincha yangisini o’rnatishda muammolar yuzaga keladi). Agar Xitoyda ishlab chiqarilgan Arduino platalaridan foydalaniladigan bo’lsa, CH340 (CH341) drayverini ham o’rnatish zarur bo’ladi. Havola bu yerda yoki bu yerda. Shundan keyin Windows da yangi COM port paydo bo’ladi («Диспетчер устройств» ga kirib uning nomi bilan tanishish mumkin. Ko’pincha COM3 paydo bo’ladi).
Dastur yuklanib/o’rnatilib/ishga tushirilgach ekranda quyidagi oyna paydo bo’ladi (O’rnatish davomida drayverlar o’rnatilishi so’ralsa, tasdiqlash kerak. Dasturni rus tiliga o’tkazish uchun «File» menyusidan «Preferences» bo’limiga o’tamiz).
Ko’p ishlatiladigan tugmalar oynaning yuqori qismida joylashgan.
«Проверить» (kompilyatsiya) — sketchni xatolarga tekshirish;
«Загрузить на плату» — sketchni kompilyatsiya qilish va Arduino platasiga yuklash (platani proshivka qilish);
«Выбор платы» yozuvi yoki plata nomi — Faol Arduino platasi nomi yoki agar u tanlanmagan bo’lsa, «Выбор платы» yozuvi ko’rinib turadi. Platani tanlamasdan oldin sketchni unga yuklab bo’lmaydi. Uni tanlash uchun Arduino platasi USB portga ulanganidan so’ng, «Инструменты» menyusidan «Плата» bo’limiga o’tib, u yerdan ulangan plata nomi tanlanadi. «Порты» bo’limidan esa, o’rnatilgan COM port nomi tanlanadi (ko’pincha COM3).
Arduino IDE oynasining pastki qismida, status oynasi ko’rsatib turiladi. Unda sketchning kompilyatsiyasi va plataga yuklash jarayonlari, yuz bergan xatoliklar haqidagi ma’lumotlar ko’rsatib boriladi.
Sketch strukturasi
Arduino IDE dasturihar safar ishga tushirilganda asosiy oynada oxirgi ishlatilgan sketch fayli ochiladi. Birinchi marta ishga tushirilganda esa yangi sketch fayli ochiladi. Sketch «.ino» kengaytmali faylda saqlanadi.
Sketch quyidagi strukturaga ega bo’ladi:
Kirish izohlari sohasi — bu yerda mazkur sketchning vazifasi, muallifi, havolalar va boshqa ma’lumotlar izohlash belgilari yordamida («/*» belgilari oralig’ida «*/») keltiriladi;
Sozlamalar sohasi — Xizmatchi konstantalar sohasi (#define, …);
Bibliotekalar sohasi — Arduino IDE standart bibliotekalari, tashqi bibliotekalar yoki boshqa skech fayllarini mazkur sketchga ulash qismi. «#Include» buyrug’i bilan ulanadi. Ulanadigan biblioteka nomi «» yoki <> ichida ko’rsatiladi. Biblioteka fayllari «.h» kengaytmasiga ega bo’ladi; Ichki (standart) bibliotekalarni va tashqi bibliotekalarni menyudan ham ulash mumkin («Скетч/Подключить библиотеку/’biblioteka nomi'», «Скетч/Подключить библиотеку/Добавить .ZIP библиотеку…» ёки «Скетч/Подключить библиотеку/Управление библиотеками…»);
Global o’zgaruvchilar sohasi — o’zgaruvchilar, turi va boshlang’ich qiymatini e’lon qilish qismi;
void setup() {…} — bir marta ishga tushiriladigan majburiy funksiya;
void loop() {…} — doimiy ishlab turadigan (takrorlanadigan) majburiy funksiya;
void funksiya() {…} — foydalanuvchi funksiyalari (setup() dan keyin xohlagan joyda e’lon qilinishi va chaqirilishi mumkin.
Tez-tez uchraydigan xatoliklar
Agar Arduino IDE dasturida sketchni plataga ko’chirishda xatolik yuz bersa, ko’pincha «Инструменты» menyusining «Protsessor» bo’limidan «ATmega328P (Old bootloader)» buyrug’ini tanlash yoki Windows da «Диспетчер устройств» ga kirib, tegishli COM portni uzib/ulash va dasturda plata va portni qayta tanlash bilan ham muammo bartaraf etilishi mumkin. Ba’zida COM port bilan bog’liq kamchiliklarni bartaraf etishda Windows ni qayta yuklash yoki Arduino platasini USB portidan uzib, qayta ulash ham foyda beradi.
Bundan tashqari, plataning ishlashi uchun USB port elektr ta’minoti yetarli bo’lmaganligi ham sketch plataga yuklanmasligi yoki ishga tushmasligiga sabab bo’lishi mumkin. Bunday holda plataga alohida iste’mol manbaiga ulanishi zarur.
Misol tariqasida, Arduino IDE tayyor sketchlaridan biri bo’lgan «Blink» sketchini ishga tushirish jarayonida uni tahrirlash, kompilyatsiya qilish va Arduino Nano platasiga yulkab ishga tushirish jarayonlari bilan tanishamiz.
Aynan «Blink» sketchining tanlanishiga sabab, u Arduino platasiga hech qanday komponent ulamasdan ishga tushirish mumkin bo’gan va eng sodda misollardan biri hisoblanadi.
«Файл» menyusi «Примеры/01.Basics» bo’limidan «Blink» sketchini tanlaymiz. Oynada sketchning quyidagi kodi hosil boladi (sketch boshidagi izohlash qismidan tashqari):
// the setup function runs once when you press reset or power the board void setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(LED_BUILTIN, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }
Uni ishga tushirishdan oldin Arduino platasini kompyuter USB portiga ulaymiz va kerakli plata hamda portni tanlaymiz:
«Загрузить на плату» tugmasini bosamiz va kutamiz. Oynaning quyi qismidagi status sohasida jarayon haqida eslatib turiladi. Jumladan, sketch muvaffaqiyatli yuklangach, qisqa muddatli «Загрузка завершена» yozuvi ko’rinadi.
Hammasi to’g’ri bajarilgan bo’lsa, Arduino Nano platasidagi svetodiodning 1 gerts chastota bilan o’chib-yonayotganini kuzatishimiz mumkin.
Monitor portidan foydalanish
Arduino IDE dasturida port monitoridan dastur ishlashidagi oraliq natijalarni kuzatish, shu bilan birga undagi o’zgaruvchiga qiymat kiritish maqsadida ham foydalanilishi mumkin (Ya’ni bunda ketma-ket port ma’lumot kiritish qurilmasi sifatida ishlaydi).
Monitor portidan foydalanishni o’rganish uchun ushbu sketchga qo’shimchalar kiritamiz. Buning uchun sketchning «pinMode(LED_BUILTIN, OUTPUT);» buyrug’idan (4-qatoridan) keyin yangi qator hosil qilib «Serial.begin(9600);» buyrug’ini kiritamiz. Sketch davomidagi «delay(1000); » buyruqlarining har biridan oldin ham yangi qator ochib, «Serial.print(«0″);» buyruqlarini kiritamiz. Natijada, sketch quyidagi ko’rinishga keladi.
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(9600);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
Serial.print(«1»);
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
Serial.print(«0»);
delay(1000); // wait for a second
}
Sketchni yuklashdan oldin monitor portini tekshirib, hech qanday ma’lumot chiqmayotganiga ishonch hosil qilamiz. Buning uchun oyna o’ng tomonidagi «Монитор порта» tugmasini bosamiz (yoki «Инструменты» menyusidan «Монитор порта» buyrug’ini tanlaymiz).
Shundan keyin sketchni takroran plataga yuklaymiz («Загрузить на плату»). Arduino platasidagi svetodiod ishlashida o’zgarish sezilmaydi. Endi yana bir bor «Монитор порта» tugmasini bosamiz va oynada ketma-ket ravishda «1» va «0» raqamlari hosil bo’layotganini ko’ramiz. Buning sababi, biz sketchda svetodiod yonganida «1», o’chganida esa, «0» raqamlarini COM ketma-ket portiga yuborish buyriqlarini qo’shdik (raqam o’rniga matn ham qo’llanishi mumkin). Bundan tashqari, ketma-ketga portga ma’lumot uzatish tezligini plata imkoniyatidan kelib chiqib, «9600» qilib o’rnatdik.
Mazkur sketchga o’zgartirish kiritishimizga sabab, odatda boshqa dasturlash tillarida ma’lum bir dastur kodini tahrirlashda oraliq natijalarni kuzatish (otkladka) maqsadida tez-tez uni ishga tushirib ko’ramiz va ekranga chiqarish buyruqlari yordamida sketchning tegishli qismidagi oraliq natijalarni tekshirib uning tog’ri ishlayotganini kuzatib boramiz.
Arduino IDE da esa, oraliq natijani monitorga to’g’ri chiqarish (otkladka) imkoniyati yo’qlgi sababli, biz natijani ketma-ket portga uzatishimiz orqali sketchning muayyan qismi qanday ishlayotganini kuzatib borishimiz mumkin bo’ladi.
«Файл» menyusining «Примеры» bo’limida turli murakkablikdagi, interfeyslar, sensorlar, displeylar va boshqa modullar bilan ishlash bo’yicha namunalarni o’z ichiga olgan sketchlar ro’yxati kategoriyalari bo’yicha keltirilgan.
Shningdek, «Скетч» menyusining «Подключить библиотеку» bo’limida Arduino IDE ichki (standart) bibliotekalari ro’yxati keltirilgan. Bundan tashqari ushbu bo’limdagi «Добавить .ZIP библиотеку…» buyrug’i yordamida bibliotekalar ro’yxatiga yangi tashqi bibliotekani ham qo’shish imkoniyati mavjud.
|