สารบัญ:
- ขั้นตอนที่ 1: วัสดุ
- ขั้นตอนที่ 2: สร้างแหวน
- ขั้นตอนที่ 3: การสร้างวงจร
- ขั้นตอนที่ 4: นำทุกอย่างมารวมกัน
- ขั้นตอนที่ 5: การวาดลูกโลก
- ขั้นตอนที่ 6: รหัส
- ขั้นตอนที่ 7: การทดสอบ
- ขั้นตอนที่ 8: เสร็จสิ้น
วีดีโอ: (POV) ความคงอยู่ของ Vision Globe: 8 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
!อัปเดต! ฉันได้เพิ่มโปรแกรม excel ที่ทำให้การวาดและโค้ดรูปภาพใหม่ง่ายขึ้นมาก
ความคงอยู่ที่เรียบง่ายของโลกแห่งการมองเห็น เล่นวีดีโอ
นี่เป็นโครงการที่ฉันคิดมาระยะหนึ่งแล้ว และการประกวด "Make It Glow" เป็นเพียงแรงจูงใจที่ฉันต้องการในการสร้างแรงบันดาลใจให้ฉันดึงจอแสดงผล LED POV แบบเก่า 5 จอออกมาและยกระดับไปอีกระดับโดยใช้กะ ทะเบียน หากคุณชอบคำแนะนำนี้โปรดพิจารณาลงคะแนนให้
บทนำอย่างรวดเร็วเกี่ยวกับ POV หรือการมองเห็นอย่างต่อเนื่อง: ไฟแรงดันไฟ AC ใด ๆ ที่จริงแล้วกะพริบเปิดและปิดที่ความถี่ 60hz หรือ 60 ครั้งต่อวินาที สมองของเรารับรู้ว่านี่เป็นแสงคงที่ นี่คือแนวคิดที่เราจะใช้ประโยชน์จากเพื่อสร้างภาพทรงกลมโดยใช้ LED แถวเดียว สำหรับโครงการนี้ ฉันตัดสินใจว่า LED 24 ดวงที่จัดลำดับโดยใช้รีจิสเตอร์กะ 8 บิตสามตัวจะให้ความละเอียดขั้นต่ำที่จำเป็นสำหรับโลก
ขั้นตอนที่ 1: วัสดุ
นี่คือสิ่งที่ผมใช้
- (1) Arduino Uno (สำหรับการสร้างต้นแบบ)
- (1) Bareduino (สำหรับบอร์ดถาวรก็ได้) VIRTUABOTIX LINK
- (3) HC595N Shift Registers
- (24) ไฟ LED สีฟ้า
- (24) ตัวต้านทาน 220 โอห์ม
- (1) เขียงหั่นขนม
- (1) ที่ใส่แบตเตอรี่และแบตเตอรี่
- (1) เส้นผ่านศูนย์กลาง 10 นิ้ว (กว้างพอที่จะใส่หลอด LED และยิ่งเบายิ่งดี)
- (1) แกนเกลียว (ฉันใช้ 5/16")
- (1) มอเตอร์ (ฉันใช้อันหนึ่งจาก Dirt Devil ตัวเก่า)
- (1) ตัวต่อมอเตอร์
- (1) 120V ตัดการเชื่อมต่อ (สวิตช์ไฟ)
- (1) ตัวควบคุมความเร็วพัดลม
ขั้นตอนที่ 2: สร้างแหวน
ฉันใช้แท่งอลูมิเนียมแบนขนาดกว้าง 1/8" หนา x 1/2" สำหรับแหวนของฉัน และด้ายทั้งหมด 5/16" สำหรับเสากลาง เพราะฉันวางไว้รอบๆ แต่ฉันคิดว่าสิ่งนี้สามารถทำได้บน เครื่องพิมพ์ 3 มิติพร้อมตัวยึด PCB และเบากว่ามาก ฉันสร้างวงแหวนนี้สำหรับบิลด์ก่อนหน้าโดยใช้ไฟ LED 5 ดวงซึ่งแต่ละอันปิด DO แยกของ Arduino
ไม่มีอะไรพิเศษเกี่ยวกับเส้นผ่านศูนย์กลางของแหวน ของฉันก็ประมาณ รอบ 10 นิ้ว เพียงเพราะว่าแท่งแบนที่ฉันใช้นั้นยาว 3 ฟุตก่อน ฉันรีดมันด้วยแรงเฉือน/เบรก/ม้วนแบบ 3 ใน 1 จาก Harbor Freight แต่คุณสามารถสร้างวงแหวนรอบดิสก์ที่ตัดจากไม้อัดและ ได้ผลลัพธ์ที่ดี สำหรับเรื่องนั้น ฉันไม่เห็นเหตุผลที่ทำให้แหวนทำจากไม้ไม่ได้
ฉันเจาะรูสำหรับ LED ที่กึ่งกลางประมาณ 5/16 นิ้ว ระยะห่างนี้เต็มทั้งหมดยกเว้น 1 นิ้วที่ด้านบนและด้านล่างที่ด้านหนึ่งของวงแหวน คุณจะต้องขันโครงยึดตรงกลางวงแหวนเพื่อให้มีพื้นผิวสำหรับยึดเขียงหั่นขนม
ขั้นตอนที่ 3: การสร้างวงจร
นี่เป็นความพยายามครั้งแรกของฉันในการใช้ shift register ดังนั้นฉันจึงเริ่มค้นคว้าเกี่ยวกับไซต์ของ Arduino และพบตัวอย่างที่มีประโยชน์อย่างยิ่ง ซึ่งฉันได้แก้ไขเพื่อให้เหมาะกับความต้องการของฉัน คุณสามารถหาบทช่วยสอนที่ Arduino ShiftOut ที่ฉันใช้ "Code Sample 2.3 - Dual Defined Arrays" เป็นโค้ดพื้นฐานของฉัน เพิ่มเติมในภายหลัง
หากคุณปฏิบัติตามบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีส่งข้อมูลทีละน้อยแบบอนุกรมจาก Arduino ของคุณไปยัง shift register การจัดเรียงนี้ช่วยให้คุณควบคุม LED ทั้ง 24 ดวงในโครงการนี้โดยมีเพียง 3 พินบน Arduino เราจะใช้ความสามารถแบบอนุกรมเข้าขนานออกของ 74HC595 เพื่อโหลดข้อมูล 24 บิตหรือ 3 ไบต์ลงในรีจิสเตอร์กะแล้วย้ายข้อมูลออกแบบขนานกับไฟ LED
เนื่องจากข้อมูลบิตแรกที่เราโหลดจะสิ้นสุดที่จุดลงทะเบียนสุดท้าย เราจะแนบ LED1 หรือ LED ใต้สุดกับ QO ของ Shift Register ตัวแรก ทำตามแผนผังจากตัวอย่าง ShiftOut และแนบรีจิสเตอร์กะที่สามกับอันที่สอง ในลักษณะเดียวกับที่แนบกับอันที่สองกับอันแรก
ฉันแนะนำให้รันโค้ดตัวอย่างไปพร้อมกัน ขั้นแรกด้วยการลงทะเบียนเพียงครั้งเดียว จากนั้นจึงใช้สองโค้ด โค้ดตัวอย่างจะจัดลำดับไฟเพื่อให้มองเห็นได้ง่ายว่ามีสิ่งใดขาดสายหรือไม่ ฉันสามารถเพิ่ม Byte3 ลงใน "Code Sample 2.3 - Dual Defined Arrays" และอาร์เรย์ที่สามที่ฉันเรียกว่า Blue คุณสามารถดูสิ่งนี้ได้ในโค้ด ShiftOutArrayByte3R1 ที่อัปโหลดไปยังขั้นตอนนี้
ขั้นตอนที่ 4: นำทุกอย่างมารวมกัน
ตอนนี้มั่นใจแล้วว่าวงจรใช้งานได้แล้ว เราจำเป็นต้องติดตั้งทุกอย่างเข้ากับวงแหวน ฉันแนะนำให้ติดตั้ง Arduino/Bareduino ของคุณที่ด้านหนึ่งและ Shift Register Board ของคุณตรงข้ามกับ Arduino วิธีนี้จะช่วยลดน้ำหนักได้ แต่ส่วนใหญ่แล้วคุณจะต้องเคลื่อนตัวไปรอบๆ จนกว่าจะได้การหมุนที่คงที่ ฉันใช้แบตเตอรี่ขนาด 9 โวลต์ที่ด้านข้างที่ต้องการเพื่อเพิ่มน้ำหนัก ฉันใช้ซิปเพื่อติดบอร์ดและแบตเตอรี่เข้ากับเสากลาง ด้วยวิธีนี้ ฉันจึงสามารถปรับเปลี่ยนเพื่อให้แหวนมีความสมดุล
ตอนนี้เพื่อประสานไฟ LED ทั้งหมด เนื่องจากเรากำลังควบคุมแรงดันไฟฟ้าบวกของ LED เราจึงสามารถเชื่อมต่อสายนำแคโทดทั้งหมดเข้าด้วยกันด้วยลวดที่ไม่หุ้มฉนวนเส้นเดียวแล้วเสียบเข้ากับกราวด์ของเรา จากนั้นเราจำเป็นต้องประสานตัวต้านทานกับตะกั่วแอโนดของ LED แต่ละตัวแล้วต่อสายจากตัวต้านทานไปยังขาเอาต์พุตรีจิสเตอร์รีจิสเตอร์ที่สอดคล้องกัน ฉันทิ้งไว้ในฟังก์ชัน Blink All ในลูปการตั้งค่าเพื่อให้ทราบว่าไฟ LED ดับหรือไม่
ขั้นตอนที่ 5: การวาดลูกโลก
!!อัปเดต!! ตอนนี้คุณสามารถวาดโดยใช้โปรแกรม excel ซึ่งแปลงรูปภาพเป็นเลขฐานสิบหกสำหรับคุณ รหัสสำหรับอาร์เรย์สีแดง สีน้ำเงิน และสีเขียวของคุณสามารถคัดลอกและวางลงในแบบร่าง Arduino เพียงเติม 1 ที่คุณต้องการให้ LED ติด และเซลล์จะเปลี่ยนเป็นสีน้ำเงินโดยอัตโนมัติ! โปรแกรม Excel ถูกอัปโหลดไปยังขั้นตอนนี้ ขอบคุณ Rave Shades ที่สอนได้สำหรับการโพสต์ Rave Shades Animator ซึ่งได้รับการแก้ไขสำหรับโครงการนี้
ตกลง. ตอนนี้เพื่อรับงานศิลปะ ฉันเลือกลูกโลกเพราะคิดว่าจะเป็นวิธีที่ยอดเยี่ยมในการสร้างการแสดงภาพทรงกลม 360 องศาโดยใช้ POV แต่ฉันจะพยายามแสดงในขั้นตอนนี้และขั้นตอนถัดไปว่าจะสร้างภาพใดๆ ที่คุณวาดด้วยความละเอียด 24x70 ได้อย่างไร.
อันดับแรก ฉันพบภาพแผนที่โลกที่เหมาะสมเพื่อใช้เป็นแนวทาง จากนั้นฉันก็พบแอปบน Google Play ชื่อ "Mosaic Builder" ที่เหมาะกับความต้องการของฉัน ดังที่คุณเห็นในภาพสุดท้ายในขั้นตอนนี้ ฉันสามารถสร้างรูปภาพแผนที่โลกในเวอร์ชันความละเอียดต่ำบนเทมเพลต 24x70 ของฉันได้ FYI 24 มาจากข้อมูล 3 ไบต์และดังนั้น 24 LEDs สูงและ 70 มาจากการหารเส้นรอบวงของวงแหวนของฉันด้วย 5/16" เพื่อให้ระยะห่างในแนวนอนใกล้เคียงกับระยะห่างแนวตั้งของ LEDs กว้าง 70 จุด จะแตกต่างกันไปตามขนาดของแหวน แต่ไม่สำคัญ โดยเฉพาะอย่างยิ่งไม่สำคัญเนื่องจากเราไม่ได้ใช้เซ็นเซอร์ประเภทใด ๆ เช่น LED อินฟราเรดเพื่อตรวจจับการหมุนที่สมบูรณ์และรีเซ็ตลูป นี่คือสิ่งที่ฉันอาจ พิจารณาในอนาคต แต่สำหรับตอนนี้ตราบใดที่เรามีการควบคุมความเร็วบนมอเตอร์เซ็นเซอร์ก็ไม่จำเป็น
เมื่อคุณได้ภาพวาดแล้ว คุณพอใจกับมันแล้ว คุณสามารถแปลงรูปภาพเป็นรหัสฐานสิบหกโดย Byte ได้ในขั้นตอนถัดไป
ขั้นตอนที่ 6: รหัส
!อัปเดต! เพียงวาดภาพของคุณโดยใช้ 1 วินาทีเพื่อแสดงเป็น ON ซึ่งจะให้สีพิกเซลเป็นสีน้ำเงินโดยอัตโนมัติ เมื่อรูปภาพของคุณพร้อม ให้กดปุ่ม "คัดลอกอาร์เรย์ทั้งหมด" และวางทับอาร์เรย์ที่มีอยู่ในร่าง Arduino! ฉันได้อัปโหลดภาพร่างใหม่ไปที่ขั้นตอนนี้
ดังที่ได้กล่าวไว้ก่อนหน้านี้ ฉันใช้ "Code Sample 2.3 - Dual Defined Arrays" จากตัวอย่าง Arduino ShiftOut เป็นฐานของฉัน ดังที่คุณเห็นในโค้ดนี้ ผู้เขียนเห็นว่าเขาไม่แน่ใจว่า Arduino สามารถจัดการค่าไบนารีโดยตรงได้หรือไม่ ดังนั้นจึงใช้ค่าเลขฐานสิบหกแทน หมายเหตุ: ฉันไม่เคยเปลี่ยนความคิดเห็นไบนารีถัดจากค่า Hex ฉันเพียงเปลี่ยนค่า Hex เพื่อให้พอดีกับภาพแผนที่โลกของฉัน
นี่เป็นเพียงครั้งที่สองที่ฉันได้เห็น Hex และฉันก็ไม่ค่อยรู้เรื่อง ฉันพบแผนภูมิการแปลงเลขฐานสิบหก - ไบนารีที่แนบมาซึ่งช่วยได้อย่างมาก แผนภูมินี้สามารถใช้เพื่อแปลงค่าไบนารีของแต่ละคอลัมน์หรือ (ไบต์) เป็นค่าฐานสิบหก ตัวอย่างเช่น หากคุณดูภาพสุดท้ายในขั้นตอนนี้ คุณจะเห็นได้ว่าภาพแผนที่โลกแบ่งออกเป็นสามส่วนจากบนลงล่างได้อย่างไร และแต่ละคอลัมน์ประกอบด้วย 3 ไบต์ โดยที่สีขาวหรือปิด = 0 และสีน้ำเงินหรือเปิด = 1 ที่ ด้านล่างของแต่ละคอลัมน์ที่ไบต์ถูกแปลงเป็นค่าเลขฐานสิบหกตั้งแต่ 00 & FF ซึ่งเทียบเท่ากับช่วงค่าทศนิยม 0-255 หรือช่วงไบนารี 00000000 ถึง 11111111
โค้ดที่แนบมามีการโหลดอิมเมจ Globe แต่สามารถปรับเปลี่ยนเป็นรูปภาพของคุณเองได้
ขั้นตอนที่ 7: การทดสอบ
ก่อนที่ฉันจะเริ่มสร้างฐานและฐานยึดมอเตอร์ ฉันคิดว่าฉันจะทดสอบและปรับแต่งวงจร ฉันเพียงแค่โยนแท่นขุดเจาะลงในสว่านไร้สาย เปิดทุกอย่างแล้วเหนี่ยวไก ฉันต้องปรับการหน่วงเวลาเป็น 1 มิลลิวินาที และความพยายามครั้งแรกของฉันทำให้รัสเซียอยู่ทางใต้ของออสเตรเลีย ฉันยังได้เรียนรู้ว่ารูปภาพแสดงโดยคว่ำจากที่ฉันคาดไว้ ซึ่งเป็นวิธีแก้ไขง่ายๆ ในการพลิกวงแหวนทั้งหมด วิดีโอที่แนบมานี้เป็นการทดสอบที่ประสบความสำเร็จครั้งสุดท้ายของฉัน ตอนนี้ถึงเวลาสำหรับฐานที่มีมอเตอร์ถาวรและตัวควบคุมความเร็ว
เล่น LEAD GLOBE TEST
ขั้นตอนที่ 8: เสร็จสิ้น
ฉันต่อสวิตช์ไฟเพื่อตัดการเชื่อมต่อสำหรับมอเตอร์ของฉัน จากนั้นจึงต่อสายตัวควบคุมความเร็วพัดลมระหว่างตัวตัดการเชื่อมต่อและมอเตอร์ วิธีนี้ทำให้ฉันสามารถปิดเครื่องได้อย่างรวดเร็วและสามารถควบคุมความเร็วของมอเตอร์ได้ดีพอสมควร ตอนนี้ฉันต้องการวิธีเชื่อมต่อมอเตอร์กับโลก เพลาของมอเตอร์คือ 17/64" และเกลียวทั้งหมดที่ฉันใช้สำหรับโลกคือ 5/16" ข้อต่อขนาด 5/16" อาจเป็นแค่กลอุบาย แต่น่าเสียดายที่ฉันมีข้อต่อเพียง 3/8" ซึ่งไม่มีประโยชน์ แต่ฉันพบสต็อคอลูมิเนียมทรงกลม 1/2" และตัดเป็นชิ้นยาว 2" แล้วเจาะรู 17/64" ผ่านตรงกลาง ขนาดรูนี้เหมาะสำหรับการกรีดเกลียว 5/16-18 ครึ่งทางผ่าน สต็อกกลม ฉันยังเจาะและเคาะรูเล็ก ๆ ผ่านด้านข้างเพื่อเกลียวในสกรูชุดสำหรับเพลามอเตอร์จากนั้นฉันเกลียวในโลกและใช้น็อตยึดเพื่อยึด มอเตอร์ Dirt Devil หมุนเร็วพอที่จะทำให้รูแตก เลยต้องปรับความเร็วให้ต่ำที่สุดเท่าที่จะทำได้ ที่ความเร็วนี้ มอเตอร์จะไม่หมุนจริง ๆ ทำให้การเดินเครื่องค่อนข้างยุ่งยาก สิ่งที่ต้องทำคือ ไม่ให้โลกหมุนและค่อยๆ ยกเครื่องขึ้น ความเร็วจนกระทั่งมอเตอร์เริ่มทำงาน จากนั้น ฉันก็สามารถลดความเร็วลงและปล่อยโลกได้ ในที่สุด ด้วยการปรับจูนที่ละเอียดอ่อนบางอย่าง ฉันจะได้รับเอฟเฟกต์การหมุนช้าที่ยอดเยี่ยม
เล่นวีดีโอ
แนะนำ:
ความคงอยู่ของ Vision LED Staff: 11 ขั้นตอน (พร้อมรูปภาพ)
ความคงอยู่ของพนักงาน LED ของ Vision: เป็นที่ทราบกันดีว่าแม้หลังจากปิดไฟแล้ว ดวงตาของมนุษย์ก็ยัง "มองเห็น" เป็นเสี้ยววินาที สิ่งนี้เรียกว่าการคงอยู่ของการมองเห็นหรือ POV และอนุญาตให้ "ระบายสี" รูปภาพโดยเลื่อนแถบ o อย่างรวดเร็ว
สร้าง POV LED Globe ของคุณเอง: 5 ขั้นตอน (พร้อมรูปภาพ)
สร้าง POV LED Globe ของคุณเอง: ในโครงการนี้ ฉันจะแสดงให้คุณเห็นว่าฉันรวมชิ้นส่วนเหล็กสองชิ้นเข้ากับ Arduino, APA102 LED Strip และเซ็นเซอร์ Hall effect เพื่อสร้าง POV (ความคงอยู่ของการมองเห็น) RGB LED Globe ได้อย่างไร ด้วยสิ่งนี้ คุณสามารถสร้างภาพทรงกลมได้ทุกประเภท
ความคงอยู่ของ Vision Fidget Spinner: 8 ขั้นตอน (พร้อมรูปภาพ)
ความคงอยู่ของวิชัน ฟิดเจ็ต สปินเนอร์: นี่คือฟิดเจ็ตสปินเนอร์ซึ่งใช้เอฟเฟกต์การคงอยู่ของการมองเห็นซึ่งเป็นภาพลวงตาที่ภาพที่แยกจากกันหลายภาพรวมกันเป็นภาพเดียวในจิตใจของมนุษย์ ข้อความหรือกราฟิกสามารถเปลี่ยนแปลงได้ผ่านลิงค์ Bluetooth Low Energy โดยใช้ พี
POV GLOBE พร้อมภาพเคลื่อนไหว: 6 ขั้นตอน
POV GLOBE พร้อมแอนิเมชั่น: สวัสดีผู้สร้าง วันนี้ฉันจะบอกคุณเกี่ยวกับโปรเจ็กต์ใหม่ ลูกโลก POV ความคงอยู่ของการมองเห็น บทนำอย่างรวดเร็วเกี่ยวกับ POV หรือการมองเห็นอย่างต่อเนื่อง: ไฟแรงดันไฟ AC ใด ๆ ที่จริงแล้วกะพริบเปิดและปิดที่ความถี่ 60hz หรือ 60 ครั้งต่อวินาที สมองของเราต่อ
POV Globe 24 บิต True Color และ Simple HW: 11 ขั้นตอน (พร้อมรูปภาพ)
POV Globe 24 บิต True Color และ Simple HW: ฉันต้องการสร้างลูกโลก POV เหล่านี้มาโดยตลอด แต่ความพยายามในการบัดกรีไฟ LED สายไฟ ฯลฯ ขัดขวางฉันเพราะฉันเป็นคนเกียจคร้าน :-) จะต้องมีวิธีที่ง่ายกว่านี้!