ฉันจะรวมสมาร์ทโฟนเข้ากับโครงการวิทยาการหุ่นยนต์ได้อย่างไร [ปิด]


24

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

อุปสรรคหลักที่ฉันเห็นคือการเชื่อมต่อกับแอคทูเอเตอร์ ความสามารถในการควบคุมมอเตอร์เพื่อควบคุมแม้แต่หุ่นยนต์บนโต๊ะหรือควบคุมเซอร์โวเป็นต้น การเชื่อมต่อและสื่อสารกับไมโครคอนโทรลเลอร์อาจเป็นอุปสรรคเช่นกัน

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


เพียงเพิ่มตัวเลือก iOS ให้ดู SESO iPhone เป็นตัวควบคุมหุ่นยนต์
Greenonline

คำตอบ:


19

Android อุปกรณ์เสริม Development Kit (ADK)ควรจะทำทุกอย่างที่คุณต้องการ

ADK

เป็นบอร์ด Arduino ที่ออกแบบมาเพื่อโต้ตอบกับ Android โดยเฉพาะ คุณสามารถเชื่อมต่อทั้งสองผ่านบลูทู ธ หรือ USB (หรือ WiFi / อีเธอร์เน็ตฉันคิดว่า)

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

จากบล็อก Arduino :

Kit การพัฒนาอุปกรณ์เสริม Android Open (ADK) ให้การใช้งานอุปกรณ์เสริม Android USB ซึ่งใช้แพลตฟอร์ม Arduino ต้นแบบอิเล็กทรอนิกส์แบบโอเพ่นซอร์ส Arduino ไฟล์ออกแบบฮาร์ดแวร์ของอุปกรณ์เสริมรหัสที่ใช้เฟิร์มแวร์ของอุปกรณ์เสริมและแอปพลิเคชัน Android ที่ทำงานร่วมกับ อุปกรณ์ ไฟล์และรหัสการออกแบบฮาร์ดแวร์มีอยู่ในการดาวน์โหลดแพ็คเกจ ADK

ตัวอย่างส่วนใหญ่ได้รับการออกแบบโดยใช้โทรศัพท์เป็นอินเตอร์เฟสแบบกราฟิกสำหรับอุปกรณ์ฮาร์ดแวร์บางประเภทเช่นนาฬิกา แต่ไม่มีเหตุผลที่คุณไม่สามารถเข้าถึงเซ็นเซอร์ของโทรศัพท์ได้เช่นกันและส่งผ่านข้อมูลไปมา

Adafruit ยังกล่าวถึงการใช้มันเพื่อสร้างหุ่นยนต์ในหน้าร้านค้าของพวกเขาสำหรับ ADK:

ติดตามการพัฒนาฮาร์ดแวร์โทรศัพท์ Android ของคุณอย่างรวดเร็วหรือเพียงออกแบบ หุ่นยนต์โทรศัพท์มือถือด้วย Arduino ADK! Arduino ADK เป็นบอร์ดไมโครคอนโทรลเลอร์ที่ใช้ ATmega2560 (แผ่นข้อมูล) ที่ทรงพลัง มีอินเทอร์เฟซโฮสต์ USB เพื่อเชื่อมต่อกับโทรศัพท์ที่ใช้ Android และตัวแปลงเพิ่มแหล่งจ่ายไฟเพื่อชาร์จโทรศัพท์จากพลังงาน DC ในขณะที่เสียบเข้ากับ ADK

(เน้นที่เหมือง)


11

ตัวเลือกอื่นคือบอร์ด IOIO-OTG :

บอร์ด IOIO-OTG

รายละเอียดของสินค้า Sparkfunอธิบายการทำงานของมัน

มันมีไมโครคอนโทรลเลอร์ PIC ซึ่งทำหน้าที่เหมือนบริดจ์ที่เชื่อมต่อแอพบนพีซีหรืออุปกรณ์ Android ของคุณไปยังอุปกรณ์ต่อพ่วงระดับต่ำเช่น GPIO, PWM, ADC, I2C, SPI และ UART ไลบรารีระดับแอปช่วยให้คุณเขียนรหัสควบคุมสำหรับอุปกรณ์ต่อพ่วงระดับต่ำในแบบเดียวกับที่คุณเขียนแอป Java อื่น ๆ !

บอร์ดนี้ควรทำทุกอย่างที่คุณต้องการและมีการสอนที่ดีเพื่อช่วยให้คุณเริ่มต้นได้


6

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

ตัวเลือกแรกที่ฉันเห็น (แม้ว่าจะค่อนข้างใหญ่) คือการใช้ Raspberry Pi เชื่อมต่อผ่านอีเธอร์เน็ตกับเราเตอร์ไร้สายและเชื่อมต่อโทรศัพท์เข้ากับไร้สายเดียวกัน ตอนนี้เพียงแค่เขียนแอพพื้นฐานสำหรับโทรศัพท์ของคุณที่ส่งคำขอไปยัง Pi ตามอินพุตและเขียนเซิร์ฟเวอร์อื่นเช่นแอปสำหรับ Pi ที่จัดการสิ่งเหล่านี้ อาจมีขนาดใหญ่และค่อนข้างยาก แต่ก็สามารถขยายได้ค่อนข้าง IMO คุณยังสามารถใส่เราเตอร์ offboard และติดสิ่งนี้ลงใน Pi (หรือใช้ฮอตสปอตและกำจัดเราเตอร์ทั้งหมด)

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

หากคุณเคยใช้ XBee / ZigBee ก่อนคุณอาจต้องการที่จะลองผึ้งบลูทู

ตัวเลือกสุดท้ายคือการใช้พอร์ต USB ของโทรศัพท์ด้วยการตั้งค่าการควบคุมแบบไร้สาย (XBee / อะไรก็ตาม) - แต่สิ่งนี้จะต้องใช้หนึ่งในการเขียนไดรเวอร์และทั้งหมด


5

ใช่การขาดพิน GPIO บนสมาร์ทโฟนเป็นเรื่องน่าละอาย หากคุณมี ROS ทำงานอยู่บนหุ่นยนต์คุณสามารถใช้แอพนี้บนโทรศัพท์ Android เพื่อเข้าถึงชุดเซ็นเซอร์บนโทรศัพท์


4

อุปกรณ์ Android ล่าสุดหลายรุ่นเช่น Nexus 7 รองรับ USB On The Go (OTG) ซึ่งเป็นวิธีแฟนซีในการพูดว่ารองรับ 'USB Host Mode' ในกรณีเหล่านี้ด้วยสายเคเบิลที่เหมาะสมซึ่งสามารถมีราคาไม่ถึง $ 1 อุปกรณ์ USB ใด ๆ ที่ใช้งานร่วมกันได้สามารถใช้งานได้ คุณไม่จำเป็นต้องใช้ Arduino รุ่นพิเศษที่มีฮาร์ดแวร์สำหรับโหมดโฮสต์ USB

ฉันได้ทดลองกับสิ่งนี้มากพอที่จะรู้ว่า Arduino 'ปกติ' เช่น Leonardo หรือ Teensy 2 ปรากฏขึ้นกับโทรศัพท์ Android เป็นอุปกรณ์ TTY (เช่นพอร์ตอนุกรม) เมื่อเชื่อมต่อด้วยสาย OTG

บทความนี้จะกล่าวถึงวิธีการใช้ Android USB Host API เพื่อสื่อสารกับ Arduino จากแอพ Android ต้องใช้ Android 3.1 ขึ้นไปและไม่ต้องการให้คุณรูทอุปกรณ์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.