สารบัญ:
- ขั้นตอนที่ 1: เชื่อมต่อเซ็นเซอร์กับ Bast Pro Mini M0
- ขั้นตอนที่ 2: การเข้ารหัส Arduino IDE เป็น Bast Pro Mini M0
- ขั้นตอนที่ 3: 3D Pieces
วีดีโอ: การควบคุมแขนหุ่นยนต์ด้วย TLV493D, จอยสติ๊ก และ Arduino: 3 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:02
ตัวควบคุมทางเลือกสำหรับหุ่นยนต์ของคุณด้วยเซ็นเซอร์ TLV493D เซ็นเซอร์แม่เหล็กที่มีอิสระ 3 องศา (x, y, z) คุณสามารถควบคุมโปรเจ็กต์ใหม่ของคุณด้วยการสื่อสาร I2C บนไมโครคอนโทรลเลอร์และบอร์ดอิเล็กทรอนิกส์ที่ Bast Pro Mini M0 พร้อม ไมโครคอนโทรลเลอร์ SAMD21 บน Arduino IDE
วัตถุประสงค์คือการมีจอยสติกสำรองเพื่อควบคุมโปรเจ็กต์ของคุณ ในกรณีนี้ แขนหุ่นยนต์ที่มีอิสระ 3 องศา ฉันใช้ MeArm Robot Arm นี่เป็นโครงการโอเพ่นซอร์ส และคุณสามารถทำให้มันง่าย และคุณสามารถหาได้ที่นี่ สามารถสร้างแขนควบคุมของคุณเองหรือแอปพลิเคชั่นอื่น ๆ ด้วยความรู้นี้ที่ฉันยินดีที่จะแบ่งปันกับคุณ
ส่วนประกอบอิเล็กทรอนิกส์ทั้งหมดมีลิงก์สำหรับซื้อจากร้านค้า ไฟล์ไปยังเครื่องพิมพ์ 3 มิติ และรหัสสำหรับ Arduino IDE
TLV493D สามารถเป็นจอยสติ๊กได้ เซ็นเซอร์แม่เหล็ก 3 มิติ TLV493D-A1B6 ให้การตรวจจับสามมิติที่แม่นยำพร้อมการสิ้นเปลืองพลังงานที่ต่ำมากในแพ็คเกจ 6 พินขนาดเล็ก ด้วยการตรวจจับสนามแม่เหล็กในทิศทาง x, y และ z เซ็นเซอร์จะวัดการเคลื่อนที่สามมิติ เชิงเส้น และการหมุนได้อย่างน่าเชื่อถือ
แอปพลิเคชันต่างๆ ได้แก่ จอยสติ๊ก องค์ประกอบควบคุม (สินค้าสีขาว ปุ่มมัลติฟังก์ชั่น) หรือมิเตอร์ไฟฟ้า (ป้องกันการปลอมแปลง) และแอปพลิเคชันอื่นๆ ที่ต้องการการวัดเชิงมุมที่แม่นยำหรือใช้พลังงานต่ำ เซ็นเซอร์อุณหภูมิในตัวยังใช้ตรวจสอบความสมเหตุสมผลได้อีกด้วย คุณสมบัติที่สำคัญคือการตรวจจับด้วยแม่เหล็ก 3 มิติโดยสิ้นเปลืองพลังงานต่ำมากระหว่างการทำงาน
เซ็นเซอร์มีเอาต์พุตดิจิตอลผ่านอินเทอร์เฟซ I2C มาตรฐานแบบ 2 สาย สูงสุด 1 MBit/วินาที และความละเอียดข้อมูล 12 บิตสำหรับแต่ละทิศทางการวัด (การวัดสนามเชิงเส้น Bx, By และ Bz สูงสุด +-130mT) TLV493D-A1B6 3DMagnetic เป็นเครื่องแยกชิ้นส่วนแบบแยกส่วน
คุณสามารถเชื่อมต่อกับไมโครคอนโทรลเลอร์ที่คุณเลือกได้อย่างง่ายดายซึ่งเข้ากันได้กับ Arduino IDE และมีระดับลอจิก 3.3V ในโครงการนี้ เราใช้ Electronic Cats breakout และบอร์ดพัฒนาที่จะอธิบายในภายหลัง
electroniccats.com/store/tlv493d-croquette…
ข้อดีของการใช้เซ็นเซอร์ TLV493D คือใช้สายเคเบิลเพียงสองสายที่มี I2C เพื่อรับข้อมูล ดังนั้นจึงเป็นตัวเลือกที่ดีมากเมื่อเรามีหมุดบนการ์ดน้อยมาก และต้องขอบคุณ I2C ที่ทำให้เราสามารถเชื่อมต่อได้มากขึ้น เซ็นเซอร์ คุณสามารถค้นหาที่เก็บสำหรับโครงการนี้ได้ที่นี่ สำหรับโครงการนี้ เราจะใช้จอยสติ๊กที่คุณสามารถพิมพ์บนเครื่องพิมพ์ 3 มิติหรือให้พิมพ์ที่ร้านการพิมพ์ 3 มิติที่ใกล้ที่สุด
ไฟล์. STL ถูกต่อท้ายโปรเจ็กต์ การประกอบนั้นง่ายมาก คุณสามารถดูได้ในวิดีโอ
สร้างหุ่นยนต์ของคุณเอง ในกรณีนี้ ฉันสร้างหุ่นยนต์ Mearm v1 ที่คุณสามารถหาโครงการนี้ได้ในหน้าของผู้แต่งที่นี่
เป็นหุ่นยนต์ที่สร้างและควบคุมได้ง่าย เพราะมีเซอร์โวมอเตอร์ที่ 5 โวลต์ คุณสามารถสร้างหรือใช้หุ่นยนต์ใดก็ได้ตามต้องการ โปรเจ็กต์นี้จะเน้นที่การควบคุมด้วยเซ็นเซอร์ TLV493D
เสบียง:
- x1 Bast Pro Mini M0 ซื้อใน
- x1 รพ.แม่แตง
- x1 วิทยาลัยอาชีวศึกษา
- x20 ดูปองท์เคเบิ้ล
- x1 วิทยาลัยอาชีวศึกษา
- x2 เขื่อนรัชชประภา
- x1 แม่เหล็ก เส้นผ่านศูนย์กลาง 5 มม. x หนา 1 มม.
ขั้นตอนที่ 1: เชื่อมต่อเซ็นเซอร์กับ Bast Pro Mini M0
ในการควบคุมแขนหุ่นยนต์ จะใช้บอร์ดพัฒนา Electronic Cats, Bast Pro Mini M0 พร้อมไมโครคอนโทรลเลอร์ SAMD21E ARM Cortex-M0
ชิปนี้ทำงานที่ 48MHz พร้อมหน่วยความจำการเขียนโปรแกรม 256KB, 32KB SRAM และทำงานที่แรงดันไฟฟ้า 1.6v ถึง 3.6v ด้วยคุณสมบัติเฉพาะของมัน เราจึงสามารถใช้มันเพื่อการบริโภคที่ต่ำพร้อมประสิทธิภาพที่ดีและยังตั้งโปรแกรมด้วย CircuitPython หรือภาษาอื่นๆ ที่อนุญาตให้ไมโครคอนโทรลเลอร์ได้
electroniccats.com/store/bast-pro-mini-m0/
หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติมเกี่ยวกับการ์ดใบนี้ ฉันจะฝากลิงก์ของพื้นที่เก็บข้อมูลไว้ให้คุณ
github.com/ElectronicCats/Bast-Pro-Mini-M0…
เพื่อควบคุมการเคลื่อนที่ของเซอร์โวมอเตอร์ จะใช้เซ็นเซอร์แม่เหล็ก TLV493D ซึ่งจะส่งสัญญาณเพื่อจัดตำแหน่งเซอร์โวมอเตอร์ให้อยู่ในองศาที่สอดคล้องกัน
ด้วยเซ็นเซอร์ตัวเดียว เราสามารถเคลื่อนย้ายเซอร์โวมอเตอร์สองตัว ในตัวอย่างนี้ เราจะใช้เซ็นเซอร์เพียงตัวเดียวและปุ่มกดเพื่อควบคุมกริปเปอร์
ข้อเสนออื่นที่คุณสามารถทำได้คือเพิ่มเซ็นเซอร์ TLV493D อีกตัวหนึ่งแล้วย้ายเซอร์โวมอเตอร์ตัวที่สามและกริปเปอร์ ถ้าคุณทำ ฝากประสบการณ์ของคุณในความคิดเห็น และฉันขอเชิญคุณแบ่งปันโครงการ
ภาพแสดงวงจรติดอาวุธบนโปรโตบอร์ด
- เซอร์โวมอเตอร์ตัวแรกมีไว้สำหรับกริปเปอร์และเชื่อมต่อกับพิน2
- เซอร์โวมอเตอร์ตัวที่สองใช้สำหรับฐานหุ่นยนต์และเชื่อมต่อกับพิน3
- เซอร์โวมอเตอร์ตัวที่สามสำหรับบ่าหุ่นยนต์และเชื่อมต่อกับพิน4
- เซอร์โวมอเตอร์ตัวที่สี่ใช้สำหรับข้อศอกของหุ่นยนต์และเชื่อมต่อกับพิน 5
- ปุ่มกดแรกคือการหยุดการเคลื่อนที่ของหุ่นยนต์และเชื่อมต่อกับพิน 8 แบบดึงลง โดยมีความต้านทาน 2.2Kohms
- ปุ่มกดที่สองใช้สำหรับการเปิดและปิดของกริปเปอร์ และเชื่อมต่อกับพิน 9 ในการดึงลงด้วยความต้านทาน 2.2Kohms
ในภาพวงจร เซ็นเซอร์ TLV493D ไม่ปรากฏขึ้นเนื่องจากไม่ได้ถูกเพิ่มลงใน fritzing แต่มีการเพิ่มขั้วต่อ 4 พินเพื่อจำลองขั้วต่อ VCC, GND, SCL, SDA ในรูปจะเรียงตามลำดับ
- พินแรกเชื่อมต่อกับ 3.3 โวลต์บนบอร์ด
- พินที่สองเชื่อมต่อกับ GND
- พิน SCL ตัวที่สามเชื่อมต่อกับพิน A5 บนบอร์ด
- พิน SDA ที่สี่เชื่อมต่อกับพิน A4 ของบอร์ด
ด้วยข้อได้เปรียบของชิป SAMD21 เราจึงสามารถใช้พินดิจิทัลใดๆ ของมันเป็นเอาต์พุต PWM ได้ ซึ่งจะช่วยให้เราส่งความกว้างพัลส์ที่ถูกต้องเพื่อย้ายเซอร์โวมอเตอร์
ข้อมูลสำคัญอีกชิ้นที่ต้องพิจารณาคือแหล่งจ่ายไฟภายนอกสำหรับเซอร์โวมอเตอร์ ในวงจร คุณจะเห็นขั้วต่อปลั๊กที่เชื่อมต่อกับแหล่งจ่ายไฟ 5 โวลต์ที่แหล่งกำเนิด 2 แอมป์ เพื่อหลีกเลี่ยงไม่ให้บอร์ดโอเวอร์โหลดและทำให้บอร์ดเสียหาย
นอกจากนี้ อย่าลืมรวมสัญญาณทั่วไป GND ของการ์ดและแหล่งสัญญาณภายนอก มิฉะนั้น คุณอาจมีปัญหาในการควบคุมเซอร์โวมอเตอร์เนื่องจากจะไม่มีการอ้างอิงเดียวกัน
ขั้นตอนที่ 2: การเข้ารหัส Arduino IDE เป็น Bast Pro Mini M0
สิ่งแรกคือการติดตั้งการ์ด Bast Pro Mini M0 ใน Arduino IDE ขั้นตอนสามารถพบได้ในที่เก็บ Electronic Cats และมีความสำคัญต่อการใช้งาน
github.com/ElectronicCats/Arduino_Boards_I…
เมื่อคุณพร้อม Arduino IDE แล้ว คุณจำเป็นต้องติดตั้งไลบรารีอย่างเป็นทางการของเซ็นเซอร์ TLV493D เข้าไปที่ https://github.com/Infineon/TLV493D-A1B6-3DMagnet… และไปที่ Releases
ในส่วนแรกของโค้ด ไลบรารีที่ใช้จะถูกประกาศ ในกรณีนี้คือ Servo.h สำหรับเซอร์โวมอเตอร์และ TLV493D.h สำหรับเซนเซอร์
เมื่อใช้ไลบรารี่ของ Servo.h จำเป็นต้องประกาศจำนวนเซอร์โวมอเตอร์ แม้ว่าตอนนี้หุ่นยนต์จะมี 4 ตัว แต่ใช้เพียง 3 ตัวเท่านั้น
มีการประกาศหมุดสำหรับปุ่มกดที่จะหยุดการเคลื่อนที่ของหุ่นยนต์และการเปิดและปิดของกริปเปอร์ มีการประกาศตัวแปรส่วนกลางบางตัวเพื่อรับทราบสถานะของกริปเปอร์และหากมีการเคลื่อนไหว
ในส่วนที่สองของรหัส เราจะแสดงในจอภาพแบบอนุกรมถึงค่าระดับของมอเตอร์ จุดสำคัญอีกประการหนึ่งคือการกำหนดขีด จำกัด องศาในเซอร์โวมอเตอร์ของคุณ ด้วยเหตุนี้จึงใช้ฟังก์ชัน map () เพื่อแปลงค่าการเคลื่อนที่ของเซ็นเซอร์ TLV493D เป็นช่วง 0 ถึง 180 องศาของเซอร์โวมอเตอร์
สำหรับส่วนสุดท้ายของโค้ด จะมีการกำหนดเงื่อนไขเพื่อเปิดใช้งานการเคลื่อนไหวของเซอร์โวมอเตอร์ด้วยปุ่มกด และเพื่อให้ทราบว่ากริปเปอร์อยู่ในสถานะใดสำหรับการเคลื่อนไหวครั้งต่อไปเมื่อกดปุ่มที่สอง ดังที่คุณเห็นในภาพก่อนหน้า โค้ดนี้ไม่ยากที่จะนำไปใช้และทำความเข้าใจ คุณจะพบโค้ดได้ในตอนท้ายของโปรเจ็กต์
คุณกำลังเรียนรู้การใช้ Circuit Python หรือไม่?
หากคุณสนใจที่จะเรียนรู้วิธีใช้ IDE นี้ คุณสามารถค้นหาการ์ด Bast Pro Mini M0 ในลิงก์ต่อไปนี้เพื่อดาวน์โหลด bootloader และเริ่มเขียนโปรแกรมด้วย Python
ขั้นตอนที่ 3: 3D Pieces
หากคุณสนใจที่จะทำโครงการ คุณสามารถดาวน์โหลดชิ้นส่วนใน.stl และพิมพ์ออกมา คุณจะพบไฟล์สำหรับฐานและแกนหมุน
แนะนำ:
DIY MPU-6050 USB จอยสติ๊ก: 5 ขั้นตอน
DIY MPU-6050 USB Joystick: ด้วย Microsoft Flight Simulator 2020 ฉันรู้ได้อย่างรวดเร็วว่าการใช้แป้นพิมพ์เพื่อวางแผนการบินนั้นยากเพียงใด ค้นหาออนไลน์ไม่พบจอยสติ๊กราคาสมเหตุสมผลที่จะซื้อ ร้านค้าปลีกออนไลน์ส่วนใหญ่มีสินค้าหมดสต็อก ความนิยมของเอ็ม
จอยสติ๊ก USB Hall Effect: 7 ขั้นตอน (พร้อมรูปภาพ)
จอยสติ๊ก USB ของ Hall Effect: คำแนะนำนี้แสดงวิธีใช้จอยสติ๊ก Hall Effect ระดับอุตสาหกรรมเพื่อสร้างจอยสติ๊ก USB ที่มีความแม่นยำสูง มีคำแนะนำอื่นที่เกี่ยวข้อง Tiny USB Joystick ที่สามารถให้โซลูชันต้นทุนต่ำได้>
จอยสติ๊ก USB จิ๋ว: 5 ขั้นตอน (พร้อมรูปภาพ)
จอยสติ๊ก USB จิ๋ว: ตัวติดตั้งนี้แสดงวิธีการสร้างจอยสติ๊ก USB ขนาดเล็กที่ง่ายมาก คำแนะนำนี้เกี่ยวข้องกับจอยสติ๊ก USB ของ Hall Effect เพื่อมอบโซลูชันราคาประหยัด
หุ่นยนต์ Arduino พร้อมคอนโทรลเลอร์ PS2 (จอยสติ๊ก PlayStation 2): 10 ขั้นตอน (พร้อมรูปภาพ)
หุ่นยนต์ Arduino พร้อมตัวควบคุม PS2 (จอยสติ๊กของ PlayStation 2): ในบทช่วยสอนนี้ ฉันจะแสดงวิธีใช้จอยสติ๊ก Playstation 2 (PS2) แบบไร้สายเพื่อขับถังหุ่นยนต์ บอร์ด Arduino Uno ถูกใช้เป็นแกนหลักของโครงการนี้ รับคำสั่งจากคอนโทรลเลอร์ไร้สายและตั้งค่าความเร็วของมอเตอร์
จอยสติ๊ก Arduino: 4 ขั้นตอน
Arduino Joysticker: โครงงานนี้เกี่ยวกับวิธีใช้ Arduino กับจอยสติ๊กและจอแอลซีดี