Агуулгын хүснэгт:

Түлшний үр ашгийн детектор: 5 алхам
Түлшний үр ашгийн детектор: 5 алхам

Видео: Түлшний үр ашгийн детектор: 5 алхам

Видео: Түлшний үр ашгийн детектор: 5 алхам
Видео: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Арваннэгдүгээр
Anonim
Түлшний үр ашгийн детектор
Түлшний үр ашгийн детектор

Оруулсан: Даника Фудживара, Уильям МакГротер нар

Машин бол өнөөгийн дэлхийн тээврийн гол хэлбэр юм. Тодруулбал, Калифорнид бид гудамж, хурдны зам, төлбөртэй замуудаар хүрээлэгдсэн бөгөөд өдөр бүр хэдэн мянган машин явдаг. Гэсэн хэдий ч автомашинууд хий хэрэглэдэг бөгөөд Калифорнид АНУ -ын бусад мужуудаас хамгийн их бензин хэрэглэдэг бөгөөд өдөрт ойролцоогоор 4,500 галлон хэрэглэдэг. CPE 133 Final төслийн хувьд бид машины хурдыг хянаж, хамгийн оновчтой хурднаас хамгийн сайн хийн гүйлт эсвэл түлшний хэмнэлтийг хэмжих системийг бий болгохоор шийдсэн. Энэхүү төсөл нь жолооч нарт шатахууны хэмнэлтийн талаар мэдлэгтэй болоход тусалдаг бөгөөд энэ нь мөнгөө хэмнэх, хий бага зарцуулах, агаарт бага бохирдол гаргахад тусална гэж найдаж байна.

Алхам 1: Материал

Материал
Материал
Материал
Материал
Материал
Материал
Материал
Материал

Энэхүү төсөлд шаардлагатай материалууд:

- Basys 3 FPGA

- Ардуино Уно

- Талхны самбар

- Adafruit BNO055 Үнэмлэхүй чиглэлийн мэдрэгч

- Эрэгтэй эрэгтэй утас

Алхам 2: Дизайныг ойлгох

Дизайныг ойлгох
Дизайныг ойлгох
Дизайныг ойлгох
Дизайныг ойлгох

Хязгаарлагдмал төлөв байдлын диаграм

Энэ төсөл нь дээр үзүүлсэн хязгаарлагдмал төлөв байдлын диаграм дотор хоёр өөр төлөвтэй байна. Гэрэл нь асаалттай ("1" -ээр илэрхийлэгддэг) эсвэл унтраалттай ("0" -ээр илэрхийлэгддэг) байж болно. Мөрдөх хурд (ts) болон тогтмол оновчтой хурдны оролтоос хамааран төлөв байдал өөрчлөгддөг.

Хар хайрцагны диаграм

Дээрээс нь түлшний хэмнэлтийн модулийн Хар хайрцаг диаграммыг харуулав. Энэхүү VHDL код нь arduino-той холбогдсон акселерометрийн хэмжилтээс 8 битийн оролтыг хүлээн авдаг.

Алхам 3: VHDL кодлох

Энэхүү төслийн хувьд Fuel_Efficency_FinalProject модуль, Speed_Comparator модуль, мөн Speed_Comparator болон sseg_dec нь шатахууны хэмнэлтийн модулийг бүрдүүлэх sseg_dec модулийг бүтээдэг гурван VHDL файл байдаг.

Хурд харьцуулах модуль

Энэхүү модуль нь цагт 8 миль тутамд 8 битийн хурдыг авдаг бөгөөд хамгийн бага хийн зарцуулалт хийх оновчтой хурдтай харьцуулдаг. Машины хамгийн сайн хийн гүйлтийн дундаж оновчтой хурд нь ойролцоогоор 55 миль ба түүнээс доош байна. Гэсэн хэдий ч, энэ нь модуль дотор өөрчилж болох машинаас хамаарч өөр өөр байж болно. Хувийн оновчлолын хувьд өөрчилж болох кодын 45 -р мөрийг доор харуулав

if (tracking> "00110111") дараа нь

Энд "00110111" (хоёртын тоогоор 55) дугаарыг 8 битийн дурын дугаар болгон өөрчлөх боломжтой бөгөөд ингэснээр таны хувийн машин хамгийн оновчтой шатахуун зарцуулах болно.

Хэрэв хурд нь хамгийн оновчтой тооноос хэтэрсэн бол гэрэл асах бөгөөд машин түлшний хэмнэлтийг дээд зэргээр ашиглахгүй байна.

