นาฬิกาไม่มีที่สิ้นสุดที่ควบคุมด้วยสมาร์ทโฟน: 5 ขั้นตอน (พร้อมรูปภาพ)
นาฬิกาไม่มีที่สิ้นสุดที่ควบคุมด้วยสมาร์ทโฟน: 5 ขั้นตอน (พร้อมรูปภาพ)
Anonim
Image
Image
นาฬิกาอนันต์ควบคุมด้วยสมาร์ทโฟน
นาฬิกาอนันต์ควบคุมด้วยสมาร์ทโฟน
นาฬิกาอนันต์ควบคุมด้วยสมาร์ทโฟน
นาฬิกาอนันต์ควบคุมด้วยสมาร์ทโฟน

ฉันได้เห็นหลายโครงการของ Infinity Mirrors และ Infinity Clocks ใน Instructables ดังนั้นฉันจึงตัดสินใจสร้างของฉัน อาจจะไม่ต่างจากที่อื่นมากนัก… แต่ฉันทำเอง ก็เลยเป็น !

ภาพ
ภาพ

ในกรณีที่คุณยังไม่รู้:

นาฬิกาอินฟินิตี้คืออะไร?

นาฬิกาอินฟินิตี้ใช้การสะท้อนหลายครั้งระหว่างกระจกกับกระจกกึ่งสะท้อนแสงเพื่อสร้างภาพลวงตาที่มีความลึกมากในขณะที่มีความลึกเพียงหนึ่งเซนติเมตร!

เวลาจะแสดงด้วยไฟ LED ซึ่งสะท้อนหลายครั้งระหว่างอินเทอร์เฟซเหล่านี้และให้ความลึก

ภาพ
ภาพ

การสะท้อนกลับหลายครั้งทำให้เกิดความลึก

ไฟ LED สามารถระบุตำแหน่งได้และมีหลายสี ดังนั้นจึงง่ายต่อการใช้เพื่อสร้างแอนิเมชั่นแบบเบา

ฉันต้องการทำให้มันเป็นแบบโต้ตอบและเปลี่ยนแปลง ดังนั้นฉันจึงเพิ่มการควบคุมสมาร์ทโฟนโดยใช้การสื่อสารผ่านบลูทูธ มีการสื่อสารสองวิธีที่แท้จริงระหว่างนาฬิกากับสมาร์ทโฟน ผู้ใช้สามารถใช้ HMI (Human Machine Interface) เพื่อเปลี่ยนพารามิเตอร์ต่างๆ เช่น ภาพเคลื่อนไหว สี แต่เธอยังสามารถส่งคำสั่งโดยตรงเช่นเปลี่ยนเวลาและนาฬิกาตอบเพื่อบอกว่าคำสั่งได้รับการยอมรับหรือไม่

HMI เสร็จสิ้นโดยใช้แอพ Android ที่ตั้งโปรแกรมได้ ดังนั้นฉันจึงต้องออกแบบและเขียนโค้ดการสื่อสารทางฝั่ง Arduino

ภาพ
ภาพ

มาเริ่มกันเลย…

ขั้นตอนที่ 1: คุณต้องการอะไร

อะไรที่คุณต้องการ?
อะไรที่คุณต้องการ?
อะไรที่คุณต้องการ?
อะไรที่คุณต้องการ?
อะไรที่คุณต้องการ?
อะไรที่คุณต้องการ?
อะไรที่คุณต้องการ?
อะไรที่คุณต้องการ?

ในการสร้างนาฬิกาอินฟินิตี้นี้ นี่คือสิ่งที่คุณต้องการ (ราคาเป็นตัวบ่งบอก):

  • Arduino nano (2 USD)
  • แถบไฟ LED ที่สามารถระบุตำแหน่งได้ เช่น ไฟ LED WS2812, ไฟ LED 60 ดวงต่อเมตร (6 USD)
  • โมดูลบลูทูธ เช่น HC-05 (3 USD)
  • เขียงหั่นขนม (1.5 USD)
  • แหล่งจ่ายไฟ 5V สามารถส่ง 4A ขึ้นไปได้
  • สายไฟไม่กี่เส้น
  • สมาร์ทโฟนที่ใช้ Android และแอป Bluetooth Electronics จาก KeuwlSoft
  • แผ่นใยไม้อัดความหนาแน่นปานกลางบางชิ้น (MDF หนา 3 มม. 1 อัน และหนา 10 มม. 1 อัน)
  • ลูกแก้วใสหรือแผ่นกระจกใส (ประมาณ 15 ถึง 20 USD)
  • ฟิล์มติดกระจกและกระจกกึ่งสะท้อนแสง (ตั้งแต่ 4 ถึง 15 USD)
  • คอนเนคเตอร์ ตัวต้านทาน และความจุ 1000µF หนึ่งตัว
  • กาวและเทปพันสายไฟ
ภาพ
ภาพ

แผนภาพหลักการเรขาคณิตของนาฬิกา

แผ่นเพล็กซี่ควรมีความหนา 2 ถึง 3 มม. เพื่อให้เข้าที่อย่างมั่นคงเมื่อใช้งาน

แผนภาพด้านบนอธิบายเรขาคณิตของนาฬิกา แถบไฟ LED วางอยู่ระหว่างกระจกทั้งสองข้าง แน่นอน คุณต้องมีไฟ LED 60 ดวงบนแถบนี้ คุณสามารถหาแถบนำออนไลน์ที่มีไฟ LED 60 ดวงต่อเมตรได้ดังนั้นหนึ่งในนั้นจึงดี จากนั้นเส้นรอบวงของวงกลมนำคือ 1 ม. เส้นผ่านศูนย์กลางของมันคือ 100/PI = 31.8 ซม. (ประมาณ 12.53 นิ้ว)

เตรียมส่วนประกอบของคุณ

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

จากแผ่น MDF ตอนนี้คุณมีแผ่นดิสก์และจานที่มีรูกลม เก็บไว้ทั้งสองอย่างในภายหลัง

เพื่อให้ไฟ LED อยู่กับที่ ให้ตัดกระบอกบางที่มีเส้นผ่านศูนย์กลางเท่ากันใน MDF หนา 1 ซม. ความหนาไม่สำคัญตราบเท่าที่ไม่เปราะบางเกินไป แถบ LED จะถูกวางไว้ในกระบอกสูบนี้ ดังนั้นจึงเป็นเรื่องสำคัญที่เส้นรอบวงด้านในจะต้องเท่ากับความยาวของแถบ ยาวเกินไปหรือสั้นเกินไป และไฟ LED บางดวงอาจเว้นระยะไม่สม่ำเสมอ ดังนั้นโปรดแม่นยำมากที่นี่

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

นอกจากนี้คุณยังสามารถ…

นอกจากนี้ยังสามารถใช้แผ่นลูกแก้วแบบใสหรือสีแทน MDF ได้อีกด้วย ลูกแก้วมีหลายสี ตั้งแต่สีดำจนถึงสีเหลือง สีเขียวและสีม่วง อย่าลังเลที่จะลองใช้

ภาพ
ภาพ

Fablab รู้วิธีการตัดมัน และการตัดลูกแก้วนั้น "สะอาด" มากเมื่อเทียบกับไม้ที่อาจ "ไหม้" (ฉันหมายถึงการเปลี่ยนสีเนื่องจากพลังงานเลเซอร์) ที่เส้นทางเลเซอร์ กระจกลูกแก้วยังมีอยู่ซึ่งสามารถช่วยคุณจากการซื้อฟิล์มกระจก จำไว้ตอนตัดให้ส่งเลเซอร์ที่กระจกหลัง…

ด้านล่างนี้คือไฟล์เรขาคณิตสำหรับการตัดด้วยเลเซอร์

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

ประกอบนาฬิกา
ประกอบนาฬิกา
ประกอบนาฬิกา
ประกอบนาฬิกา
ประกอบนาฬิกา
ประกอบนาฬิกา
ประกอบนาฬิกา
ประกอบนาฬิกา

ในการทำนาฬิกา คุณเพียงแค่ต้องประกอบชิ้นส่วนตามแผนผัง

เตรียมคดี

ขั้นแรก ติดฟิล์มกระจกบนแผ่น MDF มันจะเป็นด้านล่างของนาฬิกา

ประการที่สองติดฟิล์มกึ่งโปร่งใสบนแผ่นลูกแก้ว เป็นกระจกหน้านาฬิกา แผ่นนี้จะถูกแทรกลงในแผ่น MDF ในรูวงกลม: กาวโดยใช้กาวไม้ถ้าจำเป็น หรือใช้ยางซิลิโคน

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

ติดไฟ LED ไว้ในกระบอก MDF หนาและประกอบ 3 ส่วนด้วยกาวและ / หรือเทป

ภาพ
ภาพ

แล้วชิ้นส่วนอิเล็กทรอนิกส์

