Mundarija:

Robot bamperlarini yarating (kod bilan): 4 qadam
Robot bamperlarini yarating (kod bilan): 4 qadam
Anonim
Robot bamperlarini yarating (kod bilan)
Robot bamperlarini yarating (kod bilan)

Bu ko'rsatma o'quvchilarga Boe-botda to'siqlarni aniqlashda labirint bo'ylab harakatlana oladigan bamperlarni qanday yaratish va kodlashni o'rgatadi. Loyihani kodlash BASIC Stamp dasturlash dasturi va Boe-Bot robotidan foydalangan holda amalga oshirilgan va bu bamperlarni yaratishda muvaffaqiyat qozonish uchun sxemalar va dasturlash bo'yicha asosiy tushunchalar talab qilinadi.

Ta'minotlar

Bunday bamperlarni yaratish uchun sizga kerak bo'ladi:

- Boe-Bot robot

- BASIC Stamp dasturlash dasturi

- Popsicle tayoqchalari

- Gubka

- alyumin folga

- Qog'oz qisqichlari

- 8 ta yaxshi uzunlikdagi simlar (kamida 6 dyuym)

- 2 ta LED chiroq

-2 ta jigarrang-qora-sariq rezistorlar

-2 qizil-qizil-jigarrang rezistor

- lenta va issiq elim (yoki shunga o'xshash yopishtiruvchi)

- Boe-Bot uchun batareyalar

1 -qadam: 1 -qadam: O'chirish sxemasini yaratish

1 -qadam: O'chirish sxemasini yaratish
1 -qadam: O'chirish sxemasini yaratish
1 -qadam: O'chirish sxemasini yaratish
1 -qadam: O'chirish sxemasini yaratish

Non panelini yo'naltirish va ishlatish uchun sxemani yaratish uchun yuqoridagi jadvalga amal qiling. Oxir -oqibat, sizning non paneli chapdagi rasmga o'xshash bo'lishi kerak.

Eslash kerak bo'lgan narsalar:

- LED to'g'ri holatidadir ekanligiga ishonch hosil qiling. Bu shuni anglatadiki, LEDning tekis oyog'i salbiy tomonda, ikkinchi oyog'i esa ijobiy tomonda bo'lishi kerak.

- Vss bu non panelida zamin bo'lib xizmat qiladi, demak u nolga teng, Vdd esa 1 ga teng.

- Ishlayotgan sxemaning qiymati 0. O'chirilgan sxemaning qiymati 1 ga teng.

2-qadam: 2-qadam: Boe-bot uchun dasturlash

Quyidagi kod robotni chap va o'ng tomonga 90 gradusga burilishni dasturlaydi, bamperlarning qaysi biri bosilganiga qarab (keyingi bosqichda bamper yaratish haqida batafsilroq). Bu kod o'ng bamper simlari bosilganda robot chapga, chap bamper simlari bosilganda esa o'ngga burilishini ta'minlaydi.

Ba'zi asosiy til tarjimalari:

- GOSUB = subroutine (kodni talab qilish kerak)

- If.. Else = bajarilishi kerak bo'lgan kodlar guruhini bildiradi, agar shartlar to'g'ri bo'lsa va shartlar noto'g'ri bo'lsa ko'rsatmalarni bajaradi.

Kod:

'{$ STAMP BS2}

"{$ PBASIC 2.5}" ***************************************** ******************************* 'Qayta ishga tushirish kodini tiklash' Robotni to'xtatish va ishga tushirish uchun reset tugmasidan foydalaning '** ************************************************ *********************** temp VAR Bayt "RunStatus DATA $ 00" vaqtinchalik saqlanadigan o'zgaruvchisi ROM READ -da saqlanadi RunStatus, temp "ROM temp dan o'zgaruvchini o'qing = ~ temp '0 qiymatini 1 ga yoki 1 ga 0 ga aylantiring RunStatus, temp' O'zgaruvchini ROMga qaytarib yozing IF (temp> 0) THEN END 'qiymat 1 bo'lsa, tekshiring, agar shunday bo'lsa, dasturni PAUSE 3000' to'xtatib turing "Reset" tugmasini bosganingizda qo'lingizni siljiting ************************************* ********************************** '************* ************************************************ *********** 'PIN VA SABITLAR' dasturlashni soddalashtirish uchun ishlatiladi '*************************** ***************************************** LMOTOR PIN 15 RMOTOR PIN 14 RFast CON 650 LFast CON 850 RSlow CON 700 LSlow CON 780 MStop CON 750 RFastRev CON 8 50 LFastRev CON 650 RSlowRev CON 800 LSlowRev CON 700 TurnLeft90 CON 90 TurnRight90 CON 90 '******************************* ************************************** '********* ************************************************ ************** 'O'zgaruvchilar' dasturlashni soddalashtirish uchun ishlatiladi '************************** ******************************************** MLoopC VAR Word '.. Keyingi o'zgaruvchilar 65000 gacha. Hisob VAR bayt burilish ************************************ '----------- -------------------------------------------------- ------------- "Asosiy kod" --------------------------------- ----------------------------------------- IN10 = 0 BOSHQA QILING 'Agar 10-pinli sim yoqilgan, keyin chapga burilgan --------------------------------- ------------------------------------- '** ASOSI KODINING SONI ****** ********************************************* '- -------------------------------------------------- --------------------- **************************** ****************************************** '** Subtutinlar / Sub-protsedura / Usullar ****************************** '*********** ************************************************ *********** '************************************ ********************************** '*************** ************************************************ ******* RightTurn90: "90 daraja o'ngga burilishning pastki tartibi" ******************************** ******** Lfast "bir puls oldinga siljiydi, RfastRev" pin va doimiylardan foydalanadi PAUSE 20 '20mS robotga NEXT puls RETURN oldidan NEXT harakat qilishiga imkon beradi ******************** ************************************************ * LeftTurn90: "90 daraja o'ngga burilish uchun kichik protsedura" ** ************************************************ ******************* YUQORI 0 LOW 1 MLoopC uchun = 1 dan 22 gacha PULSOUT LMOTOR, LfastRev 'bir puls oldinga siljish RMOTOR, Rfast' pinlari va doimiylari yordamida PAUSE 20 ' 20mS robotga NEXT pulsni qaytishidan oldin NEXT harakat qilishiga imkon beradi ************************************ ******************************************************************************************************************************************************** ************************************************ ***************** MLoopC uchun = 1 dan 55 gacha PULSOUT LMOTOR, LFast PULSOUT RMOTOR, RFast PAUSE 20 NEXT RETURN '************** ************************************************ ****** ReverseTurnLeft: "O'ng bamperga urilganda robotni teskari burish va chapga burish uchun kichik protsedura" *************************** ************************************************************************************************************************************************************************************************************ LMOTOR, LSlowRev PULSOUT RMOTOR, RFastRev PAUSE 20 NEXT RETURN '************************************ ******************************* ReverseTurnRight: "Subproce" chap bamperga urilganda robotni teskari aylantirishga va o'ngga burishga jur'at et "********************************** ****************************************************************************************************************************************************************************************************************************************************************************************************************************************** 20 NEXT QAYTISH ****************************************** ************************* "SUBROUTINLARNING OXIRI" ******************** ************************************************ *

3 -qadam: 3 -qadam: simli tamponlar uchun alyumin folga va popsikl tayoqchalarini ishlatish

3 -qadam: simli tamponlar uchun alyumin folga va popsikl tayoqchalarini ishlatish
3 -qadam: simli tamponlar uchun alyumin folga va popsikl tayoqchalarini ishlatish
3 -qadam: alyuminiy folga va simli bamperlar uchun popsicle tayoqchalarini ishlatish
3 -qadam: alyuminiy folga va simli bamperlar uchun popsicle tayoqchalarini ishlatish
3 -qadam: alyuminiy folga va simli bamperlar uchun popsicle tayoqchalarini ishlatish
3 -qadam: alyuminiy folga va simli bamperlar uchun popsicle tayoqchalarini ishlatish
3 -qadam: alyuminiy folga va simli bamperlar uchun popsicle tayoqchalarini ishlatish
3 -qadam: alyuminiy folga va simli bamperlar uchun popsicle tayoqchalarini ishlatish

Bu qadamni boshlashdan oldin, non panelidagi 4 ta simni (1 -bosqichga qarang) juftlarga bo'linganligiga ishonch hosil qiling, bunda har bir juft o'ng yoki chap bamperni boshqaradi. LEDlar bu holatda kodning o'ng va chap bamperlarda samarali ekanligini tekshirish uchun ishlaydi. Popsicle tayoqchalarida har bir juftlikdan bitta sim Popsicle tayog'ining bir uchini taqsimlaydi (bu shuni anglatadiki, xuddi shu juftlik simlari bir xil bamperda bo'lolmaydi).

4 ta kichik to'rtburchaklar folga kesib oling va bittasini ishlating, simni ikkita uchli tayoqchaning har uchiga o'rang. Bu Popsicle tayoqchasining o'tkazuvchanlik maydonini oshiradi va tayoqlar tegishi uchun katta sirt maydonini beradi.

Folga va simlarning Popsicle tayoqchalariga yopishib qolmasligi uchun materiallarni bir-biriga yopishtirish uchun 1-2 ta qog'oz qisqichidan foydalaning. Qog'oz qisqichlari, shuningdek, Popsicle tayoqchalariga tashqi aralashuvsiz tegishi uchun ko'proq qulaylik yaratadi. Qog'oz qisqichini oddiy qog'ozlar to'plamida bo'lgani kabi Popsicle tayog'i ustiga siljiting. Buni folga bo'laklarining to'rttasi va ikkita Popsicle tayog'ining har bir uchi uchun takrorlang.

4 -qadam: 4 -qadam: Qolgan bamperlarni yig'ish

4 -qadam: Qolgan bamperlarni yig'ish
4 -qadam: Qolgan bamperlarni yig'ish
4 -qadam: Qolgan bamperlarni yig'ish
4 -qadam: Qolgan bamperlarni yig'ish
4 -qadam: Qolgan bamperlarni yig'ish
4 -qadam: Qolgan bamperlarni yig'ish
4 -qadam: Qolgan bamperlarni yig'ish
4 -qadam: Qolgan bamperlarni yig'ish

Alyuminiy folga va qog'oz qisqichlari simlarni har bir tayoqchaga mahkamlay olgandan so'ng, ikkita kichkina gubkani kesib oling va har bir kubni tayoqlar orasiga yopishtiring (har bir tayoqning uchida, issiq yopishtiruvchi yopishtiruvchi materialga ta'sir qilmasligi uchun). gubkalar, robot devorga har urilganda, bamperlar tegib turishini ta'minlaydi.

Ixtiyoriy: Qo'shimcha Popsicle tayog'ini yarmini kesib oling va uni tashqi Popsicle tayoq bamperining uchiga burchak bilan yopishtiring. Bu bamperning devorga urilishi va burilishining ta'sirini kuchaytiradi.

Bamperlar Bot-botning oldida egilib qolishi uchun simlarning egilishini eslang.

Tavsiya: