สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-23 15:12
คำแนะนำนี้จะแนะนำผู้อ่านเกี่ยวกับวิธีการสร้างและเขียนโค้ดกันชนบน Boe-bot ที่จะสามารถนำทางผ่านเขาวงกตในขณะที่ตรวจจับสิ่งกีดขวาง การเขียนโค้ดสำหรับโครงการนี้ทำได้โดยใช้ซอฟต์แวร์การเขียนโปรแกรม BASIC Stamp และหุ่นยนต์ Boe-Bot และจำเป็นต้องมีความเข้าใจพื้นฐานเกี่ยวกับวงจรและการเขียนโปรแกรมจึงจะประสบความสำเร็จในการสร้างบัมเปอร์เหล่านี้
เสบียง
ในการสร้างบัมเปอร์เหล่านี้ คุณจะต้อง:
- หุ่นยนต์โบบอท
- ซอฟต์แวร์เขียนโปรแกรมแสตมป์พื้นฐาน
- ไอติมแท่ง
- ฟองน้ำ
- อลูมิเนียมฟอยล์
- คลิปหนีบกระดาษ
- สายไฟยาวพอประมาณ 8 เส้น (อย่างน้อย 6 นิ้ว)
- ไฟ LED 2 ดวง
- ตัวต้านทานสีน้ำตาล-ดำ-เหลือง 2 ตัว
- ตัวต้านทานสีแดง-แดง-น้ำตาล 2 ตัว
- เทปกาวร้อน (หรือกาวที่คล้ายกัน)
- แบตเตอรี่สำหรับ Boe-Bot. ของคุณ
ขั้นตอนที่ 1: ขั้นตอนที่ 1: การสร้างวงจร
ทำตามไดอะแกรมเขียงหั่นขนมด้านบนเพื่อสร้างวงจรเพื่อปรับทิศทางและใช้งานเขียงหั่นขนมของคุณ ในตอนท้าย เขียงหั่นขนมของคุณควรมีลักษณะคล้ายกับภาพทางด้านซ้าย
สิ่งที่ต้องจำ:
- ตรวจสอบให้แน่ใจว่า LED อยู่ในตำแหน่งที่ถูกต้อง ซึ่งหมายความว่าขาแบนของ LED ควรอยู่ด้านลบและขาอีกข้างอยู่ด้านบวก
- Vss ทำหน้าที่เป็นพื้นบนเขียงหั่นขนมนี้ ซึ่งหมายความว่ามีค่าเป็นศูนย์ และ Vdd มีค่าเป็น 1
- วงจรวิ่งมีค่าเป็น 0 วงจรที่ดับแล้วมีค่าเท่ากับ 1
ขั้นตอนที่ 2: ขั้นตอนที่ 2: การเขียนโปรแกรมสำหรับ Boe-bot
รหัสต่อไปนี้จะตั้งโปรแกรมให้หุ่นยนต์เลี้ยวซ้ายและขวา 90 องศาตามการกดกันชน (รายละเอียดเพิ่มเติมเกี่ยวกับการสร้างบัมเปอร์ในขั้นตอนต่อไป) รหัสนี้ช่วยให้แน่ใจว่าหุ่นยนต์จะเลี้ยวซ้ายเมื่อกดสายกันชนด้านขวา และจะเลี้ยวขวาเมื่อกดสายกันชนด้านซ้าย
การแปลภาษาพื้นฐานบางส่วน:
- GOSUB = รูทีนย่อย (ต้องตามด้วยความต้องการในโค้ด)
- If.. Else = ระบุกลุ่มของรหัสที่ควรดำเนินการ หากเงื่อนไขเป็นจริง และดำเนินการคำสั่งหากเงื่อนไขเป็นเท็จ
รหัส:
' {$แสตมป์ BS2}
' {$PBASIC 2.5} '****************************************** ******************************** 'รีเซ็ตรหัสเริ่มต้นใหม่' ใช้ปุ่มรีเซ็ตเพื่อหยุดและเริ่มหุ่นยนต์ '** ******************************************************** *********************** temp VAR Byte 'ที่เก็บชั่วคราว RunStatus DATA $00 'ตัวแปรที่เก็บไว้ใน ROM READ RunStatus, temp ' อ่านตัวแปรจาก ROM temp = ~ temp 'กลับค่า 0 เป็น 1 หรือ 1 ถึง 0 เขียน RunStatus, temp 'เขียนตัวแปรกลับไปที่ ROM IF (temp>0) แล้ว END 'ตรวจสอบว่าค่าเป็น 1' ถ้าใช่ ให้สิ้นสุดโปรแกรม PAUSE 3000 'Pause to allow ให้คุณขยับ ' มือของคุณเมื่อคุณกดรีเซ็ต '****************************************** ************************************ '************* ******************************************************** *********** 'พินและค่าคงที่' ใช้เพื่อทำให้การเขียนโปรแกรมง่ายขึ้น '***************************** *************************************************** 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 เลี้ยวซ้าย90 CON 90 เลี้ยวขวา90 CON 90 '************************************ ******************************************* '************ ******************************************************** ************** 'ตัวแปร' ใช้เพื่อทำให้การเขียนโปรแกรมง่ายขึ้น '**************************** *************************************************** MLoopC VAR Word 'สำหรับ..ตัวแปรถัดไปสูงสุด 65000ish sideCount VAR Byte turnAngle VAR Word '************************************ ******************************************** '----------- -------------------------------------------------- -------------- 'รหัสหลัก' ---------------------------------- ----------------------------------------- DO IF IN10 = 0 แล้ว 'ถ้า เสียบสายในพิน 10 แล้วเลี้ยวซ้าย GOSUB LeftTurn90 GOSUB LFastRev GOSUB RFastRev ELSEIF IN11 = 0 จากนั้น 'หากสายในพิน 11 เปิดอยู่ ให้เลี้ยวขวา GOSUB RightTurn90 GOSUB LFastRev GOSUB RFastRev ENDIF GOSUB ForwardFast 'เลื่อนไปข้างหน้าหนึ่งวงพัลส์' - ---------------------------------- ------------------------------------- '**สิ้นสุดรหัสหลัก****** ************************************************ '- -------------------------------------------------- --------------------- '********************************** ******************************************** '** กิจวัตรย่อย / ขั้นตอนย่อย / วิธีการ ***************************** '*********** ******************************************************** *********** '****************************************** ******************************* '****************** ******************************************************** ******* RightTurn90: ' Subprocdure เพื่อเลี้ยวขวา 90 องศา '************************************ ************************************* สูง 1 ต่ำ 0 สำหรับ MLoopC = 1 ถึง 22 PULSOUT LMOTOR, Lfast 'เลื่อนไปข้างหน้าหนึ่งพัลส์ PULSOUT RMOTOR, RfastRev' โดยใช้พินและค่าคงที่ PAUSE 20 ' 20mS ช่วยให้หุ่นยนต์เคลื่อนที่ NEXT ' ก่อน NEXT pulse RETURN '********************** ******************************************************** * LeftTurn90: ' ขั้นตอนย่อยเพื่อเลี้ยวขวา 90 องศา '** ******************************************************** ******************* สูง 0 ต่ำ 1 สำหรับ MLoopC = 1 ถึง 22 PULSOUT LMOTOR, LfastRev 'เลื่อนไปข้างหน้าหนึ่งพัลส์ PULSOUT RMOTOR, Rfast' โดยใช้พินและค่าคงที่ PAUSE 20 ' 20mS ช่วยให้หุ่นยนต์เคลื่อนที่ NEXT ' ก่อน NEXT pulse RETURN '***************************************** ********************************* ForwardFast: ' Subprocedure เพื่อเคลื่อนหุ่นยนต์ไปข้างหน้าอย่างรวดเร็วหนึ่งตาราง'**** ******************************************************** ***************** สำหรับ MLoopC = 1 ถึง 55 PULSOUT LMOTOR, LFast PULSOUT RMOTOR, RFast PAUSE 20 NEXT RETURN '**************** ******************************************************** ****** ReverseTurnLeft: 'ขั้นตอนย่อยในการย้อนกลับและหมุนหุ่นยนต์ไปทางซ้ายเมื่อชนกันชนด้านขวา'****************************** ******************************************* สำหรับ MLoopC = 1 ถึง 55 PULSOUT LMOTOR, LSlowRev PULSOUT RMOTOR, RFastRev PAUSE 20 NEXT RETURN '**************************************** ********************************* ReverseTurnRight: 'Subproce ขณะถอยหลังและหมุนหุ่นยนต์ไปทางขวาเมื่อชนกันชนด้านซ้าย '************************************ ************************************* สำหรับ MLoopC = 1 ถึง 55 PULSOUT LMOTOR, LFastRev PULSOUT RMOTOR, RSlowRev PAUSE 20 ผลตอบแทนครั้งต่อไป '**************************************************** ************************* 'สิ้นสุดเส้นทางย่อย'********************** ******************************************************** *
ขั้นตอนที่ 3: ขั้นตอนที่ 3: การใช้อลูมิเนียมฟอยล์และแท่งไอติมสำหรับกันชนลวด
ก่อนที่คุณจะเริ่มขั้นตอนนี้ ตรวจสอบให้แน่ใจว่าสายไฟ 4 เส้นจากเขียงหั่นขนม (ดูขั้นตอนที่ 1) ถูกแบ่งออกเป็นคู่ โดยแต่ละคู่จะควบคุมกันชนด้านขวาหรือด้านซ้าย ไฟ LED ทำงานในสถานการณ์นี้เพื่อตรวจสอบว่ารหัสมีผลกับกันชนด้านขวาและด้านซ้ายหรือไม่ บนแท่งไอติม ลวดหนึ่งเส้นจากแต่ละคู่จะใช้ปลายด้านหนึ่งของแท่งไอติม (ซึ่งหมายความว่าสายของคู่เดียวกันไม่สามารถอยู่บนกันชนเดียวกันได้)
ตัดกระดาษฟอยล์สี่เหลี่ยมเล็ก ๆ 4 อันแล้วใช้อันหนึ่งพันลวดรอบปลายไม้ไอติมสองแท่งแต่ละอัน สิ่งนี้จะเพิ่มพื้นที่ผิวของการนำของแท่งไอติมรวมทั้งให้พื้นที่ผิวที่มากขึ้นสำหรับแท่งที่จะสัมผัส
ในการเก็บฟอยล์และสายไฟไว้กับแท่งไอติม ให้ใช้คลิปหนีบกระดาษ 1-2 คลิปยึดวัสดุเข้าด้วยกัน คลิปหนีบกระดาษยังช่วยให้เข้าถึงแท่งไอติมได้มากขึ้นโดยปราศจากการรบกวนจากภายนอกมากนัก เลื่อนคลิปหนีบกระดาษเหนือแท่งไอติมแบบเดียวกับที่คุณทำกับกองกระดาษปกติ ทำซ้ำสำหรับกระดาษฟอยล์ทั้งสี่ชิ้นและปลายแต่ละด้านของแท่งไอติมทั้งสองแท่ง
ขั้นตอนที่ 4: ขั้นตอนที่ 4: การประกอบส่วนที่เหลือของกันชน
เมื่ออลูมิเนียมฟอยล์และคลิปหนีบกระดาษสามารถเก็บสายไฟที่ติดอยู่กับแท่งไอติมแต่ละแท่งแล้ว ให้ตัดฟองน้ำก้อนเล็กๆ สองก้อนแล้วทากาวแต่ละก้อนระหว่างแท่ง (ที่ปลายสุดของแต่ละแท่งเพื่อไม่ให้กาวร้อนติดกาว การนำไฟฟ้าของโลหะ ฟองน้ำช่วยให้แน่ใจว่ากันชนมีการสัมผัสทุกครั้งที่หุ่นยนต์ชนกับผนัง
ไม่บังคับ: ตัดแท่งไอติมพิเศษครึ่งหนึ่งแล้วกาวให้เป็นมุมที่ปลายกันชนแท่งไอติมด้านนอก ซึ่งช่วยเสริมแรงกระแทกของกันชนที่ชนกำแพงและเลี้ยว
อย่าลืมดัดสายไฟเพื่อให้กันชนโค้งออกไปทางด้านหน้าของบอทบอท
แนะนำ:
Romeo: Una Placa De Control Arduino Para Robótica Con Driver Incluidos - Robot Seguidor De Luz: 26 ขั้นตอน (พร้อมรูปภาพ)
โรมิโอ: Una Placa De Control Arduino Para Robótica Con Driver Incluidos - Robot Seguidor De Luz: Que tal amigos, siguiendo con la revisiones de placas y sensores, con el aporte de la empresa DFRobot, hoy veremos una placa con prestaciones muy interesante, เหมาะที่สุดสำหรับ el desarrollo de prototipos robóticos y el control de motores y servos, d
อุปสรรคในการหลีกเลี่ยง LEGO Robot: 8 ขั้นตอน (พร้อมรูปภาพ)
อุปสรรคในการหลีกเลี่ยงหุ่นยนต์ LEGO: เรารัก LEGO และเราก็รัก Crazy Circuits เช่นกัน ดังนั้นเราจึงต้องการรวมหุ่นยนต์สองตัวนี้เป็นหุ่นยนต์ที่เรียบง่ายและสนุกสนานที่สามารถหลีกเลี่ยงการชนกำแพงและวัตถุอื่นๆ เราจะแสดงให้คุณเห็นว่าเราสร้างของเราอย่างไร และร่างพื้นฐานที่จำเป็นเพื่อให้คุณสามารถสร้างของคุณเองได้
Joy Robot (โรโบ ดา อาเลเกรีย) - Open Source 3D Printed, Arduino Powered Robot!: 18 Steps (พร้อมรูปภาพ)
Joy Robot (Robô Da Alegria) - Open Source 3D Printed, Arduino Powered Robot!: รางวัลที่หนึ่งในการประกวด Instructables Wheels รางวัลที่สองในการประกวด Instructables Arduino และรองชนะเลิศใน Design for Kids Challenge ขอบคุณทุกคนที่โหวตให้เรา!!! หุ่นยนต์มีอยู่ทุกที่ ตั้งแต่งานอุตสาหกรรมไปจนถึงคุณ
เพลง Reactive RGB LED Strip พร้อมรหัส - WS1228b - การใช้ Arduino & โมดูลไมโครโฟน: 11 ขั้นตอน
เพลง Reactive RGB LED Strip พร้อมรหัส | WS1228b | การใช้ Arduino และโมดูลไมโครโฟน: การสร้างแถบไฟ LED แบบรีแอกทีฟ WS1228B โดยใช้ Arduino และโมดูลไมโครโฟน ส่วนที่ใช้: Arduino WS1228b เซ็นเซอร์เสียงแถบ LED เขียงหั่นขนมจัมเปอร์ 5V 5A พาวเวอร์ซัพพลาย
เครื่องอ่าน AVR/Arduino RFID พร้อมรหัส UART ใน C: 4 ขั้นตอน
เครื่องอ่าน RFID AVR/Arduino พร้อมรหัส UART ใน C: RFID เป็นที่นิยม พบได้ทุกที่ ตั้งแต่ระบบสินค้าคงคลังไปจนถึงระบบป้าย ID หากคุณเคยไปที่ห้างสรรพสินค้าและเดินผ่านสิ่งที่ดูเหมือนเครื่องตรวจจับโลหะที่จุดเข้า/ออก แสดงว่าคุณเคยเห็น RFID แล้ว มีหลาย