Სარჩევი:

ზომბის დეტექტორი: 3 ნაბიჯი
ზომბის დეტექტორი: 3 ნაბიჯი

ვიდეო: ზომბის დეტექტორი: 3 ნაბიჯი

ვიდეო: ზომბის დეტექტორი: 3 ნაბიჯი
ვიდეო: ლუკა და მარიამი 2024, ნოემბერი
Anonim
ონლაინ თამაში Zombie დეტექტორი
ონლაინ თამაში Zombie დეტექტორი

როდესაც კოლეჯში მივდიოდი, ვმუშაობდი Knott's Berry Farm– ში და როდესაც ჰელოუინი შაბათ -კვირას დაეცა, ჩვენ დიდი ხალხი მოვიზიდეთ. ჩვენ ყველანი ჩავიცვით და ვიმხიარულეთ ამით და მომხმარებელთა უმეტესობამ დააფასა ძალისხმევა. ერთ -ერთი "მონეტა გოგო", სადაც მე ვმუშაობდი, მშვენივრად იყო მორტიცია ადამსი. მაშინ გოთური გარეგნობა არ იყო გამოგონილი (თუ არ დაითვლით მუნა ლიზას), ასე რომ სამსახურში მისვლისას მან გადაჭარბებული თვალი აიღო ბიჭისგან მის გვერდით მანქანაში გაჩერების შუქზე. მან შეხედა მას უკან და მისცა მას დიდი ღიმილი - კბილები და ყველაფერი. როგორც ჩანს, მისი სახე შეუფასებელი იყო.

იმავე სულისკვეთებით ვიფიქრე ამ პოსტის შენახვაზე ჰელოუინის დაწყებამდე, მაგრამ შემდეგ გამახსენდა, რომ Zombie Apocalypse შეიძლება მოხდეს ნებისმიერ დროს. როდესაც ეს ვაჩვენე შვილიშვილებს, მე ვუთხარი მათ, რომ ისინი ამოიცნობს მათ პულსს, თუ ისინი ცოცხლები არიან, მაგრამ პულსი არ ნიშნავს რომ ისინი ზომბი იყვნენ. ის შეიძლება გამოყენებულ იქნას როგორც ელიმინაციის თამაში (მუსიკალური სკამების უცნაური ვერსია), თუ გყავთ ბრბო. ერთ -ერთი გზა, რომელიც ჩვენ ვითამაშეთ, ეს იყო მაგიდის გარშემო გადატანა. თუ თქვენ მიიღეთ "ადამიანური" პასუხი თქვენ მიიღეთ მონეტა, თუ არა თქვენ გადაიხადეთ მონეტა. ბავშვებს ყოველთვის მოსწონთ თამაშები, რომლებიც მოიცავს მონეტებს.

ნაბიჯი 1: აპარატურა

ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა

სქემა ნაჩვენებია ზემოთ მოცემულ დიაგრამაში. "დეტექტორის" ნაწილი არის მარტივი capacitive touch switch, რომელიც ჩვეულებრივ რეკლამირებულია როგორც TTP223. მე ავიღე 10 -ის ნაკრები თითქმის არაფრისთვის, მაგრამ მათთან ცოტა პრობლემაა. მოდულები რეკლამირებულია, რომ მუშაობს 2.5 ვოლტიდან 5 ვოლტამდე, მაგრამ არა. მე აღმოვაჩინე, რომ 4.75 ვოლტზე ნაკლებმა რამ გამოიწვია მოდულის ჩამკეტი "ჩართულ" მდგომარეობაში. მინდოდა მთელი პროექტის გაშვება წყვილი AAA ბატარეის გამოყენებით (დაახლოებით 3 ვოლტი), ასე რომ მე უნდა გაერკვია პრობლემა. მოდულის ჩიპის შემოწმების შემდეგ დავადგინე, რომ ცარიელ წყვილს უნდა ჰქონდეს კონდენსატორი, რომელიც განსაზღვრავს მგრძნობელობას. რეკომენდებული დიაპაზონი არის 0 -დან 50pf– მდე, მგრძნობელობა იზრდება ტევადობის შემცირებით. ბალიშების შემოკლებით (0pf) ვერ მოვახერხე მისი მუშაობა, მაგრამ კარგად მუშაობდა 22pf და 47pf კონდენსატორებით, რაც მე მაქვს. 22pf მნიშვნელობით მარტივად მივიღე მოდული 2,5 ვოლტზე მუშაობისთვის.

