Книга Robototexnikadan boshlang’ich bilimlar. O’quv qo’llanma - читать онлайн бесплатно, автор Akmaljon Olloberdiyevich Kuchkarov. Cтраница 3
bannerbanner
Вы не авторизовались
Войти
Зарегистрироваться
Robototexnikadan boshlang’ich bilimlar. O’quv qo’llanma
Robototexnikadan boshlang’ich bilimlar. O’quv qo’llanma
Добавить В библиотекуАвторизуйтесь, чтобы добавить
Оценить:

Рейтинг: 0

Добавить отзывДобавить цитату

Robototexnikadan boshlang’ich bilimlar. O’quv qo’llanma

random – Arduinoda tasodifiy sonlar yaratish

Random (min, max) funksiyasi min va maksimal qiymatlar bilan belgilangan diapazonda psevdo-tasodifiy raqamni qaytarish imkonini beradi. Keling, turli xil ma`lumotlar turlariga ega misollarni ko`rib chiqaylik.

Taqdim etilgan misolda 0 dan 250 gacha bo`lgan oraliqda butun sonlarni saqlaydigan byte ma`lumotlar turi tanlanadi. Boshqa ma`lumotlar turlaridan foydalanish mumkin: int, long, unsigned long, unsigned int va boshqalar. Shunga ko`ra, kerakli diapazon (min, max) o`rnatiladi.

byte malumotlar;

void setup () {

Serial.begin (9600);

}

void loop () {

malumotlar = random (100, 200); //diapazondagi arduino tasodifiy soni Serial.println (malumotlar);

delay (250);

}

4.7.2.Arduinoda random float

Mikrokontroller faqat butun sonlarni yaratishi mumkin. Shuning uchun, ikkita kasrli float ma`lumotlar turini olish uchun alohida butun son hosil qilishingiz va unga o`nli kasrlar qo`shishingiz kerak. Bunday dasturga misol:

float malumotlar;

float malumotlar1;

float malumotlar2;

void setup () {

Serial.begin (9600);

}

void loop () {

malumotlar1=random (10); //butun sonlarni yarating malumotlar1=random (100); //kasrdan keyin raqamlar hosil qilish

malumotlar=malumotlar1 + malumotlar2/100;// qiymatlarni qo`shing

Serial.println (malumotlar);

delay (250);

}

4.7.3.Arduinoda random bool

Agar sizga tasodifiy boolen o`zgaruvchi kerak bo`lsa, u faqat ikkita rost (true) yoki yolg`on (false) qiymatni qabul qilishi mumkin. Keyin berilgan ehtimollik bilan tasodifiy rost/yolg`on hosil qilishingiz mumkin. Shunchaki tasodifiy funksiya natijasini bool o`zgaruvchisiga belgilaymiz, bunda yolg`on bo`lish ehtimolining o`zaro nisbatini ko`rsatamiz. Misol:

bool malumotlar;

void setup () {

Serial.begin (9600);

}

void loop () {

//o`zgaruvchan ma`lumotlar 1/5 ehtimollik bilan 0 qiymatini oladi

malumotlar = random (5);

Serial.println (malumotlar);

delay (250);

}

4.7.4.Arduinoda random Seed tasodifiy raqamlari

E`tibor bering, yuqoridagi barcha misollarda, dastur har safar qayta ishga tushirilganda, raqamlarning tasodifiy ketma-ketligi takrorlanadi. Buni Arduinoning random Seed funksiyasidan foydalanib oldini olish mumkin. random Seed tasodifiy funksiyaga o`zgaruvchini qo`yish imkonini beradi. Buni amalga oshirish uchun raqamlarni yaratishni tasodifiy qilish uchun millis, analogRead yoki boshqa variantlardan foydalaning.

int malumotlar;

void setup () {

Serial.begin (9600);

randomSeed (analogRead (A1)); //A1 piniga hech narsa ulanmagan

}

void loop () {

malumotlar = random (100, 200); //diapazondagi Arduino tasodifiy soni

Serial.println (malumotlar);

delay (250);

}

Dastur har safar qayta ishga tushirilganda, psevdo-tasodifiy raqamlar generatori random Seed (analogRead (A1)) funksiyasi bilan ishga tushiriladi (portdagi «shovqin» tufayli tasodifiy qiymat bilan). Buning uchun har qanday bo`sh portdan foydalanishingiz mumkin, chunki barcha analog chiqishlar atrof-muhitdan tasodifiy shovqinlar-radio to`lqinlari, kompyuterlar, uyali telefonlar va boshqalarning elektromagnit shovqinlarini oladi.

