สารบัญ:
- ขั้นตอนที่ 1: ประวัติโดยย่อของ Smart Rabbits
- ขั้นตอนที่ 2: Nabaztag 2.0
- ขั้นตอนที่ 3: Bunny Chop
- ขั้นตอนที่ 4: การพูดและการฟัง
- ขั้นตอนที่ 5: อ่านอย่างกระต่าย
- ขั้นตอนที่ 6: พูดอะไร
- ขั้นตอนที่ 7: หมวกสำหรับ RabbitPi
- ขั้นตอนที่ 8: กล้องและการปรับแต่ง
- ขั้นตอนที่ 9: Cookin' Doc คืออะไร สูตร IFTTT
- ขั้นตอนที่ 10: การประกอบและการทดสอบ
- ขั้นตอนที่ 11: พร้อมกระต่าย?
- ขั้นตอนที่ 12: Nabaztag กลับมาแล้ว
วีดีโอ: RabbitPi - Alexa Enabled, IFTTT Connected, Ear-Wiggling IoT Assistant: 12 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
นี่คือ "กระต่ายอัจฉริยะ" ของ Nabaztag ปี 2005 ที่เลิกใช้แล้ว ซึ่งฉันได้สร้างใหม่เป็นผู้ช่วย IoT ที่ทันสมัยโดยใช้ Raspberry Pi 3 และ Adafruit Motor HAT พร้อมไมโครโฟนเว็บแคมและลำโพง Philips Soundshooter ที่บรรจุอยู่ในเคสสุดน่ารัก ปุ่มเริ่มต้นคำสั่งเสียงโดยใช้บริการเสียง Alexa ของ Amazon อ่านคำตอบผ่านลำโพงในตัว คำสั่งเสียงยังใช้เพื่อเรียกใช้สูตร IFTTT (ถ้าเป็นเช่นนั้น) เพื่อโต้ตอบกับอุปกรณ์ที่เชื่อมต่ออินเทอร์เน็ตอื่น ๆ เช่นซ็อกเก็ตอัจฉริยะและโทรศัพท์มือถือ ไม่พอ? นอกจากจะทริกเกอร์เหตุการณ์ IFTTT แล้ว ยังได้รับผ่าน Gmail โดยใช้เอ็นจิ้นการแปลงข้อความเป็นคำพูดของ Ivona เพื่ออ่านอีเมล ข้อความและการแจ้งเตือนอื่นๆ เช่น การแจ้งเตือนละอองเกสรหรือการแจ้งเตือนจากกล้องรักษาความปลอดภัยภายในบ้าน ฉันพูดถึงมันหรือเปล่า คุณมองเห็นภาพย้อนกลับด้วย LEDS และหูที่ใช้มอเตอร์หรือไม่? โอ้และมีกล้อง V2 Raspberry Pi อยู่ในท้องเพื่ออัปโหลดเซลฟี่ที่สั่งงานด้วยเสียงไปยัง Twitter เป็นการยากที่จะอธิบายความน่ารักของ RabbitPi ด้วยคำพูด ลองดูวิดีโอเพื่อดูการทำงานจริง!
ขั้นตอนที่ 1: ประวัติโดยย่อของ Smart Rabbits
"กระต่ายอัจฉริยะตัวแรก" ของ Nabaztag ดั้งเดิมเปิดตัวในปี 2548 โดยถูกเรียกเก็บเงินเป็นผู้ช่วยในบ้าน (ฟังดูคุ้น ๆ นะ Amazon & Google?) เรียกได้ว่าเป็น "อินเทอร์เน็ตในทุกสิ่ง" อย่างแรกและล้ำหน้ากว่าสมัยในหลาย ๆ ด้าน ฉันซื้อทันที มันนั่งบนหิ้งของเราอ่านพยากรณ์อากาศรายวันและการแจ้งเตือนเป็นครั้งคราว แต่ไม่เคยมีความสามารถมากนักโดยอาศัยการเชื่อมต่อ WEP wi-fi และซอฟต์แวร์และเซิร์ฟเวอร์ที่เป็นกรรมสิทธิ์เพื่อให้บริการแปลงข้อความเป็นคำพูด (TTS) ตอนนี้มันยากที่จะจินตนาการได้ แต่ในขณะนั้นมันเชื่อมต่อได้ไม่มากนัก โซเชียลมีเดียแทบไม่มีเลย Nokia ครองโลกของสมาร์ทโฟน และหลอดไฟ LED เป็นสิ่งแปลกใหม่ที่มีราคาแพง
ในปีต่อๆ ไป มีอีกสองเวอร์ชันตามมาคือ Nabaztag:Tag และ Karotz ทั้งสองมีฟังก์ชันการทำงานที่ปรับปรุงแล้ว แต่ยังไม่พบเฉพาะเจาะจงในตลาด ซึ่งท้ายที่สุดแล้วข้อจำกัดด้านฮาร์ดแวร์และซอฟต์แวร์ก็ลดลง ความอัปยศคือทันทีที่ปิดเซิร์ฟเวอร์ที่สนับสนุน กระต่ายที่ฉลาดก่อนหน้านี้ก็กลายเป็นมากกว่าเครื่องประดับเพียงเล็กน้อย โครงการชุมชนหลายโครงการพยายามเปลี่ยนบริการของเซิร์ฟเวอร์ "อย่างเป็นทางการ" และเราใช้ "OpenKarotz" มาระยะหนึ่งแล้ว แต่สิ่งนี้ก็ดูเหมือนจะตายไปเมื่อหนึ่งหรือสองปีที่แล้ว ปล่อยให้กระต่ายของฉันเงียบและไม่เคลื่อนไหวบนลำโพงของฉัน
บทเรียนประวัติศาสตร์จบลงแล้ว! ผลที่สุดคือเราจำได้ว่ามี Nabaztag ในห้องนั่งเล่นของเราด้วยความรัก และฉันต้องการมันกลับมา แต่เป็นอุปกรณ์ IoT ที่ทันสมัยอย่างเหมาะสม
ขั้นตอนที่ 2: Nabaztag 2.0
ในที่สุดฉันก็ได้รับแรงบันดาลใจที่จะเริ่ม RabbitPi เมื่อฉันอ่านในเดือนมีนาคมว่า Raspberry Pi ได้ให้บริการเสียงของ Amazon Alexa แล้ว - กุญแจสำคัญคือต้องมีปุ่มเพื่อเปิดใช้งาน "การฟัง" ซึ่งพอดีกับ Nabaztag เนื่องจากมีปุ่มกดแบบฟลัชพร้อมส่วนบนของหัวอันเล็กเป็นมันเงา ฉันรื้อกระต่ายของฉันและในไม่ช้าก็ให้รหัส AlexaPi ที่ยอดเยี่ยมของ Sam Machin ทำงานบน Pi 3 ของฉัน ซึ่งเปิดใช้งานโดยกดปุ่มของกระต่าย ณ จุดนี้ฉันรู้สึกฟุ้งซ่านโดยสิ้นเชิงกับการสร้าง AlexaPhone แต่กระโดดกลับลงไปที่ช่องกระต่ายอันชาญฉลาดทันทีที่เสร็จสิ้น ฉันต้องการให้ Nabaztag ที่ปรับปรุงใหม่ของฉันอย่างน้อยก็ฉลาดเท่าต้นฉบับ ดังนั้นฉันจึงต้องการให้:
ทำการค้นหาด้วยเสียงและอ่านผลลัพธ์
อ่านการแจ้งเตือน
ขยับหูและไฟ LED แฟลช
ถ่ายภาพและอนุญาตให้มีการตรวจสอบจากระยะไกล
โต้ตอบกับซ็อกเก็ตอัจฉริยะ หลอดไฟ และอื่นๆ
ขั้นตอนที่ 3: Bunny Chop
งานแรกคือการรื้อ Nabaztag และดูว่าส่วนใดบ้างที่สามารถนำกลับมาใช้ใหม่ได้ หูได้รับการออกแบบให้เปลี่ยนได้และยึดไว้ด้วยแม่เหล็กเท่านั้น จึงทำได้ง่าย และที่ครอบหลักนั้นใช้สกรูสองตัว (รูปสามเหลี่ยมแปลกประหลาด) ยึดไว้เท่านั้น สิ่งนี้เผยให้เห็นวงจรและส่วนประกอบทั้งหมดที่สร้างขึ้นรอบ ๆ เสาพลาสติกตรงกลาง ด้านหนึ่งยึดวงจรหลักและไฟ LED โดยมีลำโพงอยู่อีกด้านหนึ่งและมีมอเตอร์/ปุ่มฝังอยู่ที่เสาที่ด้านบน
เนื่องจากฉันวางแผนที่จะเก็บมอเตอร์ไว้เท่านั้น ฉันจึงตัดสายเคเบิลส่วนใหญ่และเริ่มไขสกรูออก ฉันได้เซอร์ไพรส์จริงๆ ณ จุดนี้! ด้านหลังวงจร "สมอง" ของกระต่ายคือช่องวิ่งตามความสูงทั้งหมดของเสาซึ่งมีการ์ด wi-fi PCMCIA ขนาดเต็ม แบบที่คุณใช้ในแล็ปท็อปเครื่องเก่า ฉันเดาว่าเป็นการออกแบบหรือการประนีประนอมความเข้ากันได้ในขณะนั้น แต่การเปรียบเทียบขนาดกับดองเกิล USB ที่ทันสมัยทำให้บ้านเห็นว่าเทคโนโลยีหดตัวลงมากเพียงใดในระยะเวลา 10 ปี
ส่วนอื่นๆ นั้นถอดออกได้ง่าย เหลือเพียงเสาค้ำพลาสติกเปล่าที่มีพื้นที่เหลือเฟืออยู่รอบๆ หรือไม่
ขั้นตอนที่ 4: การพูดและการฟัง
คุณไม่สามารถมีกระต่ายพูดที่ควบคุมด้วยเสียงได้หากไม่มีลำโพงและไมโครโฟน ดังนั้นสิ่งเหล่านี้จึงเป็นสิ่งแรกที่ฉันแยกแยะออก ฉันไม่ต้องพยายามมาก ดูเหมือนว่า Pi จะมีความยืดหยุ่นมากเกี่ยวกับไมโครโฟน USB และฉันเพิ่งใช้เว็บแคม MSI StarCam Clip รุ่นเก่าสำหรับอินพุต โดยปรับระดับเสียงเป็น Max ในการตั้งค่าเสียง Pi เพื่อประหยัดเนื้อที่ ฉันรื้อเว็บแคมทิ้งเลนส์กล้องและเคส ฉันเจาะรูที่ฐานเพื่อให้ไมโครโฟนทะลุผ่านและเชื่อมต่อกับ USB ของ Pi โดยใช้สายเคเบิลอย่างเรียบร้อยที่สุด
ฉันใช้ลำโพง KitSound MiniBuddy ใน AlexaPhone เนื่องจากได้รับการพิสูจน์แล้วว่าได้ผลจริง ๆ แต่เมื่อไปซื้อของสำหรับโปรเจ็กต์นี้ ฉันพบว่าการออกแบบเปลี่ยนไปและพวกเขาไม่ได้ชาร์จโดยใช้ขั้วต่อ micro-usb อีกต่อไป! ฉันมองไปรอบๆ เพื่อหาสิ่งที่คล้ายคลึงกันและได้เครื่อง Philips SoundShooter ซึ่งเป็นเครื่องขนาดเล็กที่มีลักษณะคล้ายระเบิดมือ ฉันหวังว่ามันจะพอดีกับเคสโดยไม่ต้องรื้อ แต่มันใหญ่เกินไป ไขควงจึงออกมาเพื่อถอดออก ฉันจัดการสแน็ปสายลำโพงในกระบวนการได้ ดังนั้นบัดกรีในสายจัมเปอร์บางตัวเพื่อให้เชื่อมต่อใหม่ได้ง่ายขึ้น ชิ้นส่วนลำโพงนี้ติดกาวร้อนไว้ที่เคสในตำแหน่งเดียวกับลำโพงเดิม โดยยึดวงจรและแบตเตอรี่ไว้ที่ชั้นวางเล็กๆ ข้างใต้
เมื่อมองย้อนกลับไป ฉันหวังว่าฉันจะใช้ความกล้าของแท่นวางลำโพงแบบมีไฟหลักหรืออย่างอื่นแทน เนื่องจากไม่เหมาะที่จะชาร์จลำโพง แต่ถึงกระนั้นก็ใช้งานได้ยาวนานและให้เสียงที่ยอดเยี่ยม และเป็นฝาครอบหลัก ยกออกได้อย่างง่ายดายไม่ใช่ปัญหาการแสดงหยุด
ขั้นตอนที่ 5: อ่านอย่างกระต่าย
ตอนนี้ส่วน Alexa ใช้งานได้แล้ว ฉันจึงดำเนินการแก้ไขปัญหาต่อไป ฉันจะให้กระต่ายอ่านการแจ้งเตือนได้อย่างไร การแปลงข้อความเป็นคำพูดของ Nabaztag ดั้งเดิมนั้นดีอย่างน่าประหลาดใจ แม้ว่าฉันจะจำได้ว่ามันอ่านข้อความบอกเครื่องหมาย (MM) ของฉันเป็น "มิลลิเมตร" และภรรยาของฉัน (CM) เป็น "เซนติเมตร" - ฉันต้องการใช้รูปแบบที่ทันสมัยและ เอ็นจิ้นเสียงธรรมชาติที่จะตีความสิ่งต่าง ๆ เช่นสัญลักษณ์ "&" อย่างถูกต้องและเข้าใจอีโมติคอนง่าย ๆ เช่น:)
เช่นเดียวกับทุกอย่างใน Raspberry Pi มีตัวเลือกต่าง ๆ มากมาย และฉันตรวจสอบหลาย ๆ อย่างก่อนที่จะตัดสินใจเลือก Ivona ซึ่งดูเหมือนจะเป็นเอ็นจิ้นพื้นฐานเดียวกันกับที่บริการของ Alexa ใช้ มันเป็นตัวเลือกที่ดีที่สุดสำหรับฉัน เนื่องจากมีตัวเลือกเสียงและการกำหนดค่าต่างๆ มากมาย - ข้อดีอีกอย่างคือ Zachary Bears ได้จัดทำเครื่องห่อ Python ที่สะดวกสำหรับบริการ Pyvona
ในการเริ่มต้นใช้งาน Ivona คุณต้องตั้งค่าบัญชีนักพัฒนาซอฟต์แวร์ก่อน จากนั้นเช่นเดียวกับการตั้งค่า Alexa คุณจะได้รับข้อมูลประจำตัวเพื่อใช้ในแอปพลิเคชันของคุณ ในกรณีนี้คือสคริปต์สำหรับอ่านการแจ้งเตือน คุณได้รับอนุญาตให้ค้นหา 50,000 ครั้งต่อเดือนด้วยหนึ่งในบัญชีเหล่านี้ ซึ่งเพียงพอสำหรับฉันอย่างแน่นอน
การตั้งค่า Pyvona นั้นตรงไปตรงมามาก ภายในไม่กี่นาที ฉันมีสคริปต์ Python ที่สร้างขึ้นจากตัวอย่างที่ให้มาซึ่งจะอ่านวลีใดๆ ที่ฉันพิมพ์ แต่นั่นเป็นเพียงส่วนหนึ่งของวิธีแก้ปัญหาเท่านั้น - ฉันไม่ต้องการให้ Ivona อ่านแบบฮาร์ดโค้ด ข้อความแต่การแจ้งเตือนที่เข้ามาแบบไดนามิก
ขั้นตอนที่ 6: พูดอะไร
ตอนนี้ฉันมีกระต่าย (เป็นชิ้นๆ อยู่บนม้านั่ง) ที่สามารถพูดได้ แต่มันจำเป็นต้องมีกลไกในการรับการแจ้งเตือนและส่งพวกเขาไปยังบริการ Ivona เพื่ออ่านออก ฉันดูความเป็นไปได้ของการส่งข้อความผ่านบริการออนไลน์หรืออะแดปเตอร์ซิมการ์ด รวมถึง Twitter และ Dropbox สำหรับการส่งสตริง/ไฟล์ข้อความ แต่ในที่สุดก็ตัดสินใจใช้ imaplib ซึ่งเป็นวิธีการโต้ตอบกับบัญชีอีเมล IMAP แบบ Python ฉันตัดสินใจเลือกตัวเลือกนี้เพราะว่ามันรวมเข้ากับบริการ IFTTT ได้ดี คุณจึงสร้างสรรค์รูปแบบอีเมลแจ้งเตือนได้อย่างสร้างสรรค์ นอกจากนี้ยังหมายความว่าฉันสามารถส่งอีเมลไปยัง RabbitPi โดยตรงเพื่อให้อ่านออกเสียงได้
ฉันดูตัวอย่าง imaplib python จำนวนมากทางออนไลน์และหลังจากรวมบิตและชิ้นส่วนและทำงานผ่านเอกสาร imaplib ฉันก็จัดการเพื่อลงเอยด้วยสคริปต์ที่ตรวจสอบ Gmail สำหรับข้อความที่ยังไม่ได้อ่านเป็นระยะ ๆ และพิมพ์ข้อความต่าง ๆ บนหน้าจอขึ้นอยู่กับเนื้อหาของ หัวเรื่องของข้อความ สิ่งนี้มีประโยชน์จริง ๆ เนื่องจากฉันสามารถปรับคำสั่ง "IF" ในโค้ดให้ทำงานได้ก็ต่อเมื่ออีเมลมาจากตัวฉันเอง จากนั้นสลับการทำงาน "พิมพ์" สำหรับโค้ดที่เรียกใช้บริการ Ivona
ฉันใช้เวลาพอสมควรในการปรับรหัส imaplib & Pyvona เพื่ออ่านเนื้อหาอีเมล แต่กลับกลายเป็นว่าซับซ้อนมาก - ฉันได้เรียนรู้ว่าฟิลด์อีเมลหลัก (จาก ถึง หัวเรื่อง ฯลฯ) มีรูปแบบที่ง่ายมาก แต่เนื้อหาของอีเมลนั้นสามารถจัดโครงสร้างได้หลายวิธี ในท้ายที่สุด มันก็ไม่สำคัญหรอก ฉันสามารถบรรลุสิ่งที่ต้องการได้โดยใช้หัวเรื่องอีเมลเป็นฟิลด์ที่จะอ่านข้อความแจ้งเตือน
จากนั้นฉันได้ดัดแปลงตัวอย่างโค้ด imaplib เพื่อที่แทนที่จะหยุดหลังจากตรวจสอบอีเมลทุกครั้ง อีเมลจะวนซ้ำไปเรื่อยๆ อย่างไม่สิ้นสุด ตรวจหาอีเมลสองสามครั้งต่อนาทีและอ่านอีเมลใหม่ๆ เมื่อมาถึง สิ่งนี้มีประโยชน์สำหรับการทดสอบ แต่ในทางปฏิบัติ ฉันอาจจะตรวจสอบให้น้อยลงหน่อย นอกจากนี้ ยังเป็นที่น่าสังเกตว่าสคริปต์จัดเก็บรหัสผ่านเป็นข้อความธรรมดา ดังนั้นจะต้องมีการเข้ารหัสเพิ่มในบางจุด
ฉันแน่ใจ 100% ว่าสิ่งนี้สามารถทำได้อย่างหรูหราและมีประสิทธิภาพมากขึ้นใน Python แต่มันสนุกและท้าทายที่จะทำให้มันใช้งานได้เลย - ฉันยืม "Python for Kids" จากห้องสมุดในสัปดาห์นี้ ดังนั้นโค้ดของฉันจะดีขึ้น เมื่อฉันเรียนรู้มากขึ้น
ด้วยการทำงานของสคริปต์รับอีเมลและอ่านข้อมูลพื้นฐาน ฉันได้เพิ่มโค้ดพิเศษที่จะทำให้หูของกระต่ายเคลื่อนไหวและไฟ LED จะสว่างขณะอ่านการแจ้งเตือน รหัสที่ฉันใช้อยู่บน GitHub แต่โปรดทราบว่าปัจจุบันฉันไม่มีความสามารถ python!
ขั้นตอนที่ 7: หมวกสำหรับ RabbitPi
สิ่งหนึ่งที่โดดเด่นที่สุดเกี่ยวกับ Nabaztag คือวิธีที่มันจะขยับหูเมื่อมีการแจ้งเตือนเข้ามา พวกเขาสามารถตั้งค่าให้อยู่ในทิศทางใดทิศทางหนึ่งโดยการย้ายด้วยตนเองหรือโดยการกำหนดตำแหน่งโดยใช้ซอฟต์แวร์ควบคุม - วัตถุประสงค์ของฉันคือ เพียงเพื่อให้พวกเขาเคลื่อนไหว
ฉันไม่เคยใช้มอเตอร์กับ Raspberry Pi มาก่อน ดังนั้นนี่จึงเป็นหัวข้อการวิจัยใหม่สำหรับฉัน ก่อนอื่นฉันต้องค้นหาว่าฉันกำลังจัดการกับมอเตอร์ประเภทใด ทั้งหมดที่ฉันรู้คือมีมอเตอร์ 2 ตัว แต่ละตัวมีสายไฟ 2 เส้น การอ่านออนไลน์ ฉันได้ข้อสรุปว่าสิ่งเหล่านี้ต้องเป็นมอเตอร์กระแสตรงแบบตรงไปตรงมามากกว่ามอเตอร์แบบสเต็ป ซึ่งเป็นความจริงที่ยืนยันโดย Liana_B ที่สามารถสั่งสอนที่เป็นประโยชน์อย่างน่าอัศจรรย์นี้ได้ ซึ่งฉันหวังว่าจะได้อ่านเมื่อประมาณหนึ่งเดือนก่อนหน้านั้น
ต้องขอบคุณความยืดหยุ่นของ Pi อีกครั้งที่ทำให้สามารถควบคุมมอเตอร์ได้หลายวิธี แต่ฉันตัดสินใจใช้บอร์ด HAT ของ Adafruit DC และ Stepper Motor ฉันเคยใช้หน้าจอและเครื่องประดับเล็กของ Adafruit มาก่อน และฉันชอบคำแนะนำโดยละเอียดและตัวอย่างที่เป็นมาตรฐาน
การใช้บอร์ดที่มีมาตรฐาน HAT (Hardware Attached on Top) หมายความว่าตัวควบคุมมอเตอร์จะพอดีกับด้านบนของ Pi อย่างเป็นระเบียบโดยใช้พื้นที่น้อยที่สุด และเนื่องจากใช้อินเทอร์เฟซ I2C จึงเหลือหมุด GPIO ที่ฉันต้องการสำหรับ Alexa/Clap ปุ่มและไฟ LED
ตามที่คาดไว้การบัดกรี HAT เข้าด้วยกันนั้นตรงไปตรงมาจริงๆ และในไม่ช้าฉันก็ติดตั้งบน PI และเชื่อมต่อกับมอเตอร์หูสองตัว ฉันวางแผนที่จะใช้มอเตอร์จากพาวเวอร์แบงค์ usb เพื่อที่ฉันจะได้ใช้ปลั๊กไฟเพียงอันเดียว แต่กลับกลายเป็นว่าไม่มีเสียงฮึดฮัดเพียงพอ มันจะไม่ทำให้ไฟ LED "กำลังทำงาน" บน HAT สว่างขึ้น ฉันตัดสินใจใช้อะแดปเตอร์จ่ายไฟ DC เพื่อใช้งาน HAT และหูแทน ฉันมีหนึ่งในอุปกรณ์อเนกประสงค์ที่มีคำแนะนำที่เปลี่ยนแทนกันได้ สิ่งที่ฉันไม่มีคือซ็อกเก็ต DC เพื่อเชื่อมต่ออะแดปเตอร์กับ HAT ฉันกำลังจะออกไปที่ Norwich Maplin (อีกครั้ง) เมื่อฉันจำได้จากการรื้อถอนว่าสายไฟดั้งเดิมของ Nabaztag เป็นปลั๊ก DC มาตรฐาน - ดังนั้นฉันจึงสามารถต่อปลั๊กไฟเดิมเข้ากับ HAT ใหม่ได้ - เรียบร้อย! ในท้ายที่สุด ฉันยังใช้แหล่งจ่ายไฟ Nabaztag ดั้งเดิมอีกครั้ง เนื่องจากให้พลังงานในปริมาณที่เหมาะสม
เมื่อทุกอย่างต่อสายและเลือกแรงดันไฟฟ้าที่เหมาะสม ฉันจึงลองใช้ตัวอย่าง python ที่มาพร้อมกับ DC Motor Hat อย่างไม่แน่นอน โค้ดตัวอย่างที่เปลี่ยนความเร็วและทิศทางของมอเตอร์อย่างต่อเนื่องเพื่อแสดงตัวเลือกการควบคุมต่างๆ ฉันตื่นเต้นมากเมื่อได้ทำงาน ซึ่งเป็นมอเตอร์ที่ควบคุมโดย Pi ตัวแรกของฉัน! แต่แล้วฉันก็สังเกตเห็นบางอย่าง - เสียงสะอื้นที่ดังมากจริงๆ เหมือนกับคนที่เอานิ้วเปียกไปรอบๆ แก้วไวน์ สิ่งนี้ไม่ดีเลย ฉันต้องการให้หูขยับในขณะที่กำลังอ่านการแจ้งเตือนและแม้ว่าจะไม่ทำให้เสียงสะอื้นหูหนวกหูก็ตาม ฉันลองใช้แรงดันไฟฟ้าที่แตกต่างกัน แต่ไม่มีการเปลี่ยนแปลง เมื่อหันไปหา Google ฉันพบว่าสิ่งนี้สามารถเกิดขึ้นได้เนื่องจาก PWM (การปรับความกว้างพัลส์) และวิธีแก้ไขหนึ่งวิธีคือการประสานตัวเก็บประจุขนาดเล็กทั่วขั้วของมอเตอร์ มองไปที่มอเตอร์เหล่านี้อยู่แล้ว ฉันยังทดลองด้วยการเปลี่ยนความถี่ PWM แต่ก็ยังไม่มีการเปลี่ยนแปลง หลังจากการทดลองบางอย่าง ฉันก็รู้ว่าเสียงหอนเกิดขึ้นเมื่อความเร็วของมอเตอร์ถูกเปลี่ยนโดยรหัสจากต่ำไปสูงเท่านั้น ดังนั้นการตั้งค่าให้เป็นความเร็วสูงคงที่จะช่วยขจัดเสียงหอนโดยสิ้นเชิง - วุ้ย!
ฉันสร้างสคริปต์ python ทดสอบสองสามตัวตามตัวอย่าง Adafruit อันหนึ่งสำหรับการเคลื่อนไหวระหว่างการแจ้งเตือนและอีกอันเพื่อทำให้หูทำงาน "วงจร" เต็มรูปแบบเมื่อเริ่มต้นโดยมุ่งที่จะคัดลอกโค้ดการทำงานจากสิ่งเหล่านี้ไปยังสคริปต์หลักที่ใช้จัดการกับ การโต้ตอบของ Alexa และ Gmail/Ivona
ขั้นตอนที่ 8: กล้องและการปรับแต่ง
ก่อนเริ่มประกอบ ฉันทดสอบทุกอย่าง เมื่อใดก็ตามที่เป็นไปได้ในโครงสร้างนี้ ฉันใช้สายจัมเปอร์เพื่อเชื่อมต่อส่วนประกอบแต่ละชิ้นเข้าด้วยกัน หากงานสร้างที่ผ่านมาสอนฉันได้ทุกอย่าง ก็ต้องวางแผนสำหรับการรื้อในอนาคต! ฉันยังได้ทำแผนภาพการเชื่อมต่อที่แสดงว่าสายเคเบิลสีใดไปอยู่ที่ไหน สายจัมเปอร์นั้นยอดเยี่ยม แต่บางครั้งก็หลุดออกมาได้ง่ายเมื่ออัดส่วนประกอบเข้าไปในพื้นที่แคบ!
ฉันตัดสินใจค่อนข้างไกลในบิลด์เพื่อรวมโมดูล Pi Camera ด้วย 8MP เวอร์ชัน 2 เพิ่งเปิดตัวและเป็นอย่างอื่นใหม่สำหรับฉันฉันคิดว่ามันจะเป็นส่วนเสริมที่ดี กระต่าย Karotz เวอร์ชันล่าสุดมีเว็บแคมอยู่ในท้องของมัน แต่สิ่งนี้ไม่เคยได้ผลดีเลย ฉันคิดว่ากล้อง Pi น่าจะสนุกสำหรับการถ่ายเซลฟี่ที่สั่งงานด้วยเสียง และอาจถึงกับเฝ้ามองจากระยะไกลหาก Pi สามารถจัดการกับการรันโค้ดได้ที่ ในเวลาเดียวกันกับทุกสิ่งทุกอย่าง
ฉันสร้างขายึดสำหรับกล้องจากแม็กกาโนที่หุ้มด้วยพลาสติกแล้วใส่เข้าไปในเคสก่อน จากนั้นจึงวัดอย่างระมัดระวังถึงตำแหน่งที่ฉันต้องเจาะรูเคาเตอร์ซันค์ของเคส นี่เป็นกรณีของ "วัดสองครั้งตัดครั้งเดียว" อย่างแน่นอนเนื่องจากการเจาะรูผิดที่จะเป็นหายนะ โชคดีที่มันออกมาจากจุดศูนย์กลางและสูงไปหน่อย ดังนั้นฉันจึงสามารถชดเชยได้โดยการเพิ่มแหวนรองระหว่างโครงยึดกล้องกับฐาน
ฉันยังเพิ่มสายไฟ Pimoroni Dual Micro USB ณ จุดนี้ซึ่งทำให้ฉันมีช่องเสียบ micro-usb ที่ดีที่ด้านหลังของเคสและมีปลั๊กไฟตัวที่สอง ฉันตั้งใจจะใช้ปลั๊กเสริมเพื่อชาร์จแบตเตอรี่ของลำโพง และเสียบเข้าไปเพื่อที่ฉันจะได้เชื่อมต่อกับสวิตช์ "ปิดเสียง" ดั้งเดิมของ Nabaztag เพื่อควบคุมการชาร์จ
ขั้นตอนที่ 9: Cookin' Doc คืออะไร สูตร IFTTT
สิ่งมหัศจรรย์เกี่ยวกับการสร้างอุปกรณ์ IoT ในตอนนี้คือจำนวนบริการเว็บที่มีอยู่มากมาย และบริการ IFTTT (ถ้าเป็นอย่างนั้น) ทำหน้าที่ได้อย่างยอดเยี่ยมในการรวมสิ่งเหล่านี้เข้าด้วยกันในแพ็คเกจที่ตรงไปตรงมาและใช้งานได้จริง หากคุณยังไม่ได้ใช้งาน แสดงว่าเป็นบริการออนไลน์ และเมื่อคุณลงชื่อสมัครใช้แล้ว คุณสามารถเชื่อมต่อข้อมูลบนเว็บอื่นๆ ทั้งหมดเข้ากับบริการได้ เช่น Gmail, Facebook, Twitter และ (คุณเดาได้) Amazon Alexa มีบริการมากมายให้เลือก รวมถึงตัวเลือกการควบคุมสำหรับเครื่องใช้ไฟฟ้าอัจฉริยะ เช่น หลอดไฟ เทอร์โมสแตท และซ็อกเก็ต
กฎ IFTTT ถูกตั้งค่าใน "สูตร" - เช่นกฎ Outlook หรือคำสั่ง IF ใน SQL หรือ Visual Basic เช่น ฉันมีสูตรที่ระบุว่า "ถ้ามีคนแท็กฉันในรูปภาพบน Facebook แล้วส่งอีเมลถึงฉัน กับหัวเรื่อง " Holy guacamole [แท็กชื่อบุคคล] เพิ่งแท็กคุณในรูปถ่าย Facebook" - เพราะสิ่งนี้ถูกส่งถึงฉันจากที่อยู่ของฉันเอง RabbitPi จึงอ่านข้อความหัวเรื่อง
การใช้ IFTTT ที่ยอดเยี่ยมอีกประการหนึ่งคือกับบริการเสียงของ Alexa - สำหรับส่วน IF ของสูตร คุณสามารถตั้งค่าวลีได้ เช่น "เลเซอร์" และหากคุณพูดกับ Alexa ว่า "ทริกเกอร์เลเซอร์" เธอจะผ่านคำขอไปที่ IFTTT ซึ่งจะยิงส่วน THEN ของสูตร ในกรณีนี้คือการเปิดใช้งานซ็อกเก็ตระยะไกลที่เชื่อมต่อกับเลเซอร์ดิสโก้
มันยังเหนือกว่า "สิ่งที่ฉลาด" - หากคุณติดตั้ง IFTTT บนโทรศัพท์ของคุณ (ของฉันเป็นเวอร์ชัน Android) คุณสามารถโต้ตอบกับมันได้ทั้งสองทิศทาง สูตรที่ใช้ในวิดีโอคือ: "ถ้าฉันพูดว่า "Trigger Chas & Dave" กับ Alexa จากนั้นเล่นเพลง "Rabbit" เฉพาะบนโทรศัพท์ Android ของฉัน นอกจากนี้ยังทำงานในลักษณะอื่น - แอปควบคุมระยะไกลสากล AnyMote บนโทรศัพท์ของฉันสามารถปรับแต่งได้เพื่อให้ปุ่มเฉพาะที่มีทริกเกอร์ส่วน "IF" ของสูตรอาหาร - ดังนั้นฉันจึงมีปุ่มบนหน้าจอที่เรียกให้ RabbitPi ถ่ายเซลฟี่และอัปโหลดไปที่ Twitter
อีกฟังก์ชันหนึ่งทำให้ RabbitPi อ่านข้อความบนโทรศัพท์ ฉันมีสูตร "ถ้าฉันได้รับข้อความ SMS ใหม่ ให้ส่งอีเมลถึงตัวเองในหัวข้อต่อไปนี้ "เฮ้! [ผู้ส่งข้อความ] พูดว่า [เนื้อหาข้อความ]"
ใช้งานง่าย สนุกมาก และใช้งานได้ดี การแจ้งเตือนจะถูกส่งผ่านไปมาอย่างรวดเร็ว โดยเฉพาะอย่างยิ่งกับสวิตช์ WeMo Insight ที่ฉันมี ซึ่งเกือบจะทันทีทันใด การมี IFTTT และ RabbitPi ทำให้การเชื่อมต่อสิ่งต่างๆ และบริการเป็นไปอย่างตรงไปตรงมา
ขั้นตอนที่ 10: การประกอบและการทดสอบ
มาถึงส่วนที่ยุ่งยากแล้ว - ยัดส่วนประกอบทั้งหมดลงในเคส! ฉันค่อนข้างแน่ใจว่ามันจะเข้ากันได้ดี แต่การประกอบจริงนั้นยุ่งมาก ฉันใช้เครื่องมือผ่าตัดและแหนบให้เกิดประโยชน์เพื่อเจาะสายเคเบิลผ่านช่องว่างเล็ก ๆ
เมื่อทุกอย่างเข้าที่อย่างแน่นหนา ฉันก็เพิ่มฐานรัดสายเคเบิลแบบมีกาวในตัวเพื่อให้สามารถดึงสายไฟหลายๆ เส้นเข้าด้วยกันได้อย่างเป็นระเบียบ สิ่งนี้สำคัญมากเพราะฉันไม่ต้องการถอดปลั๊กออกโดยไม่ได้ตั้งใจเมื่อใส่เคสกลับเข้าที่
ขั้นตอนที่ 11: พร้อมกระต่าย?
เมื่อเสร็จสิ้นด้านอาคารทางกายภาพทั้งหมดแล้ว ก็ถึงเวลา "ตัดสายไฟ" โดยถอด RabbitPi ออกจากสายเคเบิลอีเธอร์เน็ต จอภาพ และแป้นพิมพ์ที่สะดวกสบายในเวิร์กช็อป เพื่อที่ฉันจะได้เขียนโค้ดไปที่อื่นผ่าน SSH (สัญญาณไร้สายคือ อ่อนแอมากในนั้น!)
นั่งอยู่บนโต๊ะในสำนักงานของฉัน ฉันเปิดเครื่องกระต่ายและ - ไม่มีการเชื่อมต่อ Wi-Fi เลย ไม่มีอะไรเลย ฉันรู้ว่าจะต้องมีสัญญาณในขณะที่โทรศัพท์ของฉันทำงานได้ดี - มีปัญหากับอะแดปเตอร์เครือข่ายใน Pi 3 ที่ฉันไม่เคยได้ยินมาก่อนหรือไม่ googling สั้น ๆ บอกฉันว่า Pi 3 จะพบสัญญาณ Wi-Fi เท่านั้นหากเราเตอร์กำลังออกอากาศทางช่อง 1-11 - ของฉันถูกตั้งค่าเป็นช่อง 13! ปรับแต่งเล็กน้อยในภายหลังและเราเชื่อมต่อกัน ถอนหายใจเฮือกใหญ่
ต่อมาก็มาคัดแยกสคริปต์ต่างๆ ประการแรกฉันแก้ไขสคริปต์ main.py ของรหัส AlexaPi เพิ่มบรรทัดพิเศษเพื่อให้ไฟ LED กระพริบเมื่อเริ่มต้น RabbitPi ก็ทำการกระดิกหูที่ดีเช่นกัน ฉันยังแทนที่ข้อความ "สวัสดี" มาตรฐานด้วยเอฟเฟกต์เสียง "โบอิง" ที่ขี้เล่นเพื่อความสนุกสนาน
สคริปต์ที่สองเรียกว่า rabbit.py (SWIDT?) และมีรหัสทั้งหมดสำหรับการดึงข้อความ Gmail และอ่านข้อความด้วย Pyvona ฉันยังเพิ่มโค้ด Twython บางส่วนที่ฉันดัดแปลงมาจากบทช่วยสอน "Tweeting Babbage" ของ Raspberry Pi ทำให้ RabbitPi สามารถถ่ายภาพและอัปโหลดไปยังบัญชี Twitter (@NabazPi) ฉันได้เพิ่มการเคลื่อนไหวของหูและไฟ LED กะพริบเพื่อให้คุณได้เตือนอย่างยุติธรรมเมื่อกำลังจะถ่ายรูป รวมถึงเสียงชัตเตอร์และการยืนยันการอ่านทวีตของ Pyvona
สุดท้ายนี้ ฉันได้เพิ่มคำสั่ง IF ลงในรหัส imaplib gmail เพื่อที่ว่าหากหัวเรื่องอีเมลเป็น "เซลฟี่" RabbitPi จะทำเรื่องเซลฟี่ แต่อย่างอื่นจะอ่านหัวเรื่องอีเมลตามปกติ
รหัสที่ฉันใช้มีอยู่ใน GitHub - โปรดอ่านไฟล์ ReadMe!
เมื่อสัมผัสเสร็จแล้ว ฉันพิมพ์โลโก้ Raspberry Pi ลงบนกระดาษโปร่งใสแล้วติดกาวไว้ในเคส RabbitPi เพื่อให้ไฟ LED สีขาวสำหรับท้องส่องผ่านผิวหนังที่โปร่งแสง
ขั้นตอนที่ 12: Nabaztag กลับมาแล้ว
เมื่อทำทุกอย่างเสร็จแล้ว เหลือเพียงวิดีโอที่จะทำ มันสนุกมากที่ได้นำ RabbitPi ไปไว้ในกล้อง ข้อเสียเพียงอย่างเดียวคือการแก้ไขวิดีโอ HD บนแล็ปท็อปรุ่นเก่าของฉันในภายหลัง สำหรับการแจ้งเตือนบางส่วน (ส่วนใหญ่เป็นข้อความเนื่องจากสัญญาณ Vodafone แย่มาก) ฉันลดการหยุดชั่วคราวระหว่างการดำเนินการและการแจ้งเตือน หรืออาจเป็นวิดีโอที่ยาวและน่าเบื่อ แต่ส่วนใหญ่แสดงความเร็วในการตอบสนองที่แท้จริง
ฉันทดลองโดยใช้เซ็นเซอร์ตบมือเพื่อเรียกใช้บริการ Alexa (ดังที่เห็นในวิดีโอ Snap to it Alexa) แต่ปล่อยให้มันออกจากโครงสร้างสุดท้ายเนื่องจากไม่น่าเชื่อถือเพียงพอเมื่อมีเสียงรบกวนจากพื้นหลัง ฉันรู้ว่าคนจรจัดคนอื่นๆ กำลังทำงานเกี่ยวกับการใช้รีโมท IR, ตัวควบคุม wii และแม้กระทั่งการฟังอย่างกระตือรือร้นด้วยรหัส AlexaPi ดังนั้นจึงมีตัวเลือกมากมายสำหรับอนาคต
ฉันหวังว่าจะเพิ่มวงแหวนนีโอพิกเซล adafruit เพื่อแทนที่ LED ท้องเพราะจะทำให้การแจ้งเตือนด้วยภาพดีขึ้นมาก และฉันต้องการปัจจัยในการ "ปิดเสียง" การแจ้งเตือนด้วยเสียงในเวลากลางคืน ลูกๆ ของฉันก็ให้คำแนะนำที่ดีเช่นกัน และตอนนี้ฉันคุ้นเคยกับ Python มากขึ้นแล้ว เราจะทำงานร่วมกันเพื่อขยายขอบเขตการแจ้งเตือน เช่น เพื่อให้ข้อความยืนยันเซลฟี่ถูกนำมาจากรายการค่าแบบสุ่ม ดังนั้นจึงสามารถสั่งให้กระต่ายพยายามเต้นมาคาเรน่าด้วยหูและไฟ LED ของมันได้
ฉันเพิ่งมี Nabaztag อีกตัวหนึ่งที่นี่ เช่นเดียวกับกระต่าย Karotz รุ่นต่อมา ดังนั้นฉันอาจสร้างอย่างอื่นกับพวกมันได้ - เป็นการดึงดูดที่จะทดลองกับการตรวจสอบระยะไกลและเซ็นเซอร์ทุกชนิด! เป็นแพลตฟอร์มฮาร์ดแวร์ในอุดมคติสำหรับ Pi ที่มีขนาดตัวเครื่อง มอเตอร์ และปุ่มที่สมบูรณ์แบบ ฉันสงสัยว่าผู้ผลิตดั้งเดิมมีคลัง Nabaztags ที่ขายไม่ออกที่ไหนสักแห่งเช่นหลุมฝังกลบ Atari หรือไม่? แน่นอนว่าด้วยการพิมพ์ 3 มิติที่ยอดเยี่ยมสำหรับการติดตั้งกล้องและ PI และ HAT แบบกำหนดเองเพื่อใช้งานมอเตอร์ ไฟ LED และเสียง พวกมันจึงสร้างชุดเครื่องชง Raspberry Pi ในอุดมคติ ชมรมการเข้ารหัสทุกแห่งควรมีหนึ่งอัน!
หากคุณชอบโครงการนี้และต้องการเห็นมากขึ้น คุณสามารถตรวจสอบเว็บไซต์ของฉันสำหรับการอัปเดตโครงการที่อยู่ระหว่างดำเนินการได้ที่ bit.ly/OldTechNewSpec เข้าร่วม Twitter @OldTechNewSpec หรือสมัครรับข้อมูลช่อง YouTube ที่กำลังเติบโตที่ bit.ly/oldtechtube - ให้ เทคโนโลยีเก่าของคุณเป็นสเป็คใหม่!
รองชนะเลิศการประกวด Internet of Things 2016
แนะนำ:
WLED (บน ESP8266) + IFTTT + Google Assistant: 5 ขั้นตอน
WLED (บน ESP8266) + IFTTT + Google Assistant: บทช่วยสอนนี้จะช่วยให้คุณเริ่มต้นใช้งาน IFTTT และ Google Assistant สำหรับ WLED บน ESP8266 ในการตั้งค่า WLED & ESP8266 ทำตามคำแนะนำนี้ใน tynick:https://tynick.com/blog/11-03-2019/getting-started…ขอตะโกนใส่ Aircookie สำหรับซอฟต์แวร์ที่ยอดเยี่ยมเช่น
ทำ Inner Ear Headphones สำหรับ Oculus Rift เพียง 160 เยน: 5 ขั้นตอน
ทำหูฟัง Inner Ear สำหรับ Oculus Rift เพียง 160 เยน: หูฟังเฮดาโฟนในหูชั้นในของแท้ของ Oculus ราคา 5800 เยน (ประมาณ $50) ฉันทำหูฟังราคาถูกด้วยรายการนี้ Spherical Tipped Spring Loaded Probes Testing Pinsand หูฟังในหูชั้นใน
ควบคุมเครื่องใช้ในบ้านโดยใช้ Node MCU และ Google Assistant - IOT - Blynk - IFTTT: 8 ขั้นตอน
ควบคุมเครื่องใช้ในบ้านโดยใช้ Node MCU และ Google Assistant | IOT | Blynk | IFTTT: โครงการง่ายๆ ในการควบคุมอุปกรณ์โดยใช้ Google Assistant: คำเตือน: การจัดการไฟฟ้าหลักอาจเป็นอันตรายได้ จัดการด้วยความระมัดระวังอย่างยิ่ง จ้างช่างไฟฟ้ามืออาชีพในขณะที่ทำงานกับวงจรเปิด ฉันจะไม่รับผิดชอบดา
สร้าง Custom in Ear Monitors! (DIY IEM): 10 ขั้นตอน (พร้อมรูปภาพ)
ปรับแต่งหูฟังในหู! (DIY IEM): จอภาพอินเอียร์แบบกำหนดเอง (CIEM) ที่ใช้กันอย่างแพร่หลายโดยนักดนตรีและนักแสดง หูฟังเหล่านี้ได้รับการติดตั้งมากับหูของแต่ละคนโดยเฉพาะเพื่อการแยกส่วนและความสบายที่เหนือชั้น มันเริ่มต้นเมื่อฉันต้องการ CIEM สักคู่ เพียงเพื่อให้รู้ว่าราคาสำหรับหนึ่งมีพอ
ปรับปรุงหูฟังชนิดใส่ในหู (Ear-Buds): 6 ขั้นตอน
ปรับปรุงหูฟังชนิดใส่ในหู (Ear-Buds): เอียร์บัดเหล่านั้นไม่เคยพอดีกับหูของฉัน แต่มีวิธีแก้ปัญหาง่ายๆ