Respublikasi axborot texnologiyalari va kommunikatsiyalarini rivojlantirish vazirligi muhammad al-xorazmiy nomidagi toshkent axborot texnologiyalari universiteti
Bluetooth-модулни Android смартфонга улаш
Download 1.59 Mb.
|
4-Amaliy ish IoT
- Bu sahifa navigatsiya:
- Назорат саволлари
Bluetooth-модулни Android смартфонга улаш
Bluetooth USB WIFI Terminal иловасини очамиз ва модуль билан уланамиз. Энди лаборатория ишини бажаришга киришамиз. Навбатма-навбат мос равишда 3 та фамилияларни киритамиз ва платадан телефонга талаба ҳақидаги маълумотларни оламиз (4- расм). 4- расм. Сўровларни жўнатиш натижаси Вариантлар 2.1-жадвал Лаборатория ишини бажариш учун вариантлар
Ф.И.Шни лотин алифбосида киритиш керак бўлади. Назорат саволлари Бу лаборатория ишида маълумотларни алмашлаш қандай бўлиб ўтади? Талабалар ҳақидаги маълумотлар омбори қаерда сақланади? HEX,BIN,DEC символларнинг вазифасини тушунтиринг? Маълумотларни алмашлаш қайси саноқ тизимида амалга оширилади. Jovoblar Hozirgi vaqtda DIY qurilmalari uchun juda ko'p turli xil Bluetooth seriyali modullarni xorijiy va mahalliy do'konlarda topish mumkin. Ular uchun narx unchalik yuqori emas: har bir modul uchun ±5$. Ularni osongina topish mumkin, masalan: Bluetooth Serial HC-05, HC-06. Aksariyat modullar BC417 chipidan va Flash xotiradan foydalanadi. Chip Bluetooth v2.0 + EDR spetsifikatsiyasini, AT buyruqlarini qo'llab-quvvatlaydi, Master yoki Slave rejimida ishlashi mumkin (HC-03/HC-5 modullari, AT buyrug'i bilan o'rnatilishi mumkin), 2400 dan 1382400 gacha almashinuv kursini qo'llab-quvvatlaydi. Modulning ta'minot kuchlanishi 3,3 V, iste'mol oqimi ~ 50 mA. HC-03/HC-05 modullari HC-04/HC-06 dan ko'ra ko'proq funktsionaldir. HC-04/HC-06 modullarining asosiy terminallari: UART_TX (pin 1), UART_RX (pin 2), UART_CTS (pin 3), UART_RTS (pin 4) - UART pinlari. 3.3V (pin 12) - quvvat manbai 3.3V. GND (pin 13) - keng tarqalgan. PIO1 (pin 24) - ish rejimi ko'rsatkichi. Agar ulanish o'rnatilmagan bo'lsa, LED yonadi, agar u o'rnatilgan bo'lsa, u doimo yonib turadi. HC-03/HC-05 modullari uchun ba'zi farqlar mavjud. UART va elektr uzatish liniyalari bir xil, ammo: PIO8 (pin 31) - ish rejimi ko'rsatkichi. PIO9 (pin 32) - ulanish holati, agar ulanish o'rnatilgan bo'lsa, u holda chiqish yuqori bo'ladi. PIO11 (pin 34) - AT buyruq rejimini yoqish uchun kirish (mantiq 1 qo'llanilishi kerak). Batafsil hujjatlar uchun PDF-ga qarang. 2 - Arduino platalari oilasining platalari bir necha turdagi xotiraga ega. Birinchisi, statik operativ xotira (tasodifiy kirish xotirasi) bo'lib, u dasturni bajarish jarayonida o'zgaruvchilarni saqlash uchun ishlatiladi. Ikkinchidan, bu siz yozgan eskizlarni saqlaydigan flesh xotira. Uchinchidan, bu ma'lumotni doimiy saqlash uchun ishlatilishi mumkin bo'lgan EEPROM. Birinchi turdagi xotira o'zgaruvchan bo'lib, Arduino qayta ishga tushirilgandan so'ng u barcha ma'lumotlarni yo'qotadi. Ikkinchi ikki turdagi xotira ma'lumotni quvvat o'chirilgandan keyin ham yangisi bilan qayta yozilguncha saqlaydi. Xotiraning oxirgi turi - EEPROM - ma'lumotlarni yozish, saqlash va kerak bo'lganda o'qish imkonini beradi. Endi biz ushbu xotirani ko'rib chiqamiz. Arduinoda uchta xotira turi mavjud: Flash xotira: eskizlarni saqlash uchun ishlatiladi. RAM (Static Random Access Memory): o'zgaruvchilarni saqlash va boshqarish uchun ishlatiladi. EEPROM (Volatile Memory): Doimiy ma'lumotlarni saqlash uchun ishlatiladi. Fleshli xotira va EEPROM doimiy xotira turlaridir (quvvat o'chirilganda ma'lumotlar saqlanadi). RAM o'zgaruvchan xotira hisoblanadi. ATmega168 mikrokontrolleri quyidagilarga ega: 16 KB flesh-xotira (bootloader xotirasi uchun 2 KB ishlatiladi) 1024 bayt operativ xotira 512 bayt EEPROM RAMning kichik miqdoriga e'tibor berish kerak, chunki. eskizdagi ko'p sonli chiziqlar uni to'liq ishlatishi mumkin. Masalan, quyidagi deklaratsiya: char message[] = "Men Cape Wind loyihasini qo'llab-quvvatlayman."; jami operativ xotiraning 32 baytini egallaydi (har bir belgi bir baytni egallaydi). Ko'rsatish uchun katta hajmdagi matn yoki jadvallar mavjud bo'lsa, ruxsat etilgan 1024 bayt operativ xotiradan to'liq foydalanish mumkin. RAMda bo'sh joy bo'lmasa, dastur ishdan chiqishi mumkin, masalan, u yozib olinishi mumkin, lekin ishlamaydi. Ushbu holatni aniqlash uchun siz sharhlarga aylanishingiz yoki eskizning satrlarini qisqartirishingiz kerak (kodni o'zgartirmasdan). Agar shundan so'ng dastur to'g'ri ishlayotgan bo'lsa, unda RAMning barcha miqdori uni bajarishga sarflangan. Ushbu muammoni hal qilishning bir necha yo'li mavjud: Kompyuterda dastur bilan eskizni ishga tushirganda, Arduino yukini kamaytirish uchun ma'lumotlar yoki hisob-kitoblarning bir qismini kompyuterga o'tkazishingiz mumkin.Qidiruv jadvallari yoki boshqa katta massivlaringiz bo'lsa, qiymatlarni saqlash uchun minimal ma'lumotlar turidan foydalanishingiz mumkin. Misol uchun, int ma'lumotlar turi ikki baytni egallaydi, bayt esa faqat bitta baytni egallaydi (lekin kichik qiymat oralig'ini saqlashi mumkin). Eskiz ishlayotgan vaqtda o'zgarmas satrlar va ma'lumotlar flesh xotirada saqlanishi mumkin. Buning uchun siz PROGMEM tugmasidan foydalanishingiz kerak. EEPROM dan foydalanish uchun EEPROM kutubxonasiga murojaat qiling. 3 - Dasturlashda biz ko'pincha raqamlarni 2, 4, 8, 16 va 10 ga asoslangan hisoblash tizimlari o'rtasida tarjima qilish zaruratiga duch kelamiz. Sanoq tizimining asosi raqamlarni yozish uchun ushbu tizimda nechta raqam ishlatilishini ko'rsatadi: Biz o‘rganib qolgan 10 ta asosiy sanoq sistemasi (o‘nlik sanoq sistemasi) 10 ta raqamdan foydalanadi: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. 9 dan keyin raqam emas, raqam bo‘ladi. 10, ikkita raqamdan iborat : 1 va 0. Shunday qilib, biz ma'lum bir ketma-ketlikda ko'rsatilgan raqamlar yordamida har qanday raqamlarni yozamiz. 2 ta asosiy sanoq sistemasi (ikkilik sanoq sistemasi) 2 ta raqamdan foydalanadi: 0, 1. 4 ta asosiy sanoq sistemasi (to'rtlamchi sanoq sistemasi) 4 ta raqamdan foydalanadi: 0, 1, 2, 3. 8 ta asosiy sanoq sistemasi (sakkizlik sanoq sistemasi) 8 ta raqamdan foydalanadi: 0, 1, 2, 3, 4, 5, 6, 7. Baza 16 (on oltilik) 16 ta raqamdan foydalanadi: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Bu holda ABCDEF harflari raqamlardir. . A raqami o'n oltilik, 10 kasrga, B raqami 11 kasrga, ... , F raqami 15 kasrga teng. Siz har qanday sanoq tizimidan foydalanishingiz mumkin, masalan, 12 ta baza (o'nlab sanash), lekin dasturlashda eng mashhurlari: o'nlik, o'n oltilik va ikkilik, sanoq tizimlari. Yuqorida sanab o'tilgan sanoq sistemalarining barchasi pozitsion tizimlardir. Raqamning qiymati nafaqat uning qanday raqamlardan iboratligiga, balki ular qanday ketma-ketlikda yozilishiga ham bog'liq. Masalan, 1234 raqami 4321 raqamiga teng emas. Turli sanoq sistemalarida raqamlarni ifodalash usullari: ikkilik sanoq tizimi: (10101)2 - tizimning matematik tasviri (son) bazasi 0b10101 - Arduino IDE eskizlarida tasvirlash (raqam "0b" bosh belgilari bilan yozilgan). B10101 - Arduino IDE eskizlarida tasvirlash (256 gacha bo'lgan raqam "B" bosh belgisi bilan yoziladi). sakkizlik sanoq sistemasi: (10101)8 - tizimning matematik tasviri (son) bazasi 010101 - Arduino IDE eskizlarida tasvirlash (raqam "0" nol bosh belgisi bilan yozilgan). o'nlik sanoq tizimi: (10101)10 - tizimning matematik tasviri (son) bazasi 10101 - Arduino IDE eskizlarida tasvirlash (raqam oldingi belgilarsiz yoziladi) o'n oltilik sanoq tizimi: (10101)16 - tizimning matematik tasviri (son) bazasi 0x10101 - Arduino IDE eskizlarida tasvirlash (raqam "0x" bosh belgilari bilan yozilgan). Raqamlarni o‘nlik sanoq sistemasiga o‘tkazish: Raqamni har qanday sanoq sistemasidan o‘nli kasrga o‘tkazish uchun siz ushbu raqamning barcha raqamlarini qo‘shishingiz kerak, avval ularning har birini uzatish amalga oshirilgan sanoq sistemasi bazasiga ko‘paytirib, uni pozitsiyaga mos keladigan darajaga ko‘taring. raqamdagi raqam: S(raqamli_raqam * tayanch_tizim raqamli_pozitsiyasi) Raqamlarni o'nlik sanoq tizimiga o'tkazishga misollar: (101011)2 = 1*25 + 0*24 + 1*23 + 0*22 + 1*21 + 1*20 = 32+0+8+0+2+1 = (43)10. (1357)8 = 1*83 + 3*82 + 5*81 + 7*80 = 512+192+40+7 = (751)10. (3BC9)16 = 3*163 + B*162 + C*161 + 9*160 = 3*163 + 11*162 + 12*161 + 9*160 = 12288+2816+192+9 = (15305)10. O'nlik sanoq sistemasidan raqamlar tarjimasi: Raqamlarni o'nlik sanoq sistemasidan boshqasiga o'tkazish uchun, butun sonni bo'lish natijasi 0 ga aylanmaguncha, tarjima qilingan sonni biz uni o'tkazmoqchi bo'lgan tizim bazasiga butun songa bo'lish kerak. Tarjima natijasi teskari tartibda har bir bo'linishning qolgan qismi bo'ladi. O'nlik sanoq sistemasidan raqamlarni tarjima qilishga misollar: (43)
43/2 \u003d 21 va qolganlarida 1 21/2 = 10 va 1 qoldiq 10/2 = 5 va 0 qoldiq 5/2 = 2 va 1 qoldiq 2/2 = 1 va qolgan qismida 0 1/2 = 0 va qolgan qismida 1 natija - teskari tartibda qoldiqlarning raqamlari = (101011)2 (751) 10 sakkizlik sanoq sistemasiga aylantiriladi: 751/8 = 93 va 7 qoldi 93/8 = 11 va 5 qoldi 11/8 = 1 va 3 qoldiq 1/8 = 0 va 1 qoldiq natija - teskari tartibda qoldiqlarning raqamlari = (1357)8 (15305)10 o‘n oltilik sanoq sistemasiga aylantiriladi: 15305/16 = 956 va 9 qoldi 956/16 = 59 va 12 qoldiq - (C) 16 raqamiga mos keladi 59/16 \u003d 3 va 11 qolganda - (B) 16 raqamiga to'g'ri keladi 3/16 = 0 va 3 qoldiq natijada qoldiqlarning raqamlari teskari tartibda = (3BC9)16 Oddiy tarjima usuli: Raqamlarni tarjima qilishning eng oson usuli ikkilik sanoq sistemasidir. Buni qanday qilish bizning video darsimizda tasvirlangan. Download 1.59 Mb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling