ชื่อโปรเจกต์: ลิฟต์โรงแรมตุ๊กตา LOL Surprise ควบคุมด้วยโทรศัพท์มือถือ
ลูกสาวของฉันกับฉันตัดสินใจที่จะสร้างลิฟต์อัตโนมัติให้กับโรงแรมตุ๊กตา LOL Surprise สามชั้นของพวกเธอที่เราสร้างขึ้นเมื่อไม่กี่เดือนก่อน ไม่นานหลังจากนั้น พวกเธอก็รู้ว่าลิฟต์แบบแมนนวลมันไม่น่าสนใจเท่าไหร่ ฉันพบว่านี่อาจเป็นโอกาสที่ดีสำหรับประสบการณ์แรกของฉันกับการเขียนโค้ด Arduino ไม่ใช่แค่การนำโค้ดของคนอื่นมาใช้ซ้ำ
ส่วนประกอบหลักคือ NEMA 17 stepper motor เนื่องจากเราสามารถควบคุมตำแหน่งของมอเตอร์ได้ ฉันจึงไม่ได้ติดตั้ง sensor ใดๆ ที่ใช้ตรวจจับตำแหน่งในลิฟต์จริง ในที่นี้ ตำแหน่งของลิฟต์จะถูกกำหนดด้วยตำแหน่งของ stepper
มี push button สามปุ่มและ LED สามดวงในแต่ละชั้น เมื่อกด push button คุณกำลังเรียกใช้ลิฟต์ และเมื่อลิฟต์มาถึงชั้นที่ต้องการ LED จะเปิดขึ้น ในขณะที่ลิฟต์กำลังเคลื่อนที่ LED จะปิดอยู่
หลังจากประกอบชิ้นส่วนทั้งหมดแล้ว โปรดใช้ความระมัดระวังเมื่อเริ่มทดสอบครั้งแรก ตรวจสอบให้แน่ใจว่าตำแหน่งเริ่มต้นสำหรับชั้น 2 และ 3 ถูกประเมินต่ำกว่าความเป็นจริง เช่น ต่ำกว่าที่ควรจะเป็น ฉันมีการทดสอบเริ่มต้นในโปรแกรมที่ทำให้หมุนตามเข็มนาฬิกาหนึ่งรอบและทวนเข็มนาฬิกาหนึ่งรอบ เพื่อตรวจสอบการเริ่มต้น และดูว่าสิ่งนี้ทำให้ลิฟต์เคลื่อนที่ไปได้มากแค่ไหน จากนั้นคุณสามารถคูณค่าและประมาณตำแหน่งสำหรับชั้น 2 และ 3 ในการทำซ้ำไม่กี่ครั้ง
จนถึงตอนนี้ เมื่อเปิดเครื่อง ตำแหน่งจะถูกกำหนดค่าเริ่มต้นเป็นศูนย์ ดังนั้นเมื่อคุณปิดระบบ ลิฟต์จะต้องอยู่ที่ชั้นหนึ่ง ฉันกำลังหาวิธีแก้ไขปัญหานี้ในการอัปเกรดครั้งถัดไป
ไม่นานหลังจากที่เราสร้างเวอร์ชันแรก ซึ่งทำงานได้แค่กับ push button ลูกสาวของฉันก็สงสัยว่าทำไมเราถึงไม่รองรับการควบคุมด้วยโทรศัพท์มือถือ :)
มีตัวเลือกให้ใช้ wi-fi หรือ bluetooth ฉันตัดสินใจใช้ bluetooth เนื่องจากของเล่นจะไม่ถูกจำกัดด้วย wifi router ฉันใช้ HC-05 bluetooth contoler มันต้องการเพียงไฟ 5V, GND และ serial TxD กับ RxD เท่านั้น
จนถึงตอนนี้ฉันยังไม่ได้พัฒนา mobile application ใดๆ แต่ฉันพบเครื่องมือออนไลน์ที่เรียบง่ายมากสำหรับ Android application นั่นคือ MIT app inventor บน http://ai2.appinventor.mit.edu/. คุณสามารถดาวน์โหลด application ของฉันได้ที่ http://ai2.appinventor.mit.edu/b/bmgw และหากคุณต้องการสร้างด้วยตัวเอง นี่คือ screenshot ของหน้าจอ design และ block ที่หน้าจอ design คุณสามารถตั้งค่าและกำหนดค่า block ได้ และที่หน้าจอ block คุณสามารถเชื่อมต่อ block และกำหนดค่าการทำงานได้
ฉันเพิ่งสร้างปุ่มสามปุ่ม โดยเมื่อคลิกแต่ละปุ่มจะส่งข้อความ 1, 2 หรือ 3 ขึ้นอยู่กับว่าควรจะเรียกไปชั้นไหน


การปรับปรุงอีกอย่างที่ฉันทำคือการทำให้ LED กระพริบบนชั้นที่ลิฟต์จะหยุด แผนเริ่มต้นของฉันคือการสร้าง function สำหรับการกระพริบ LED ซึ่งถูกเรียกใน function GotoFlorX แต่มันไม่สามารถทำได้เนื่องจาก Arduino ไม่รองรับ multi threads ดังนั้นฉันจึงเพิ่มส่วนการกระพริบ LED เข้าไปใน For loop ที่กำลังส่ง pulses ไปยัง stepper motor ในความเป็นจริงฉันเปิด/ปิด LED ทุกๆ n/7 steps โดยที่ n คือจำนวน steps ที่ stepper motor ต้องทำงาน มันซับซ้อนขึ้นเล็กน้อย แต่ผลลัพธ์สุดท้ายก็ใช้ได้ หากใครมีแนวคิดที่ดีกว่านี้ โปรดแจ้งให้ฉันทราบ!
รายละเอียดทางเทคนิคเพิ่มเติม
การดัดแปลงของเล่นอย่างแม่นยำ
โปรเจกต์นี้เป็นการผสมผสานการบูรณะของเล่นคลาสสิกเข้ากับการควบคุมด้วยสมาร์ทโฟนที่ทันสมัย โดยเพิ่มลิฟต์อัตโนมัติเข้าไปในโครงสร้างบ้านตุ๊กตาที่มีอยู่เดิม
- ระบบขับเคลื่อนแนวตั้ง Stepper Motor: ใช้ 28BYJ-48 stepper motor ขนาดเล็กพร้อม ULN2003 driver เหตุผลที่ใช้ stepper แทนมอเตอร์มาตรฐานเป็นเพราะสามารถทำให้ลิฟต์หยุดนิ่งที่แต่ละชั้นได้อย่างแม่นยำโดยไม่มีการเคลื่อนที่เลื่อนไหล
- การประมวลผลคำสั่ง Bluetooth: Arduino รับหมายเลขชั้น (1, 2, 3) จากแอปพลิเคชันสมาร์ทโฟนที่สร้างด้วย MIT App Inventor ผ่าน HC-05 Bluetooth module
ระบบป้องกันความปลอดภัย
- การยืนยันด้วย Limit Switch: มี micro-switches ติดตั้งอยู่ที่ด้านบนและด้านล่างของปล่องลิฟต์เพื่อป้องกันไม่ให้มอเตอร์เคลื่อนที่เกินขีดจำกัดและสร้างความเสียหายให้กับส่วนประกอบทางกายภาพของบ้านตุ๊กตา