Სარჩევი:

CPE 133 ნაგვის დამლაგებელი: 14 ნაბიჯი
CPE 133 ნაგვის დამლაგებელი: 14 ნაბიჯი

ვიდეო: CPE 133 ნაგვის დამლაგებელი: 14 ნაბიჯი

ვიდეო: CPE 133 ნაგვის დამლაგებელი: 14 ნაბიჯი
ვიდეო: CPE 133 Lab 2 2024, ნოემბერი
Anonim
CPE 133 ნაგვის დამლაგებელი
CPE 133 ნაგვის დამლაგებელი

ჩვენი 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 Flop ფაილი
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 ზედა ფაილი
Servo ზედა ფაილი

ამ ფაილის მიზანია შეაგროვოს ბოლო ორი ფაილი ფუნქციურ სერვო დრაივერში. დასჭირდება საათი, გადატვირთვა და პოზიცია, როგორც შესასვლელი და გამოიტანს servo PWM სიგნალს. ის გამოიყენებს როგორც საათის გამყოფს, ასევე სერვო სიგნალის ფაილს, როგორც კომპონენტებს და მოიცავს შიდა საათის სიგნალს, რომ გადასცეს მოდიფიცირებული საათი საათის გამყოფიდან სერვო სიგნალის ფაილში. იხილეთ ფოტოები აქ

ნაბიჯი 9: ზედა ფაილი

ტოპ ფაილი
ტოპ ფაილი
ტოპ ფაილი
ტოპ ფაილი
ტოპ ფაილი
ტოპ ფაილი
ტოპ ფაილი
ტოპ ფაილი

ეს არის პროექტის ყველაზე მნიშვნელოვანი ფაილი, რადგან ის მოიცავს ყველაფერს, რაც ჩვენ ერთად შევქმენით. ის მიიღებს ღილაკს, სამ კონცენტრატორს და საათს, როგორც შესასვლელს. ის იძლევა შვიდი კათოდს, ოთხ ანოდს და სამ სერვო/LED სიგნალს, როგორც გამოსასვლელს. ის გამოიყენებს ფლიპ ფლოპს, სეგმენტებს და servo_top ფაილებს, როგორც კომპონენტებს და ექნება შიდა გადამრთველი და შიდა სერვო სიგნალი.

ნაბიჯი 10: ტესტირება Vivado– ში

გაუშვით სინთეზი, განხორციელება და ჩაწერეთ bitsream Vivado– ში. თუ რაიმე შეცდომის შეტყობინებას წააწყდებით იპოვეთ შეცდომის ადგილმდებარეობა და შემდეგ შეადარეთ მოცემულ კოდს. იმუშავეთ შეცდომებზე, სანამ ყველა ეს გაშვება წარმატებით დასრულდება.

ნაბიჯი 11: აპარატურის დანერგვა

ამ ეტაპზე თქვენ შექმნით LED ტექნიკას, რომელიც ჩვენ ვიყენეთ ჩვენს პროტოტიპში. თუ სერვისებს იყენებთ, პროექტი მზად უნდა იყოს, სანამ სწორი ქინძისთავები გამოიყენება. LED- ების გამოყენებისას მიჰყევით ქვემოთ მოცემულ ნაბიჯებს.

ნაბიჯი 12: მომზადება

გაჭერით მავთული ექვს თანაბარ ნაწილად. მავთულის თითოეული ნაჭრის ბოლოები საკმარისად გაწურეთ ისე, რომ მოხდეს შედუღება. გამოყავით LED- ები, რეზისტორები და მავთულები სამ ჯგუფად. გაათბეთ გამაგრილებელი რკინა.

ნაბიჯი 13: შედუღება

შედუღება
შედუღება
შედუღება
შედუღება

შეაერთეთ 68 ოჰმიანი თითოეული რეზისტორი მათი შესაბამისი LED- ის უარყოფით მხარეს. შეაერთეთ მავთული LED- ის დადებით მხარეზე და სხვა მავთული იმ რეზისტორის მხარეს, რომელიც არ არის გამაგრებული led- ზე. თქვენ უნდა გქონდეთ სამი შუქდიოდური კონტრაქტი, რომელიც გამოსახულია ზემოთ.

ნაბიჯი 14: ფინალი

ფინალი
ფინალი

ჩადეთ თითოეული დადებითი მავთული შესაბამის PMOD პინში და თითოეული უარყოფითი მიწაში PMOD პინში. სურვილისამებრ დაამატეთ მუყაოს ურნები ნაგვის ურნების წარმოსაჩენად და დამალეთ თქვენი შედუღების არეულობა. მას შემდეგ, რაც მავთულები სწორად არის ჩართული და კოდი სწორად არის ატვირთული დაფაზე შეცდომების გარეშე, მანქანა უნდა მუშაობდეს ისე, როგორც ის განკუთვნილია. თუ რამე არასწორედ მიდის, დაუბრუნდით წინა ნაბიჯებს პრობლემის მოსაგვარებლად. გაერთეთ თქვენი ახალი "ნაგვის დამლაგებელი".

გირჩევთ: