สารบัญ:

ARCA (Android ควบคุมระยะไกลที่น่ารัก): 4 ขั้นตอน (พร้อมรูปภาพ)
ARCA (Android ควบคุมระยะไกลที่น่ารัก): 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ARCA (Android ควบคุมระยะไกลที่น่ารัก): 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ARCA (Android ควบคุมระยะไกลที่น่ารัก): 4 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: อะไรเอ่ย #สิว #สิวอุดตัน #สิวอักเสบ #สิวเห่อ #รอยสิว #รักษาสิว #เล็บเท้า #satisfying 2024, กรกฎาคม
Anonim
ARCA (แอนดรอยด์ควบคุมระยะไกลที่น่ารัก)
ARCA (แอนดรอยด์ควบคุมระยะไกลที่น่ารัก)
ARCA (แอนดรอยด์ควบคุมระยะไกลที่น่ารัก)
ARCA (แอนดรอยด์ควบคุมระยะไกลที่น่ารัก)
ARCA (แอนดรอยด์ควบคุมระยะไกลที่น่ารัก)
ARCA (แอนดรอยด์ควบคุมระยะไกลที่น่ารัก)

คำแนะนำนี้สร้างขึ้นเพื่อตอบสนองความต้องการของโครงการ Makecourse ที่มหาวิทยาลัยเซาท์ฟลอริดา (www.makecourse.com)

ARCA เป็น Android ที่ควบคุมจากระยะไกลที่น่ารักซึ่งสร้างและเล่นได้อย่างสนุกอย่างไม่น่าเชื่อ เป้าหมายของโครงการนี้คือการสร้างสิ่งที่ทุกคนสามารถเข้าใจและเกี่ยวข้องด้วยการสร้างหุ่นยนต์ที่น่ารักและใช้งานได้จริง

หุ่นยนต์ทำงานโดยแสดงอารมณ์ต่างๆ บนเมทริกซ์ LED ขนาด 8 คูณ 8 อารมณ์เหล่านี้ ได้แก่ ความสุข การนอนหลับ ความรัก ความโกรธ ความโง่เขลา การเงยหน้าขึ้นมอง ซ้ายและขวา หุ่นยนต์ยังทำงานเหมือนรถ RC และสามารถเดินหน้าและเลี้ยวซ้ายหรือขวาได้ หุ่นยนต์เคลื่อนที่ไปข้างหน้าโดยเปิดใช้งานมอเตอร์ล้อทั้งสอง เลี้ยวซ้ายโดยเปิดมอเตอร์ขวา และเลี้ยวขวาโดยเปิดมอเตอร์ด้านซ้าย การออกแบบนั้นเรียบง่ายมาก แต่ใช้งานได้ และฉันต้องการให้ความสำคัญกับการเขียนโปรแกรมของ Arduino เป็นอย่างมาก เนื่องจากฉันเป็นโปรแกรมเมอร์ที่มีหัวใจ

เวอร์ชันล่าสุดของไฟล์ทั้งหมดที่ใช้ในบทช่วยสอนนี้มีอยู่ใน Github ARCA Repository ของฉัน

ขั้นตอนที่ 1: รายการชิ้นส่วนและการพิมพ์ 3 มิติ

รายการชิ้นส่วนและการพิมพ์ 3 มิติ
รายการชิ้นส่วนและการพิมพ์ 3 มิติ
รายการชิ้นส่วนและการพิมพ์ 3 มิติ
รายการชิ้นส่วนและการพิมพ์ 3 มิติ

ชิ้นส่วนสำหรับโครงการนี้สามารถพิมพ์ 3 มิติหรือซื้อทางออนไลน์ก็ได้ เมื่อคิดถึงการประกอบ ฉันต้องการสร้างคีย์ประสิทธิภาพและพยายามไม่สร้างวงล้อขึ้นมาใหม่ (อย่างแท้จริง) เครื่องพิมพ์ 3 มิติที่ใช้สำหรับโครงการนี้คือ Makerbot Replicator หากคุณต้องการให้แน่ใจว่างานพิมพ์ 3 มิติของคุณสอดคล้องกับของฉัน ให้ใช้เครื่องพิมพ์นี้

ส่วนประกอบโครงสร้าง

  • กล่องที่มีรูด้านข้างสำหรับล้อและแขน
  • ฝาปิดกล่องมีรูสำหรับล้อหลังและรูสำหรับเซ็นเซอร์ IR
  • แขนซ้าย
  • แขนขวา
  • เพลาสำหรับสองล้อหลัง
  • คอนเนคเตอร์สองเพลาเพื่อต่อฝาเข้ากับเพลา
  • 4 ล้อ (มอเตอร์รวมอยู่ในลิงค์นี้ด้วย)
  • สกรูขนาดเล็ก (เพื่อให้พอดีกับมอเตอร์)

ส่วนประกอบไฟฟ้า

  • Arduino Uno
  • เขียงหั่นขนมขนาดเล็ก (ฉันซื้อชุด Arduino และมาพร้อมกับมัน)
  • เมทริกซ์ Red Dot MAX7219 สองตัวพร้อมการควบคุม MCU
  • ตัวรับและรีโมทอินฟราเรด
  • ทรานซิสเตอร์ TIP 120 สองตัว
  • การต่อสาย (ฉันใช้สายตัวผู้กับตัวเมียเป็นจำนวนมาก เช่นเดียวกับตัวผู้กับตัวผู้ และแนะนำให้ใส่สายยาวแทนที่จะใช้สายสั้น)
  • ตัวต้านทาน 220 โอห์มหนึ่งตัว
  • มอเตอร์เกียร์ 2 ตัว
  • ชุดจ่ายไฟแบบเชื่อมต่อ USB (ชุดพกพาที่ใช้สำหรับโทรศัพท์มือถือ)

ขั้นตอนที่ 2: การประกอบ

การประกอบ
การประกอบ
การประกอบ
การประกอบ
การประกอบ
การประกอบ

การประกอบโครงสร้าง

ชิ้นส่วนที่พิมพ์ 3 มิติอาจจำเป็นต้องทำความสะอาด และฉันแนะนำให้ขัดด้วยกรวดละเอียดและใช้อะซิโตน (น้ำยาล้างเล็บ) เพื่อขจัดคราบกาวที่ใช้ในกระบวนการพิมพ์ 3 มิติ ชิ้นส่วนบางชิ้นอาจไม่พอดี และจำเป็นสำหรับฉันที่จะขัดแกนให้กลมและเข้ารูอย่างพอดี

ล้อต้องมีการปรับเล็กน้อย จำเป็นต้องเจาะเพิ่มเติมเพื่อให้พอดีกับขนาดของเพลาที่ด้านหลังและสกรูที่ด้านหน้า ใช้ดอกสว่านขนาด 6 มม. เจาะรูในล้อเพื่อเจาะรูที่ใหญ่ขึ้นในล้อ

สำหรับการประกอบนี้ ฉันใช้กาวหลายชนิด แต่ฉันพบว่าคอนกรีตเหลว (กาวจำลอง) เหมาะที่สุดสำหรับการยึดติดแม้จะใช้เวลานานในการทำให้แห้ง แต่อีพ็อกซี่นั้นดีที่สุดสำหรับสิ่งที่คุณต้องทำให้แห้งอย่างรวดเร็วและจับได้ดี แม้จะเลอะเทอะก็ตาม

ส่วนที่เหลือของแอสเซมบลีค่อนข้างตรงไปตรงมา:

  1. ติดตัวยึดแกนเข้ากับด้านหลังของฝาปิดกล่องโดยใช้อีพ็อกซี่เพื่อปิดผนึก
  2. ขับเพลาผ่านตัวยึดเพลา
  3. กาวล้อกับเพลาโดยใช้คอนกรีตเหลว
  4. สอดแขนเข้าไปที่รูด้านบน แล้วทากาวเข้ากับที่ยึดแขนด้วย epoxy
  5. ขันฝากล่องให้เข้าที่
  6. ใช้เทปพันสายไฟที่ด้านล่างของกล่องที่มีล้ออยู่

การประกอบไฟฟ้า

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

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

เขียงหั่นขนมและหมุดถูกตั้งค่าเหมือนภาพ Fritzing นี้ ถ้าคุณต้องการเพิ่มไดอะแกรมนี้เพื่อปรับแต่ง ARCA คุณสามารถดาวน์โหลดไฟล์ Fritzing ในที่เก็บ Github ของฉัน และแก้ไขได้ตามใจคุณ

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

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

ขั้นตอนที่ 3: การเขียนโปรแกรม

การเขียนโปรแกรม
การเขียนโปรแกรม

นี่คือโค้ดที่คุณสามารถอัปโหลดไปยัง ARCA เพื่อให้ทำงานได้เหมือนกับของฉัน คุณต้องใช้ไลบรารีสองไลบรารีต่อไปนี้เพื่อใช้โค้ด

เพื่อความชัดเจนและการปรับแต่ง ฉันจะแนะนำคุณเกี่ยวกับรหัสของฉัน คุณสามารถข้ามขั้นตอนนี้ได้หากคุณไม่ได้ปรับแต่งหุ่นยนต์หรือไม่ได้วางแผนที่จะเปลี่ยนอารมณ์

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

ต่อไป ฉันกำหนดอารมณ์ ประกาศวัตถุที่จำเป็นสำหรับเซ็นเซอร์ IR และจอแสดงผล LED ขนาด 8 x 8 และกำหนดตัวแปรส่วนกลางบางส่วน อารมณ์ถูกประกาศในอาร์เรย์แบบไบต์ โดยที่ตัวเลขฐานสิบหกแต่ละตัวในอาร์เรย์จะแทนแถวในการแสดงผลแบบ 8 คูณ 8 ที่เป็นผลลัพธ์ ในการสร้างอารมณ์ที่กำหนดเอง ฉันแนะนำให้วาดอารมณ์ที่คุณต้องการในตารางขนาด 8 x 8 แล้วเขียนเลขฐานสอง 8 บิตแต่ละแถวโดยที่แสงดับเป็น 0 และแสงบนเป็น 1 แล้วสร้าง เลขฐานสิบหกจากนั้นใส่ในอาร์เรย์ความยาว 8 ฉันได้กำหนดตัวแปรส่วนกลางบางตัวเพื่อใช้ในลูป ตัวแปรสำหรับกลไกการกะพริบและตัวชี้เพื่อเก็บอารมณ์และกำหนดให้เริ่มต้นที่เป็นกลาง

ตอนนี้เรามาถึงการตั้งค่าวนรอบ ซึ่งฉันเปิดการตรวจสอบซีเรียลเพื่อประโยชน์ในการทดสอบ และสิ่งนี้น่าจะเป็นประโยชน์ในการทดสอบโค้ดของคุณด้วยรีโมท IR แบบต่างๆ จากนั้น ฉันเริ่มต้นวัตถุตาซ้ายและขวาโดยใช้ฟังก์ชันจากคลังควบคุม LED ฉันยังตั้งหมุดของมอเตอร์เกียร์เป็นเอาต์พุตและเริ่มตัวรับ IR

ในลูปนั้นโดยพื้นฐานแล้วจะรอให้สัญญาณ IR เปลี่ยนสถานะที่เป็นอยู่ของหุ่นยนต์ ดังนั้นหากได้รับสัญญาณ IR และตรงกับรหัสใดรหัสหนึ่งจากปุ่มใดปุ่มหนึ่ง แสดงว่าหากคำสั่งถูกกระตุ้นและตั้งค่าตาซ้ายและตาขวาตามอารมณ์ หากกดปุ่มเคลื่อนไหว เช่น ซ้าย ขวา ไปข้างหน้า และตกลง หมุดจะถูกเขียนแบบดิจิทัลให้เปิดหรือปิด ทั้งนี้ขึ้นอยู่กับปุ่มที่กด เพียงหมายเหตุเกี่ยวกับรหัสตัวรับสัญญาณ IR: มีโค้ดตัวอย่างในไลบรารีระยะไกล IR ที่จะให้รหัสฐานสิบหกสำหรับรีโมตของคุณ หากไม่มีสิ่งใดเกิดขึ้นเมื่อคุณกดปุ่ม ให้เปิดโปรแกรมนี้เพื่อให้แน่ใจว่ารหัสนั้นถูกต้อง สิ่งที่คุณต้องทำคือเปลี่ยนเลขฐานสิบหกที่ไปกับแต่ละปุ่ม

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

ขั้นตอนที่ 4: เคล็ดลับและเคล็ดลับโบนัส

เคล็ดลับและเคล็ดลับโบนัส
เคล็ดลับและเคล็ดลับโบนัส

มีอะไรหลายอย่างที่ฉันได้เรียนรู้ในระหว่างโครงการนี้ และฉันต้องการแบ่งปันเคล็ดลับเพิ่มเติมที่นี่ ซึ่งใช้ได้กับทั้งโครงการนี้และโครงการอื่นๆ ที่ใช้ Arduino

  • มีแหล่งข้อมูลออนไลน์มากมายสำหรับ Arduino และความคิดของฉันที่เป็นประโยชน์มากที่สุดมาจากเว็บไซต์ Arduino เนื่องจากตัวอย่างโค้ดที่ชัดเจนและรัดกุม
  • อย่าสร้างวงล้อขึ้นมาใหม่ มีชุดอุปกรณ์และชิ้นส่วนที่สร้างไว้ล่วงหน้าจำนวนมากที่คุณสามารถใช้เพื่อทำให้โครงการของคุณง่ายขึ้น ฉันเป็นโปรแกรมเมอร์และไม่ใช่วิศวกรเครื่องกล และฉันมีช่วงเวลาที่ยากลำบากในการพยายามคิดหาวิธีที่จะทำให้หุ่นยนต์ตัวนี้เป็นไปในทางที่ดีขึ้น แต่มันง่ายที่จะหาของที่จะซื้อทางออนไลน์และนำไปปรับใช้ในการออกแบบของฉัน เมื่อเทียบกับการคิดค้นนวัตกรรมใหม่อย่างแท้จริง ล้อ
  • ไลบรารี่คือเพื่อนของคุณใน Arduino เช่นเดียวกับในภาษาเชิงวัตถุทั้งหมดและมีอยู่ด้วยเหตุผล จับคู่สิ่งนี้กับไมโครคอนโทรลเลอร์และตั้งโปรแกรม LED 8 x 8 ได้ง่าย ฉันเคยตั้งโปรแกรมเหล่านี้ด้วยมือมาก่อนและมีเพียงอันเดียวที่ใช้ทุกๆ พินใน Arduino และต้องใช้โค้ดจำนวนมาก ยุ่งมากและไม่ค่อยสนุก
  • เครื่องพิมพ์ 3 มิตินั้นเจ๋งแต่ไม่สมบูรณ์แบบ และไม่เป็นไรที่จะขัดบางอย่าง ด้วยเหตุผลนี้ คุณจึงควรใหญ่กว่านี้เมื่อพิมพ์ 3 มิติ เพราะในกรณีส่วนใหญ่ คุณสามารถขัดมันเล็กน้อยเพื่อให้ได้ขนาดที่พอดี
  • พลังงานอาจเป็นปัญหาได้เพราะฉันคิดว่าการใช้พลังงานในนาทีสุดท้ายและคิดว่าแบตเตอรี่ 5v จะทำได้ ดูเหมือนว่าบางครั้งมอเตอร์หรือจอแสดงผล LED ก็ใช้งานไม่ได้ เมื่อฉันอัปเกรดเป็นพาวเวอร์แพ็คแล้ว ก็ไม่มีปัญหาใดๆ อีก แม้ว่าจะมีขนาดใหญ่ขึ้นภายในหุ่นยนต์ก็ตาม

แนะนำ: