Სარჩევი:
- ნაბიჯი 1: Vivado– ს კონფიგურაცია
- ნაბიჯი 2: VGA დრაივერის IP შეფუთვა
- ნაბიჯი 3: Zynq IP
- ნაბიჯი 4: GPIO IP
- ნაბიჯი 5: მეხსიერების ბლოკირება
- ნაბიჯი 6: სხვა IP
- ნაბიჯი 7: SDK
- ნაბიჯი 8: დასკვნა
ვიდეო: სარკის ჩვენება: 8 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
ამ პროექტის მიზანია შექმნას Smart Mirror გამოსახულების ჩვენების ფუნქცია. სარკეს შეუძლია აჩვენოს პროგნოზები (მზიანი, ნაწილობრივ მზიანი, მოღრუბლული, ქარიანი, წვიმა, ჭექა -ქუხილი და თოვლი) და ტემპერატურის მნიშვნელობები -9999 ° -დან 9999 ° –მდე. პროგნოზისა და ტემპერატურის მნიშვნელობები მკაცრად არის კოდირებული, თითქოს მათ მივბაძოთ ამინდის API- დან.
პროექტი იყენებს Zynq-Zybo-7000 დაფას, რომელსაც აქვს FreeRTOS და იყენებს Vivado 2018.2 აპარატურის დიზაინსა და პროგრამირებას.
ნაწილები:
Zynq-Zybo-7000 (FreeRTOS– ით)
19 LCD (640x480)
VGA კაბელი
12 "x 18" აკრილის სარკე
ნაბიჯი 1: Vivado– ს კონფიგურაცია
ჩამოტვირთეთ Vivado 2018.2 Xilinx– დან და გამოიყენეთ ვებ პაკეტის ლიცენზია. გაუშვით Vivado და "შექმენით ახალი პროექტი" და მიეცით სახელი. შემდეგი აირჩიეთ "RTL პროექტი" და შეამოწმეთ "არ მიუთითოთ წყაროები ამ დროს." ნაწილის არჩევისას აირჩიეთ "xc7z010clg400-1" და დააჭირეთ ღილაკს "დასრულება" მომდევნო გვერდზე.
ნაბიჯი 2: VGA დრაივერის IP შეფუთვა
დაამატეთ vga_driver.sv ფაილი დიზაინის წყაროებში. შემდეგი, დააწკაპუნეთ "ინსტრუმენტები" და აირჩიეთ "შექმენით და შეფუთეთ ახალი IP". აირჩიეთ "შეფუთეთ თქვენი მიმდინარე პროექტი". შემდეგ შეარჩიეთ IP ადგილმდებარეობა და "ჩართეთ.xci ფაილები". დააწკაპუნეთ "OK" ფანჯარაში და შემდეგ "დასრულება".
"შეფუთვის ნაბიჯებზე" გადადით "მიმოხილვა და პაკეტი" და აირჩიეთ "პაკეტის IP".
ახლა vga_driver ხელმისაწვდომი უნდა იყოს როგორც IP ბლოკი.
ნაბიჯი 3: Zynq IP
"IP ინტეგრატორის" განყოფილებაში აირჩიეთ "ბლოკის დიზაინის შექმნა". დაამატეთ "ZYNQ7 დამუშავების სისტემა" და ორჯერ დააწკაპუნეთ ბლოკზე. დააჭირეთ ღილაკს "იმპორტი XPS პარამეტრები" და ატვირთეთ ZYBO_zynq_def.xml ფაილი.
შემდეგი, "PS-PL კონფიგურაციის" განყოფილებაში გახსენით ჩამოსაშლელი სია "AXI Non Secure Enablement" და შეამოწმეთ "M AXI GP0 ინტერფეისი."
შემდეგი, "MIO კონფიგურაციის" განყოფილებაში გახსენით ჩამოსაშლელი სია "განაცხადის პროცესორის ერთეულისთვის" და შეამოწმეთ "ტაიმერი 0" და "Watchdog".
დაბოლოს, "საათის კონფიგურაციის" ქვეშ გახსენით ჩამოსაშლელი სია "PL Fabric Clocks" და შეამოწმეთ "FCLK_CLK0" და 100 MHz.
ნაბიჯი 4: GPIO IP
დაამატეთ ორი GPIO ბლოკი ბლოკის დიზაინში. GPIO გამოიყენება პიქსელის მისამართისა და პიქსელების RGB კომპონენტების გასაკონტროლებლად. დააკონფიგურირეთ ბლოკები, როგორც ეს მოცემულია ზემოთ მოცემულ სურათებში. მას შემდეგ რაც დაამატებთ და დააკონფიგურირებთ ორივე ბლოკს, შემდეგ დააჭირეთ ღილაკს "გაუშვით კავშირის ავტომატიზაცია".
GPIO 0 - არხი 1 აკონტროლებს პიქსელის მისამართს და არხი 2 აკონტროლებს წითელ ფერს.
GPIO 1 - არხი 1 აკონტროლებს მწვანე ფერს და არხი 2 აკონტროლებს ლურჯ ფერს.
ნაბიჯი 5: მეხსიერების ბლოკირება
დაამატეთ ბლოკის მეხსიერების გენერატორის IP ბლოკის დიზაინს და დააკონფიგურირეთ, როგორც ეს ნაჩვენებია ზემოთ. პიქსელის ფერები იწერება მეხსიერების მისამართებზე, რომლებსაც შემდეგ კითხულობს VGA დრაივერი. მისამართის სტრიქონი უნდა შეესაბამებოდეს გამოყენებული პიქსელების რაოდენობას, ამიტომ ის უნდა იყოს 16 ბიტი. მონაცემები ასევე არის 16 ბიტი, რადგან არსებობს 16 ფერის ბიტი. ჩვენ არ გვაინტერესებს რაიმე სახის ცნობის წაკითხვა.
ნაბიჯი 6: სხვა IP
თანდართული pdf აჩვენებს ბლოკის დასრულებულ დიზაინს. დაამატეთ დაკარგული IP და დაასრულეთ კავშირები. ასევე "გააკეთეთ ექსტერნალები" VGA ფერის გამოსავლებისთვის და ვერტიკალური და ჰორიზონტალური სინქრონიზაციის გამოსასვლელებისთვის.
xlconcat_0 - აერთიანებს ინდივიდუალურ ფერს და ქმნის ერთ 16 ბიტიან RGB სიგნალს, რომელიც იკვებება ბლოკის ოპერატიული მეხსიერებით.
xlconcat_1 - აერთიანებს სვეტისა და რიგის სიგნალებს VGA დრაივერისგან და იკვებება ბლოკის ოპერატიული მეხსიერების B პორტში. ეს საშუალებას აძლევს VGA დრაივერს წაიკითხოს პიქსელის ფერის მნიშვნელობები.
VDD - მუდმივი მაღალი, რომელიც დაკავშირებულია ბლოკის ოპერატიული მეხსიერების ჩაწერის ჩართვასთან, რათა ჩვენ ყოველთვის შეგვეძლოს მასზე უფლება.
xlslice_0, 1, 2 - ნაჭრები გამოიყენება RGB სიგნალის შესამცირებლად ცალკეულ R, G და B სიგნალებად, რომლებიც შეიძლება შევიდეს VGA დრაივერში.
ბლოკის დიზაინის დასრულების შემდეგ შექმენით HDL შეფუთვა და დაამატეთ შეზღუდვების ფაილი.
*ბლოკის დიზაინი ემყარება benlin1994– ის მიერ დაწერილ სახელმძღვანელოს*
ნაბიჯი 7: SDK
კოდი, რომელიც მუშაობს ამ ბლოკის დიზაინზე, მოცემულია ქვემოთ. Init.c შეიცავს ფუნქციებს, რომლებიც ამუშავებენ ნახატს (პროგნოზები, რიცხვები, ხარისხის სიმბოლო და სხვა). Main.c– ში მთავარი მარყუჟი არის ის, რაც დაფის დაპროგრამებისას ხდება. ეს მარყუჟი ადგენს პროგნოზისა და ტემპერატურის მნიშვნელობებს და შემდეგ იძახებს გათამაშების ფუნქციებს init.c. ის ამჟამად ახორციელებს შვიდივე პროგნოზს და აჩვენებს ერთმანეთის მიყოლებით. მიზანშეწონილია დაამატოთ შესვენების წერტილი 239 სტრიქონში, რათა ნახოთ თითოეული სურათი. კოდი არის კომენტარი და მოგაწვდით დამატებით ინფორმაციას.
ნაბიჯი 8: დასკვნა
მიმდინარე პროექტის გასაუმჯობესებლად, თქვენ შეგიძლიათ ატვირთოთ წინასწარი პროგნოზირების სურათები COE ფაილების სახით ბლოკის მეხსიერების გენერატორებში. ასე რომ, იმის ნაცვლად, რომ პროგნოზები ხელით დავხატოთ, როგორც ეს გავაკეთეთ C კოდში, შეიძლებოდა სურათების წაკითხვა. ჩვენ შევეცადეთ ამის გაკეთება, მაგრამ ვერ შევძელით მისი მუშაობა. ჩვენ შევძელით პიქსელის მნიშვნელობების წაკითხვა და მათი გამომუშავება, მაგრამ მან შექმნა ბინძური სურათები, რომლებიც არაფრით ჰგავდა მათ, რაც ჩვენ RAM- ზე ავტვირთეთ. ბლოკის მეხსიერების გენერატორის მონაცემთა ფურცელი სასარგებლოა წასაკითხად.
პროექტი არსებითად ნახევარი ჭკვიანი სარკეა, რადგან მას აკლია ინტერნეტთან დაკავშირების ასპექტი. ამის დამატება მისცემს სრულ ჭკვიან სარკეს.
გირჩევთ:
გააკეთეთ უსასრულობის სარკის საათი: 15 ნაბიჯი (სურათებით)
გააკეთე უსასრულობის სარკის საათი: წინა პროექტში მე ავაშენე უსასრულობის სარკე, სადაც ჩემი საბოლოო მიზანი იყო საათის გადაქცევა. (გააკეთე ფერადი უსასრულობის სარკე) მე არ შევეცადე ამას მისი აშენების შემდეგ, რადგან, მიუხედავად იმისა, რომ ის მშვენივრად გამოიყურებოდა, რამდენიმე რამ იყო
გააკეთეთ მარტივი უსასრულობის სარკის კუბი - არა 3D ბეჭდვა და არა პროგრამირება: 15 ნაბიჯი (სურათებით)
გააკეთეთ მარტივი უსასრულობის სარკის კუბი | არა 3D ბეჭდვა და არა პროგრამირება: ყველას მოსწონს კარგი უსასრულობის კუბი, მაგრამ ისინი ისე გამოიყურებიან, როგორც ძნელი გასაკეთებელი. ჩემი მიზანი ამ ინსტრუქციულ პროგრამაში არის გაჩვენოთ ნაბიჯ-ნაბიჯ თუ როგორ უნდა გააკეთოთ ეს. არა მხოლოდ ეს, არამედ იმ მითითებებით, რასაც მე გაძლევთ, თქვენ შეძლებთ გააკეთოთ ერთი
გალაქტიკა თქვენს ხელში! უსასრულობის სარკის ყუთი: 3 ნაბიჯი (სურათებით)
გალაქტიკა თქვენს ხელში! უსასრულობის სარკის ყუთი: ეს გაკვეთილი ეხება პატარა ფორმის შექმნას, რომელიც ქმნის უამრავ ასახვას შიგნით. სინათლისთვის ყველა კუთხის ხვრელებითა და პატარა ფანჯრის გასავლელად, თქვენ შეგიძლიათ უყუროთ ამ უსასრულობის პროცესს თქვენს ხელში! იდეა გაჩნდა უსასრულობის სარკის ყურებისას
გააკეთეთ უსასრულობის სარკის კუბი: 12 ნაბიჯი (სურათებით)
გააკეთე უსასრულობის სარკის კუბი: როდესაც ვეძებდი ინფორმაციას ჩემი პირველი უსასრულობის სარკის გაკეთებისას, მე წავაწყდი უსასრულობის კუბების რამდენიმე სურათს და ვიდეოს და აუცილებლად მინდოდა ჩემი საკუთარი გამეკეთებინა. მთავარი, რაც მაჩერებდა ის იყო, რომ მინდოდა სხვანაირად გამეკეთებინა
TTGO (ფერადი) ჩვენება მიკროპითონით (TTGO T- ჩვენება): 6 ნაბიჯი
TTGO (ფერადი) ჩვენება მიკროპითონით (TTGO T- ჩვენება): TTGO T-Display არის დაფა დაფუძნებული ESP32– ზე, რომელიც მოიცავს 1.14 დიუმიან ფერად ეკრანს. დაფის ყიდვა შესაძლებელია 7 დოლარზე ნაკლები პრიზით (გადაზიდვის ჩათვლით, პრიზი Banggood– ზე ნანახი). ეს წარმოუდგენელი პრიზია ESP32– ისთვის ჩვენების ჩათვლით