สร้างโปรเจ็กเตอร์ปริมาตรจาก JUNK: 7 ขั้นตอน

สร้างโปรเจ็กเตอร์ปริมาตรจาก JUNK: 7 ขั้นตอน

สารบัญ:

Anonim

เครื่องฉายภาพแบบปริมาตรคือ … สิ่งที่ R2-D2 ใช้เพื่อแสดง Princess Leia ใน Star Wars

นี่เป็นโครงการเก่าที่ดูเหมือนว่าจะหยุดโดยการปฏิเสธโดย DLP เพื่อให้ชิป DMD

เพื่อเพิ่มความละเอียด 3D อย่างมากมาย โครงการนี้ไม่ได้เปลี่ยนแปลงเลยตั้งแต่

ก่อนที่ HDTV จะมีอยู่จริง ฉันคิดว่าหลังจากผู้คนตระหนักว่าโลกไม่แบนนี่คือสิ่งที่

พวกเขาจะดูเมื่อเทคโนโลยีภาพยนตร์ในยุค 1800 กลายเป็น "เก่า" ในที่สุด

มันง่ายพอที่จะสร้างโดยสิ้นเชิงไม่เกิน 2 คนในระยะเวลาอันสั้น

จำนวนเวลาทั้งหมด

จริง ๆ แล้วมันฉายภาพเคลื่อนไหว 3D บิตแมปในอากาศ

มันสามารถทำได้โดยทุกคนที่เก่งในการเขียนโปรแกรม PIC และมีความโน้มเอียงทางกลไก

มันเสียค่าใช้จ่ายเราไม่มีอะไรและมีศักยภาพเกินงบประมาณวิจัยจอแสดงผล 3 มิติที่สูงที่สุด

มันไม่มีชิ้นส่วนที่ไม่สามารถใช้งานได้ในปี 1980 ทุกชิ้นถูกทิ้งจากกองขยะ

ภาพเคลื่อนไหว 3 มิติส่วนใหญ่หรือทั้งหมดนั้นถูกส่ง 100 ไมล์ผ่านโมเด็มบอด 14400

มันไม่หยุดถ้าโมเด็มวางสาย

มันดูเหมือนกันจากทุกมุม

มันไม่มีกระจกแค่เลนส์เดียวซึ่งไม่มีข้อ จำกัด ขนาดของกระจกโค้ง

มันเป็นขยะขนาดใหญ่ แต่ใช้งานได้

เป็นสาธารณะ (แชร์ cc เหมือนกัน)

และหากมีการปรับปรุงข้อมูลอาจมีการแก้ปัญหาความล้มเหลวในการรับ DLP

รวมไปถึงอนิเมชั่นที่เก็บไว้ในนั้น

นั่นคือแล็ปท็อป 80286 รุ่นเก่าที่ใช้เป็น TTY ทางด้านขวา

วัสดุ:

ขั้นตอนที่ 1: ไปที่เว็บไซต์นี้

หมายเหตุทั้งหมดที่มีในปัจจุบันสำหรับโครงการนี้อยู่ที่นี่และอาจมีการปรับปรุงในอนาคต

holodeck.virand.com

สร้าง Holodeck

holodeck.virand.com

ชิ้นส่วนอิเล็กทรอนิกส์ที่ใช้:

ขั้วต่ออนุกรม (DB9) 9 พิน

MAX232C แปลงแรงดันไฟฟ้าข้อมูลระดับอนุกรม

INTEL 8031 ​​โปรเซสเซอร์ (พร้อมนาฬิกาคริสตัล 11.092 Mhz)

4K EPROM

256 LED ถูกสลักด้วย …

32 จาก 74HC574 เลือกโดย …

2 จาก 74LS154

RAM ขนาด 32K ใช้เป็นบัฟเฟอร์เฟรม 3 มิติ 60 เฟรม

OPTICAL SENSOR สำหรับการซิงค์ Lens Piston ในแนวตั้งผ่านการขัดจังหวะกับโปรเซสเซอร์

5V จ่ายไฟ … เมื่อ LED ทั้งหมดติดสว่างประมาณ 7 แอมป์

กลไกลูกสูบหนักที่ไร้สาระและไม่จำเป็นผลักเลนส์แว่นตาขึ้นและลง

โปรโตคอล: ASCII RS-232C แบบง่าย ๆ ที่มากถึง 19200 baud … เพียงแค่สองคำสั่งควบคุม

โซลูชันที่ไม่ใช้ DLP จะใช้กลไกการฉายภาพทางโทรทัศน์กลไกความละเอียดสูงแบบโบราณแทน LED

กลไกนี้เรียกว่า "Mirror Screw" และทำงานแตกต่างจากกระจกแบบเกลียวในโครงการ 3D เก่าบนไซต์

แต่เป็นทางเลือกราคาถูกและเทคโนโลยีต่ำสำหรับชิป DLP สำหรับโครงการนี้

ขั้นตอนที่ 2: เริ่ม Over-Get Eyeglass Lens

รับเลนส์แว่นตาที่ใหญ่ที่สุดที่คุณสามารถหาได้อาจเป็นเลนส์ที่ยังไม่ถูกตัดให้พอดีกับกรอบ

การแบ่งประเภทอาจจะดีกว่า เลนส์ที่ไม่เจียระไนมีลักษณะเหมือนแว่นขยายยกเว้นมี

ด้านเว้า หรือเพียงแค่เล่นกับแว่นตาของใครบางคนเป็นเวลาหนึ่งนาที

รับไฟ LED และแบตเตอรี่นาฬิกาแล้วสว่างขึ้น ถือ "แว่นตา" มองลง

ถือ LED เหนือแว่นตา เลื่อนแว่นตาขึ้นและลง คุณควรเห็น

ภาพเสมือนที่เคลื่อนย้ายได้ระหว่างแว่นตาและ LED

หากคุณมีวงกลมของ LED และคุณเลื่อนเลนส์แก้วขึ้นและลงคุณจะได้รับหลอด

หากคุณมีหลอด LED สองอันคุณจะได้รับลูกบาศก์

หากคุณเปลี่ยนภาพในขณะที่เลนส์เคลื่อนไหวโดยใช้ PIC ที่มี LED จำนวนมากคุณสามารถสร้างรูปร่างได้

สิ่งสำคัญคือภาพเสมือนจะปรากฏขึ้นในอากาศเหนือเลนส์

และขนาดของเลนส์คือขนาดสูงสุดของภาพ

---

แก้ไข: รูปภาพใหม่ + ความคิดเห็น:

โอ้ … ปรากฎว่าความแวววาวของวูฟเฟอร์ทำให้เกิดภาพลอยหลายภาพที่ไม่คาดคิด

ขั้นตอนที่ 3: การเขียนโปรแกรม

ฉันรู้ว่าฉันข้ามส่วนหนึ่งของการสร้างเครื่องจักร

มันเป็นขยะทำไมคุณจะทำแบบเดียวกันล่ะ?

นี่เป็นคำอธิบายสั้น ๆ ของโปรแกรมในภาษาอังกฤษ pseudocode:

1.RESET

มีข้อมูลใด ๆ ที่เป็นประโยชน์ใน RAM หรือไม่?

หากไม่มีให้คัดลอกแอนิเมชั่นตัวอย่างจาก ROM ไปยัง RAM

2. อ่านรายการเฟรมภาพเคลื่อนไหวและแสดงเฟรมถัดไป

(คัดลอกแรมลงในไฟ LED)

ข้อยกเว้น: เฟรม 00 หมายถึงไปที่เฟรมสุดท้าย FF หมายถึงไปที่เฟรมแรก

3. รอการซิงค์จากนั้นไปที่ขั้นตอนที่ 2

การซิงก์ขัดจังหวะโดย: ข้างต้นไปที่ขั้นตอนที่ 2

ซีรีย์อินพุตขัดจังหวะ:

เพียงเก็บข้อมูลไว้ในบัฟเฟอร์และดำเนินการต่อเหมือนก่อนเว้นแต่จะเป็น RETURN จากนั้นปฏิบัติตาม

รูปแบบข้อมูล: 0 ถึง 9 และ A ถึง F เป็นเลขฐานสิบหก มักจะถูกเก็บไว้ใน RAM

ตัวอักษรตัวพิมพ์เล็กคือคำสั่ง …

r -cold restart … คัดลอกการสาธิตจาก ROM ไปยัง RAM (การทดสอบ)

a - ตามด้วยข้อมูลเลขฐานสิบหกจาก 01 ถึง 3F แสดงลำดับภาพเคลื่อนไหวของเฟรมบวก 00 สำหรับเก็บภาพสุดท้ายและ FF สำหรับลูป

d - ตามด้วยหนึ่งไบต์ฐานสิบหกเฟรมที่จะแสดง

f - ตามด้วยหนึ่งไบต์ฐานสิบหกเฟรมเพื่อเขียนข้อมูล

i - ระบุอุปกรณ์ที่ใช้งานบนพอร์ต RS-232C ตอบกลับด้วย "Q" ซึ่งหมายถึง "CUBE" (ทดสอบ) โดยพลการ

HEX DATA - โดยปกติจะหมายถึงเฟรมใหม่ของบิตแมปสามมิติซึ่งจะสิ้นสุดแต่ละบรรทัดด้วย RETURN

เพราะมันมีระดับ 2D หนึ่งระดับของเฟรมบิตแมปสามมิติ บางคำสั่งเลือกเฟรมตามไบต์ฐานสิบหกต่อไปนี้

ภาพเคลื่อนไหวจำนวนมาก especailly หมุนวัตถุสมมาตรหมุนสามารถเคลื่อนไหวใน 3 เฟรมและหลังจากนั้น

อัปโหลดแล้วคำสั่ง "a 01 02 03 00" เริ่มต้นการเคลื่อนไหว

ความละเอียดของโปรเจ็กเตอร์ Volumetric ในปัจจุบันคือ 16x16x16 = 4096 บิต = ครึ่งกิโลไบท์

ดังนั้นประมาณ 62 เฟรมของอนิเมชั่นภาพ 3D ที่พอดีใน 32K

Frame zero แบ่งออกเป็นหน่วยเก็บข้อมูลภาพเคลื่อนไหวและบัฟเฟอร์ข้อมูลอนุกรมและคำสั่ง

จอแสดงผล Frame Zero จะถูกตีความว่าเป็น "Pause Animation, แสดงภาพปัจจุบันจนกว่าจะมีประกาศ"

ทุกอย่างง่ายเหมือนขั้นตอน 1,2,3 และซอฟต์แวร์ใน ROM น้อยกว่า 1K และพื้นที่ ROM ที่เหลืออยู่มี

ภาพตัวอย่างเพื่อให้สิ่งต่าง ๆ ควรทำงานได้โดยไม่ต้องเชื่อมต่อกับคอมพิวเตอร์

อาจมีการสตรีม "รายการทีวี 3D" ที่ยาวเนื่องจากสามารถดาวน์โหลดสิ่งหนึ่งและเล่นรายการอื่นได้ในเวลาเดียวกัน

ภาพเคลื่อนไหวทั้งหมดสำหรับเครื่องวัดปริมาตรนี้ถูกสร้างขึ้นอย่างรวดเร็วโดยใช้โปรแกรมที่เขียนในภาษาเบสิกในเวลาไม่ถึงหนึ่งชั่วโมง

มีคำถามเพิ่มเติมไหม?

ขั้นตอนที่ 4: การทำงานครั้งแรกของ …

อันนี้ทำมานานแล้วด้วย MC68705P3S ซึ่งมีความคล้ายคลึงกับ PIC16C57 ซึ่งมีประมาณ 1K

การใช้การแสดงดอทเมทริกซ์เช่นนี้สำหรับ 3D ไม่น่าประทับใจมาก

อย่างน้อยตอนนั้นไฟ LED ก็ไม่สว่างภาพสลัวมากและมองเห็นได้เฉพาะในห้องมืด

ชิปถูกโปรแกรมด้วยรูปแบบที่ชาญฉลาดซึ่งทำให้ชั้นของลูกบาศก์หมุน

ด้วย 3 ภาพระยะ (ก้อนหมุนโดยการหมุนเวียนผ่าน 3 ภาพ)

รูปแบบถูกเลือกเพื่อให้การแสดงดอทเมทริกซ์จะไม่ถูกสแกน

แต่ยังคงอยู่ในขณะที่โรเตอร์ผ่านภาพคิวบ์

เครื่องฉายปริมาตร Cube ทั้งหมดใช้ไฟ LED ที่ไม่ได้สแกนเพื่อให้ความสว่างสูงสุด

โรเตอร์? นี่เป็นเพียงชิปและแบตเตอรี่และการแสดงดอทเมทริกซ์บนพัดลมคอมพิวเตอร์

รูปภาพ 3 บิตแมปแต่ละภาพประกอบด้วยหลายชั้นของการออกแบบอย่างระมัดระวัง 7x10 บิตแมป (เพียง 17 บิตไม่ใช่ 70 บิต)

แน่นอนว่าพวกเขาสามารถใส่ชิป PIC ตัวเก่าได้

มีลำดับภาพเคลื่อนไหว ภาพลูกบาศก์หมุนตามเข็มนาฬิกา

จากนั้นก็หมุนทวนเข็มนาฬิกาแล้วก็หยุด การเรียงลำดับของ 3 ภาพ

ในอนิเมชั่นเป็นอะไรที่คล้าย ….

1231231231231231231212 (เลี้ยวเดียว)

3213213213213213213213213213 (หันไปทางอื่น)

333333333333333333333333333 (หยุดหมุนจากนั้นทำซ้ำทั้งหมดตามลำดับ)

(มีภาพเคลื่อนไหว "nut in cube" บนเว็บไซต์วิดีโอ WMV ที่เล่นคล้ายกันและมีเพียง 3 เฟรม)

ในขณะที่พัดลมหันไปวงจรก็ถูกยกขึ้นโดยแม่เหล็กโลกที่หายากผ่านหัวเทปเพื่อทิ้งเฟรมเข้าไปในไฟ LED

อุปกรณ์นี้ทำง่ายมาก แต่ไม่น่าประทับใจมากและถ้าคุณลองแตะภาพมันจะเจ็บ

ขั้นตอนที่ 5: วิธีการสร้างภาพของคนแรก

แผนภาพที่แสดงเป็นแผนคร่าวๆว่า "ภาพแรก" สร้างภาพสามภาพได้อย่างไร

นั่นทำให้ภาพของลูกบาศก์หมุน รูปแบบขนาดใหญ่ด้านบนแสดงถึง

การปรากฏตัวของด้านบนของภาพเสมือนซึ่งไม่ได้เข้ารหัสจริง

ด้านล่างของแต่ละภาพคือชุดของรูปแบบไฟ LED ดอทเมทริกซ์ที่แสดงขึ้นอย่างรวดเร็ว

ตามลำดับขณะที่โรเตอร์หมุนเพื่อให้ลูกบาศก์ปรากฏในหนึ่งในสามเฟรม

เคลื่อนไหวมันหมุน แต่ละรูปแบบขนาดเล็กแสดงถึงส่วนของ

เฟรม 3 มิติเป็นไฟ LED ตามที่ใบพัดหมุนผ่านภาพ

สิ่งเหล่านี้ถูกสร้างอย่างระมัดระวังเพราะอุปกรณ์นี้มีข้อ จำกัด

เพื่อแสดงรูปแบบที่อาจปรากฏบนจอแสดงผล LED โดยไม่ต้องมัลติเพล็กซ์

แต่ละรูปแบบเป็นรูปแบบหนึ่งที่อาจเกิดจากการใช้พลังงานอย่างต่อเนื่อง

จอแสดงผล LED จำเป็นเพราะหน้าจอไม่สว่างมาก

และจะได้รับหรี่มากขึ้นด้วยมัลติเพล็ก

เนื่องจากรูปสี่เหลี่ยมไม่ใช่รูปแบบที่สามารถแสดงด้วยวิธีนี้

วิธีที่ชัดเจนที่สุดในการแสดงลูกบาศก์ 3D ไม่ใช่หนึ่งในสามเฟรม

ดังนั้น "อันแรก" (อุปกรณ์ 3D ที่สร้างขึ้นบนแฟน) จึงมี จำกัด และดั้งเดิมและไม่มีประโยชน์มากกว่า

แสดงว่าลูกบาศก์หมุน 3 มิติสามารถแสดงได้และผู้คนจะพูดว่า "ว้าว"

ขั้นตอนที่ 6: ปัดฝุ่นออกสำหรับการสาธิตที่ดีอีกครั้งและข้อมูลเพิ่มเติม

ตกลงพีซีของฉันจะสับสนเล็กน้อยเมื่อเร็ว ๆ นี้และฉันสามารถสร้างภาพได้มากขึ้น

นี่คือกระดานหลักในเครื่องขยะขนาดใหญ่

มันเป็นเรื่องเหลวไหลมากหลังจากถูกดึงออกมาจากที่เก็บอาจเป็นสายที่หลวมมาก

เมื่อสิ่งนี้วิ่งมันสั่นอย่างรุนแรงเพราะมอเตอร์ที่น่ารังเกียจขนาดใหญ่เหล่านั้น

ที่ไหนสักแห่งในนั้นคือภาพเคลื่อนไหว 3 มิติที่ยอดเยี่ยมของเครื่องบินที่บินอยู่บนภูเขา

ซึ่งต้องเป็นประเภทแม่แบบเนื่องจาก Perspecta (tm) ได้ทำการสาธิตที่คล้ายกันมาก

ในข่าวไม่นานหลังจากที่ฉันทำและก่อนที่เราและพวกเขาจะรู้ซึ่งกันและกัน

ฉันเสนอเทคโนโลยีการฉายให้พวกเขา แต่ไม่เห็นแม้แต่ขยะของเรา

พวกเขาเพิกเฉยและเพิ่งส่งสแปมถึงเรา

เราและเพื่อนของเราเพิ่งยิ้มและพูดว่า "นั่นเป็นวิธีที่คุณทำเช่นนั้น!",

เช่นเดียวกับการแสดงทรงกลมของเรา (อาจจะเป็นคำสั่งในอนาคต) อย่างชัดเจน

จำเป็นต้องแสดงภาพของโลก ตัวอย่างการบิน

ซึ่งฉันหวังว่าจะแสดงวิดีโอที่นี่เร็ว ๆ นี้มีความแตกต่างอย่างชัดเจนกว่า

รูปทรงและสิ่งของอื่น ๆ ที่หมุนรอบตัวทั้งหมด มีเรนเดอร์ 2 มิติของ "flying demo"

รูปภาพบางแห่งในไซต์ "holodeck" ที่เชื่อมโยงในขั้นตอนที่ 2

ผ่านสายริบบิ้นนั้นไฟ LED ทั้ง 256 ดวงเหนือเลนส์แว่นตาวิเศษคือ

เชื่อมต่อกับ RAM ของตัวเองและด้วยวิธีนี้จะคล้ายกับ DLP / DMD

ในแง่ที่ว่าเทคโนโลยีนั้นมี RAM สักหน่อยที่ควบคุมกระจกทุกบาน

อย่างต่อเนื่องและขนาน ไม่มีกระจกส่องสว่างที่นี่เพียง LED ที่ปลายอีกด้านของสายเคเบิล

สองบอร์ดที่เล็กมาก ๆ ที่ไม่ได้แสดงมีชิป (# 1) MAX232 และ (# 2) เซ็นเซอร์ตำแหน่งเลนส์

มีคำถามหรือความคิดเห็นเกี่ยวกับวงจรนี้หรือไม่?

Psst! PIC ใด ๆ ที่ทำงานเร็วกว่าที่บอร์ดนี้ทำ

การแก้ไขข้อผิดพลาด: ชิปตัวเลือกที่อยู่คือ 74154 (ไม่ใช่ 74164)

ขั้นตอนที่ 7: เพียงแค่ต้องให้มันทำงานได้นานพอที่จะสร้างวิดีโอได้

บางทีฉันอาจจะต้องกำจัดมอเตอร์และวางวูฟเฟอร์ที่นั่น

และตอบคำถามหรือเพิ่มรายละเอียดที่เป็นประโยชน์เพิ่มเติมเกี่ยวกับวิธีการทำงาน

ขออภัยขั้นตอนนี้ยังไม่พร้อมตอนนี้ฉันยังเป็นคนชักกระตุกในการทำเช่นนี้หรือไม่? …

นอกจากนี้หากใครสนใจภาพ "ดูภาพตัวอย่าง" นี้จะเห็นเป็นครั้งแรกบนโปรเจคเตอร์

หลังจากการสังเคราะห์ข้อมูลและแสดงผลหรือแปลภายหลังจากข้อมูลของโปรเจ็กเตอร์