Სარჩევი:

5 მავთულის რეზისტენტული შეხების სენსორი: 10 ნაბიჯი
5 მავთულის რეზისტენტული შეხების სენსორი: 10 ნაბიჯი

ვიდეო: 5 მავთულის რეზისტენტული შეხების სენსორი: 10 ნაბიჯი

ვიდეო: 5 მავთულის რეზისტენტული შეხების სენსორი: 10 ნაბიჯი
ვიდეო: 🛜Neil Degrasse Tyson, WRONG about Tesla?!? 🛜 ​⁠@joerogan (30min) 2024, ნოემბერი
Anonim
5 მავთულის რეზისტენტული შეხების სენსორი
5 მავთულის რეზისტენტული შეხების სენსორი

Გამარჯობა გამარჯობა!

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

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

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

მე ძალიან აღფრთოვანებული ვარ ამ ახალი პროექტისთვის და აღფრთოვანებული ვარ იმის სანახავად, რამდენად კარგად მუშაობს იგი!

დღეს ჩვენ უბრალოდ მივიღებთ მარტივ 5 მავთულის სენსორულ პანელს DP-32– ით.

Დავიწყოთ!

ნაბიჯი 1: რაც დაგჭირდებათ

რაც დაგჭირდებათ
რაც დაგჭირდებათ

იმის გამო, რომ ეს გაკვეთილი ეხება ერთი სენსორის მუშაობას, მიკროკონტროლერისა და სენსორული პანელის მიღმა ბევრი არაფერი დაგჭირდებათ.

  • მიკროკონტროლერი.

    მე ვიყენებ ჩემს DP32– ს ჩამონტაჟებული პურის დაფით, რადგან პროტოტიპი წარმოუდგენლად მარტივია

  • მავთულის და კაბელების ასორტიმენტი.

    შემეძლო გამომეყენებინა სენსორული პანელის ჩამონტაჟებული ლენტი კაბელი, მაგრამ თუ ის გაანადგურა, მაშინ მთელი პანელი უსარგებლოა. სამაგიეროდ, მე ვიყენებ 6 მავთულის კაბელს, რათა შემცირდეს სტრესი ჩაშენებულ კაბელზე

  • ტიტულიანი 5 მავთულის რეზისტენტული სენსორული პანელი!

    მე მქონდა 4 მავთულის რეზისტენტული სენსორული პანელი, მაგრამ ლენტის კაბელი გატეხილი იყო

და ეს არის ის!

ნაბიჯი 2: რა არის 5 მავთულის რეზისტენტული სენსორული პანელი?

რა არის 5 მავთულის რეზისტენტული სენსორული პანელი?
რა არის 5 მავთულის რეზისტენტული სენსორული პანელი?
რა არის 5 მავთულის რეზისტენტული სენსორული პანელი?
რა არის 5 მავთულის რეზისტენტული სენსორული პანელი?
რა არის 5 მავთულის რეზისტენტული სენსორული პანელი?
რა არის 5 მავთულის რეზისტენტული სენსორული პანელი?

თუ წაიკითხეთ ჩემი 4 მავთულის სენსორული პანელის სახელმძღვანელო, გაეცანით რეზისტენტული შეხების სენსორის ზოგად იდეას, მაგრამ 5 მავთულის პანელები და 4 მავთულის პანელები ცოტა სხვანაირად მოქმედებენ.

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

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

როდესაც თითს ვეხებით პანელს, ის ამცირებს მოქნილ სენსორს, რომელიც უკავშირდება სადმე X ღერძის გრადიენტის გასწვრივ. ჩვენს მიკროკონტროლერზე ძაბვის სენსორებს შეუძლიათ იგრძნონ ეს ძაბვა და გითხრათ, სად არის თქვენი თითი X- ღერძზე!

მესამე სურათზე თქვენ ხედავთ როგორ იცვლება კონფიგურაცია, რაც გვაძლევს საშუალებას ვიგრძნოთ Y ღერძი. ამრიგად, ჩვენ შეგვიძლია განვსაზღვროთ, თუ სად ეხება 2-D სივრცეში ჩვენი თითი!

ნაბიჯი 3: გაყვანილობა

გაყვანილობა
გაყვანილობა
გაყვანილობა
გაყვანილობა

