
Агуулгын хүснэгт:
2025 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2025-01-23 15:00


VHDL болон Basys 3 үндсэн самбар ашиглан секундомер хэрхэн бүтээх талаар зааварчилгаанд тавтай морилно уу. Бид тантай төслөө хуваалцахдаа баяртай байна! Энэ бол Cal Poly, SLO -ийн намрын 2016 оны CPE 133 (Дижитал дизайн) курсын эцсийн төсөл байв. Бидний бүтээсэн төсөл бол цагийг эхлүүлж, дахин тохируулж, түр зогсоодог энгийн секундомер юм. Энэ нь Basys3 самбар дээрх гурван товчлуурыг оролт болгон авдаг бөгөөд цагийг самбарын дөрвөн оронтой долоон сегмент бүхий дэлгэц дээр харуулдаг. Өнгөрсөн хугацааг секундын дотор харуулна: центисекунд формат. Энэ нь самбарын системийн цагийг өнгөрсөн хугацааг хянах оролт болгон ашигладаг бөгөөд долоон сегментийн дэлгэцийн дөрвөн оронтой тэнцэх хугацааг гаргадаг.
Алхам 1: Материал

Энэхүү төсөлд танд хэрэгтэй материалууд:
- Xilinx -ээс суулгасан Vivado Design Suite WebPack програмтай 1 компьютер (2016.2 хувилбарыг сонгоно уу)
- 1 Digilent Basys3 Xilinx Artix-7 FPGA самбар
- 1 USB порт кабель
Алхам 2: Оролт ба гаралтыг тохируулах
Дээрх зурагт секундомерын үндсэн модулийн дээд түвшний блок диаграммыг үзүүлэв. Секундомер нь "CLK" (цаг), "S1" (эхлэх товч), "S2" (түр зогсоох товч), "RST" (дахин тохируулах) оролтыг авдаг бөгөөд 4 битийн гаралттай "Анодууд", 7 бит гаралт "сегмент", нэг битийн гаралт "DP" (аравтын бутархай). "S1" оролт өндөр байх үед секундомер цаг тоолж эхэлдэг. "S2" бага байх үед секундомер цагийг зогсооно. "RST" өндөр байх үед секундомер зогсч, цагийг дахин тохируулдаг. Цахилгаан хэлхээнд дөрвөн дэд модуль байдаг: цаг хуваагч, цифр тоолуур, долоон сегментийн дэлгэцийн драйвер, долоон сегментийн дэлгэцийн кодлогч. Секундомерын үндсэн модуль нь бүх дэд модулиудыг оролт, гаралттай холбодог.
Алхам 3: Цаг хийх

Цаг хуваах модуль нь системийн цагийг хүлээн авч, хуваах оролтыг ашиглан системийн цагнаас илүүгүй хурдтай цагийг бий болгодог. Секундомер нь хоёр өөр цагийн модулийг ашигладаг бөгөөд нэг нь 500 Гц цаг, нөгөө нь 100 Гц цаг үүсгэдэг. Цаг хуваах схемийг дээрх зурагт үзүүлэв. Цаг хуваагч нь нэг битийн "CLK" оролт, 32 битийн "Divisor" оролт ба "CLKOUT" ганц битийн гаралтыг авдаг. "CLK" бол системийн цаг, "CLKOUT" нь үр дүнгийн цаг юм. Модуль нь мөн NOT хаалгыг агуулдаг бөгөөд тоолох нь хуваагчийн утгад хүрэх үед "CLKTOG" дохиог сольж өгдөг.
Алхам 4: Арав хүртэл тоолох

Цифр тоолуур нь цифр тус бүрийг 0-ээс 10 хүртэл тоолж, дараагийн цифр 10-д хүрэхэд хэлбэлздэг дараагийн цагийг ажиллуулах өөр цагийг бий болгодог. Модуль нь "S", "RST", "CLK гэсэн 3 битийн оролтыг авдаг. "бөгөөд нэг битийн гаралт" N "ба 4 битийн гаралт" D "гарна. "S" оролт нь оролтыг идэвхжүүлэх явдал юм. "S" өндөр байх үед цаг асдаг бөгөөд "S" бага байхад унтраана. "RST" нь дахин тохируулах оролт тул "RST" өндөр байх үед цагийг дахин тохируулдаг. "CLK" нь тоон тоолуурын цагийн оролт юм. "N" нь дараагийн оронтой оролтын цаг болох цагийн гаралт юм. "D" гаралт нь тоологч байгаа цифрийн хоёртын утгыг харуулна.
Алхам 5: Тоонуудыг харуулах

Долоон сегментийн дэлгэцийн кодлогч нь долоон сегментийн дэлгэцийн драйвер модулаас хүлээн авсан хоёртын дугаарыг кодчилж, дэлгэцийн сегмент бүрийн хувьд '1' эсвэл '0' гэж тайлбарлах битийн урсгал болгоно. Хоёртын дугаарыг модуль 4 битийн оролтын "цифр" хэлбэрээр хүлээн авч, 7 битийн гаралтын "сегментүүд" -ийг гаргадаг. Модуль нь 0-ээс 9 хүртэлх боломжит оролт бүрийн хувьд тодорхой 7 битийн урсгалыг хуваарилах ганц кейс процессийн блокоос бүрдэнэ. Долоон битийн урсгал дахь бит бүр нь дэлгэц дээрх цифрүүдийн долоон сегментийн аль нэгийг төлөөлдөг. Урсгал дахь сегментүүдийн дараалал нь "abcdefg" бөгөөд "0" нь тухайн тоон дээр гэрэлтдэг сегментүүдийг илэрхийлнэ.
Алхам 6: Секундомерийг хэрхэн харуулах вэ

Долоон сегментийн дэлгэцийн драйвер модульд "D0", "D1", "D2", "D3" гэсэн 4 битийн дөрвөн оролт байдаг бөгөөд тус бүр нь харуулах дөрвөн цифрийг илэрхийлнэ. "CLK" оролт нь системийн цагийн оролт юм. Нэг битийн гаралт "DP" нь долоон сегментийн дэлгэц дээрх аравтын бутархайг илэрхийлнэ. 4-битийн гаралт "Анодууд" нь долоон сегментийн дэлгэц дээр аль цифрийг харуулахыг тодорхойлдог бөгөөд 4 битийн "temp" гаралт нь "SEL" 2-битийн хяналтын оролтын төлөв байдлаас хамаарна. Модуль нь "SEL" хяналтын оролт болон гурван гаралтанд 4 мультиплексор ашигладаг; "Анодууд", "темп", "АН".
Алхам 7: Бүгдийг нэгтгэх
500 Гц давтамжтай ажиллаж байгаа 'хэрэв' процессийн блокыг эхлүүлэх, түр зогсоох товчлуурыг үүсгэхэд ашигладаг. Дараа нь дэд модуль бүрийн бүрэлдэхүүн хэсгүүдийг зарлаж, янз бүрийн дохиог ашиглан бүх дэд модулиудыг секундомерын үндсэн модульд холбоно. Цифрүүдийн дэд модулиуд нь өмнөх цифрийн дэд модулийн цагийн гаралтыг авдаг бөгөөд эхнийх нь 100 Гц давтамжтай байдаг. Дижитал дэд модулийн "D" гаралт нь долоон сегментийн дэлгэцийн драйвер модулийн "D" оролт болно. Эцэст нь долоон сегментийн дэлгэцийн драйвер модулийн "temp" гаралт нь долоон сегментийн кодлогч модулийн "temp" оролт болно.
Алхам 8: Хязгаарлалт

"RST", "S1", "S2" оролтонд 3 товчлуур (W19, T17, U18) ашиглана уу. W19 бол дахин тохируулах товч, T17 бол эхлэх товч (S1), U18 бол түр зогсоох товч (S2) юм. W5 портыг ашиглан цагийн оролтын оролтыг хязгаарлах шаардлагатай. Түүнчлэн, энэ мөрийг цагийн хязгаарлалтад оруулахаа бүү мартаарай.
create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports {CLK}]
Анод ба сегментүүдийг самбар дээр холбож, хязгаарлалтын файлд харуулсан шиг долоон сегментийн дэлгэц дээр секундомерийг харуулна.
Алхам 9: Туршилт

Таны кодтой холбоотой аливаа бэрхшээлийг олж мэдэхийн тулд төхөөрөмжөө дараалсан дарааллаар нь дарж гурван товчлуур дээр дарж ажиллаж байгаа эсэхийг шалгаарай.
Зөвлөмж болгож буй:
Цэвэр өгөгдлийг WiFi дээр удирдахын тулд Урлагийн цогц мэдрэгч самбарыг ашиглах: 4 алхам (зурагтай)

Wi -Fi сүлжээгээр цэвэр өгөгдлийг хянахын тулд Урлагийн цогц мэдрэгч самбарыг ашиглах нь: Та хэзээ нэгэн цагт дохио зангаагаар туршилт хийхийг хүсч байсан уу? Аливаа зүйлийг гараараа даллаж хөдөлгөх үү? Бугуйнхаа тохойгоор хөгжим удирдах уу? Энэхүү зааварчилгаа нь танд яаж хийхийг харуулах болно! Урлагийн цогц мэдрэгч самбар (complexarts.net) нь олон талт бичил биетэн юм
Орон нутгийн MQTT SERVER -д суурилсан гэрийн автоматжуулалт нь Raspberry PI болон NODEMCU самбарыг ашиглана: 6 алхам

Raspberry PI болон NODEMCU самбарыг ашиглан орон нутгийн MQTT сервер дээр суурилсан гэрийн автоматжуулалт: Өнөөг хүртэл би интернетээр цахилгаан хэрэгслийг хянах талаар хэд хэдэн видео бичлэг хийсэн. Үүний тулд би үргэлж Adafruit MQTT серверийг илүүд үздэг байсан тул ашиглахад хялбар, хэрэглэгчдэд ээлтэй байсан. Гэхдээ энэ бүхэн интернетэд суурилсан байв. Энэ нь бид
Blynk ашиглан Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE нийцтэй самбарыг хэрхэн ашиглах вэ: 10 алхам

Blynk ашиглан Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE нийцтэй самбарыг хэрхэн ашиглах вэ: Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE нийцтэй самбарыг тайлбарлах: WiFi ESP8266 хөгжлийн самбар WEMOS D1. WEMOS D1 бол ESP8266 12E дээр суурилсан WIFI хөгжүүлэх самбар юм. Үйл ажиллагаа нь NODEMCU -тэй төстэй, гэхдээ тоног төхөөрөмжийг суурилуулсан болно
Нэхмэл эдлэлээр гэрэлтүүлэх самбарыг хэрхэн ашиглах вэ: 5 алхам

Нэхмэл эдлэл дээр Light Up Board -ийг хэрхэн ашиглах вэ: Та Light Up Board -ийг нэхмэл эдлэл эсвэл хувцас дээр нэмэх талаар бодож байсан байх, гэхдээ хаанаас эхлэхээ сайн мэдэхгүй байна. Энэхүү гарын авлагад бид Light Up Board -ийг дамжуулагч утас бүхий даавуунд хэрхэн яаж хавсаргах, дараа нь хэрхэн яаж нэмэх талаар үзүүлэх болно
Si4703 FM радио самбарыг RDS ашиглан хэрхэн ашиглах вэ - Arduino заавар: 5 алхам (зурагтай)

Si4703 FM радио самбарыг RDS ашиглан хэрхэн ашиглах вэ - Arduino заавар: Энэ бол Silicon Laboratories Si4703 FM тааруулагч чипийн үнэлгээний самбар юм. Энгийн FM радио байхаас гадна Si4703 нь Radio Data Service (RDS) болон Radio Broadcast Data Service (RBDS) мэдээллийг хоёуланг нь илрүүлэх, боловсруулах чадвартай