01-darsBoshlangʻich15 daqiqaOʻZ · РУ · ENSimulyatorda bor

Robot nima? Sezish, oʻylash, harakat

Robot qayta-qayta sezadi, oʻylaydi va harakat qiladi. Robot-mashinada har bir ishni qaysi detal bajarishini, mikrokontroller nimaligini va simulyator haqiqiy kodingizni qanday bajarishini koʻring.

VideoYouTubeʼda

Asosiysi

  • Robot uchta qadamni qayta-qayta takrorlaydi: sezish, oʻylash, harakat.
  • Robot-mashinada HC-SR04 sezadi, Arduino Uno oʻylaydi, L298N esa ikkita TT motor bilan birga harakat qiladi.
  • Mikrokontroller — bitta chipdagi kichik kompyuter; Unoning chipi — ATmega328P.
  • Batareya motorlarga L298N orqali quvvat beradi, L298N ning 5 V chiqishi esa Unoga quvvat beradi.
  • Simulyator haqiqiy sketchingizni kompilyatsiya qiladi va uni emulyatsiya qilingan ATmega328P da bajaradi.

Robot — uchta ishni qayta-qayta bajaradigan mashina. U atrofini sezadi. U oʻylaydi, yaʼni nima qilishni hal qiladi. Keyin harakat qiladi: yuradi yoki biror narsani oʻzgartiradi. Harakatdan soʻng u yana sezadi, chunki atrof oʻzgargan. Robototexnika muhandislari buni «sezish – oʻylash – harakat» sikli deb atashadi.

Pultli oʻyinchoq mashinada ham motorlar va batareya bor. Lekin u uchun sezish va oʻylash ishini inson bajaradi. Mashinaga datchik va kichik kompyuter qoʻying, shunda u oʻzi qaror qabul qila oladi. Oddiy mashinadan robotga oʻtish ana shu qadamdan boshlanadi.

Robot-mashinada sezish, oʻylash va harakat

1 Sezish: HC-SR04 masofani oʻlchaydi. 2 Oʻylash: Arduino Uno sketchingizni bajaradi. 3 Harakat: L298N motorlarni aylantiradi.

Bu saytdagi barcha robotlar bitta konstruksiyaga asoslangan: CoreEngine robot-mashinasi. Uning har bir detali bitta asosiy ishni bajaradi.

Detal Vazifasi Robot-mashinada nima qiladi
HC-SR04 ultratovush datchigi Sezish Oldindagi eng yaqin narsagacha boʻlgan masofani taxminan 2 sm dan 4 m gacha oʻlchaydi
Arduino Uno Oʻylash Sketchingizni bajaradi: datchikni oʻqiydi, qaror qabul qiladi, signallar yuboradi
L298N motor drayveri Harakat Unoning kuchsiz signallarini motorlar uchun kuchli tokka aylantiradi
65 mm li gʻildirakli ikkita TT reduktorli motor Harakat Robotni yurgizadi; ikki tomondagi tezlik har xil boʻlsa, robot buriladi
4xAA batareya qutisi Quvvat Motorlarga taxminan 6 V beradi, L298N orqali esa Uno va datchikka ham quvvat beradi
Ikkita akril plastina (qavat) va sharli tayanch Korpus Hammasini birga ushlab turadi; sharli tayanch oldinda dumalaydi

Sezish

HC-SR04 qisqa ultratovush signalini yuboradi. Bu tovush juda yuqori, shuning uchun odam uni eshitmaydi. Keyin datchik aks-sadoni kutib tinglaydi. Aks-sado qancha kech qaytsa, narsa shuncha uzoqda boʻladi. Datchik narsaning nimaligini bilmaydi. U faqat narsa qancha uzoqda ekanini biladi.

Boshqa robotlar boshqa datchiklardan foydalanadi. Chiziq datchigi oq poldagi qora chiziqni koʻradi, oddiy kalit (tugma) esa urilishni seza oladi. Chiziq boʻylab yuruvchi robot trassadan chiqmaslik uchun ikkita chiziq datchigidan foydalanadi.

Oʻylash

Arduino Uno datchikni oʻqiydi va sketchingizni, yaʼni siz yozgan dasturni bajaradi. Sketchda robotning qoidalari yozilgan, masalan: «Agar biror narsa 25 sm dan yaqin boʻlsa, undan burilib ket». Uno bu qoidalarni har soniyada koʻp marta tekshiradi.

Harakat

Unoning pinlari faqat kuchsiz signal bera oladi: har biri taxminan 20 mA. TT motor robotni yurgizayotganda taxminan 0,3 A, toʻsilib qolganda esa taxminan 1 A gacha tok talab qiladi. Shuning uchun Uno oʻz signallarini L298N motor drayveriga yuboradi. L298N esa batareya tokini motorlarga yoʻnaltiradi: oldinga yoki orqaga, tez yoki sekin.

Robotda rul yoʻq. U ikkita yetaklovchi gʻildiragi yordamida buriladi:

  • Ikkala gʻildirak bir xil tezlikda oldinga aylansa, robot toʻgʻri yuradi.
  • Bir gʻildirak ikkinchisidan tezroq aylansa, robot egri chiziq boʻylab yuradi.
  • Bir gʻildirak oldinga, ikkinchisi orqaga aylansa, robot joyida aylanadi.

Quvvat

Energiyasiz hech narsa ishlamaydi. Toʻrtta AA batareya taxminan 6 V beradi. Motorlar bu quvvatni L298N orqali oladi. L298N da kichik 5 V li stabilizator ham bor. Uning 5 V chiqishi Uno va datchikka quvvat beradi.

Siklning bitta aylanishi

Toʻsiqni aylanib oʻtuvchi robotda bu siklni amalda koʻrish mumkin. Uning sketchida quyidagi sonlar ishlatilgan:

  1. Sezish: har 60 ms da, yaʼni soniyasiga taxminan 16 marta masofani oʻlchash.
  2. Oʻylash: narsa 25 sm dan yaqinmi?
  3. Harakat: agar yaqin boʻlmasa, 190 tezlik bilan oldinga yurish (shkala 0 dan 255 gacha). Agar yaqinroq boʻlsa, 300 ms davomida 160 tezlik bilan orqaga yurish, 380 ms davomida 170 tezlik bilan oʻngga aylanish, keyin yana oldinga yurish.

Soʻng sikl yangi oʻlchov bilan yana boshlanadi. Robot sezishni hech qachon toʻxtatmaydi, hatto orqaga yurayotganda va burilayotganda ham. Sketch buni qanday qilishini Hech qachon kutmaydigan dasturlar darsida koʻrasiz.

Mikrokontroller nima?

Mikrokontroller — bitta chipga (mikrosxemaga) joylashgan toʻliq, kichik kompyuter. Unda protsessor, dastur uchun xotira, maʼlumotlar uchun xotira va uni tashqi olam bilan bogʻlaydigan pinlar bor. Mikrokontrollerlar atrofingizdagi koʻp narsalarda bor: kir yuvish mashinasida, mikrotoʻlqinli pechda, televizor pultida, avtomobilda.

Unoning mikrokontrolleri — ATmega328P:

Xususiyat Unodagi ATmega328P
Takt chastotasi 16 MHz: soniyasiga 16 million takt
Flesh xotira 32 KB: sketchingizni saqlaydi, quvvat oʻchganda ham
RAM 2 KB: sketch ishlayotganda oʻzgaruvchilaringizni saqlaydi
EEPROM 1 KB: sozlamalar kabi kichik qiymatlarni quvvat oʻchganda ham saqlab qoladi
Pinlar D0-D13 (raqamli) va A0-A5 (analog kirishlar)

Noutbukda xotira millionlab marta koʻp. Unoga bunchalik xotira kerak emas. Unda ekran ham, klaviatura ham, operatsion tizim ham yoʻq. U quvvat olishi bilanoq bitta dasturni, yaʼni sizning sketchingizni bajaradi.

Arduino platasi uchun yozilgan dastur sketch deb ataladi. Uni Arduino IDE da C++ tilida yozasiz. «Yuklash» tugmasini bossangiz, IDE sketchingizni mashina kodiga kompilyatsiya qiladi va flesh xotiraga yozadi.

Pinlar sketchni tashqi olam bilan bogʻlaydi. Chiqish sifatida pin taxminan 5 V (HIGH) yoki 0 V (LOW) beradi, masalan, svetodiodni yoqish va oʻchirish uchun. Kirish sifatida esa pin undagi kuchlanish yuqori yoki pastligini sketchga bildiradi, masalan, datchikdan kelgan signalni. Pinlar Arduino Uno: pinlar va birinchi dasturingiz darsida batafsil koʻrib chiqiladi.

Simulyator nima qiladi

CoreEngine — Windows uchun robot simulyatori. Unda robotni haqiqiy robot-mashina bilan bir xil detallardan yigʻasiz va uni haqiqatda yigʻishdan oldin sinab koʻrasiz.

  • Yigʻish. Korpusni shakllardan yasaysiz va unga haqiqiy detallarning modellarini joylaysiz: Arduino Uno, L298N, HC-SR04, TT motorlar, batareya qutisi, sharli tayanch, SG90 servo (servoprivod) va svetodiod moduli.
  • Ulash. Detallarni haqiqiy robotdagidek pindan pinga ulaysiz.
  • Tekshiruv. Simulyator ulanishingizni tekshiradi. Masalan, batareya yoʻq boʻlsa, motor drayveriga quvvat kelmasa, umumiy yer (GND) boʻlmasa yoki batareya Unoning 5V piniga ulangan boʻlsa, simulyator buni sizga aytadi. Oxirgi xato haqiqiy platani kuydiradi.
  • Kod. Sketchni simulyatorning ichidagi Arduino IDE da yozasiz; unda «Tekshirish» va «Yuklash» tugmalari bor.
  • Ishga tushirish. Sketchingiz arduino-cli yordamida kompilyatsiya qilinadi; u Arduino IDE bilan bir xil kompilyatordan foydalanadi. Soʻng mashina kodi emulyatsiya qilingan ATmega328P da ishlaydi. Emulyatsiya qilingan chip — haqiqiy chip kabi ishlaydigan dastur. Bu haqiqiy Uno bajaradigan dasturning aynan oʻzi, soddalashtirilgan nusxasi emas.
  • Sinov. Robot fizikali arenada yuradi. Siz masofa, motorlar va batareyaning jonli koʻrsatkichlarini, sketchingiz xabarlari chiqadigan Serial Monitor (port monitori) oynasini va hodisalar jurnalini koʻrasiz.

Garajdagi stolda Uno noutbukning USB porti orqali quvvat oladi va svetodiodlar yonadi. Shuning uchun svetodiodli loyihalarni batareyasiz ham sinab koʻrishingiz mumkin.

Simulyator haqiqiy detallar oʻrnini bosmaydi. U gʻoyalarni tez sinab koʻrishga va xatolarni biror detal buzilmasidan oldin topishga yordam beradi.

Saytdan qanday foydalanish kerak

Qadam Nima qilasiz
1. Oʻrganing Dars yoki loyihani oʻqing. Har bir darsda asosiy fikrlar, savollar va kichik topshiriq bor.
2. Simulyatsiya qiling Sahifadagi robotni CoreEngine simulyatorida yigʻing: sahifada uning detallari, ulanishi va sketchi bor. Uni ishga tushiring, kodni oʻzgartiring va nima boʻlishini koʻring.
3. Detallarni oling Har bir loyihada detallar roʻyxati doʻkonlarga havolalar bilan berilgan. Market xuddi shu detallarni qayerdan sotib olish mumkinligini koʻrsatadi.
4. Yigʻing Haqiqiy robotni xuddi shu ulanish jadvali boʻyicha yigʻing va xuddi shu sketchni yuklang.
5. Ulashing Robotingizni, sketchga kiritgan oʻzgarishlaringizni va nimalarni oʻrganganingizni boshqalarga koʻrsating.

Bu qadamlarni xohlagancha takrorlashingiz mumkin. Har bir yangi gʻoya yana 1-qadamdan yoki 2-qadamdan boshlanadi.

Hozir sinab koʻring

Toʻsiqni aylanib oʻtuvchi robotni oching va sezish, oʻylash, harakat qanday sodir boʻlishini kuzating.

Nimani koʻrasiz:

  • Robot toʻgʻri oldinga yuradi.
  • Devor yaqinlashgan sari masofaning jonli koʻrsatkichi kamayib boradi.
  • Masofa 25 sm dan kam boʻlganda robot bir lahza orqaga yuradi, oʻngga aylanadi va yoʻlida davom etadi.
  • Serial Monitor taxminan har 60 ms da yangi masofani chiqaradi, robot burilayotganda ham.

Keyin qayerga oʻtish kerak

  1. Arduino Uno: pinlar va birinchi dasturingiz, keyin Blink loyihasi.
  2. Motorlar va L298N drayveri, keyin «Birinchi yurish» loyihasi.
  3. HC-SR04 bilan masofani oʻlchash.
  4. Hech qachon kutmaydigan dasturlar: millis() va holatlar, keyin Toʻsiqni aylanib oʻtuvchi robot.
  5. Qoʻlingizga ergashadigan Masofa saqlovchi robot.

Oʻzingizni tekshiring

1Robot-mashinada qaysi detal sezadi, qaysi detal oʻylaydi va qaysi detallar harakat qiladi?

HC-SR04 masofani sezadi, Arduino Uno esa sketchingizni bajarib oʻylaydi. L298N motor drayveri va ikkita TT motor harakat qiladi.

2Nega Uno bilan motorlar orasida motor drayveri turadi?

Uno pini xavfsiz holatda atigi taxminan 20 mA beradi, TT motorga esa taxminan 1 A gacha tok kerak. L298N batareyadan motorlarga boradigan tokni yoqadi va oʻchiradi.

3Simulyatorda «Yuklash» tugmasini bossangiz, sketchingiz bilan nima sodir boʻladi?

U xuddi haqiqiy plata uchun boʻlgani kabi mashina kodiga kompilyatsiya qilinadi. Bu mashina kodi simulyatsiyadagi robot ichida, emulyatsiya qilingan ATmega328P da ishlaydi.

Topshiriq

Toʻsiqni aylanib oʻtuvchi robotni simulyatorda yigʻing (buni qanday qilish loyiha sahifasida koʻrsatilgan) va uni arenada ishga tushiring. Masofaning jonli koʻrsatkichini kuzating va robot qaysi masofada orqaga yura boshlashini yozib qoʻying. Keyin STOP_CM ni 25 dan 40 ga oʻzgartiring, sketchni yuklang va robotni yana ishga tushiring. Robot endi qayerda burilishini avvalgisi bilan solishtiring.

Maslahat

STOP_CM — sketch boshidagi sozlamalardan biri.