5-bob. ARDUINO PLATFORMASIDA AMALIY MASHG’ULOTLAR

5.1.Serial funksiyasi va Monitor port haqida tushuncha

Monitor port – bu Arduino mikrokontrollerini kompyuter yoki boshqa qurilmalar bilan ma`lumot almashishiga xizmat qiladigan funksiya (bajarilish, sodir bo`lish) bo`lib, u yordamida yozgan dasturlar qanday tartibda bajarilayotgani haqida ma`lumotlar chiqaradi.

Arduinodan kelgan ma`lumotlar Arduino sketchining (Arduinoda yozilgan dasturning nomi) Monitor portiga chiqadi. Monitor port-bu Arduino va kompyuter o`rtasida aloqa almashish oynasi bo`lib Arduinodan kelgan ma`lumotlar shu yerda chiqadi va shu yerdan Arduinoga ma`lumotlar jo`natiladi.

Yordamchi dastur uch qismga bo`lingan oynadan iborat. Yuqori qismida ma`lumotlarni kompyuterdan ketma-ket portga yuborishingiz mumkin bo`lgan kirish maydoni mavjud. Markaz ketma-ket portdan olingan ma`lumotlarni ko`rsatadi. Oynaning pastki qismida (yangi versiyalarda yuqori qismida) sozlamalar menyusi joylashgan. Arduino monitor porti bitta ketma-ket port bilan ishlashi mumkin, shuning uchun dastur yuklashda va Monitor portni ochishda xatolikka yo`l qo`ymaslik uchun aniqlangan COM portini tanlashingiz kerak.


5.1.rasm. COM portni tanlash


Yordamchi dasturni ochish uchun Arduino IDE-ning yuqori o`ng burchagidagi belgini bosishingiz kerak, Ctrl + Shift + M tugmalar birikmasidan foydalaning yoki menyu panelidan tanlang: Tools (Инструменты) -> Serial Monitor (Monitor porta). Arduino uchun Monitor port tezligi 9600 bit/s ga o`rnatiladi, shuning uchun ko`plab dasturlarda bu tezlikdan foydalanadi. Agar dasturda va port monitor sozlamalarida ma`lumotlarni uzatish tezligi boshqacha bo`lsa, unda barcha ma`lumotlar ierogliflar (so`zlar ma`nosini raqamlar va belgilar bilan ifodalaydigan yozuv turi) ko`rinishida ko`rsatiladi.

5.2. Monitor portga matnni qabul qilish va yuborish

Yordamchi dastur bilan ishlash uchun quyidagi buyruqlardan foydalaning: Serial.begin (); – buyruq ketma-ket portni ishga tushiradi

Serial. end (); – ketma-ket portni to`xtatadi va tozalaydi

Serial.print (); – ma`lumotlarni ketma-ket portga yuboradi

Serial.println (); – ushbu buyruqdan keying ma`lumot keyingi satrdan boshlanadi

Serial.read (); – ketma-ket portdan ma`lumotlarni qabul qiladi

Serial.parseInt (); – port monitoridan katta raqamlarni o`qish

5.3. Serial.begin () – buyruq

Arduino IDEda Monitor portni quyidagicha ochiladi:


5.2.rasm. Monitor portni ochish


5.3.rasm. Monitor portni chiqish oynasi


Ma`lumotlarni Monitor portga chiqarish uchun birinchi Arduino bilan kompyuter o`rtasida aloqa o`rnatish kerak. Buning uchun void setup () ning ichiga Serial.begin () buyrug`ini yozishimiz kerak.

Serial.begin () —bu Arduino bilan biror qurilma o`rtasida aloqa o`rnatish uchun xizmat qiladigan buyruq.


5.4-rasm. Serial.begin () Arduino bilan qurilma o`rtasida aloqa o`rnatish uchun xizmat qiladigan buyruq.


Serial.begin () ichida yozilgan «9600» ma`lumot almashish tezligi bo`lib, u 1sekundda 9600 bit ma`lumot almashishini bildiradi. Bundan tashqari malumot almashish tezliklarining boshqa qiymatlari 300, 1200, 2400, 4800, 9600, 19200, 115200 va hokazo mavjud (5.5-rasm).

Arduino va kompyuter uchun eng ko`p ishlatiladigan malumot almashish tezlik 9600 hisoblanadi. Qolaversa ko`plab qurilmalar ham 9600 tezilik bilan ma`lumot almashadi.

Monitor portga malumot chiqarilganda Serial.begin () da berilgan tezlik bilan monitor portning tezligi bir xil bo`lish kerak aks xolda malumotlar to`liq yetib kelmasligi yoki umuman kelmasligi mumkin.


5.5.rasm.Serial.begin () da 1sekund ichida 9600 bit ma`lumot almashish


5.6.rasm.Serial.begin () da 1sekund 300, 1200, 2400, 4800, 9600, 19200, 115200 va hokazo bit ma`lumot almashish


Ma`lumotlarni monitor potrga chiqarish uchun esa Serial.print () buyrug`i ishlatialadi.

Serial.print (); -bu ma`lumotlarni monitor portga chiqarish buyrug`i bo`lib, ma`lumotlarni gorizontal ravishda chiqaradi (5.7-rasm).



Monitor portga ma`lumotlarni vertikal holatda chiqarish uchun Serial.println (); buyrug`idan foydalanish kerak (5.8-rasm). So`zlarni serial portga chiqarish sonlarni ekranga chiqarishdan boshqacha bo`lib, chiqarilmoqchi bo`lgan so`z ikkita qo`shtirnoq ichida yoziladi. Misol uchun Assalomu alaykum so`zini chiqarish uchun Serial.println («Assalomu alaykum»); ko`rinishida yoziladi.


5.8.rasm.Monitor portga ma`lumotlarni vertikal ravishda chiqarish buyrug`iga misoli


5.9.rasm. Monitor portga so`zlarni ekranga chiqarish

6-bob.ARDUINO VA SVETODIODLAR

6.1.Svetodiodni Arduinoga ulash sxemasi va dasturi

Ushbu bo`limda svetodiodni rezistor orqali Arduino UNO-ga qanday ulashni ko`rib chiqamiz. Svetodiodni miltillashi – bu mikrokontroller bilan ishlashni boshlash uchun eng oddiy dastur. Quyida svetodiod va rezistorli sxemani yig`ish, Arduino UNO-da svetodiodni miltillashi uchun dastur, uni Arduino UNO platasiga yuklash qoidalari va izohlar bo`yicha batafsil ko`rsatma keltirilgan.

Svetodiodlar – ko`rsatkich va yoritish uchun xizmat qiluvchi yarim o`tkazgichli indikatorlardir. Ular anod (+) va katod (-) ga ega va doimiy tok oqimning yo`nalishini sezadi (6.1-rasm). Agar svetodiodni noto`g`ri ulasangiz, u holda to`g`ridan to`g`ri tok o`tmaydi va u yonmaydi. Svetodiod noto`g`ri ulangan bo`lsa, ishlamay qolishi mumkin. Anod (svetodiodning uzun oyog`i) manbaning plyusga ulangan. Katod (svetodiodning kalta oyog`i) manbaning minusga ulanadi.


6.1- rasm. Svetodiod: a-anod, k-katod


Boshlashda svetodiodni Arduino mikrokontrollerining raqamli chiqishiga ulash orqali amaliyot taxtasida oddiy sxemani yig`amiz (Arduino platasi yonidagu uyachalar kirish va chiqishlar Pin deb ham ataladi). Dastur (Arduino uchun dastur deb ataladigan) yuklab olish orqali Arduino UNO platasidan qanday foydalanish va u bilan ishlashni o’rganamiz.

Qurilmalarni ishonchli yig`ish uchun bosilgan (pechat) elektron platalar yaratish ko`p vaqt talab etadi. Elektr zanjirlarini tez yig`ish uchun amaliyot taxtasi (6.2-rasm) ishlatiladi. Amaliyot taxtasidagi plastmassa qatlami ostida oddiy printsipga muvofiq yotqizilgan mis plitalar – relslar (yo`llar) mavjud.

6.2.Amaliyot taxtasida sxemalarni tez yig`ish

Конец ознакомительного фрагмента.

Текст предоставлен ООО «Литрес».

Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.

Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.

Вы ознакомились с фрагментом книги.

Для бесплатного чтения открыта только часть текста.

Приобретайте полный текст книги у нашего партнера:

Полная версия книги