วันพฤหัสบดีที่ 2 มิถุนายน พ.ศ. 2559

Display Monitor based WS2812 Array 8 X 32

MiniProject 
Display Monitor based WS2812 Array 8 X 32

ขอบเขตและข้อกำหนดของระบบ
- ใช้บอร์ดทดลองชิป FPGA (Altera Cyclone III) เป็นตัวประมวลผล
          ๐ ใช้ความถี่ของวงจรสร้างสัญญาณนาฬิกาเท่ากับ 50MHz
          ๐ ใช้แรงดันไฟเลี้ยงสำหรับ I/O เท่ากับ 3.3V (LVTTL)
- สร้างหน่วยความจำขนาด 256 X 24 bits ที่สามารถอ่านและเขียนข้อมูลได้ผ่านทาง UART
- นำข้อมูลที่เก็บไว้ในหน่วยความจำนั้นมาแสดงผล
- มีการสร้างแอปพลิเคชั่นซอฟแวร์บนคอมพิวเตอร์ที่สามารถเขียนข้อมูลลงในหน่วยความจำที่สร้างขึ้นได้


ภาพรวมของการทำงาน

แนวทางการออกแบบ
- สรุปภาพรวมการทำงานของระบบทั้งหมด และแยกการทำงานออกเป็นส่วนๆ
- และทำความเข้าใจ และวาดระบบการทำงานของแต่ละส่วน (Block Diagram)


Block Diagram


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




ภาพหน้าตาของแอปพลิเคชั่น

FPGA 
รับ input ข้อมูลสีขนาด 256 X 24 bits
ทำหน้าที่ สร้างหน่วยความจำขนาด 256 X 24 bits ที่สามารถอ่านและเขียนข้อมูลได้ผ่านทาง UART และนำข้อมูลที่เก็บไว้ในหน่วยความจำนั้น ไปให้ WS2812 แสดงผล
ส่ง output ข้อมูลสีขนาด 256 X 24 bits

Code ที่ใช้งาน

ดาวน์โหลด -https://drive.google.com/open?id=0B8ZdsZ2TCcQLQUtGRm03NXYwY1E

ผลการทดลอง












คลิปวิดีโอผลการทดลอง







วันจันทร์ที่ 21 มีนาคม พ.ศ. 2559

การทดลองที่ 3

คำสั่ง
การทดลองที่ 3 

3) จงออกแบบวงจรดิจิลัทโดยใช้ภาษา VHDL สำหรับนำไปสร้างเป็นวงจรในชิป FPGA  
3.1) วงจรดิจิทัลมี I/O ดังนี้ 
- CLK (input) มีความถี่ 50MHz ใช้สำหรับกำหนดจังหวะการทำงานของวงจรทั้งหมด (เป็นการออกแบบวงจร ดิจิทัลแบบ Synchronous Design) 
- RST_B (input) เป็นอินพุตสำหรับใช้รีเซตแบบ Asynchronous สำหรับการทำงานของวงจรโดยรวม (ทำงานแบบ Active-Low) ซึ่งได้จากวงจรปุ่มกด (Push Button) 
- PB (input) เป็นอินพุตจากปุ่มกด 1 ปุ่ม ทำงานแบบ Active-low เพื่อใช้ในการเปลี่ยนสีของ WS2812 RGB LED จำนวน 1 ดวง 
- DATA (output) เป็นเอาต์พุตสำหรับนำไปควบคุมการทำงานของ WS2812 RGB LED เพียง 1 ดวง ซึ่งเป็น สัญญาณตามข้อก าหนดของชิป WS2812 เพื่อส่งข้อมูลจำนวน 24 บิต 
3.2) พฤติกรรมการทำงานเป็นดังนี้ 
- เมื่อเริ่มต้นหรือกดปุ่มรีเซต (RST_B) จะทำให้ค่าสีเป็น 0x000000 (24 บิต) และส่งออกไปยัง WS2812 RGB LED หนึ่งครั้ง 
- เมื่อมีการกดปุ่ม PB แล้วปล่อยในแต่ละครั้ง จะมีการเปลี่ยนค่าสี 24 บิต แล้วส่งออกไปยัง RGB LED ใหม่ หนึ่งครั้ง ตามลำดับดังนี้ 0x000000 -> 0x0000FF -> 0x00FF00 -> 0xFF0000 แล้ววนซ้ำ
3.3) แนวทางการออกแบบและทดสอบ 
- ออกแบบวงจรโดยใช้ภาษา VHDL 
- ทดสอบการทำงานในบอร์ด FPGA แล้ววัดสัญญาณโดยใช้ออสซิลโลสโคป 
- บันทึกผลและเขียนรายงานการทดลอง

โค๊ดของวงจร

ผลการทดสอบ