Სარჩევი:
- ნაბიჯი 1: შავი ყუთის დიაგრამა
- ნაბიჯი 2: ნელი საათი
- ნაბიჯი 3: მრიცხველი
- ნაბიჯი 4: Counter Hour
- ნაბიჯი 5: სიგნალიზაცია
- ნაბიჯი 6: უნივერსალური შვიდი სეგმენტის ჩვენების დრაივერი
- ნაბიჯი 7: დააკავშირეთ ფაილი
- ნაბიჯი 8: არდუინო
- ნაბიჯი 9: საკაბელო მარშრუტიზაცია
ვიდეო: Basys 3 მაღვიძარა: 9 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:18
ჩვენი პროექტი ქმნის მაღვიძარას Basys 3 FPGA დაფის, არდუინოს და სპიკერის მძღოლის დაფის გამოყენებით. მომხმარებელს შეუძლია შეიტანოს მიმდინარე დრო დაფაზე 11 შეყვანის გადამრთველის გამოყენებით Basys 3 -ზე და ჩაკეტოს მნიშვნელობა დაფაზე შუა ღილაკის გამოყენებით. მომხმარებელს შეუძლია შეიყვანოს განგაშის დრო ერთი და იგივე გადამრთველების გამოყენებით, მაგრამ დააწკაპუნეთ მარცხენა ღილაკზე, რომ ჩაკეტოთ განგაშის დრო. თუ არასწორი დროა შეყვანილი, გადატვირთვის ღილაკს (ზედა ღილაკს) შეგიძლიათ დააჭიროთ და მიმდინარე საათის დრო და განგაშის დრო დაყენდება 00:00. მომხმარებელს შეუძლია საათის დაწყება მარცხენა გადამრთველის გამოყენებით და ჩართოს მაღვიძარა მომდევნო გადამრთველის გამოყენებით. როდესაც მაღვიძარა ჩართულია, მაღვიძარა გამოსცემს ხმას, როდესაც საათის დრო და დაყენებული მაღვიძარას დრო ემთხვევა.
ნაბიჯი 1: შავი ყუთის დიაგრამა
ჩვენ დავიწყეთ ჩვენი პროექტი შავი ყუთის დიაგრამის დახატვით, რათა ვიზუალიზაციაში შევიტანოთ და გამოვიყენოთ ჩვენი პროგრამა. ჩვენი პროგრამის შემდეგი საშუალებები, როგორიცაა 5-ბიტიანი შეყვანა (Hour_in) ინიციალიზებული იყო 24-საათიანი დროის, 6-ბიტიანი (Min_in) შეყვანის დასადგენად 60 წუთის განმავლობაში, გადატვირთვის ღილაკი (Rst_b), რომელიც მომხმარებელს საშუალებას მისცემს შეცვალეთ მათი დროის შეყვანა, 1 ბიტიანი შეყვანა (alm_en), რომელიც იტვირთება სიგნალიზაციის შეყვანისას, 1 ბიტიანი შეყვანის (alarm_sw) მაღვიძარა გამორთვისას, როდესაც ის გააქტიურებულია, 1 ბიტიანი შეყვანა (e_sec), რომელიც აკონტროლებს მრიცხველს წამი გადის, 1 ბიტიანი შეყვანა (Led_btn), რომელიც ადგენს მიმდინარე დროს და ბოლოს 1 ბიტიანი შეყვანა (clk), რომელიც აკონტროლებს Basys 3 დაფის მიერ ნაჩვენებ დროს. გამომავალი არის (alm_on), რომელიც აგზავნის სიგნალს Arduino– ში, sseg გამომავალი, რომელიც აჩვენებს შეყვანის დროს Basys 3 –ზე და ანოდის გამომუშავება, რომელიც აკონტროლებს, თუ სად არის ნაჩვენები შესასვლელი შვიდი სეგმენტის ეკრანზე.
ნაბიჯი 2: ნელი საათი
ნელი საათი ან clock_div2 ფაილი ქმნის საათს, რომლის სიხშირეა 2 ჰც. თუ ჩვენ ამ საათს მივცემთ წამების მრიცხველს, წამის მნიშვნელობა ყოველ წამში გაიზრდება ერთით. ნელი საათი გამოიყენება საიმედო საათის სიგნალის შესაქმნელად, რომელიც იცვლება დაბალიდან მაღალზე წამში ერთხელ.
ნაბიჯი 3: მრიცხველი
კომპონენტის მთვლელი (წუთი და წამი):
წუთებისა და წამების ძირითადი ფუნქცია ის არის, რომ ისინი მრიცხველები არიან. წუთის მრიცხველი იღებს შეყვანას (Vin), რომელიც არის სიგნალი შეყვანისგან (Min_in) და შემდეგ ითვლის სანამ არ მიაღწევს სასურველ შეყვანის შეყვანას. წამი იღებს მხოლოდ გადამრთველის შეყვანას (e_Sec), ვინაიდან მისი ჩვენება შეუძლებელია შვიდ სეგმენტზე და ითვლის ფონზე, როდესაც გადამრთველი მაღალია '1'. ისინი ორივე იქ გამოდიან (Qout) მნიშვნელობაზე, შემდეგ კი ინახება (მონაცემებში), რომელიც აგზავნის მას SSEG– ში, რაც ხდება დამაკავშირებელ ფაილში. ასევე, როდესაც წუთები და წამები მიაღწევს 59 -ის მნიშვნელობებს, ის გადატვირთულია და მათი გამომუშავება არის '1' წუთის/საათის გაზრდის მიზნით. მას ასევე შეუძლია შეაფასოს გადატვირთვით (rst_b) მათ შეყვანაში.
ნაბიჯი 4: Counter Hour
კომპონენტის საწინააღმდეგო საათი
ანალოგიურად, წუთების და წამების კომპონენტის მრიცხველს საათის კომპონენტი იღებს შეყვანის s- ს, როგორიცაა (Vin), რომელიც არის სიგნალი ფაილის შეყვანის დამაკავშირებელიდან (Hour_in) და აქვს გამოსავალი, რომელიც ერთნაირად არის დაკავშირებული წუთებსა და წამებში. როდესაც საათის ათვლის მნიშვნელობა აღწევს 24 00 ის აღდგება 00 00.
ნაბიჯი 5: სიგნალიზაცია
სიგნალიზაციის.vhd ფაილი შედგება d-flip-flops– ისგან, რომელიც არის შენახვის მოწყობილობა, რომელსაც შეუძლია ციფრული მონაცემების შენახვა. განგაშის ფაილი გამოიყენება იმ დროის შესანახად, რომლის დროსაც განგაში გააქტიურდება. საათების (5 ბიტიანი შეყვანის) და წუთების (6 ბიტიანი შეყვანის) მონაცემების შესანახად უნდა განვათავსოთ 11 სიგნალიზაცია ჩვენს სიგნალიზაციის ფაილში. ამისათვის ჩვენ ჯერ უნდა შემოვიტანოთ ლოგიკა, რომელიც არეგულირებს d-flip-flops– ის მუშაობას და დავხატოთ კომპონენტები. თითოეული 11 d-flip-flops ინახავს ერთ მონაცემს შესასვლელიდან და საშუალებას მისცემს მონაცემების ასახვას განგაშის ფაილის გამოსასვლელებში. ვინაიდან d-flip-flops ინახავს მონაცემებს, ჩვენ შეგვიძლია გამოვიყენოთ მონაცემები დროის შემდგომ მომენტში მაშინაც კი, თუ შეყვანის გადამრთველები შეიცვალა.
ნაბიჯი 6: უნივერსალური შვიდი სეგმენტის ჩვენების დრაივერი
უნივერსალური შვიდი სეგმენტის ჩვენების დრაივერი იღებს შეყვანას საათის და საათის ნაკრებიდან და შეუძლია გამოაქვეყნოს ისინი დაფაზე არსებული შვიდი სეგმენტის ჩვენებაზე. მძღოლს შეუძლია ერთდროულად ჩაწეროს დაფაზე ორი ცალკე დათვლა. ჩვენ გამოვიყენეთ ეს ფუნქცია, რომ გამოვყოთ როგორც საათობრივი დრო, ასევე წუთის დრო ცალკე. შვიდი სეგმენტის ჩვენებას შეუძლია ერთდროულად მხოლოდ ერთი რიცხვის გააქტიურება, ამიტომ sseg ფაილმა უნდა გამოიყენოს მულტიპლექსირება დროის ყველა რიცხვის ერთდროულად გამოსახვისათვის. დაფების საათის სიგნალი იკვებება sseg– ში, რათა შეინარჩუნოს მულტიპლექსირების სწორი დრო. ორობითიდან ორობითი კოდირებული ათწილადიანი კოდირება აუცილებელია ფაილში შეყვანის ფორმაში გადასაყვანად, რომლის გამოტანა შესაძლებელია შვიდი სეგმენტის ჩვენებაზე. Sseg ფაილის საბოლოო გამომავალი რუქდება შვიდი სეგმენტის ჩვენებაზე და ეკრანზე ნაჩვენებია სწორი დრო.
ნაბიჯი 7: დააკავშირეთ ფაილი
ბმული ფაილი აკავშირებს პროგრამის ყველა სხვა ასპექტს და ასახავს სიგნალებს მათ სწორ ადგილას. თითოეული კომპონენტი შემოტანილია და მყისიერია ფაილში. სიგნალები გამოიყენება მონაცემების ერთი კომპონენტიდან მეორეზე გადასატანად. პორტის რუქა მიჰყვება ზემოთ ჩამოთვლილი შავი ყუთის დიაგრამას. ბმული ფაილი ასევე შეიცავს ლოგიკას, რომელიც განაგებს სიგნალიზაციის გააქტიურებისას. პროექტის უმეტესობა ამ ეტაპზე უკვე დასრულდება. დარჩენილი სამუშაო არის თითოეული სიგნალის გადატანა შესაბამის ადგილას.
ნაბიჯი 8: არდუინო
არდუინო გამოიყენება როგორც სპიკერის გასააქტიურებლად, ასევე სპიკერის მეშვეობით დაკრული ნოტის ტონისა და ხანგრძლივობის გასაკონტროლებლად. არდუინო კითხულობს ციფრულ სიგნალს Basys 3 დაფიდან. როდესაც ეს სიგნალი მაღალია, arduino გამოსცემს PWM სიგნალს, რომელიც აკონტროლებს განგაშის ტონს და ხანგრძლივობას. არდუინოს გამომავალი სიგნალი უკავშირდება სპიკერის დრაივერის დაფის შეყვანის სიგნალს, რაც ზრდის დინამიკის ხმას. არდუინო აკეთებს ამ პროცესს ძალიან სწრაფად მეორდება ბევრჯერ წამში.
ნაბიჯი 9: საკაბელო მარშრუტიზაცია
Arduino და Basys 3 დაფა ფიზიკურად უნდა იყოს დაკავშირებული დაფებს შორის სიგნალების გადასაცემად. მავთულის პირველი კაბელი იქნება JA PMOD of Basys 3 -ის მიწიერი პინიდან არდუინოს მიწამდე. შემდეგ შეაერთეთ მავთული Bas 1 -ის JA PMOD 3 -დან, არდუინოს ციფრულ პინთან. შემდეგი, შეაერთეთ ორი დამჭერი არდუინოდან დინამიკის დრაივერის გრუნტის ქინძისთავებთან. შემდეგი, დაუკავშირეთ arduino– ს 3.3 V გამომავალი სპიკერის დრაივერის Vcc პინს. შემდეგი, დაუკავშირეთ arduino– ს ციფრული პინი 9 სპიკერის დრაივერის In pin– ს.
გირჩევთ:
ჭკვიანი მაღვიძარა Magicbit– ის გამოყენებით (Arduino): 10 ნაბიჯი
ჭკვიანი მაღვიძარა Magicbit– ის გამოყენებით (Arduino): ეს სახელმძღვანელო გვიჩვენებს, თუ როგორ უნდა გააკეთოთ ჭკვიანი მაღვიძარა OLED ეკრანის გამოყენებით Magicbit dev დაფაზე RTC მოდულის გამოყენების გარეშე
Twin Bell მაღვიძარა სოდადან: 7 ნაბიჯი (სურათებით)
Twin Bell მაღვიძარა სოდადან: ეს ინსტრუქცია გიჩვენებთ თუ როგორ უნდა გააკეთოთ ორმაგი ზარი მაღვიძარა სოდადან. პროექტი იყენებს სოდა ქილებს, სადაც მელანი ამოიღეს (ბმული: მელნის მოცილება სოდადან). ამ მაღვიძარა სრულად ფუნქციონირებისათვის ინტეგრირებული იყო DIY კვარცის საათის მოდული
ხმაურიანი მაღვიძარა: 3 ნაბიჯი
ხმაურიანი მაღვიძარა: მე ვარ 13 წლის სტუდენტი ტაივანში. მე პირველად ვაკეთებ ნივთებს არდუინოსთან, თუ შეგიძლიათ მითხრათ როგორ გავაუმჯობესო ეს სამუშაო, გთხოვთ დატოვეთ კომენტარები ჩემთვის, რათა მე უკეთესი გავხადო. (მადლობა ) ამ საათს შეუძლია გაიღვიძოს, როცა გძინავს, მაგრამ მე
ჭკვიანი მაღვიძარა: გონიანი მაღვიძარა დამზადებულია ჟოლოს პი: 10 ნაბიჯი (სურათებით)
ჭკვიანი მაღვიძარა: ჭკვიანი მაღვიძარა დამზადებულია ჟოლოს პი: ოდესმე გსურდათ ჭკვიანი საათი? თუ ასეა, ეს არის თქვენთვის გამოსავალი! მე გავაკეთე სმარტ მაღვიძარა, ეს არის საათი, რომლის საშუალებითაც შეგიძლიათ შეცვალოთ განგაშის დრო ვებგვერდის მიხედვით. როდესაც მაღვიძარა ითიშება, იქნება ხმა (ზუზუნი) და 2 შუქი
LED მზის ამოსვლის მაღვიძარა დააკონფიგურიროთ სიმღერის მაღვიძარა: 7 ნაბიჯი (სურათებით)
LED მზის ამოსვლის მაღვიძარა დასაკონფიგურირებელი სიმღერის სიგნალიზაციით: ჩემი მოტივაცია ამ ზამთარს ჩემს შეყვარებულს დილის გაღვიძებისთანავე ბევრი უბედურება ჰქონდა და თითქოს სნეულებას განიცდიდა (სეზონური აფექტური აშლილობა). მე კი ვამჩნევ, რამდენად რთულია ზამთარში გაღვიძება, რადგან მზე არ ამოდის