โครงงานเครื่องวัดส่วนสูงแบบดิจิตอล ( งานที่ 4)
โครงงานเครื่องวัดส่วนสูงแบบดิจิตอล
หมายเลข 1 เซ็นเซอร์วัดระยะทางอัลตราโซนิค HC-sr04
หมายเลข 2 จอ LCD 16 ตัวอักษร 2 บรรทัด
หมายเลข 3 บอร์ด STM32F401VG
หมายเลข 4 บอร์ดแปลงไฟ 220 V ให้เป็น +5 และ GND
หมายเลข 5 USB ต่อบอร์ด STM32F401VG กับ คอมพิวเตอร์
หมายเลข 6 12 V dc Adapter
หมายเลข 7 เสาใช้ติดเซ็นเซอร์สูง 180 Cm
หมายเลข 8 หมวก เพื่อสร้างพื้นที่เรียบให้เซนเซอร์เกิดการสะท้อน
หมายเลข 2 จอ LCD 16 ตัวอักษร 2 บรรทัด
หมายเลข 3 บอร์ด STM32F401VG
หมายเลข 4 บอร์ดแปลงไฟ 220 V ให้เป็น +5 และ GND
หมายเลข 5 USB ต่อบอร์ด STM32F401VG กับ คอมพิวเตอร์
หมายเลข 6 12 V dc Adapter
หมายเลข 7 เสาใช้ติดเซ็นเซอร์สูง 180 Cm
หมายเลข 8 หมวก เพื่อสร้างพื้นที่เรียบให้เซนเซอร์เกิดการสะท้อน
Contents [show]
ที่มาและความเป็นมาของโครงงาน เครื่องวัดส่วนสูงแบบดิจิตอล
การวัดส่วนสูงเป็นเครื่องบอกความสมบูรณ์ของร่างกาย ว่ามีสภาพความแข็งแรงสมบูรณ์ดี สามารถบ่องบอกสิ่งที่เกี่ยวกับสุขภาพของตัวเราได้หลาย ๆ เช่น อ้วน ผอม สูง ต่างหรือแม้กระทั่งภาวะ เสี่ยงต่อโรคภัยต่างๆ มากมาย
การวัดสวนสูงในแต่ละครั้งนั้นมีความยุงยากลำบากและเสียเวลาทาง จากความสำคัญจุดนี้จึงมีการคิดค้นและประดิษฐ์เครื่องวัดส่วนสูงแบบดิจิตอลขึ้นมา เพราะการวัดส่วนสูงแบบธรรมดาจะทำให้เกิดการเสียเวลา
จากเหตุผลข้างต้นเราสามารถนำเอาเทคโนโลยีสมัยใหม่มาใช้เพื่ออำนวยความสะดวกจึงได้คิดสร้างเครื่อง วัดส่วนสูงแบบดิจิตอลขึ้นมาเพื่อให้เกิดความสะดวกในการวัดส่วนสูง
คุณสมบัติการทำงานของโครงงาน เครื่องวัดส่วนสูงแบบดิจิตอล
- สามารถวัดส่วนสูงตั้งแต่ 50 Cm – 178 Cm
- แสดงผลผ่านจอ LCD 16 ตัวอักษร 2 บรรทัด
หลักการทำงานของเซ็นเซอร์วัดระยะทางอัลตราโซนิค HC-sr04
การทำงานของ Ultrasonic sensor อุปกรณ์นี้เริ่มต้นทำงานโดยการส่งสัญญาณเริ่มต้นยาว 10 ไมโครวินาที ไปสั่งให้แหล่งกำเนิดเสียงทำงาน จากนั้นจะส่งคลื่นเสียงความถี่ 40 kHz ออกไป 8 พัสส์ แล้วรอฟังเสียงสะท้อนครับ ตัวซ้ายจะเป็นตัวส่งคลื่นเสียงออกไป ส่วนตัวขวาในรูปจะเป็นตัวรับความถี่ที่สะท้อนกลับมา
เนื่องจากเสียงที่ส่งออกไปถึงแม้จะไม่ได้ยินเพราะเกิน 20 kHZ ที่หูมนุษย์จะรับฟังได้ แต่เนื่องจากยังคงเป็นคลื่นเสียง ดังนั้นความเร็วของเสียงจึงแปรผันตามอุณหภูมิด้วยตามสูตรนี้
C ≈ 331.5 + 0.61 θ (m/s)
ดังนั้นเวลาผู้ผลิตเขียนโปรแกรมออกแบบไว้ก็อยู่ที่อุณภูมิทำงานที่อาจจะแตกต่างจากบ้านเรา ก็ทำให้ค่าที่วัดได้มีความผิดพลาดไปบ้าง
อีกส่วนที่จะต้องรู้ก็คือช่วงวัด และมุมที่สามารถวัดได้ และเนื่องจากคุณสมบัติของอุปกรณ์ที่ใช้ในการกำเนิดเสียง และรูปร่างของตัวลำโพง (Horn) ก็ทำให้อุปกรณ์ตัวนี้มีมุมวัด 15 องศา (Measuring Angle)โดยสามารถวัดระยะห่างได้ตั้งแต่ 2 ซม. จนถึง 4 เมตร
อีกส่วนที่จะต้องรู้ก็คือช่วงวัด และมุมที่สามารถวัดได้ และเนื่องจากคุณสมบัติของอุปกรณ์ที่ใช้ในการกำเนิดเสียง และรูปร่างของตัวลำโพง (Horn) ก็ทำให้อุปกรณ์ตัวนี้มีมุมวัด 15 องศา (Measuring Angle)โดยสามารถวัดระยะห่างได้ตั้งแต่ 2 ซม. จนถึง 4 เมตร
วิธีการใช้งานของเซ็นเซอร์วัดระยะทางอัลตราโซนิค HC-sr04
ตัว Ultrasonic sensor มีอยู่ด้วยกัน 4 pin คือ VCC GND Trig และ Echo
- VCC ต่อที่ขา 4
- GND ต่อที่ขา 7
- Trig ต่อที่ขา 5
- Echo ต่อที่ขา 6
ตัว VCC จะถูกใช้เป็นตัวควบคุมการเริ่มทำงาน หรือ หยุดทำงานของอุปกรณ์ จากนั้นสัญญาณเริ่มต้นในการปล่อยพัลส์จะถูกส่งไปที่ ขา Trig และ สัญญาณ Echo จะถูกส่งกลับไปที่ตัว บอร์ด STM32F401VG เพื่อคำนวณระยะทางต่อไป
หลักการทำงานของเครื่องวัดส่วนสูงแบบดิจิตอล
เมื่อจ่ายไฟเข้าไปในวงจร โปรแกรมที่อยู่ในบอร์ด STM32F401VG จะจ่าย Trig ให้เซนเซอร์ เซนเซอร์จะทำงานโดยการจ่ายคลื่นเสียงออกไป จากนั้นเมื่อคลื่นเสียงกระทบกับหมวกที่ใส จะสะทอนกับมาที่ตัวรับ จากนั้นค่าจากเซ็นเซอร์ที่วัดได้จะเข้าไปประมวนผลในบอร์ด STM32F401VG และแสดงผลออกทางจอ LCD
การนำไปใช้งานของเครื่องวัดส่วนสูงแบบดิจิตอล
1. เสียบ 12 V DC Adapter
2. ไปยืนในช่องของท่อ ( ช่องพื้นที่เป็นรูปสี่เหลียมผืนผ้าให้อยู่ใต้เซนเซอร์ ) ยืนตรง
3. สวมหมวกที่ให้มา ( เพื่อสร้างพื้นที่เรียบให้เซนเซอร์เกิดการสะท้อน )
4. ส่วนสูงจะแสดงออกที่จอ LCD
5. หากส่วนสูงไม่แสดงให้กดปุ่ม Reset หนึ่งครั้ง
วงจรการต่อวงจรที่สมบูรณ์ของโครงงาน เครื่องวัดส่วนสูงแบบดิจิตอล
วงจรการต่อวงจรที่สมบูรณ์ของโครงงาน เครื่องวัดส่วนสูงแบบดิจิตอล
จากวงจรข้างต้นนั้นจากบอร์ด STM32F407VG จะจ่าย Trig จากขา PD12 ให้เซ็นเซอร์ และรับค่าที่วัดได้จากเซ็นเซอร์เข้าที่ขา PB1 และนำมาเจนเนอเรทค่าผ่านโปรแกรม MATLAB และแสดงผลออกทางจอ LCD
และส่วนประกอบวงจรประกอบไปด้วย
- บอร์ด STM32F401VG
- จอ LCD 16 ตัวอักษร 2 บรรทัด
- เซ็นเซอร์วัดระยะทาง อัลตราโซนิค HC-sr04
โปรแกรม MATLAB ที่สมบูรณ์ของ เครื่องวัดส่วนสูงแบบดิจิตอล
โปรแกรม MATLAB ที่ใช้ทั้งหมดในโครงงาน เครื่องวัดส่วนสูงแบบดิจิตอล
1.เป็นการกำหนดการใช้บอร์ดว่าเราจะใช้บอร์ด Waijung 13.06
2.เป็นการกำหนดการจ่าย Pulse ให้ขา PD12 เพื่อไปจ่าย Trigger ให้เซนเซอร์
3.กำหนดว่าบรรทัดที่ 1 ให้แสดงอะไรและในที่นี้ให้แสดงคำว่า “Altitude”
4.เป็น output จาก Function – call
5.กำหนดว่าบรรทัดที่2 ให้แสดงอะไรและในที่นี้ให้แสดงค่าของ mycount ( เป็นประเภท int32 )
6.เขียนข้อมูลของ Line1 และ Line2 ลงจอ LCD เพื่อแสดงผล
7.ประกาศว่าจะใช้จอ LCD และประกาศ Line 1 (แสดงบรรทัดที่ 1) , Line 2 (แสดงบรรทัดที่ 2)
8.บล็อกนี้ใช้เพื่อสร้างการขัดจังหวะเวลาที่ไม่ตรงกัน โดยใช้ Function – call
ใน Function – call ดังนี้
9.1 รับค่าจากเซ็นเซอร์เข้าขา PB1 เพื่อเป็น Input ให้ฟังชันก์ M-file
9.2 กำหนดค่าเพื่อเป็น Input ให้ฟังชันก์ M-file
9.3 Output ฟังชันก์ M-file กำหนดให้ชื่อว่า mycount
function y = fcn(u,con) บรรทัดที่ 1 กำหนด Output เป็น y และ Input เป็น u และ con
persistent cn1; บรรทัดที่ 2 ประกาศตัวแปล cn1
persistent cn2; บรรทัดที่ 3 ประกาศตัวแปล cn2
persistent flag; บรรทัดที่ 4 ประกาศตัวแปล flag
persistent wi; บรรทัดที่ 5 ประกาดตัวแปล wi
if isempty(cn1) บรรทัดที่ 6 เงื่อนไขที่ 1ตรวจว่า cn1 ว่ามีค่าใดๆหรือไม่
cn1 = 0; บรรทัดที่ 7 กำหนดค่า cn1 ให้เท่ากับ 0
cn2 = 0; บรรทัดที่ 8 กำหนดค่า cn2 ให้เท่ากับ 0
wi = 180; บรรทัดที่ 9 กำหนดค่า wi ให้เท่ากับ 180
end บรรทัดที่ 10 จบเงื่อนไขที่ 1
if isempty (flag) บรรทัดที่ 11 เงื่อนไขที่ 2 ตรวจว่า flag ว่ามีค่าใดๆหรือไม่
flag = 0; บรรทัดที่ 12กำหนดค่า flag ให้เท่ากับ 0
end บรรทัดที่ 13 จบเงื่อนไขที่ 2
if (u==1) บรรทัดที่ 14 เงื่อนไขที่ 3 เริ่มนับเมื่อ u=1
cn1 = cn1 + 1; บรรทัดที่ 15 cn1 มีค่าเท่ากับ cn1 นับเพิ่มขึ้นที่ละหนึ่ง
if (cn1>=10000) บรรทัดที่ 16 ถ้า cn1 มีค่ามากกว่า10000
cn1 = 10000; บรรทัดที่ 17 ให้ cn1 มีค่าเท่ากับ 10000
end บรรทัดที่ 18 จบเงื่อนไขที่ 3
flag = 1; บรรทัดที่ 19 ให้ flag เท่ากับ 1
else บรรทัดที่ 20 เงื่อนไขที่ 4
if(flag == 1) บรรทัดที่ 21 ถ้า flag มีค่าเท่ากับ 1
cn2 = cn1; บรรทัดที่ 22 ให้ cn2 เท่ากับ cn1
cn1 = 0; บรรทัดที่ 23 กำหนด cn1 เท่ากับ 0 เพื่อ Reset Counter
flag = 0; บรรทัดที่ 24 กำหนดให้
end บรรทัดที่ 25 จบเงื่อนไขถ้า flag เท่ากับ 1
end บรรทัดที่ 26 จบเงื่อนไขที่ 4
y=int32(wi-a) ; บรรทัดที่27 บอกว่า y มีค่าเท่ากับ 180 – ( cn2 * ( 100 / 572 ) )
persistent cn1; บรรทัดที่ 2 ประกาศตัวแปล cn1
persistent cn2; บรรทัดที่ 3 ประกาศตัวแปล cn2
persistent flag; บรรทัดที่ 4 ประกาศตัวแปล flag
persistent wi; บรรทัดที่ 5 ประกาดตัวแปล wi
if isempty(cn1) บรรทัดที่ 6 เงื่อนไขที่ 1ตรวจว่า cn1 ว่ามีค่าใดๆหรือไม่
cn1 = 0; บรรทัดที่ 7 กำหนดค่า cn1 ให้เท่ากับ 0
cn2 = 0; บรรทัดที่ 8 กำหนดค่า cn2 ให้เท่ากับ 0
wi = 180; บรรทัดที่ 9 กำหนดค่า wi ให้เท่ากับ 180
end บรรทัดที่ 10 จบเงื่อนไขที่ 1
if isempty (flag) บรรทัดที่ 11 เงื่อนไขที่ 2 ตรวจว่า flag ว่ามีค่าใดๆหรือไม่
flag = 0; บรรทัดที่ 12กำหนดค่า flag ให้เท่ากับ 0
end บรรทัดที่ 13 จบเงื่อนไขที่ 2
if (u==1) บรรทัดที่ 14 เงื่อนไขที่ 3 เริ่มนับเมื่อ u=1
cn1 = cn1 + 1; บรรทัดที่ 15 cn1 มีค่าเท่ากับ cn1 นับเพิ่มขึ้นที่ละหนึ่ง
if (cn1>=10000) บรรทัดที่ 16 ถ้า cn1 มีค่ามากกว่า10000
cn1 = 10000; บรรทัดที่ 17 ให้ cn1 มีค่าเท่ากับ 10000
end บรรทัดที่ 18 จบเงื่อนไขที่ 3
flag = 1; บรรทัดที่ 19 ให้ flag เท่ากับ 1
else บรรทัดที่ 20 เงื่อนไขที่ 4
if(flag == 1) บรรทัดที่ 21 ถ้า flag มีค่าเท่ากับ 1
cn2 = cn1; บรรทัดที่ 22 ให้ cn2 เท่ากับ cn1
cn1 = 0; บรรทัดที่ 23 กำหนด cn1 เท่ากับ 0 เพื่อ Reset Counter
flag = 0; บรรทัดที่ 24 กำหนดให้
end บรรทัดที่ 25 จบเงื่อนไขถ้า flag เท่ากับ 1
end บรรทัดที่ 26 จบเงื่อนไขที่ 4
y=int32(wi-a) ; บรรทัดที่27 บอกว่า y มีค่าเท่ากับ 180 – ( cn2 * ( 100 / 572 ) )
สรุปผลการทำงานของโครงงาน เครื่องวัดส่วนสูงแบบดิจิตอล
เครื่องวัดส่วนสูงแบบดิจิตอลนี้ สามารถวัดส่วนสูงของคนที่สูงตั้งแต่ 50 cm ถึง 178 cm แสดงผลเป็นดิจิตอลผ่านจอ LCD ดังนั้นจึงทำให้ไม่เสียวเวลามากในการวัดส่วนสูง แต่โครงงานนี้สีข้อเสียคือเมื่อเมื่ออากาศเปลี่ยนแปลงค่าของเซนเซอร์ที่วัดได้อาจคาดเคลื่อนเล็กน้อย
ความคิดเห็น
แสดงความคิดเห็น