როგორც თქვენ ალბათ ხედავთ ზემოთ მოცემულ სურათებში, მე ჩემი ოთხი კუთხე დავაკავშირე თითოეულ მათგანს საკუთარი ციფრული გამომავალი პინით. ეს საშუალებას მომცემს მათ ინდივიდუალურად დავაყენო მაღალი ან დაბალი. ჩემი სენსორის პინი უკავშირდება ანალოგიურ შეყვანის პინს. 5 მავთულის სენსორულ ეკრანზე, 4 მავთულისგან განსხვავებით, სასიამოვნოა ის, რომ თქვენ გჭირდებათ მხოლოდ ერთი ანალოგური პინი, ხოლო 4 მავთულისთვის საჭიროა 2.

რა თქმა უნდა, თქვენი გაყვანილობა შეიძლება განსხვავდებოდეს, მაგრამ ჩემი გაყვანილობა შემდეგია:

ანალოგი 0 (პინ 6) უკავშირდება სენსორს (შუა პინ)

ციფრული 3 აკავშირებს ზედა-მარჯვნივ (ყველაზე მეტად პინი)

ციფრული 2 აკავშირებს ზედა-მარცხნივ (მეორე ყველაზე პინი)

ციფრული 1 უკავშირდება ქვედა-მარცხნივ (მეორე ქვედა ყველაზე პინი)

ციფრული 0 უკავშირდება ქვედა-მარჯვნივ (ქვედა ყველაზე პინი)

კიდევ ერთხელ უნდა აღინიშნოს, რომ მე ვიყენებ 6 მავთულის კაბელს მიკროკონტროლერსა და პანელს შორის გასასვლელად. ამ კაბელის ზედა პინი დაუკავშირებელი დავტოვე.

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

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

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

როგორც ყოველთვის, მე ვიყენებ Arduino IDE– ს, Digilent ბირთვით. თითოეული განყოფილება შეიცავს კოდის ფაილს, ეკრანის სურათს, ასევე დამატებების აღწერას და რისი მიღწევასაც ვცდილობთ.

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

ნაბიჯი 5: სახელმწიფო აპარატის დახუჭვა

სახელმწიფო მანქანა აციმციმებს
სახელმწიფო მანქანა აციმციმებს

ჩემი პირველი ნაბიჯი არის მოციმციმე ფუნქციის შეცვლა ერთიდან, რომელიც დაფუძნებულია "დაგვიანებაზე ()" სახელმწიფო მანქანაზე.

მათთვის, ვინც არ არის გამოყენებული განცხადებების გადართვა, ის მუშაობს if- განცხადების მსგავსად. ეს (ნარინჯისფერ ყუთში) ამოწმებს ჩვენს "მდგომარეობის" ცვლადს (რომელიც იწყება 0 -დან). შემდეგ ის გადადის საქმეზე ჩვენი ამჟამინდელი მდგომარეობისთვის. თქვენ ნახავთ, რომ საქმე 0 და 2 პასუხისმგებელია LED- ის ჩართვასა და გამორთვაზე (შესაბამისად), ხოლო შემთხვევა 1 და 3 პასუხისმგებელია გადამრთველებს შორის ლოდინზე.

ნაბიჯი 6: დახუჭე ღილაკი

ღილაკის დახამხამება
ღილაკის დახამხამება
ღილაკის დახამხამება
ღილაკის დახამხამება
ღილაკის დახამხამება
ღილაკის დახამხამება

შემდეგი, მინდოდა ღილაკი გამოეყენებინათ შუქის მოციმციმე. იმის ნაცვლად, რომ ეს ზედმეტად გაართულოს, მე უბრალოდ გადავიტანე ყველა მდგომარეობა ერთით ქვემოთ (მდგომარეობა 0 ხდება მდგომარეობა 1 და ა.შ.). ამის გაკეთებისას ფრთხილად იყავით, რომ გაზარდოთ გასასვლელი მდგომარეობები, ისევე როგორც თავად მდგომარეობა (იხ. სურათი 3).

მე ასევე წავშალე მეორე "ლოდინის" მდგომარეობა. ეს ნიშნავს, რომ ღილაკი აანთებს შუქს ერთი წამით და შეგიძლიათ კვლავ დააჭიროთ ღილაკს მისი გამორთვის შემდეგ.

აღსანიშნავია, რომ ეს სისტემა ჩვენთვის ავტომატურად იშლება ღილაკზე, რადგან ჩვენ უნდა დაველოდოთ LED- ის გამორთვას 0 მდგომარეობამდე დაბრუნებამდე, სადაც ღილაკს შეუძლია კვლავ გამოიწვიოს ციკლი.