ใส่ Arduino ลงในเขียงหั่นขนมและสร้างวงจรตามที่แสดงด้านบน ตรวจสอบให้แน่ใจว่าได้เชื่อมต่อกราวด์ทั้งหมด (GND) แล้ว (GND จาก Arduino, โมดูล HC-05, แถบ LED และแหล่งจ่าย)

  • หมุด RX และ TX ของโมดูล Bluetooth HC-05 เชื่อมต่อกับหมุด D3 และ D2 ของ Arduino
  • สายข้อมูลของแถบ LED เชื่อมต่อกับพิน D12 คุณสามารถใส่ตัวต้านทาน 300 โอห์มได้หากมี

หากคุณต้องการเปลี่ยนพิน ให้เปลี่ยนคำจำกัดความในโค้ดตามนั้น (บรรทัดที่ 7 และ 13 ของไฟล์ ino)

โปรดทราบว่าโมดูล HC-05 ต้องใช้ตัวแบ่งแรงดันไฟฟ้าสำหรับพิน RX ดังที่แสดงด้านล่าง ดังนั้นคุณต้องมีตัวต้านทาน 1,000 โอห์มหนึ่งตัวและตัวต้านทาน 2,000 โอห์มหนึ่งตัว

ภาพ
ภาพ

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

ภาพ
ภาพ

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

ภาพ
ภาพ

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

ตรวจสอบทุกอย่าง…สองครั้ง

ตรวจสอบการเชื่อมต่อทั้งหมดสองครั้ง… ใช้มัลติมิเตอร์หากคุณมีตัวตรวจสอบความต่อเนื่องทางไฟฟ้า

หากทุกอย่างถูกต้อง นาฬิกาของคุณใกล้จะพร้อมแล้ว อย่าจัดหามันสำหรับตอนนี้

ขั้นตอนที่ 3: อัปโหลดรหัส

อัพโหลดโค้ด
อัพโหลดโค้ด
อัพโหลดโค้ด
อัพโหลดโค้ด
อัพโหลดโค้ด
อัพโหลดโค้ด

มาโปรแกรมกัน

ในการอัปโหลดโค้ดใน Arduino nano ให้ใช้ Arduino IDE วางไฟล์ทั้งหมดในโฟลเดอร์ชื่อ "Horloge_LED3_nano_BTOK" ในโฟลเดอร์ Arduino ของคุณ เปิด IDE เลือกพารามิเตอร์ที่เหมาะสม (ประเภทบอร์ด พอร์ต COM ฯลฯ) แล้วคลิกปุ่มอัปโหลด

ภาพ
ภาพ

บนสมาร์ทโฟน Android ของคุณ ติดตั้งแอปพลิเคชัน Bluetooth Electronics คุณสามารถค้นหาได้อย่างง่ายดายบน Google Play ดาวน์โหลดไฟล์ "BluetoothElectronicsCode.txt" จากคำแนะนำนี้ และเปลี่ยนนามสกุลเป็น zip คุณจะได้รับไฟล์ zip พร้อมรหัสสำหรับอินเทอร์เฟซของสมาร์ทโฟนเพื่อทำงานกับ Bluetooth Electronics

เมื่อคุณพร้อมเสียบปลั๊กไฟ ไฟ LED จะสว่างขึ้น โมดูล HC-05 จะหยุดทำงานเพื่อค้นหาการเชื่อมต่อ เปิดแอพ Android และทำตามคำแนะนำเพื่อจับคู่โมดูล Bluetooth กับสมาร์ทโฟนของคุณ เมื่อพร้อมแล้ว ให้เปิด HMI: คุณพร้อมที่จะเล่นแล้ว!

สังเกตว่า…

ควรวาง LED ดวงแรกของแถบไว้บนนาฬิกา หากคุณไม่ได้วางไว้ที่นั่น คุณสามารถเปลี่ยนค่าพารามิเตอร์ออฟเซ็ตในโค้ด (บรรทัดที่ 65 ของไฟล์ ino) มันดูแลเรื่องนั้น

เมื่อคุณติดแถบ LED ในกระบอกสูบตื้น มี 2 ตัวเลือก: แถบหมุนตามเข็มนาฬิกาหรือทวนเข็มนาฬิกา ถ้าทำผิด เข็มนาฬิกาจะหมุนผิดทิศ! ไม่ต้องห่วง. เพียงเปลี่ยนค่าของตัวแปรบูลีน sens_horaire เป็นจริง (บรรทัดที่ 77 ของไฟล์ ino)

ภาพ
ภาพ

ขั้นตอนที่ 4: สนุก

สนุก!
สนุก!
สนุก!
สนุก!
สนุก!
สนุก!

การตั้งค่าสุดท้าย…

ตอนนี้ ตั้งเวลา ซึ่งสามารถทำได้โดยใช้คำสั่งง่ายๆ ที่คุณพิมพ์ในคอนโซลขนาดเล็กที่ส่วนล่างซ้ายของ HMI

  • Hxx: ตั้งค่าชั่วโมงเป็น xx (เช่น: H4)
  • Myy: ตั้งค่านาที (เช่น: M15)
  • Szz: ตั้งค่าวินาที (เช่น: S30)

คำสั่งสามารถผูกมัดได้โดยการใส่ดาวระหว่างคำสั่ง เช่น H4*M15*S35

การตั้งค่าชั่วโมงและ / หรือนาทีจะรีเซ็ตวินาทีเป็นศูนย์

จากนั้นคุณจะเห็นว่าชั่วโมงถูกติดตามโดย LED สีแดง นาทีโดย LED สีเขียว:

ภาพ
ภาพ

9:52:00 น.!

สีของวินาทีสามารถเปลี่ยนแปลงได้โดยใช้แถบเลื่อนบน HMI

ภาพ
ภาพ

เมื่อคุณเลื่อนตัวเลื่อน วงกลมเล็กๆ ทางด้านขวาจะแสดงสีปัจจุบัน เมื่อตัวเลื่อนหยุด จะส่งสีไปที่นาฬิกา และ LED ของวินาทีจะเปลี่ยนไปตามนั้น

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

แอนิเมชั่น…

  • 0: เพียงแค่แสดงเวลา คุณสามารถเปลี่ยนสีของวินาทีโดยใช้แถบเลื่อน
  • 1: พื้นหลังสี (คุณสามารถเปลี่ยนสีได้) ของแอมพลิจูดตัวแปร
  • 2: รุ้งหมุน
  • 3: แถบสี (ที่สามารถเปลี่ยนแปลงได้) ที่หมุนได้หนึ่งรอบต่อวินาที
  • 4: แถบสีที่กระเด้งออกจากเข็มวินาที
  • 5: พื้นหลังสี (คุณสามารถเปลี่ยนจานสี) ของแอมพลิจูดแบบสุ่ม
  • 6: เพียงแค่แสดงเวลา เข็มวินาทีจะเปลี่ยนแอมพลิจูดของการส่องสว่าง
  • 7: ธงหมุน (เปลี่ยนจานสีเพื่อเปลี่ยนธงจาก 4 ธงที่เป็นไปได้)
ภาพ
ภาพ

ธงชาติฝรั่งเศส -- มันคือ 7:11:51

มีการเพิ่มแอนิเมชั่นอื่นเมื่อเร็วๆ นี้ ซึ่งจะเปลี่ยนแปลงทุกๆ 15 วินาทีสำหรับแอนิเมชั่นที่เลือกแบบสุ่ม

ปุ่ม MINUTES จะเปิดและปิดไฟ LED สีขาวทุกๆ 5 นาทีบนนาฬิกา

ภาพ
ภาพ

7:11:25 น

โปรดทราบว่าวิดีโอและภาพถ่ายนั้นสร้างจากสมาร์ทโฟน ดังนั้นจึงมีคุณภาพต่ำ สีบนนาฬิกาสว่างกว่าและแม่นยำกว่าในวิดีโอมาก…

อะไรอีก?

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

ภาพ
ภาพ

ขั้นตอนที่ 5: เวอร์ชันใหม่เพื่อรักษาเวลาที่แม่นยำ

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

RTC มีอยู่ในรุ่นต่างๆ ฉันแนะนำให้ใช้โมดูล DS3231 ซึ่งแม่นยำมาก (เทียบกับ DS1307) โปรแกรมเวอร์ชันใหม่นี้ใช้ไลบรารี MD-DS3231 ซึ่งมีให้ที่นี่ เพียงสร้างโฟลเดอร์ใหม่ชื่อ Horloge_LED3_nano_BT_RTC ในโฟลเดอร์ Arduino ของคุณและดาวน์โหลดไฟล์ทั้งหมด

เชื่อมต่อ DS3231 เป็นอุปกรณ์ I2C เช่น SDA กับ A4 และ SCL (หรือ SCK) กับ A5

ก่อนอื่น คุณต้องตั้งเวลาของ RTC ดูตัวอย่างคำแนะนำนี้หรือบทช่วยสอนนี้

อัปโหลดไฟล์ Horloge_LED3_nano_BT_RTC.ino บน Arduino nano ของคุณและเรียกใช้ เวลาจะรีเฟรชทุก ๆ 30 นาที ดังนั้นนาฬิกาจึงยังคงแม่นยำตลอดเวลา

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

แนะนำ: