Სარჩევი:
- ნაბიჯი 1: მასალები
- ნაბიჯი 2: კოდირების დაწყება
- ნაბიჯი 3: შეზღუდვების ფაილი
- ნაბიჯი 4: Flip Flop ფაილი
- ნაბიჯი 5: სეგმენტების ფაილი
- ნაბიჯი 6: საათის გამყოფი ფაილი
- ნაბიჯი 7: სერვო სიგნალის ფაილი
- ნაბიჯი 8: Servo ზედა ფაილი
- ნაბიჯი 9: ზედა ფაილი
- ნაბიჯი 10: ტესტირება Vivado– ში
- ნაბიჯი 11: აპარატურის დანერგვა
- ნაბიჯი 12: მომზადება
- ნაბიჯი 13: შედუღება
- ნაბიჯი 14: ფინალი
ვიდეო: CPE 133 ნაგვის დამლაგებელი: 14 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:20
ჩვენი CPE 133 კლასის Cal Poly– ში ჩვენ გვითხრეს, რომ შევქმნათ VHDL/Basys 3 პროექტი, რომელიც დაეხმარება გარემოს და იყო საკმაოდ მარტივი, რომ ჩვენ შეგვეძლო მისი განხორციელება ციფრული დიზაინის ახალი ცოდნით. ჩვენი პროექტის იდეა იმაში მდგომარეობს, რომ ზოგადად, ხალხი არ ფიქრობს იმაზე, თუ სად ყრის თავისი ნაგავი. ჩვენ გადავწყვიტეთ შევქმნათ მანქანა, რომელიც აიძულებდა ხალხს აზროვნება გაეკეთებინათ იქ, სადაც ნაგავს ყრიდნენ. ნაგვის დამლაგებელი იღებს მომხმარებლის შეყვანას სამი კონცენტრატორის საშუალებით, თითოეული წარმოადგენს ნაგავს, გადამუშავებას ან კომპოსტს. მას შემდეგ, რაც მომხმარებელმა შეარჩია ნარჩენები (ები), რომელთა განკარგვაც სურს, დააჭირეთ ღილაკს. ეს ღილაკი გამოიწვევს შესაბამისი კონტეინერის ხუფების გახსნას. აპარატმა ასევე გამოიყენა ეკრანი Basys 3 -ზე, რომ მიუთითოს, არის თუ არა რომელიმე სახურავი ამჟამად გახსნილი. როდესაც ღილაკი გათავისუფლდება, ხუფები კვლავ დაიხურება ისე, რომ მანქანა მზად იყოს მომდევნო მომხმარებლისთვის.
ნაბიჯი 1: მასალები
ამ პროექტისათვის საჭირო მასალებია:
Basys 3 დაფა
დაინსტალირებული კომპიუტერი Vivado– ით
3x სერვო*
3 ფუტიანი სპილენძის მავთული
მავთულის საჭრელი/სტრიპტიზი
Soldering რკინის და solder
*რადგან სერვოები ძვირია და ჩვენ კოლეჯის სტუდენტები ვართ, ჩვენ შევცვალეთ 68 ოჰმეტიანი რეზისტორი და LED თითოეული სერვო, როგორც პროტოტიპი (კოდი მუშაობს ერთნაირად)
ნაბიჯი 2: კოდირების დაწყება
ამ პროექტისთვის ბევრი კოდია დასაწერი. ჩვენ გამოვიყენებთ Vivado– ში დაწერილ VHDL კოდს. დასაწყისისთვის ჩვენ გვსურს შევქმნათ ახალი პროექტი. პირველ რიგში დაასახელეთ პროექტი და მიუთითეთ პროექტის ტიპი. დარწმუნდით, რომ შეარჩიეთ იგივე პარამეტრები, როგორც სურათზე. როდესაც მიხვალთ წყაროების ეკრანზე, თქვენ გინდათ დაამატოთ ექვსი წყარო სახელწოდებით "ზედა", "flip_flop", "სეგმენტები", "servo_top", "servo_sig" და "clk_div". დარწმუნდით, რომ აირჩიეთ VHDL თითოეული ფაილის ენაზე და არა Verilog. შეზღუდვების ეკრანზე თქვენ უნდა შექმნათ ერთი ფაილი პინის მინიჭებისთვის. ამ ფაილის სახელი არ არის მნიშვნელოვანი. შემდეგ მოგეთხოვებათ აირჩიოთ დაფა, რომელსაც გამოიყენებთ. დარწმუნდით, რომ შეარჩიეთ სწორი. მითითებული ფოტოები სწორი შერჩევისთვის. ბოლო ნაბიჯი მოგთხოვთ მიუთითოთ თითოეული წყაროს ფაილის შესავალი და გამოსავალი. ამ ნაბიჯის კოდირება შესაძლებელია მოგვიანებით, ასე რომ დააწკაპუნეთ შემდეგზე.
ნაბიჯი 3: შეზღუდვების ფაილი
ამ ეტაპზე ჩვენ დავწერთ შეზღუდვების ფაილს. ეს ეუბნება Vivado– ს, რომელი ქინძისთავები გაგზავნის/მიიღებს რომელ სიგნალებს მიკროსქემისგან. ჩვენ დაგვჭირდება საათი, სამი გადამრთველი, შვიდი სეგმენტის ჩვენება (შვიდი კათოდი და ოთხი ანოდი), ღილაკი და სამი გამომავალი PMOD ბუდე, რომელსაც სერვო/LED გამოიყენებს. მიმართეთ ფოტოებს, თუ როგორ უნდა გამოიყურებოდეს კოდი.
ნაბიჯი 4: Flip Flop ფაილი
შემდეგი ფაილი, რომელსაც ჩვენ ვწერთ, არის flip_flip საწყისი ფაილი. ეს იქნება D ფლიპ ფლოპის VHDL განხორციელება. სხვა სიტყვებით რომ ვთქვათ, ის მხოლოდ გადასცემს შესასვლელს საათის სიგნალის მზარდ ზღვარზე და ღილაკზე დაჭერისას. დასჭირდება საათი, D და ღილაკი შეყვანისთვის და გამოვა Q. მიუთითეთ ფოტოები კოდისთვის. ამ ფაილის მიზანია ურნების გახსნა მხოლოდ ღილაკზე დაჭერისას და არა პირდაპირ გახსნის ყოველ ჯერზე გადამრთველის გადაბრუნებისას და მხოლოდ დახურვისას როდესაც გადამრთველი უკან იხრება.
ნაბიჯი 5: სეგმენტების ფაილი
შემდეგი ფაილი, რომელიც დაიწერება, არის სეგმენტების ფაილი. ეს მიიღებს ღილაკს, როგორც შეყვანის და გამომავალი მნიშვნელობების შვიდი კათოდისა და ოთხი ანოდის Basys 3 -ის შვიდი სეგმენტის ჩვენებისათვის. ეს ფაილი იწვევს შვიდი სეგმენტის ჩვენებას აჩვენოს "C" როდესაც ურნები დახურულია და "O" როდესაც ყუთები ღიაა. კოდისთვის იხილეთ თანდართული ფოტო.
ნაბიჯი 6: საათის გამყოფი ფაილი
Servos ფუნქციონირებს 64W Hz სიხშირის PWM სიგნალის აღებით, ხოლო Basys 3 -ში ჩაშენებული საათი მუშაობს 50M Hz. საათის გამყოფი ფაილი გადააქცევს ნაგულისხმევ საათს სერვოს მეგობრულ სიხშირეზე. ფაილი მიიღებს საათის და გადატვირთვის სიგნალს შეყვანის სახით და გამოუშვებს ახალი საათის სიგნალს. კოდისთვის იხილეთ თანდართული ფოტო.
ნაბიჯი 7: სერვო სიგნალის ფაილი
სერვო სიგნალის ფაილი მიიღებს საათის შეყვანას, გადატვირთვის შეყვანას და სასურველი პოზიციის შეყვანას. ის გამოუშვებს PWM სიგნალს, რომელიც სერვოს მიიყვანს სასურველ პოზიციაზე. ეს ფაილი იყენებს საათის სიგნალს, რომელიც შეიქმნა ბოლო ფაილში, რათა შექმნას PWM სიგნალი servo– სთვის სხვადასხვა მოვალეობის ციკლით, სასურველი პოზიციის მიხედვით. ეს საშუალებას გვაძლევს გადავაბრუნოთ სერვოები, რომლებიც აკონტროლებენ ნაგვის ურნების ხუფებს. კოდისთვის იხილეთ თანდართული ფოტო.
ნაბიჯი 8: Servo ზედა ფაილი
ამ ფაილის მიზანია შეაგროვოს ბოლო ორი ფაილი ფუნქციურ სერვო დრაივერში. დასჭირდება საათი, გადატვირთვა და პოზიცია, როგორც შესასვლელი და გამოიტანს servo PWM სიგნალს. ის გამოიყენებს როგორც საათის გამყოფს, ასევე სერვო სიგნალის ფაილს, როგორც კომპონენტებს და მოიცავს შიდა საათის სიგნალს, რომ გადასცეს მოდიფიცირებული საათი საათის გამყოფიდან სერვო სიგნალის ფაილში. იხილეთ ფოტოები აქ
ნაბიჯი 9: ზედა ფაილი
ეს არის პროექტის ყველაზე მნიშვნელოვანი ფაილი, რადგან ის მოიცავს ყველაფერს, რაც ჩვენ ერთად შევქმენით. ის მიიღებს ღილაკს, სამ კონცენტრატორს და საათს, როგორც შესასვლელს. ის იძლევა შვიდი კათოდს, ოთხ ანოდს და სამ სერვო/LED სიგნალს, როგორც გამოსასვლელს. ის გამოიყენებს ფლიპ ფლოპს, სეგმენტებს და servo_top ფაილებს, როგორც კომპონენტებს და ექნება შიდა გადამრთველი და შიდა სერვო სიგნალი.
ნაბიჯი 10: ტესტირება Vivado– ში
გაუშვით სინთეზი, განხორციელება და ჩაწერეთ bitsream Vivado– ში. თუ რაიმე შეცდომის შეტყობინებას წააწყდებით იპოვეთ შეცდომის ადგილმდებარეობა და შემდეგ შეადარეთ მოცემულ კოდს. იმუშავეთ შეცდომებზე, სანამ ყველა ეს გაშვება წარმატებით დასრულდება.
ნაბიჯი 11: აპარატურის დანერგვა
ამ ეტაპზე თქვენ შექმნით LED ტექნიკას, რომელიც ჩვენ ვიყენეთ ჩვენს პროტოტიპში. თუ სერვისებს იყენებთ, პროექტი მზად უნდა იყოს, სანამ სწორი ქინძისთავები გამოიყენება. LED- ების გამოყენებისას მიჰყევით ქვემოთ მოცემულ ნაბიჯებს.
ნაბიჯი 12: მომზადება
გაჭერით მავთული ექვს თანაბარ ნაწილად. მავთულის თითოეული ნაჭრის ბოლოები საკმარისად გაწურეთ ისე, რომ მოხდეს შედუღება. გამოყავით LED- ები, რეზისტორები და მავთულები სამ ჯგუფად. გაათბეთ გამაგრილებელი რკინა.
ნაბიჯი 13: შედუღება
შეაერთეთ 68 ოჰმიანი თითოეული რეზისტორი მათი შესაბამისი LED- ის უარყოფით მხარეს. შეაერთეთ მავთული LED- ის დადებით მხარეზე და სხვა მავთული იმ რეზისტორის მხარეს, რომელიც არ არის გამაგრებული led- ზე. თქვენ უნდა გქონდეთ სამი შუქდიოდური კონტრაქტი, რომელიც გამოსახულია ზემოთ.
ნაბიჯი 14: ფინალი
ჩადეთ თითოეული დადებითი მავთული შესაბამის PMOD პინში და თითოეული უარყოფითი მიწაში PMOD პინში. სურვილისამებრ დაამატეთ მუყაოს ურნები ნაგვის ურნების წარმოსაჩენად და დამალეთ თქვენი შედუღების არეულობა. მას შემდეგ, რაც მავთულები სწორად არის ჩართული და კოდი სწორად არის ატვირთული დაფაზე შეცდომების გარეშე, მანქანა უნდა მუშაობდეს ისე, როგორც ის განკუთვნილია. თუ რამე არასწორედ მიდის, დაუბრუნდით წინა ნაბიჯებს პრობლემის მოსაგვარებლად. გაერთეთ თქვენი ახალი "ნაგვის დამლაგებელი".
გირჩევთ:
როგორ კოდირება ფერის დამლაგებელი Modkit– ში Vex– ისთვის: 7 ნაბიჯი
როგორ კოდირება ფერის დამლაგებელი Modkit– ში Vex– ზე: გამარჯობა ყველას, ამ გაკვეთილში თქვენ ისწავლით თუ როგორ უნდა კოდირებდეთ ფერის ბურთის დასალაგებლად Modkit– ში Vex– სთვის
CPE 133 ფინალური პროექტი ორობითიდან: 5 ნაბიჯი
CPE 133 საბოლოო პროექტი ორობითიდან: ორობითი რიცხვები ერთ -ერთი პირველია, რაც იბადება აზრად ციფრული ლოგიკაზე ფიქრისას. თუმცა, ორობითი რიცხვები შეიძლება იყოს რთული კონცეფცია მათთვის, ვინც ახლებია. ეს პროექტი დაეხმარება მათ, ვინც არის როგორც ახალი, ასევე გამოცდილი ორობითი რიცხვებით მას
ფერის დამლაგებელი: 6 ნაბიჯი
ფერის დამლაგებელი: ამ ფერის დამლაგებლების მიზანია m & ms- ის გადატანა სხვადასხვა გროვაში მათი ფერის მიხედვით
მონეტების ელექტრონული დამლაგებელი: 7 ნაბიჯი (სურათებით)
ელექტრონული მონეტების დამლაგებელი: დიდი ხნის წინ, როდესაც ჯერ კიდევ შესაძლებელი იყო სკოლაში წასვლა, ჩვენ მივიღეთ საინტერესო იდეა აპარატის შესაქმნელად, რომელიც მუშაობს საკმაოდ მარტივად - სწორი თანხის გადაყრის შემდეგ, ჩვენ გასცემს კონკრეტულ პროდუქტს. ვერ ვამხელ
CPE 133 მეტრონომი: 3 ნაბიჯი
CPE 133 მეტრონომი: Cal Poly– ში ჩვენი საბოლოო პროექტისთვის ჩვენ შევქმენით ტემპების შემნახველი მოწყობილობა, რომელსაც მეტრონომი ჰქვია, ჩვენ ავირჩიეთ ეს პროექტი ინტერესის მუსიკისა და ციფრული დიზაინის გამო. ჩვენ გამოვიყენეთ წარსული ლაბორატორიები CPE 133– ში, რათა დაგეხმაროთ ჩვენი კოდის შემუშავებაში და ონლაინ გაკვეთილები, რათა დაგეხმაროთ