สารบัญ:

ทำ Robot Bumpers (พร้อมรหัส): 4 ขั้นตอน
ทำ Robot Bumpers (พร้อมรหัส): 4 ขั้นตอน

วีดีโอ: ทำ Robot Bumpers (พร้อมรหัส): 4 ขั้นตอน

วีดีโอ: ทำ Robot Bumpers (พร้อมรหัส): 4 ขั้นตอน
วีดีโอ: Best Off Road Robot Chassis with 4 Wheel Drive - How to build an Off Road Robot 2024, กรกฎาคม
Anonim
ทำกันชนหุ่นยนต์ (พร้อมรหัส)
ทำกันชนหุ่นยนต์ (พร้อมรหัส)

คำแนะนำนี้จะแนะนำผู้อ่านเกี่ยวกับวิธีการสร้างและเขียนโค้ดกันชนบน Boe-bot ที่จะสามารถนำทางผ่านเขาวงกตในขณะที่ตรวจจับสิ่งกีดขวาง การเขียนโค้ดสำหรับโครงการนี้ทำได้โดยใช้ซอฟต์แวร์การเขียนโปรแกรม BASIC Stamp และหุ่นยนต์ Boe-Bot และจำเป็นต้องมีความเข้าใจพื้นฐานเกี่ยวกับวงจรและการเขียนโปรแกรมจึงจะประสบความสำเร็จในการสร้างบัมเปอร์เหล่านี้

เสบียง

ในการสร้างบัมเปอร์เหล่านี้ คุณจะต้อง:

- หุ่นยนต์โบบอท

- ซอฟต์แวร์เขียนโปรแกรมแสตมป์พื้นฐาน

- ไอติมแท่ง

- ฟองน้ำ

- อลูมิเนียมฟอยล์

- คลิปหนีบกระดาษ

- สายไฟยาวพอประมาณ 8 เส้น (อย่างน้อย 6 นิ้ว)

- ไฟ LED 2 ดวง

- ตัวต้านทานสีน้ำตาล-ดำ-เหลือง 2 ตัว

- ตัวต้านทานสีแดง-แดง-น้ำตาล 2 ตัว

- เทปกาวร้อน (หรือกาวที่คล้ายกัน)

- แบตเตอรี่สำหรับ Boe-Bot. ของคุณ

ขั้นตอนที่ 1: ขั้นตอนที่ 1: การสร้างวงจร

ขั้นตอนที่ 1: การสร้างวงจร
ขั้นตอนที่ 1: การสร้างวงจร
ขั้นตอนที่ 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: การใช้อลูมิเนียมฟอยล์และแท่งไอติมสำหรับกันชนลวด

ขั้นตอนที่ 3: การใช้อลูมิเนียมฟอยล์และแท่งไอติมสำหรับกันชนลวด
ขั้นตอนที่ 3: การใช้อลูมิเนียมฟอยล์และแท่งไอติมสำหรับกันชนลวด
ขั้นตอนที่ 3: การใช้อลูมิเนียมฟอยล์และแท่งไอติมสำหรับกันชนลวด
ขั้นตอนที่ 3: การใช้อลูมิเนียมฟอยล์และแท่งไอติมสำหรับกันชนลวด
ขั้นตอนที่ 3: การใช้อลูมิเนียมฟอยล์และแท่งไอติมสำหรับกันชนลวด
ขั้นตอนที่ 3: การใช้อลูมิเนียมฟอยล์และแท่งไอติมสำหรับกันชนลวด
ขั้นตอนที่ 3: การใช้อลูมิเนียมฟอยล์และแท่งไอติมสำหรับกันชนลวด
ขั้นตอนที่ 3: การใช้อลูมิเนียมฟอยล์และแท่งไอติมสำหรับกันชนลวด

ก่อนที่คุณจะเริ่มขั้นตอนนี้ ตรวจสอบให้แน่ใจว่าสายไฟ 4 เส้นจากเขียงหั่นขนม (ดูขั้นตอนที่ 1) ถูกแบ่งออกเป็นคู่ โดยแต่ละคู่จะควบคุมกันชนด้านขวาหรือด้านซ้าย ไฟ LED ทำงานในสถานการณ์นี้เพื่อตรวจสอบว่ารหัสมีผลกับกันชนด้านขวาและด้านซ้ายหรือไม่ บนแท่งไอติม ลวดหนึ่งเส้นจากแต่ละคู่จะใช้ปลายด้านหนึ่งของแท่งไอติม (ซึ่งหมายความว่าสายของคู่เดียวกันไม่สามารถอยู่บนกันชนเดียวกันได้)

ตัดกระดาษฟอยล์สี่เหลี่ยมเล็ก ๆ 4 อันแล้วใช้อันหนึ่งพันลวดรอบปลายไม้ไอติมสองแท่งแต่ละอัน สิ่งนี้จะเพิ่มพื้นที่ผิวของการนำของแท่งไอติมรวมทั้งให้พื้นที่ผิวที่มากขึ้นสำหรับแท่งที่จะสัมผัส

ในการเก็บฟอยล์และสายไฟไว้กับแท่งไอติม ให้ใช้คลิปหนีบกระดาษ 1-2 คลิปยึดวัสดุเข้าด้วยกัน คลิปหนีบกระดาษยังช่วยให้เข้าถึงแท่งไอติมได้มากขึ้นโดยปราศจากการรบกวนจากภายนอกมากนัก เลื่อนคลิปหนีบกระดาษเหนือแท่งไอติมแบบเดียวกับที่คุณทำกับกองกระดาษปกติ ทำซ้ำสำหรับกระดาษฟอยล์ทั้งสี่ชิ้นและปลายแต่ละด้านของแท่งไอติมทั้งสองแท่ง

ขั้นตอนที่ 4: ขั้นตอนที่ 4: การประกอบส่วนที่เหลือของกันชน

ขั้นตอนที่ 4: การประกอบส่วนที่เหลือของกันชน
ขั้นตอนที่ 4: การประกอบส่วนที่เหลือของกันชน
ขั้นตอนที่ 4: การประกอบส่วนที่เหลือของกันชน
ขั้นตอนที่ 4: การประกอบส่วนที่เหลือของกันชน
ขั้นตอนที่ 4: การประกอบส่วนที่เหลือของกันชน
ขั้นตอนที่ 4: การประกอบส่วนที่เหลือของกันชน
ขั้นตอนที่ 4: การประกอบส่วนที่เหลือของกันชน
ขั้นตอนที่ 4: การประกอบส่วนที่เหลือของกันชน

เมื่ออลูมิเนียมฟอยล์และคลิปหนีบกระดาษสามารถเก็บสายไฟที่ติดอยู่กับแท่งไอติมแต่ละแท่งแล้ว ให้ตัดฟองน้ำก้อนเล็กๆ สองก้อนแล้วทากาวแต่ละก้อนระหว่างแท่ง (ที่ปลายสุดของแต่ละแท่งเพื่อไม่ให้กาวร้อนติดกาว การนำไฟฟ้าของโลหะ ฟองน้ำช่วยให้แน่ใจว่ากันชนมีการสัมผัสทุกครั้งที่หุ่นยนต์ชนกับผนัง

ไม่บังคับ: ตัดแท่งไอติมพิเศษครึ่งหนึ่งแล้วกาวให้เป็นมุมที่ปลายกันชนแท่งไอติมด้านนอก ซึ่งช่วยเสริมแรงกระแทกของกันชนที่ชนกำแพงและเลี้ยว

อย่าลืมดัดสายไฟเพื่อให้กันชนโค้งออกไปทางด้านหน้าของบอทบอท

แนะนำ: