Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-23 14:59
Ši pamoka padės skaitytojams sužinoti, kaip sukurti ir koduoti „Boe-bot“buferius, kurie galės naršyti labirinte ir aptikti kliūtis. Projekto kodavimas buvo atliktas naudojant „BASIC Stamp“programavimo programinę įrangą ir „Boe-Bot“robotą, o norint sėkmingai sukurti šiuos buferius, būtinas pagrindinis grandinių ir programavimo supratimas.
Prekės
Norėdami sukurti šiuos buferius, jums reikės:
- „Boe-Bot“robotas
- BASIC antspaudų programavimo programinė įranga
- Populiacinės lazdelės
- Kempinė
- Aliuminio folija
- Savaržėlės
- 8 padoriai ilgi laidai (mažiausiai 6 coliai)
- 2 šviesos diodai
-2 rudos-juodos-geltonos spalvos rezistoriai
-2 raudonai raudonai rudi rezistoriai
- Juosta ir karšti klijai (arba panašūs klijai)
- „Boe-Bot“baterijos
1 žingsnis: 1 žingsnis: grandinės kūrimas
Vykdykite aukščiau pateiktą duonos lentos schemą, kad sukurtumėte grandinę, skirtą orientuoti ir valdyti duonos lentą. Pabaigoje jūsų duonos lenta turėtų atrodyti panaši į paveikslėlį kairėje.
Ką prisiminti:
- Įsitikinkite, kad šviesos diodas yra teisingoje padėtyje. Tai reiškia, kad plokščia šviesos diodo kojelė turi būti neigiamoje pusėje, o kita - teigiamoje pusėje.
- Vss yra šios duonos lentos pagrindas, o tai reiškia, kad jo vertė yra lygi nuliui, o Vdd - 1.
- Veikiančios grandinės vertė yra 0. Išjungtos grandinės vertė yra 1.
2 veiksmas: 2 žingsnis: „Boe-bot“programavimas
Šis kodas užprogramuoja robotą pasukti 90 laipsnių į kairę ir į dešinę, atsižvelgiant į tai, kuris buferis yra paspaustas (išsamesnė informacija apie buferio sukūrimą kitame žingsnyje). Šis kodas užtikrina, kad robotas pasuks į kairę, kai bus paspausti dešiniai buferio laidai, ir pasuks į dešinę, kai bus paspausti kairieji buferio laidai.
Keletas pagrindinių kalbos vertimų:
- GOSUB = paprograma (po kodo turi būti nurodytas reikalavimas)
- If.. Else = nurodo kodo grupę, kuri turėtų būti vykdoma, jei sąlygos yra teisingos, ir vykdo nurodymus, jei sąlygos yra klaidingos
Kodas:
„{$ STAMP BS2}
„{$ PBASIC 2.5}“****************************************** ******************************** 'Reset Restart Code' Naudokite atstatymo mygtuką, kad sustabdytumėte ir paleistumėte robotą '** ************************************************* *********************** temp VAR baitas 'laikinoji parduotuvė RunStatus DATA $ 00' kintamasis, saugomas ROM READ RunStatus, temp 'Skaitykite kintamąjį iš ROM temp = ~ temp 'apverskite vertę nuo 0 iki 1 arba nuo 1 iki 0 WRITE RunStatus, temp' Parašykite kintamąjį atgal į ROM IF (temp> 0) THEN END jūs pajudinsite „ranką, kai paspausite atstatymą“*************************************** *********************************** '' ************* ************************************************* *********** 'Smeigtukai ir konstantos' Naudojamas programavimui supaprastinti '***************************** ******************************************* 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 '******************************** ************************************** '' ********* ************************************************* ************** 'Kintamieji' Naudojamas supaprastinti programavimą '**************************** ******************************************** MLoopC VAR žodis.. Kitas kintamasis iki 65000 šonųSkaičius VAR baitų posūkisAngle VAR Word '*********************************** ************************************ '' ----------- -------------------------------------------------- ------------- "Pagrindinis kodas" --------------------------------- ----------------------------------------- Darykite, jei IN10 = 0 THEN 'Jei viela 10 kaištyje įjungta, tada pasukite į kairę GOSUB kairėn Pasukite90 GOSUB LFastRev GOSUB RFastRev ELSEIF IN11 = 0 THEN 'Jei 11 kaiščio viela įjungta, pasukite į dešinę GOSUB RightTurn90 GOSUB LFastRev GOSUB RFastRev ENDIF GOSUB ForwardFast' Perkelti vieną impulsą LOOP ' --------------------------------- ------------------------------------ '** PAGRINDINIO KODO PABAIGA ****** ********************************************** ''- -------------------------------------------------- --------------------- '**************************** ******************************************** / Papildoma procedūra / Metodai ******************************* '*********** ************************************************* *********** '************************************* ********************************* '*************** ************************************************* ******* „RightTurn90“: „Subprocedūra pasukti 90 laipsnių į dešinę“********************************* ************************************* HIGH 1 LOW 0 MLoopC = 1 - 22 PULSOUT LMOTOR, Lfast „judėti pirmyn vienu impulsu PULSOUT RMOTOR, RfastRev“, naudojant kaiščius ir konstantas PAUSE 20 „20mS“leidžia robotui judėti KITA “prieš KITAS impulsas RETURN“******************** ************************************************* * „LeftTurn90“: „papildoma procedūra 90 laipsnių pasukimui į dešinę“** ************************************************* ******************* AUKŠTAS 0 ŽEMAS 1 MLoopC = 1–22 „PULSOUT LMOTOR“, „LfastRev“„judėti į priekį vienu impulsu PULSOUT RMOTOR, Rfast“naudojant kaiščius ir konstantas PAUSE 20 ' 20 mS leidžia robotui judėti NEXT 'prieš KITAS pulsas RETURN' ************************************* ********************************* ************************************************* ***** *** ************************************************* ****** ReverseTurnLeft: 'Papildoma procedūra, skirta robotui pakeisti ir pasukti į kairę, kai pataikomas dešinysis buferis' *************************** ******************************************* MLoopC = 1–55 PULSOUT LMOTOR, LSlowRev PULSOUT RMOTOR, RFastRev PAUSE 20 NEXT RETURN '************************************* ******************************** ReverseTurnRight: 'Subproce pasukite robotą atgal ir pasukite į dešinę, kai atsitrenkia į kairįjį buferį '*********************************** ********************************** MILoopC = 1–55 PULSOUT LMOTOR, LFastRev PULSOUT RMOTOR, RSlowRev PAUSE 20 KITAS GRĄŽINIMAS “************************ 'PABALSŲ PABAIGA' ******************** ************************************************* *
3 veiksmas: 3 žingsnis: aliuminio folijos ir „Popsicle“lazdelių naudojimas vielos buferiams
Prieš pradėdami šį veiksmą įsitikinkite, kad 4 laidai iš duonos lentos (žr. 1 veiksmą) yra suskirstyti į poras, kiekviena pora valdo dešinįjį arba kairįjį buferį. Šviesos diodai veikia šioje situacijoje, kad patikrintų, ar kodas buvo veiksmingas dešinėje ir kairėje. Ant „Popsicle“lazdelių vienas laidas iš kiekvienos poros turi vieną „Popsicle“lazdelės galą (tai reiškia, kad tos pačios poros laidai NEGALI būti ant to paties buferio).
Iškirpkite 4 mažus stačiakampius iš folijos ir vienu apvyniokite vielą aplink kiekvieną dviejų „Popsicle“pagaliukų galą. Tai padidina „Popsicle“lazdelės laidumo plotą, taip pat suteikia didesnį paviršiaus plotą lazdoms liesti.
Kad folija ir laidai nebūtų prilipę prie „Popsicle“lazdelių, naudokite 1-2 sąvaržėles, kad laikytumėte medžiagas. Sąvaržėlės taip pat suteikia daugiau prieigos prie „Popsicle“lazdelių liesti be didesnio išorinio įsikišimo. Pastumkite sąvaržėlę virš „Popsicle“lazdelės taip, kaip tai darytumėte su įprasta popieriaus krūva. Pakartokite tai su visais keturiais folijos gabalėliais ir kiekvienu dviejų „Popsicle“pagaliukų galu.
4 žingsnis: 4 žingsnis: likusių buferių surinkimas
Kai aliuminio folija ir sąvaržėlės gali išlaikyti laidus, pritvirtintus prie kiekvienos „Popsicle“lazdelės, supjaustykite du mažus kubelius kempinės ir kiekvieną kubelį klijuokite tarp pagaliukų (kiekvienos lazdelės galuose, kad karšti klijai netrukdytų kempinės užtikrina buferių prisilietimą kiekvieną kartą, kai robotas atsitrenkia į sieną.
Neprivaloma: perpjaukite papildomą „Popsicle“lazdelę per pusę ir priklijuokite ją kampu išorinio „Popsicle stick“buferio gale. Tai sustiprina buferio smūgį į sieną ir pasisukimą.
Nepamirškite sulenkti laidų, kad buferiai išlenktų tiesiai priešais „Bot-bot“.
Rekomenduojamas:
Padarykite GPS RIBŲ RIBAS naudodami „Arduino“: 8 žingsniai
Padarykite GPS RIBŲ RIBAS naudodami „Arduino“: Šioje pamokoje mes išmoksime, kaip naudojant „Arduino“sukurti GPS RIBŲ RIBAS, tai naudinga, kai turite robotą ir nenorite, kad jis išeitų už nurodytos zonos. Kai robotas yra už zonos ribų , ekrane bus rodoma „Išorė“
Padarykite „Pi“šiukšlių klasifikatorių naudodami ML!: 8 žingsniai (su nuotraukomis)
Sukurkite „Pi“šiukšlių klasifikatorių naudodami ML! mokėsi Lobe, pradedantiesiems (be kodo!)
Padarykite „TARDIS Infinity Box“: 9 žingsniai (su nuotraukomis)
Sukurkite „TARDIS Infinity Box“: anksčiau sukūriau TARDIS modelį. Viena iš pagrindinių TARDIS savybių yra ta, kad jis yra didesnis viduje nei išorėje. Akivaizdu, kad aš negaliu to padaryti, tačiau šioje instrukcijoje aš pritaikau modelį, kad jis atrodytų didelis
Kaip pridėti buferius prie SUMOBOT: 9 žingsniai (su nuotraukomis)
Kaip pridėti buferius prie SUMOBOT: tai galite padaryti taip, kad jei jis pataikytų į vieną iš roboto buferių, jis apsisuks ir nusisuks nuo objekto
Mažų robotų kūrimas: vieno kubinio colio „Micro-Sumo“robotų ir mažesnių kūrimas: 5 žingsniai (su nuotraukomis)
Mažų robotų kūrimas: vieno kubinio colio „Micro-Sumo“robotų ir mažesnių kūrimas: Štai keletas smulkių robotų ir grandinių kūrimo detalių. Ši pamoka taip pat apims keletą pagrindinių patarimų ir metodų, kurie yra naudingi kuriant bet kokio dydžio robotus. Man vienas iš didžiausių elektronikos iššūkių yra pamatyti, koks mažas