Долоон сегментийн дэлгэцийн модуль

Энэхүү модуль нь цагт 8 миль тутамд 8 битийн хурдыг авдаг бөгөөд долоон сегментийн дэлгэц дээр хурдыг харуулдаг. Энэ нь хэрэглэгч удаашрах шаардлагатай байгаа эсэхээ хэр хурдан мэдэж байгаагаа мэдэх боломжийг олгоно. Энэхүү модулийг манай ангид өгсөн бөгөөд Bryan mealy-ээр бичсэн бөгөөд бин2bcdconv гэсэн бүрэлдэхүүн хэсгүүдийг агуулсан бөгөөд хоёртын 8 битийн оролтыг BCD хэлбэрт хөрвүүлдэг бөгөөд үүнийг тайлахад хялбар бөгөөд clk_div дэлгэц нь 3 оронтой тоог харуулах боломжтой болно. анодын гаралтыг өндөр цагийн давтамжтайгаар өөрчлөх замаар. Энэ код нь 8 битийн тоог хүлээн авдаг бөгөөд энэ дугаарыг basys 3 самбар дээр унших боломжтой дэлгэц болгон хувиргадаг.

Түлшний хэмнэлтийн модуль

Энэ бол дээрх модулиудыг бүрэлдэхүүн хэсэг болгон ашигладаг гол файл юм. Түүний оролт бол цаг, хянах хурд юм. Энэхүү цагийг үндсэн 3 самбар дотор бүтээсэн бөгөөд хянах хурдыг аналог дохионы pmod порт (XADC) -д холбогдсон arduino гаралт өгдөг. 8 битийн хянах хурдны хэсэг бүрийг 4-р алхам дахь утастай хэсэгт харуулсан портууд дээр харуулна. Бусад Basys 3 хязгаарлалтыг Basys_3_Master.xdc дотроос олж болно.

Алхам 4: Arduino -г кодлох

Энэхүү төсөл нь хэд хэдэн номын санг ашиглах шаардлагатай нэг үндсэн arduino файлыг ашигладаг бөгөөд тэдгээрийн зарим нь таны arduino програмд аль хэдийн орсон байгаа бөгөөд заримыг нь энэ зааварчилгаа эсвэл Adafruit вэбсайтаас татаж авах шаардлагатай (доорх линк).

Номын сан

Adafruit BNO055 хуудасны линк:

Adafruit нь BNO055 -ийг ашиглахын тулд 2 номын сан боловсруулсан бөгөөд тэдгээрийг хэрхэн ашиглах талаар жишээг өг. Энэ төсөлд бид.getVector функцийг ашиглан акселерометрийн өгөгдлийг arduino гаргах болно.

Энэ төсөл нь математикийн номын сан гэх мэт arduino програмд аль хэдийн суулгасан зарим номын санг ашигладаг.

Үндсэн файл

Энэ файл нь.getVector функцийн акселерометрийн өгөгдлийг ашигладаг бөгөөд математик тэгшитгэлийг ашиглан миль / цагийн хурд болгон хувиргадаг бөгөөд үүнийг 8 бит өгөгдөлөөр Basys 3 руу гаргадаг ("Тоног төхөөрөмжийн утас холбох" хэсгийг үзнэ үү. мэдээлэл).

Алхам 5: Тоног төхөөрөмжийг холбох

Тоног төхөөрөмжийг холбох
Тоног төхөөрөмжийг холбох
Тоног төхөөрөмжийг холбох
Тоног төхөөрөмжийг холбох
Тоног төхөөрөмжийг холбох
Тоног төхөөрөмжийг холбох
Тоног төхөөрөмжийг холбох
Тоног төхөөрөмжийг холбох

Arduino утас

Arduino -ийг дээрх зурган дээрх шиг талхны хавтан дээр холбосон байх ёстой.

Basys 3 утас

Arduino -ийн гаралтыг Basys 3 -ийн оролт дээр JXADC аналог дохиогоор дамжуулдаг. 8 битийн мөрдөх хурдны бит бүрийг дээрх зурагт үзүүлсэн нэг тээглүүрт холбож болно. Хамгийн бага ач холбогдолтой бит (дижитал зүү 7) нь ts (7), хамгийн чухал бит (дижитал зүү 0) нь ts (0) -тэй холбогддог.

Зөвлөмж болгож буй: