วันเสาร์ที่ 21 พฤษภาคม พ.ศ. 2559

mini project Ultrasonic #5

สิ่งที่ได้ทำ
ได้แก้ไขโค้ดใหม่ทั้งหมดได้ดังนี้
Count_output
ทำงานโดยแบ่งเป็น 2 state
  1. countTrig คือสร้างสัญญาณ trigger ความกว้าง 20 us หรือ 1000 clk เพื่อให้ ultrasonic ทำงาน (ส่งใหม่ทุกๆ 1วินาที)
  2. countEcho เมื่อ logic ใน echo_in เป็น 1 จะเริ่มนับจำนวน clk ไปเรื่อยๆ และเมื่อครบ 1 วินาทีก็จะทำการ latch ค่าที่ได้ออกเป็น output เลข binary 21 bit
Distance2ASCII
รับค่าเวลาที่เป็น binary 21 bit และเข้าสูตรหาระยะทาง โดยนำเวลาไปหาร 2941 (ค่าคงที่สำหรับหาเวลา ที่ system speed 50MHz) หลักจากนั้นก็นำไป mod เพื่อแยกเอาเลขแต่ละหลักมาหาค่า ASCII และ นำผลลัพธ์ที่ได้ออกเป็น output 3 หลัก ร้อย สิบ หน่วย
LCD
โค้ดส่วนนี้จะควบคุมการแสดงผลของจอ LCD โดยอ้างอิงจาก
LCD_Demo
เป็นส่วนควบคุมการทำงานของ lcd 16x2 แบ่งเป็น 2 ส่วนคือส่วนหลักและส่วนที่นำมาเขียนใช้งาน (ที่มา ip core: http://opencores.org/project,16x2_lcd_controller) ในส่วนของ code ส่วนหลัก จะมีบรรทัดที่มีลักษณะแบบนี้ เป็นค่าที่จะไปแสดงผลมีทั้งหมด 2 line เราจึงทำการแก้ไขเอาค่า ASCII ที่ได้มาใส่เพื่อให้แสดงผล Ultrasonic ได้ทั้ง 4 channal
 line1(127 downto 120) <= X"20";
 line1(119 downto 112) <= X"20";
 line1(111 downto 104) <= X"48";  -- H
 line1(103 downto 96)  <= X"65";  -- e
 line1(95 downto 88)   <= X"6c";  -- l
 line1(87 downto 80)   <= X"6c";  -- l
 line1(79 downto 72)   <= X"6f";  -- o
 line1(71 downto 64)   <= X"20";
  • โค้ด count_output

-โค้ด Distance2ASCII

1.PNG2.PNG


-โค้ด LCD
3.PNG4.PNG
6.PNG
7.PNG
8.PNG
9.PNG
10.PNG
11.PNG
12.PNG
13.PNG


-LCD_demo
1.PNG
2.PNG
3.PNG4.PNG


-โค้ด Ultrasonic
1.PNG
4.PNG
2.PNG



ผลการทดลอง

รูปวงจร Ultrasonic 4 channal ที่ได้ต่อ ขณะทำการทดลอง

รูปแสดงค่าระยะทางที่วัดได้จาก Ultrasonic 4 channal บน LCD 16x2

6.jpg

รูปภาพวัดสัญญาณ Ultrasonic 1 channal โดยเครื่องวัดสัญญาณ Oscilloscope
Link Video:


วันอังคารที่ 10 พฤษภาคม พ.ศ. 2559

mini project Ultrasonic #4

สิ่งที่ได้ทำ
LCD
โค้ดส่วนนี้จะควบคุมการแสดงผลของจอ LCD โดยอ้างอิงจาก
LCD_Demo
เป็นส่วนควบคุมการทำงานของ lcd 16x2 แบ่งเป็น 2 ส่วนคือส่วนหลักและส่วนที่นำมาเขียนใช้งาน (ที่มา ip core: http://opencores.org/project,16x2_lcd_controller)
Ultrasonic
เป็นส่วนที่นำการทำงานของโค้ดส่วนต่างๆมารวมกัน

ปัญหาจากการทดลอง
- ผลที่มาแสดงหน้าจอ LCD ออกมาเป็น 000cm วัดค่าระยะทางไม่ได้