สารบัญ:

ตัวตรวจจับประสิทธิภาพการใช้เชื้อเพลิง: 5 ขั้นตอน
ตัวตรวจจับประสิทธิภาพการใช้เชื้อเพลิง: 5 ขั้นตอน

วีดีโอ: ตัวตรวจจับประสิทธิภาพการใช้เชื้อเพลิง: 5 ขั้นตอน

วีดีโอ: ตัวตรวจจับประสิทธิภาพการใช้เชื้อเพลิง: 5 ขั้นตอน
วีดีโอ: เซลล์เชื้อเพลิง (วิทยาศาสตร์กายภาพ ม.5 เล่ม 2 บทที่ 3) 2024, กรกฎาคม
Anonim
เครื่องตรวจจับประสิทธิภาพการใช้เชื้อเพลิง
เครื่องตรวจจับประสิทธิภาพการใช้เชื้อเพลิง

โดย: Danica Fujiwara และ William McGrouther

รถยนต์เป็นโหมดการขนส่งหลักในโลกปัจจุบัน โดยเฉพาะในแคลิฟอร์เนีย เราถูกล้อมรอบด้วยถนน ทางหลวง และถนนที่เก็บค่าผ่านทางซึ่งมีรถยนต์หลายพันคันที่ขับผ่านทุกวัน อย่างไรก็ตาม รถยนต์ใช้ก๊าซและแคลิฟอร์เนียใช้น้ำมันเบนซินมากที่สุดกว่ารัฐอื่นๆ ในสหรัฐอเมริกา ประมาณ 4, 500 แกลลอนต่อวัน สำหรับโครงการ CPE 133 Final ของเรา เราตัดสินใจสร้างระบบที่สามารถติดตามความเร็วของรถยนต์และบอกได้ว่าความเร็วนั้นเกินความเร็วที่มีประสิทธิภาพที่สุดสำหรับระยะการใช้น้ำมันหรือประหยัดน้ำมันที่ดีที่สุดหรือไม่ โครงการนี้จะช่วยให้ผู้ขับขี่ตระหนักถึงการประหยัดเชื้อเพลิง ซึ่งหวังว่าจะช่วยให้พวกเขาประหยัดเงิน ใช้ก๊าซน้อยลง และสร้างมลภาวะในอากาศน้อยลง

ขั้นตอนที่ 1: วัสดุ

วัสดุ
วัสดุ
วัสดุ
วัสดุ
วัสดุ
วัสดุ
วัสดุ
วัสดุ

วัสดุที่จำเป็นสำหรับโครงการนี้:

- พื้นฐาน 3 FPGA

- Arduino Uno

- เขียงหั่นขนม

- Adafruit BNO055 Absolute Orientation Sensor

- สายชายกับชาย

ขั้นตอนที่ 2: ทำความเข้าใจการออกแบบ

ทำความเข้าใจกับการออกแบบ
ทำความเข้าใจกับการออกแบบ
ทำความเข้าใจกับการออกแบบ
ทำความเข้าใจกับการออกแบบ

ไฟไนต์สเตทไดอะแกรม

โปรเจ็กต์นี้มีสถานะต่างกันสองสถานะภายในไดอะแกรมสถานะจำกัดที่แสดงด้านบน ไฟสามารถเปิดได้ (แสดงโดย '1') หรือปิด (แสดงโดย '0') สถานะจะเปลี่ยนขึ้นอยู่กับอินพุตของความเร็วในการติดตาม (ts) และความเร็วคงที่ที่เหมาะสมที่สุด

ไดอะแกรมกล่องดำ

ด้านบนยังมีไดอะแกรมกล่องดำของโมดูล Fuel Efficiency ที่มีแผนผังของตัวเปรียบเทียบความเร็วและหน้าจอ Seven Segment ที่จะกล่าวถึงต่อไปด้านล่าง รหัส VHDL นี้รับอินพุต 8 บิตจากการวัดความเร่งที่เชื่อมต่อกับ Arduino

ขั้นตอนที่ 3: การเข้ารหัส VHDL

สำหรับโครงการนี้มีไฟล์ VHDL สามไฟล์ที่สร้างการออกแบบของเรา โมดูล Fuel_Efficiency_FinalProject โมดูล Speed_Comparator และโมดูล sseg_dec โดยที่ Speed_Comparator และ sseg_dec อยู่ที่ระดับล่างเพื่อประกอบเป็นโมดูล Fuel Efficiency

โมดูลเปรียบเทียบความเร็ว

โมดูลนี้ใช้ความเร็ว 8 บิตในหน่วยไมล์ต่อชั่วโมง และเปรียบเทียบกับความเร็วที่เหมาะสมที่สุดสำหรับปริมาณการใช้ก๊าซน้อยที่สุด ความเร็วเฉลี่ยที่เหมาะสมที่สุดสำหรับระยะน้ำมันที่ดีที่สุดของรถยนต์คือประมาณ 55 ไมล์ต่อชั่วโมงหรือต่ำกว่า อย่างไรก็ตาม สิ่งนี้อาจแตกต่างกันไปในแต่ละรถยนต์ ซึ่งสามารถปรับแต่งได้ภายในโมดูล บรรทัดที่ 45 ของรหัสที่สามารถเปลี่ยนแปลงได้สำหรับการเพิ่มประสิทธิภาพส่วนบุคคลแสดงอยู่ด้านล่าง

ถ้า (ติดตาม > "00110111") แล้ว

โดยที่ “00110111” (55 ในรูปแบบไบนารี) สามารถเปลี่ยนเป็นตัวเลข 8 บิตใดๆ ก็ได้ สำหรับความเร็วในอุดมคติของรถยนต์ส่วนบุคคลของคุณ โดยจะสิ้นเปลืองเชื้อเพลิงน้อยที่สุด

หากความเร็วเกินจำนวนที่เหมาะสม ไฟจะสว่างขึ้นเพื่อแจ้งว่ารถไม่ได้ใช้เชื้อเพลิงอย่างมีประสิทธิภาพสูงสุด

โมดูลแสดงผลเจ็ดส่วน

โมดูลนี้ใช้ความเร็ว 8 บิตในหน่วยไมล์ต่อชั่วโมง และแสดงความเร็วบนจอแสดงผลเจ็ดส่วน สิ่งนี้จะช่วยให้ผู้ใช้รู้ว่าพวกเขาจะรู้ได้เร็วแค่ไหนว่าเขาหรือเธอต้องการที่จะช้าลง โมดูลนี้มอบให้เราในชั้นเรียนของเราและเขียนโดย Bryan mealy ที่มีส่วนประกอบ bin2bcdconv ซึ่งแปลงอินพุตไบนารี 8 บิตเป็นรูปแบบ BCD ที่ง่ายต่อการถอดรหัสและ clk_div เพื่อให้จอแสดงผลสามารถแสดงตัวเลขด้วยสายตาได้ 3 หลัก โดยการเปลี่ยนเอาท์พุตขั้วบวกที่ความถี่สัญญาณนาฬิกาสูง รหัสนี้ยอมรับตัวเลข 8 บิตเพื่อแปลงตัวเลขเป็นจอแสดงผลที่อ่านได้บนบอร์ด basy 3

โมดูลประสิทธิภาพการใช้เชื้อเพลิง

นี่คือไฟล์หลักที่ใช้โมดูลด้านบนเป็นส่วนประกอบ ปัจจัยการผลิตคือนาฬิกาและความเร็วในการติดตาม นาฬิกาถูกสร้างขึ้นภายในบอร์ด basy 3 และความเร็วในการติดตามนั้นมาจากเอาต์พุตของ Arduino ซึ่งเชื่อมต่อกับพอร์ตสัญญาณอนาล็อก pmod (XADC) ความเร็วในการติดตาม 8 บิตแต่ละบิตจะจับคู่กับพอร์ตที่แสดงในส่วนการเดินสายในขั้นตอนที่ 4 ข้อจำกัดอื่นๆ ของ Basy 3 สามารถพบได้ใน Basys_3_Master.xdc

ขั้นตอนที่ 4: การเข้ารหัส Arduino

โปรเจ็กต์นี้ใช้ไฟล์ Arduino หลักหนึ่งไฟล์ที่ต้องใช้ไลบรารีหลายตัว ซึ่งบางไฟล์มีอยู่แล้วในโปรแกรม Arduino ของคุณ และบางไฟล์ต้องดาวน์โหลดจากเว็บไซต์ Adafruit (ลิงก์ด้านล่าง)

ห้องสมุด

ลิ้งไปหน้า Adafruit BNO055:

Adafruit ได้พัฒนาห้องสมุด 2 แห่งเพื่อใช้ BNO055 และให้ตัวอย่างวิธีใช้งาน ในโครงการนี้ เราจะใช้ฟังก์ชัน.getVector เพื่อให้ Arduino ส่งออกข้อมูลของมาตรความเร่ง

โปรเจ็กต์นี้ยังใช้ไลบรารีบางตัวที่ติดตั้งไว้แล้วในโปรแกรม Arduino เช่น ไลบรารีคณิตศาสตร์

ไฟล์หลัก

ไฟล์นี้ใช้ข้อมูลมาตรความเร่งจากฟังก์ชัน.getVector และใช้สมการทางคณิตศาสตร์เพื่อเปลี่ยนเป็นความเร็วเป็นไมล์ต่อชั่วโมง จากนั้นจึงส่งออกข้อมูล 8 บิตไปยัง Basys 3 (ดูหัวข้อ "การเดินสายฮาร์ดแวร์" สำหรับข้อมูลเพิ่มเติม ข้อมูล).

ขั้นตอนที่ 5: การเดินสายฮาร์ดแวร์

เดินสายฮาร์ดแวร์
เดินสายฮาร์ดแวร์
เดินสายฮาร์ดแวร์
เดินสายฮาร์ดแวร์
เดินสายฮาร์ดแวร์
เดินสายฮาร์ดแวร์
เดินสายฮาร์ดแวร์
เดินสายฮาร์ดแวร์

การเดินสายไฟ Arduino

Arduino ควรต่อสายเข้ากับเขียงหั่นขนมเหมือนในภาพด้านบน

สายไฟพื้นฐาน 3

เอาต์พุตของ Arduino ถูกแมปกับอินพุตของ Basys 3 ผ่านพอร์ต JXADC สัญญาณอนาล็อก pmod แต่ละบิตของความเร็วในการติดตาม 8 บิตสามารถเชื่อมต่อกับหมุดตัวใดตัวหนึ่งที่แสดงในภาพด้านบน บิตที่มีนัยสำคัญน้อยที่สุด (พินดิจิทัล 7) เชื่อมต่อกับ ts(7) และบิตที่สำคัญที่สุด (พินดิจิทัล 0) เชื่อมต่อกับ ts(0)

แนะนำ: