วันที่ 2: การเพิ่มหน่วย GPS
ใน โพสต์ก่อนหน้า เราได้เชื่อมต่อ Arduino Uno และ Ethernet Shield เข้ากับ Aquabots Client ด้วยสิ่งนี้ ยานพาหนะอัตโนมัติ ของเราสามารถลงทะเบียนตัวเองกับแอปพลิเคชันเซิร์ฟเวอร์ที่ทำงานอยู่บนคลาวด์ได้
วันนี้เราจะเพิ่ม Grove GPS unit เพื่อให้ยานพาหนะสามารถส่งต่อตำแหน่งไปยังเซิร์ฟเวอร์ได้ เราจะใช้ไลบรารี TinyGPS++ สำหรับการนี้ ควบคู่ไปกับไลบรารี Arduino มาตรฐาน SoftwareSerial โดยใช้ขา 2 และ 3 สำหรับ Rx และ Tx
ซอฟต์แวร์ที่ต้องใช้นั้นค่อนข้างเป็นมาตรฐานตามบทเรียน ดังนั้นการนำไปใช้งานจึงเป็นเรื่องง่ายมาก!
หากคุณได้เชื่อมต่อ GPS unit เข้ากับขา 2 และ 3 ของ Grove Base shield แล้ว Arduino จะเริ่มส่งต่อตำแหน่งไปยัง Aquabots Server ทันทีที่ GPS ได้รับสัญญาณ หากคุณเข้าสู่ระบบ คุณสามารถเลือกตัวเลือก 'register vessel' จากปุ่มเมนูได้ หากคุณลงทะเบียนยานพาหนะไว้แล้ว แผนที่ OpenLayer จะข้ามไปยังตำแหน่งของ GPS unit
รายละเอียดทางเทคนิคเพิ่มเติม
การได้มาซึ่งข้อมูลเชิงพื้นที่ (Geospatial Data Acquisition)
ต่อยอดจากแพลตฟอร์ม "Aquabots" วันที่ 2 มุ่งเน้นไปที่การผสานรวมข้อมูลตำแหน่งและเวลาที่แม่นยำเข้ากับหน่วยหุ่นยนต์เคลื่อนที่
- UART NMEA Parsing Engine: Arduino เชื่อมต่อกับ NEO-6M GPS module เฟิร์มแวร์ใช้ไลบรารี
TinyGPS++เพื่อถอดรหัสข้อความ NMEA-0183 ดิบให้เป็น Latitude, Longitude และ HDOP (Horizontal Dilution of Precision) ที่มีความละเอียดสูง - Temporal Synchronization: จับเวลา/วันที่อะตอมจากดาวเทียม GPS เพื่อให้แน่ใจว่าหน่วยหุ่นยนต์มีนาฬิกาภายในที่สมบูรณ์แบบแม้ในขณะที่ไม่ได้เชื่อมต่ออินเทอร์เน็ต
การเชื่อมต่อ (Connectivity)
- Aquabots Client Handshake: ข้อมูล Telemetry จะถูกส่งไปยังซอฟต์แวร์ Aquabots client ทำให้สามารถทำแผนที่ 2D ของเส้นทางหุ่นยนต์และการตรวจสอบความเร็วแบบเรียลไทม์ได้