ნაბიჯი 7: სერიული კომუნიკაცია

სერიული კომუნიკაცია
სერიული კომუნიკაცია
სერიული კომუნიკაცია
სერიული კომუნიკაცია

ეს განახლება ძალიან მცირეა. სულ მინდოდა სერიული კავშირის დამყარება და შეტყობინებების გაგზავნა. პირველ სურათზე ხედავთ, რომ მე ვიწყებ სერიალს setup () ფუნქციაში. ჩვენი სახელმწიფო აპარატის შიგნით, მე დავამატე ხაზები 1 და 3 მდგომარეობებში, რომლებიც უგზავნიან მარტივ შეტყობინებებს კომპიუტერს სერიული საშუალებით.

ნაბიჯი 8: კოორდინატების კითხვა

კითხვის კოორდინატები
კითხვის კოორდინატები
კითხვის კოორდინატები
კითხვის კოორდინატები
კითხვის კოორდინატები
კითხვის კოორდინატები
კითხვის კოორდინატები
კითხვის კოორდინატები

კარგია, რომ ბოლო ნაბიჯი ადვილი იყო, რადგან ეს იყო დუზი.

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

მე სრულად გადავაწერე სახელმწიფო მანქანა. ცოტა დამაბნეველია კოდის დათვალიერება, ამიტომ მე ჩავრთე ბლოკ დიაგრამა, რომელიც უნდა წარმოაჩინოს რაც გაკეთდა.

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

შენიშვნა: DEBOUNCE_TIME მუდმივი შეიძლება იყოს ცოტა დაბალი. მოგერიდებათ გაზარდოთ იგი.

ნაბიჯი 9: დასუფთავება

დასუფთავება
დასუფთავება
დასუფთავება
დასუფთავება
დასუფთავება
დასუფთავება

ჩვენ მივაღწიეთ ამ პროექტის კოდის საბოლოო ვერსიას!

დასაწყისისთვის, მე დავამატე ფუნქცია სახელწოდებით loop_diff () გასული დროის გამოსათვლელად. შიდა საათი DP32– ისთვის არის ხელმოუწერელი გრძელი და, თუმცა ეს ძალზედ ნაკლებად სავარაუდოა, არსებობს შესაძლებლობა, რომ საათი ოდესმე ამ მარყუჟის დროს გამოჩნდეს*. ამ შემთხვევაში, უბრალოდ დროის გამოკლება btn_time ან panel_time შენახული დროდან მოგვცემს რაღაც უცნაურს, ამიტომ მე დავწერე loop_diff (), რომ გამოვსახოთ როდის მოხდება მარყუჟები და მოვიქცეთ შესაბამისად.

მე ასევე გავაკეთე მცირედი გაწმენდა. მე ამოვიღე ახლა გამოუყენებელი ცვლადი "state_time". მე გადავედი LED_BUILTIN ტეგიდან (რომელიც არის Arduino სტანდარტი) PIN_LED1 ტეგზე (რაც სტანდარტულია chipKit და DP32). მე ასევე ამოვიღე სერიალის საშუალებით ყველა შეტყობინება პროცესის დაწყებისა და დასრულების შესახებ, რაც სერიალში ჩვენს მონაცემებს გაცილებით სუფთა გახდის.

*მე მათემატიკა გავაკეთე წლების წინ და ვფიქრობ, რომ millis () ფუნქციისთვის დასჭირდება დაახლოებით ერთი კვირის მუდმივი მუშაობის ხანგრძლივობა, სანამ ცვლადი მარყუჟდება.

ნაბიჯი 10: საბოლოო აზრები

დასკვნითი ფიქრები
დასკვნითი ფიქრები

და ეს არის ის!

თუ თქვენ მიჰყევით, თქვენ უნდა გქონდეთ სამუშაო სენსორული პანელი თქვენს მიკროკონტროლერთან დაკავშირებული! ეს იყო პატარა პროექტი, მაგრამ ის უფრო დიდი პროექტის ნაწილია. მე ვმუშაობ დაახლოებით 271828 წლის ფირფიტისა და ბურთის მიმართულებით და მე დიდი გზა მაქვს გასავლელი, სანამ ეს მოხდება. მე შევეცდები მთელი პროცესი გაგიწიოთ და თითოეული ნაწილი უნდა იყოს თავისი პატარა პროექტი.

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

მადლობა, და შემდეგ ჯერზე შევხვდებით!

გირჩევთ: