Სარჩევი:
- ნაბიჯი 1: მასალები
- ნაბიჯი 2: შავი ყუთის დიაგრამა
- ნაბიჯი 3: გარე სპიკერის დაკავშირება
- ნაბიჯი 4: სტრუქტურული დიაგრამა
- ნაბიჯი 5: სასრული მდგომარეობის აპარატის (FSM) დიაგრამა
ვიდეო: კონკურენტუნარიანი ბუზერის სისტემა: 5 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:16
ამ პროექტში შემუშავებული კონკურენტუნარიანი ზუზუნის სისტემა მუშაობს ზუზუნის სისტემების მსგავსად, რომლებიც გამოიყენება სამეცნიერო თასის რეგიონალურ და ეროვნულ კონკურსებში. ეს პროექტი იყო შთაგონებული ჩემი ჩართულობის ჩემი უმაღლესი სკოლის მეცნიერების თასი გუნდი სამი წლის განმავლობაში. ჩვენ ყოველთვის გვქონდა სურვილი ხელახლა შევქმნათ ჩაკეტილი ზუზერის სისტემა 5 წამიანი და 20 წამიანი ტაიმერით.
ზუზუნის სისტემის შესახებ ფონის გასაცემად, სამეცნიერო თასის ზუმერები დაპროგრამებულია, რომ შევიდეს მაქსიმუმ 8 მოთამაშე (8 ცალკეული ზუზუნით). მას შემდეგ რაც ერთ ზუმერს დააწკაპუნებთ, პირველი პირის ზარი აანთებს იმის მითითებას, თუ რომელი მოთამაშე იღებს კითხვას. დანარჩენი მოთამაშეები "ჩაკეტილები" იქნებიან, რაც იმას ნიშნავს, რომ მათი ზარი არ რეაგირებს მანამ, სანამ მოდერატორი არ განაახლებს ზუზუნის სისტემას.
მას შემდეგ, რაც მოდერატორი კითხვებს კითხულობს, ის დააჭერს ღილაკს, რომ დაიწყოს ათვლის დრო, რომელიც გამოჩნდება შვიდი სეგმენტის ეკრანზე. "გადაყრის" კითხვის შემდეგ, მოდერატორს შეუძლია დააჭიროს მარჯვენა ღილაკს, რომ დაიწყოს დათვლა 5 წამიდან. იმავდროულად, "ბონუს" კითხვის შემდეგ, მოდერატორს შეუძლია დააჭიროს მარცხენა ღილაკს, რომ დაიწყოს ათვლა 20 წამიდან. მას შემდეგ, რაც ტაიმერი ნულს მიაღწევს, ხმის ზარი აჩვენებს, რომ მოთამაშეს დრო ამოეწურა.
სისტემის გადასაყენებლად და ათვლის ქრონომეტრზე, მოდერატორს შეუძლია დააჭიროს ცენტრალურ ღილაკს. დაბლოკვის მექანიზმისა და პლეერის LED- ების გადასაყენებლად, გადამრთველები 1 და 2 მოთამაშეებისთვის დაბალი უნდა იყოს.
ნაბიჯი 1: მასალები
თქვენ დაგჭირდებათ შემდეგი:
- Basys3 დაფა (ან ექვივალენტი FPGA დაფა)
- Micro-B USB კაბელი
- სპიკერი (მე გამოვიყენე პასიური სპიკერი)
- 2 მავთული
- პროგრამული უზრუნველყოფა FPGA– ზე განსახორციელებლად (მე გამოვიყენე Vivado)
- კონკურენტუნარიანი ბუზერის სისტემის ფაილი
ნაბიჯი 2: შავი ყუთის დიაგრამა
შავი ყუთის დიაგრამა გვიჩვენებს იმ შეყვანებსა და გამომავლებს, რომლებიც გამოყენებული იქნება ამ ზუზუნის სისტემაში.
შეყვანა:
player1, player2 ეს შეყვანა დაკავშირებულია Basys3 დაფის ორ კონცენტრატორთან. მოხერხებულობისთვის გამოყენებული იქნება მარცხენა და მარჯვენა გადამრთველები.
გადატვირთვა ცენტრალური ღილაკი გამოყენებული იქნება გადატვირთვის ღილაკის გამოსახატად.
count_down_20_sec მარცხენა ღილაკი გამოყენებული იქნება 20 წამიანი ტაიმერის ღილაკის გამოსახატავად.
count_down_5_sec მარჯვენა ღილაკი გამოყენებული იქნება 20 წამიანი ტაიმერის ღილაკის გამოსახატად. 20 წამიანი და 5 წამიანი ქრონომეტრის დაწყების უზრუნველსაყოფად, დააჭირეთ ღილაკს მანამ, სანამ შვიდ სეგმენტიანი ეკრანი არ აჩვენებს ტაიმერს.
CLK FPGA დაფა გამოიმუშავებს საათს, რომელიც მუშაობს 10 ns სიხშირით.
გამომავალი:
სპიკერი დინამიკის გამომავალი დაკავშირებულია გარე ზუზერთან ან დინამიკთან. თქვენ მოგიწევთ დინამიკის დაკავშირება Basys3 დაფის JA pmod პორტებთან. ეს ნაბიჯი ქვემოთ იქნება აღწერილი.
speaker_LED ეს გამომავალი დაკავშირებულია გამგეობის ცენტრში არსებულ LED- თან და უბრალოდ მიუთითებს როდის არის FPGA სპიკერის გამოსავალი მაღალი. თქვენ შეგიძლიათ გამოიყენოთ ეს თქვენი გარე დინამიკის შესამოწმებლად. გაითვალისწინეთ, რომ ზოგიერთი pmod პორტი შეიძლება არ ფუნქციონირებდეს კარგად, ასე რომ თქვენ შეგიძლიათ სცადოთ განსხვავებული და გამოიყენოთ LED, რომ შეამოწმოთ დინამიკი ჩართული უნდა იყოს.
SEGMENTS ეს გამომავალი უკავშირდება რვა ცალკეულ სეგმენტს შვიდი სეგმენტის ეკრანზე, ათწილადის ჩათვლით.
DISP_EN ეს გამომავალი დაკავშირებულია შვიდ სეგმენტიანი ეკრანის ოთხ ანოდთან.
player_LED ეს გამომავალი არის 2 პაკეტის სიგნალი, რომელიც დაკავშირებულია LED– ებთან, player1 და player2 კონცენტრატორების ზემოთ. პირველი მოთამაშე, რომელიც გადაატრიალებს შესაბამის გადამრთველს, მითითებული იქნება LED- ით. გაითვალისწინეთ, რომ ორივე LED არ შეიძლება ერთდროულად იყოს ჩართული.
ნაბიჯი 3: გარე სპიკერის დაკავშირება
გარე დინამიკის დასაკავშირებლად Basys3 დაფაზე, აიღეთ თქვენი ორი მავთული და მიამაგრეთ ისინი, როგორც ეს მოცემულია ზემოთ სურათზე. თეთრი ხაზი აკავშირებს სპიკერის უარყოფით ტერმინალს დაფაზე არსებული მიწის პორტთან. წითელი ხაზი აკავშირებს დინამიკის დადებით ტერმინალს დაფაზე JA10 pmod პორტთან.
შეზღუდვების ფაილი შექმნილია ისე, რომ ნებისმიერი პორტი JA1– დან JA10– მდე უნდა იმუშაოს. თუმცა, დაფის ზოგიერთი ქინძისთავები არ რეაგირებს, ასე რომ, თუ JA10 არ ფუნქციონირებს, შეგიძლიათ სცადოთ სხვა პორტები.
ნაბიჯი 4: სტრუქტურული დიაგრამა
ზემოთ მოყვანილი სურათი გვიჩვენებს კონკურენტუნარიანი ზუზუნის სისტემის სტრუქტურულ დიაგრამას, რომელიც მოიცავს ყველა იმ კომპონენტს, რომელიც ქმნის ძირითად მოდულს. მათი აღწერილობა ასეთია:
player_lockout_LED1 მოთამაშის დაბლოკვის LED კომპონენტი არის სასრული მდგომარეობის მანქანა, რომელიც იყენებს ერთ ცხელ კოდირებას. მას აქვს ოთხი შეყვანა: player1, player2, გადატვირთვა და CLK. ის შეიცავს 2-ბიტიანი პაკეტის გამომცემელს player_LED. Player_lockout_LED1 კომპონენტის შეყვანა და გამოსავალი უშუალოდ არის დაკავშირებული მთავარი მოდულის იდენტურად დასახელებულ შესასვლელთან და გამოსავალთან.
buzzer_tone1 ზუმერის კომპონენტი დაფუძნებულია ამ კოდზე, რომელიც განთავსებულია ფორუმზე
stackoverflow.com/questions/22767256/vhdl-… თუმცა, ის შეცვლილია 440 ჰც სიხშირის უწყვეტი ხმის გამოსასვლელად (შენიშვნა). ჩართვის ჩართვა დაკავშირებულია buzzer_enable სიგნალთან, რომელიც არის down_counter_FSM1 კომპონენტის გამომავალი.
clk_div1 საათის გამყოფი კომპონენტი არის პროფესორ ბრაინ მილის საათის გამყოფის შეცვლილი ვერსია, რომელიც მოცემულია PolyLearn– ზე. ის ანელებს საათს, ასე რომ გამომავალი პერიოდი 1 წამია.
down_counter_FSM1 ქვემოთ მრიცხველი არის FSM, რომელიც შექმნილია ნულის დასათვლელად. დაწყების ორი სავარაუდო დრო არის 20 ან 5, რომელსაც ირჩევს მომხმარებლის შეყვანა. გამოდის '1', როდესაც ტაიმერი მიაღწევს ნულს, რომ მიუთითოს, რომ დრო ამოიწურა. ეს გამომავალი მოქმედებს როგორც ზარის ზარის კომპონენტის ჩართვის საშუალება. მრიცხველი ასევე გამოაქვს 8-ბიტიანი პაკეტის სიგნალი, რომელიც აგზავნის 8-ბიტიან BCD- ს, რომელიც იგზავნება სეგმენტის დეკოდერში. კიდევ ერთი გამომავალი არის counter_on, რომელიც ასევე დაკავშირებულია სეგმენტის დეკოდერის მოქმედ შეყვანასთან.
sseg_dec1 შვიდ სეგმენტიანი დეკოდერის კომპონენტი მოცემულია PolyLearn– ზე და დაიწერა პროფესორ ბრაიან მილის მიერ. ის იყენებს BCD შეყვანას, რომელიც მოწოდებულია down_counter_FSM1– ით და გამოაქვს ათწილადის ექვივალენტი შვიდი სეგმენტის ეკრანზე. როდესაც მრიცხველი ჩართულია, მაშინ მოქმედი შეყვანა მაღალია. ეს საშუალებას აძლევს დეკოდერს აჩვენოს ათობითი რიცხვი შვიდი სეგმენტის ეკრანზე. როდესაც მრიცხველი გამორთულია, მაშინ მოქმედი შეყვანა დაბალია. შვიდ სეგმენტიანი ეკრანი აჩვენებს მხოლოდ ოთხ ტირეს.
ნაბიჯი 5: სასრული მდგომარეობის აპარატის (FSM) დიაგრამა
მგრძნობელობის სია სასრული მდგომარეობის აპარატისთვის არის player1, player2, გადატვირთვა და საათი. FSM გამომავალი არის 2 ბიტიანი bundle player_LED, რომელიც დაკავშირებულია ორ LED- თან Basys3 დაფაზე. სასრული მდგომარეობის მანქანა აჩვენებს შემდეგ სამ მდგომარეობას:
ST0 არის საწყისი მდგომარეობა. ამ მდგომარეობაში ორი LED ნათურა გამორთულია. FSM დარჩება ამ მდგომარეობაში, თუ მოთამაშე 1 და მოთამაშე 2 დაბალია. ასინქრონული გადატვირთვა ასევე ადგენს მდგომარეობას ST0. როდესაც player1 გადამრთველი დაყენებულია მაღალზე, შემდეგი მდგომარეობა იქნება ST1. თუ player2 გადამრთველი დაყენებულია მაღალზე, შემდეგი მდგომარეობა იქნება ST2.
ST1 არის მდგომარეობა, რომელზედაც ჩართულია player1 LED. FSM დარჩება ამ მდგომარეობაში ნებისმიერი შეყვანისთვის. ეს ნიშნავს, რომ მაშინაც კი, როდესაც player2 გადამრთველი დაყენებულია მაღალ დონეზე მაშინვე, როდესაც player1 გადამრთველი მაღალია, ის დარჩება ST1- ში. მხოლოდ ასინქრონულ გადატვირთვას შეუძლია შემდეგი მდგომარეობის დაყენება ST0.
ST2 არის მდგომარეობა, რომელზედაც ჩართულია player2 LED. ST! - ის მსგავსად, FSM დარჩება ამ მდგომარეობაში ნებისმიერი შეყვანისთვის, მაშინაც კი, როდესაც player1 გადამრთველი მაღალია მაშინვე, როდესაც player2 გადამრთველი მაღალია. ისევ და ისევ, მხოლოდ ასინქრონულ გადატვირთვას შეუძლია შემდეგი მდგომარეობის დაყენება ST0.
გირჩევთ:
სუპერ მარიო ბუზერის გამოყენებით: 3 ნაბიჯი
სუპერ მარიო ბუზერის გამოყენებით: მუსიკის მოსმენა ამშვიდებს ჩვენს გონებას და სულს. მოდით დავამატოთ მუსიკა თქვენს არდუინოს პროექტებს ერთი კომპონენტის, ზუზერის გამოყენებით. მე აღმოვაჩინე ეს გასაოცარი პროექტი Buzzer– ის გამოყენებით, რომელიც ასრულებს დიპტო პრატაკსას მიერ დაწერილ სუპერ მარიო თემის სიმღერას ინსტრუქციებზე. დამატებით
მარტივი ბუზერის მუსიკა: 6 ნაბიჯი
Simple Buzzer Music: მარტივი ბიბლიოთეკა, რომლითაც თქვენი სიმღერები გამოაქვეყნეთ არდუინოსთან ერთად ზუზერის ან სპიკერის საშუალებით. სიმღერის მცირე მაგალითი " praeludium " იოჰან სებასტიან ბახის ჩათვლით
ჩემი მცდელობა არდუინოს ღილაკზე ბუზერის მელოდიაზე: 11 ნაბიჯი
ჩემი მცდელობა არდუინოს ღილაკზე ზარმაცი მელოდიის მიმართ: ამ გაკვეთილში მე გაჩვენებთ, თუ როგორ შეუძლია ღილაკს მელოდიის დაწყება. სასწავლო წლის განმავლობაში, ჩვენს ბევრ ცხოვრებას ზარები ან ბგერები მართავენ, რაც გვაცნობებს როდის არის წასვლის დრო ან წასვლის დრო. უმეტესობა ჩვენგანი იშვიათად ჩერდება და ფიქრობს იმაზე, თუ როგორ განსხვავდება ეს
2 მოთამაშე კონკურენტუნარიანი VS დროის თამაში: 4 ნაბიჯი
2 მოთამაშე კონკურენტუნარიანი VS დროის თამაში: თქვენ დაგჭირდებათ: 1.Digilent Basys 3, FPGA Board (ან ნებისმიერი სხვა FPGA,) 2. Vivado– ს ან სხვა VHDL გარემოს შედარებით თანამედროვე ვერსია 3. კომპიუტერი, რომელსაც შეუძლია გაუშვას აღნიშნული პროგრამა
ბუზერის და Android– ის მართვა ბლინკის გამოყენებით: 4 ნაბიჯი
Buzzer and Led Android– ის გამოყენებით Blynk– ის გამოყენებით: ამ ინსტრუქციურად მე გეტყვით, თუ როგორ უნდა დაუკავშიროთ arduino– ს Android– ს bluetooth– ით GUI და IOT– ისთვის! ამ გაკვეთილში ჩვენ გამოვიყენებთ Android ტელეფონს და blynk აპლიკაციას (ერთ – ერთი საუკეთესო GUI ვარიანტი არდუინოსთვის) ჩართეთ LED და გააკონტროლეთ ზუზერის გამოყენება