ამ პროექტის სხვა ძირითადი კომპონენტი (გარდა PIC მიკროკონტროლერისა) არის 8x8 LED მატრიცა. თავდაპირველად ვიყენებდი უბრალო მატრიცას, მაგრამ მე უნდა დავამატო წყვილი ცვლის რეგისტრი რიგებისა და სვეტების დასახვედრად და მათი მულტიპლექსირება მომიწია სრული ჩვენების მისაღებად. შემდეგ აღმოვაჩინე იაფი LED მოდული, რომელიც მიმაგრებულია მიკროსქემის დაფაზე MAX7219 LED დისპლეის დრაივერის ჩიპით. დრაივერის ჩიპი იღებს სერიულ ბრძანებებს, რომელსაც შემდეგ იყენებს სასურველი რიგების და სვეტების ჩასართავად. ჩიპი ასევე ასრულებს მულტიპლექსს ავტომატურად ისე, რომ ტვირთი ამოღებულია მიკროკონტროლიდან. ამ აღმოჩენამ შეამცირა როგორც აპარატურის, ასევე პროგრამული უზრუნველყოფის სირთულე.

ნაბიჯი 2: პროექტის ყუთი

პროექტის ყუთი
პროექტის ყუთი
პროექტის ყუთი
პროექტის ყუთი

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

ნაბიჯი 3: პროგრამული უზრუნველყოფა

პროგრამული უზრუნველყოფა
პროგრამული უზრუნველყოფა
პროგრამული უზრუნველყოფა
პროგრამული უზრუნველყოფა

პროგრამული უზრუნველყოფა საკმაოდ მარტივია. Timer0 ნებადართულია უფასო გაშვებისას და მნიშვნელობა შემოწმებულია, როდესაც შეხების სენსორი გამოვლინდება. მე თვითნებურად გადავწყვიტე, რომ Zombie ჩვენება გამოვიდოდა, თუ Timer0 რიცხვი 100-ზე ნაკლებია. იმის გათვალისწინებით, რომ Timer0 არის 8 ბიტიანი, ეს ნიშნავს, რომ "ადამიანის" ჩვენება მოხდება 100-255 მნიშვნელობებისთვის. ეს არის თანაფარდობა დაახლოებით 3: 2 და ადვილად შეიძლება შეიცვალოს პროგრამულ უზრუნველყოფაში.

როდესაც შეხება გამოვლენილია და ჩვენების ტიპი განისაზღვრება, შესაბამისი რუტინული ეწოდება მონაცემების გაგზავნას LED მატრიცაზე. ამისათვის, ბრძანებების სერია იგზავნება როგორც 8 ბიტიანი მისამართი და 8 ბიტიანი მონაცემები. რეესტრები, რომელთა მიმართვაც შესაძლებელია, განისაზღვრება ჩამონათვალის წინა ნაწილში. რამდენიმე მათგანი გამოიყენება მატრიცის ინიციალიზაციისთვის (მაგალითად: სიკაშკაშე) და ერთი გამოიყენება მთელი მატრიცის ჩართვის/გამორთვისთვის. მატრიცას შეუძლია იმუშაოს რეჟიმში, სადაც BCD (ორობითი კოდირებული ათწილადი) აჩვენებს შესაბამის რიცხვს. Init– ის რუტინა გამორთულია ისე, რომ ჩვენ შეგვიძლია გავაკონტროლოთ ინდივიდუალური LED- ები. ინიციალიზაციის მეორე ნაწილი არის სვეტის ლიმიტის დადგენა. ჩვენ გვინდა რვა სვეტი, ამიტომ სკანირების ლიმიტი არის 7.

არსებობს რვა რეგისტრი, რომლებიც გამოიყენება სასურველი ინდივიდუალური LED- ების გასააქტიურებლად - თითო რეგისტრი თითოეული სვეტისთვის. მონაცემთა ბიტში "1" საშუალებას მისცემს ამ სვეტის LED- ს. როგორც უკვე აღვნიშნეთ, პროგრამული უზრუნველყოფის მულტიპლექსირება არ არის საჭირო. "ადამიანის" ჩვენება არის ცემის გული. მას შემდეგ, რაც სათანადო ბიტური შაბლონები გაიგზავნება მატრიცაზე, ცემის სიმულაცია ხდება მატრიცის უბრალოდ ჩართვა/გამორთვისას (შუალედური შეფერხებებით) მანამ, სანამ სენსორული სენსორი აქტიურია. Zombie რუტინული აჩვენებს ფიქსირებულ "X" ნიმუშს, სანამ შეხება არ მოიხსნება.

ეს არის ამ პოსტისთვის. გადახედეთ ჩემს სხვა ელექტრონიკურ პროექტებს: www.boomerrules.wordpress.com

გირჩევთ: