Სარჩევი:
- მარაგები
- ნაბიჯი 1: დევნა…
- ნაბიჯი 2: დაწყება - Arduino -Breadboard Setup
- ნაბიჯი 3: შეაერთეთ LV-MaxSonar-EZ
- ნაბიჯი 4: შეაერთეთ HC-SR04
- ნაბიჯი 5: შეაერთეთ "HC-SR04" ვარიანტის ამომრჩევი
- ნაბიჯი 6: ყველაფერი მუშაობს…
- ნაბიჯი 7: პროექტის განლაგება
- ნაბიჯი 8: შეყვანის კოდი…
- ნაბიჯი 9: Arduino Software-Serial…
- ნაბიჯი 10: კოდი - დაყენება
- ნაბიჯი 11: კოდი - მარყუჟი
- ნაბიჯი 12: კოდი - გააქტიურეთ MaxSonar. წაიკითხეთ PW მნიშვნელობა
- ნაბიჯი 13: კოდი - წაიკითხეთ MaxSonar სერიული მნიშვნელობა
- ნაბიჯი 14: კოდი - წაიკითხეთ MaxSonar ანალოგური მნიშვნელობა
- ნაბიჯი 15: კოდი - გამოიწერეთ და წაიკითხეთ HC -SR04
- ნაბიჯი 16: კოდი - Arduino IDE სერიული პლოტერის მხარდაჭერა
- ნაბიჯი 17: კოდი - გამართვა…
- ნაბიჯი 18: დასკვნა
- ნაბიჯი 19: ალტერნატიული MaxSonar კავშირი (180 ° სათაურის გამოყენებით)
- ნაბიჯი 20: Arduino კოდი
ვიდეო: შეადარეთ LV-MaxSonar-EZ და HC-SR04 Sonar Range Finders Arduino– სთან ერთად: 20 ნაბიჯი (სურათებით)
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:17
მე აღმოვაჩინე, რომ ბევრი პროექტი (განსაკუთრებით რობოტები) მოითხოვს ან შეიძლება სარგებელს იქონიოს ობიექტამდე მანძილის გაზომვა რეალურ დროში. სონარის დიაპაზონის მაძიებლები შედარებით იაფია და მათი ადვილად დაკავშირება შესაძლებელია მიკროკონტროლერთან, როგორიცაა არდუინო.
ეს ინსტრუქცია ადარებს სონარის დიაპაზონის მაძიებელ ორ მარტივ მოწყობილობას, აჩვენებს თუ როგორ უნდა დაუკავშიროთ ისინი Arduino– ს, რა კოდია საჭირო მათგან მნიშვნელობების წასაკითხად და როგორ „ზომავს“ისინი ერთმანეთის წინააღმდეგ სხვადასხვა სიტუაციებში. აქედან, ვიმედოვნებ, რომ თქვენ გაეცნობით ორი მოწყობილობის უპირატესობებსა და უარყოფით მხარეებს, რაც დაგეხმარებათ გამოიყენოთ ყველაზე შესაფერისი მოწყობილობა თქვენს მომავალ პროექტში.
მე მინდოდა შედარება უკიდურესად პოპულარულ HC-SR04 (შეცდომების თვალი) მოწყობილობას, ნაკლებად გავრცელებულ LV-MaxSonar-EZ მოწყობილობას და ვნახო, როდის შეიძლება ვისურვებდეს ერთს და არა მეორეს. მინდოდა გამეზიარებინა ჩემი დასკვნები და კონფიგურაცია, ასე რომ თქვენ შეგიძლიათ ექსპერიმენტი ჩაატაროთ ამ ორზე და გადაწყვიტოთ რომელი გამოიყენოთ თქვენს მომავალ პროექტში.
რატომ ეს ორი…
რატომ HC-SR04? 'Bug-Eye' HC-SR04 ძალიან პოპულარულია-რამდენიმე მიზეზის გამო:
- ეს არის იაფი - $ 2 ან ნაკლები, თუ ნაყიდია ნაყარი
- შედარებით ადვილია მასთან ინტერფეისი
- ბევრი, ბევრი პროექტი იყენებს მას - ასე რომ ის კარგად არის ცნობილი და კარგად გასაგები
რატომ LV-MaxSonar-EZ?
- ძალიან ადვილია მასთან ინტერფეისი
- მას აქვს კარგი/მარტივი ფორმა-ფაქტორი პროექტში ჩასართავად
- მას აქვს 5 ვერსია, რომელიც მიმართავს გაზომვის სხვადასხვა მოთხოვნებს (იხილეთ მონაცემთა ცხრილი)
- ის (ჩვეულებრივ) ბევრად უფრო ზუსტი და საიმედოა ვიდრე HC-SR04
- ეს არის ხელმისაწვდომი - $ 15 დან $ 20
გარდა ამისა, ვიმედოვნებ, რომ თქვენ ნახავთ Arduino კოდის ნაწილებს, რომლებიც მე დავწერე შედარებისთვის, რაც სასარგებლოა თქვენს პროექტებში, თუნდაც დიაპაზონის მაძიებელი პროგრამების მიღმა.
ვარაუდები:
- თქვენ იცნობთ არდუინოს და არდუინოს IDE- ს
- Arduino IDE არის დაინსტალირებული და მუშაობს თქვენი უპირატესობის შემქმნელ მანქანაზე (PC/Mac/Linux)
- თქვენ გაქვთ კავშირი Arduino IDE– დან თქვენს Arduino– თან პროგრამების ასატვირთად და გასაშვებად და კომუნიკაციისთვის
არსებობს ინსტრუქციები და სხვა რესურსები, რომლებიც დაგეხმარებათ ამაში საჭიროების შემთხვევაში.
მარაგები
- HC-SR04 'Bug-Eye' Range Finder
- LV-MaxSonar-EZ (0, 1, 2, 3, 4-მე ვიყენებ '1' -ს, მაგრამ ყველა ვერსიის ინტერფეისი ერთნაირია)
- Arduino UNO
- Solderless Breadboard
- სათაურის სათაური - 7 პინი 90 ° (MaxSonar მოწყობილობისთვის იხილეთ * ქვემოთ 180 ° –ის გამოყენებისათვის)
- ლენტი საკაბელო მხტუნავი - 5 მავთული, მამაკაცი -მამაკაცი
- ლენტი საკაბელო მხტუნავი - 2 მავთული, მამაკაცი -მამაკაცი
- მხტუნავი მავთული - მამაკაცი -მამაკაცი
- სამაგრი მავთული - წითელი და შავი (არდუინოდან კვების ბლოკამდე და პურის დაფაზე მოწყობილობებისთვის)
- კომპიუტერი Arduino IDE და USB კაბელით Arduino UNO– ს დასაკავშირებლად
* MaxSonar– ს არ მოყვება სათაური, ასე რომ თქვენ შეგიძლიათ გამოიყენოთ სათაური, რომელიც ყველაზე მეტად შეესაბამება თქვენს პროექტს. ამ ინსტრუქციისთვის მე გამოვიყენე 90 ° სათაური, რათა ადვილი ყოფილიყო პურის დაფაზე ჩასმა. ზოგიერთ პროექტში 180 ° (სწორი) სათაური შეიძლება უკეთესი იყოს. მე ჩავამატებ ფოტოს, რომ ნახოთ თუ როგორ უნდა დააკავშიროთ ეს ისე, რომ არ დაგჭირდეთ მათი გადართვა. თუ თქვენ გირჩევნიათ გამოიყენოთ 180 ° სათაური, თქვენ დაგჭირდებათ დამატებითი 7 მავთულის კაცი-ქალი ლენტიანი საკაბელო ჯუმპერი, რომ დააკავშიროთ როგორც ჩემი ფოტო გვიჩვენებს.
Git Hub საცავი: პროექტის ფაილები
ნაბიჯი 1: დევნა…
სანამ დეტალებს შევეხებით, თუ როგორ უნდა დავაკავშიროთ ყველაფერი ისე, რომ თქვენ შეძლოთ ექსპერიმენტი ჩაატაროთ ამ ორ ფანტასტიკურ მოწყობილობაზე, მინდოდა აღვწერო რამდენიმე რამ, რაშიც იმედი მაქვს, რომ ეს ინსტრუქცია დაგეხმარებათ.
იმის გამო, რომ MaxSonar მოწყობილობა ნაკლებად გამოიყენება და ნაკლებად გასაგებია HC-SR04 მოწყობილობასთან შედარებით, მინდოდა მეჩვენებინა:
- როგორ დააკავშიროთ MaxSonar მოწყობილობა მიკროკონტროლერთან (ამ შემთხვევაში Arduino)
- როგორ მივიღოთ გაზომვები MaxSonar მოწყობილობის სხვადასხვა გამოსასვლელიდან
- შეადარეთ MaxSonar მოწყობილობის ინტერფეისი HC-SR04 მოწყობილობასთან
- შეამოწმეთ სხვადასხვა ზედაპირის მქონე ობიექტების მანძილის გაზომვის უნარი
- რატომ შეიძლება აირჩიოთ ერთი მოწყობილობა მეორეზე (ან გამოიყენოთ ორივე ერთად)
ვიმედოვნებ, რომ ეს ინსტრუქცია დაგეხმარებათ ამ დევნაში…
ნაბიჯი 2: დაწყება - Arduino -Breadboard Setup
თუ თქვენ არტოდინოს პროტოტიპს აკეთებდით, თქვენ ალბათ უკვე გაქვთ Arduino-Breadboard კონფიგურაცია, რომელშიც თავს კომფორტულად გრძნობთ. თუ ასეა, დარწმუნებული ვარ, რომ თქვენ შეგიძლიათ გამოიყენოთ ეს ინსტრუქციისთვის. თუ არა, ასე შევქმენი ჩემი - თავისუფლად დააკოპირეთ ეს და მომავალი პროექტები.
- მე ვამაგრებ Arduino UNO- ს და პატარა უკაბელო პურის დაფას 3-3/8 "x 4-3/4" (8.6 x 12.0 სმ) პლასტმასის ნაჭერზე, რომელსაც რეზინის ფეხები აქვს ბოლოში.
- მე ვიყენებ წითელ და შავ 22-AWG მავთულხლართს, რომ დავუკავშირო +5V და GND არდუინოდან პურის დაფის დენის გამანაწილებელ ზოლს
- მე ჩავრთავ 10μF ტანტალის კონდენსატორს დენის გამანაწილებელ ზოლზე, რომელიც ხელს უწყობს ენერგიის ხმაურის შემცირებას (მაგრამ ეს პროექტი ამას არ მოითხოვს)
ეს უზრუნველყოფს სასიამოვნო პლატფორმას, რომლის პროტოტიპირებაც ადვილია.
ნაბიჯი 3: შეაერთეთ LV-MaxSonar-EZ
90 ° სათაურით, რომელიც გაერთიანებულია MaxSonar მოწყობილობაზე, ადვილია მისი ჩასმა პურის დაფაზე. 5 პინიანი ლენტიანი კაბელი შემდეგ აკავშირებს MaxSonar– ს არდუინოსთან, როგორც ეს ჩანს დიაგრამაში. ლენტის კაბელის გარდა, მე ვიყენებ წითელი და შავი შემაერთებელი მავთულის მოკლე ნაწილებს დენის გამანაწილებელი რკინიგზისგან, რათა უზრუნველყოს მოწყობილობის სიმძლავრე.
გაყვანილობა:
მაქსსონარი | არდუინო | ფერი |
---|---|---|
1 (BW) | სიმძლავრე- GND | ყვითელი |
2 (PW) | ციფრული -5 | მწვანე |
3 (AN) | ანალოგი -0 | ლურჯი |
4 (RX) | ციფრული -3 | მეწამული |
5 (TX) | ციფრული -2 | ნაცრისფერი |
6 (+5) | +5 BB-PWR სარკინიგზო | წითელი |
7 (GND) | GND BB-PWR სარკინიგზო | შავი |
Შენიშვნა:
ნუ დაუშვებთ ამ ინსტრუქციებში გამოყენებულ კავშირების რაოდენობას, რომ თქვენ არ გაითვალისწინოთ MaxSonar თქვენი პროექტისათვის. ეს ინსტრუქცია იყენებს MaxSonar– ის ინტერფეისის ყველა ვარიანტს იმის საილუსტრაციოდ, თუ როგორ მუშაობს ისინი და ადარებს მათ ერთმანეთს და HC-SR04 მოწყობილობას. მოცემული გამოყენებისათვის (ინტერფეისის ერთ -ერთი ვარიანტის გამოყენებით) პროექტი ზოგადად გამოიყენებს ინტერფეისის ერთ ან ორ ქინძისთავს (პლუს სიმძლავრე და მიწა).
ნაბიჯი 4: შეაერთეთ HC-SR04
HC-SR04, როგორც წესი, მოყვება 90 ° -იანი სათაური, რომელიც უკვე მიმაგრებულია, ასე რომ ადვილია მისი შეტანა პურის დაფაზე. 2 პინიანი ლენტიანი კაბელი შემდეგ აკავშირებს HC-SR04 არდუინოსთან, როგორც ეს ჩანს დიაგრამაში. ლენტის კაბელის გარდა, მე ვიყენებ წითელი და შავი შემაერთებელი მავთულის მოკლე ნაწილებს ელექტროენერგიის განაწილების რკინიგზისგან, რათა უზრუნველყოს მოწყობილობის სიმძლავრე.
HC-SR04 | არდუინო | ფერი |
---|---|---|
1 (VCC) | +5 BB-PWR სარკინიგზო | წითელი |
2 (TRIG) | ციფრული -6 | ყვითელი |
3 (ECHO) | ციფრული -7 | ნარინჯისფერი |
4 (GND) | GND BB-PWR სარკინიგზო | შავი |
ნაბიჯი 5: შეაერთეთ "HC-SR04" ვარიანტის ამომრჩევი
როდესაც დავიწყე ეს პროექტი, ჩემი განზრახვა იყო უბრალოდ შემემოწმებინა MaxSonar მოწყობილობის სხვადასხვა ინტერფეისის პარამეტრები. მუშაობის დაწყების შემდეგ, მე გადავწყვიტე, რომ კარგი იქნებოდა მისი შედარება ყოვლისმომცველ HC-SR04 (bugeye) მოწყობილობასთან. თუმცა, მინდოდა გამეტარებინა/გამომეცადა მის გარეშე, ამიტომ დავამატე ვარიანტი/ტესტი კოდში.
კოდი ამოწმებს შეყვანის პინს, რომ ნახოთ უნდა იყოს თუ არა HC-SR04 მოწყობილობა გაზომვის კითხვასა და გამომავალში.
დიაგრამაზე, ეს ნაჩვენებია როგორც გადამრთველი, მაგრამ პურის დაფაზე მე უბრალოდ ვიყენებ ჯუმბერის მავთულს (როგორც ჩანს ფოტოებში). თუ მავთული დაკავშირებულია GND– სთან, HC-SR04 შედის გაზომვებში. კოდი „იჭრება“(ხდის შეყვანის მაღალს/ჭეშმარიტს) არდუინოში, ასე რომ, თუ ის არ არის დაწეული დაბლა (დაკავშირებულია GND– თან) HC-SR04 არ იზომება.
მიუხედავად იმისა, რომ ეს ინსტრუქცია გადაიზარდა ორი მოწყობილობის შედარებაში, მე გადავწყვიტე ამის დატოვება იმის საილუსტრაციოდ, თუ როგორ შეიძლება ჩართოთ/გამორიცხოთ სხვადასხვა მოწყობილობა/ვარიანტი თქვენს პროექტში.
პურის დაფა | არდუინო | ფერი |
---|---|---|
GND BB-PWR სარკინიგზო | ციფრული -12 | თეთრი |
ნაბიჯი 6: ყველაფერი მუშაობს…
ახლა, როდესაც ყველაფერი ჩაკეტილია - დროა გავაკეთოთ საქმეები!
როგორც ნათქვამია 'ვარაუდებში' - მე არ ვაპირებ ახსნას, თუ როგორ მუშაობს Arduino IDE ან როგორ უნდა დაპროგრამდეს Arduino (დეტალურად).
მომდევნო სექციები არღვევს არდუინოს კოდს, რომელიც შედის ამ პროექტში.
გთხოვთ გახსნათ სრული არქივი იმ ადგილას, რომელსაც იყენებთ თქვენი არდუინოს განვითარებისათვის. ჩატვირთეთ `MaxSonar-outputs.ino` კოდი თქვენს Arduino IDE- ში და დავიწყოთ!
ნაბიჯი 7: პროექტის განლაგება
პროექტი შეიცავს ინფორმაციას LV-MaxSonar-EZ მოწყობილობის, წრიული დიაგრამის, README და Arduino კოდის შესახებ. წრიული დიაგრამა არის Fritzing ფორმატში, ისევე როგორც-p.webp
ნაბიჯი 8: შეყვანის კოდი…
ამ ინსტრუქციულად, მე არ შემიძლია კოდის ყველა ასპექტის გავლა. მე ვფარავ რამდენიმე მაღალი დონის დეტალს. მე გირჩევთ წაიკითხოთ ზედა დონის კომენტარი კოდში და გაეცნოთ მეთოდებს.
კომენტარები იძლევა უამრავ ინფორმაციას, რომელსაც აქ არ გავიმეორებ.
რამდენიმე რამ მინდა აღვნიშნო "დაყენების" კოდში …
- `_DEBUG_OUTPUT` - ცვლადი და #განსაზღვრეთ განცხადებები
- Arduino- ს "ქინძისთავების" განმარტებები, რომლებიც გამოიყენება ინტერფეისისთვის
- გამოთვლებში გამოყენებული კონვერტაციის ფაქტორების განმარტებები
გამართვა გამოიყენება მთელ კოდში და მე ვაჩვენებ როგორ შეიძლება მისი დინამიურად ჩართვა/გამორთვა.
"განმარტებები" გამოიყენება Arduino ქინძისთავებისთვის და კონვერტაციისთვის, რათა გაუადვილოს ამ კოდის გამოყენება სხვა პროექტებში.
გამართვა…
"გამართვის" განყოფილება განსაზღვრავს ცვლადს და ზოგიერთ მაკროს, რაც აადვილებს მოთხოვნის შემთხვევაში სერიულ გამოშვებაში ინფორმაციის გამართვის შეტანას.
`_DEBUG_OUTPUT` ლოგიკური ცვლადი არის მითითებული false კოდში (შეიძლება დაყენებული იყოს ჭეშმარიტი) და გამოიყენება როგორც ტესტი DB`PRINT …` მაკროებში. ის შეიძლება დინამიურად შეიცვალოს კოდში (როგორც ჩანს `` setDebugOutputMode` მეთოდით).
გლობალური…
განმარტებების შემდეგ, კოდი ქმნის და ინიციალებს რამდენიმე გლობალურ ცვლადს და ობიექტს.
- SoftwareSerial (იხილეთ შემდეგი განყოფილება)
- _loopCount - გამოიყენება სათაურის გამოსაყვანად ყოველ 'n' სტრიქონში
- _inputBuffer - გამოიყენება სერიული/ტერმინალური შეყვანის შესაგროვებლად პარამეტრების დასამუშავებლად (გამართვის ჩართვა/გამორთვა)
ნაბიჯი 9: Arduino Software-Serial…
MaxSonar ინტერფეისის ერთ -ერთი ვარიანტი არის სერიული მონაცემთა ნაკადი. თუმცა, Arduino UNO უზრუნველყოფს მხოლოდ ერთ სერიულ მონაცემთა კავშირს და ის გამოიყენება/გაზიარებულია USB პორტთან Arduino IDE (მასპინძელ კომპიუტერთან) კომუნიკაციისთვის.
საბედნიეროდ, არის Arduino IDE– სთან დაკავშირებული ბიბლიოთეკის კომპონენტი, რომელიც იყენებს Arduino ციფრული I-O პინების წყვილს სერიული i/o ინტერფეისის განსახორციელებლად. ვინაიდან MaxSonar სერიული ინტერფეისი იყენებს 9600 BAUD- ს, ამ 'პროგრამული უზრუნველყოფის' ინტერფეისს შესანიშნავად შეუძლია კომუნიკაციის დამუშავება.
მათთვის, ვინც იყენებს Arduino-Mega- ს (ან სხვა მოწყობილობას, რომელსაც აქვს მრავალი HW სერიული პორტი), გთხოვთ მოგერიდოთ კოდის მორგება ფიზიკური სერიული პორტის გამოსაყენებლად და აღმოფხვრას SW-Serial– ის საჭიროება.
`Setup` მეთოდი იწყებს` SoftwareSerial` ინტერფეისს, რომელიც გამოიყენება MaxSonar მოწყობილობასთან. საჭიროა მხოლოდ მიღება (RX). ინტერფეისი "გადაბრუნებულია", რათა შეესაბამებოდეს MaxSonar– ის გამომუშავებას.
ნაბიჯი 10: კოდი - დაყენება
როგორც ზემოთ აღვნიშნეთ, `setup` მეთოდი იწყებს` SoftwareSerial` ინტერფეისს, ასევე ფიზიკურ სერიულ ინტერფეისს. ის ახდენს Arduino I/O ქინძისთავების კონფიგურაციას და აგზავნის სათაურს.
ნაბიჯი 11: კოდი - მარყუჟი
`მარყუჟის` კოდი გადის შემდეგში:
- სათაურის გამოტანა (გამოიყენება გამართვისა და შეთქმულებისათვის)
- გააქტიურეთ MaxSonar გაზომვისთვის
- წაიკითხეთ MaxSonar Pulse-Width მნიშვნელობა
- წაიკითხეთ MaxSonar სერიული მონაცემების მნიშვნელობა
- წაიკითხეთ MaxSonar Analog მნიშვნელობა
-
შეამოწმეთ 'HC-SR04' ვარიანტი და, თუ ჩართულია:
ჩართეთ და წაიკითხეთ HC-SR04 მოწყობილობა
- მონაცემების გამოტანა ჩანართზე შეზღუდული ფორმატით, რომელიც შეიძლება გამოყენებულ იქნას სერიული შემქმნელის მიერ
- დაელოდეთ სანამ საკმარისი დრო არ გასულა, რათა სხვა გაზომვა მოხდეს
ნაბიჯი 12: კოდი - გააქტიურეთ MaxSonar. წაიკითხეთ PW მნიშვნელობა
MaxSonar– ს აქვს ორი რეჟიმი: „გამომწვევი“და „უწყვეტი“
ეს ინსტრუქცია იყენებს "გააქტიურებულ" რეჟიმს, მაგრამ ბევრ პროექტს შეუძლია ისარგებლოს "უწყვეტი" რეჟიმის გამოყენებით (იხ. მონაცემთა ცხრილი).
"გამომწვევი" რეჟიმის გამოყენებისას, პირველი მოქმედი გამომავალი არის პულსი-სიგანის (PW) გამომავალიდან. ამის შემდეგ, დანარჩენი შედეგები ძალაშია.
`TiggerAndReadDistanceFromPulse` პულსირებს გამშვებ პინს MaxSonar მოწყობილობაზე და კითხულობს მიღებულ პულსის სიგანის მანძილის მნიშვნელობას
გაითვალისწინეთ, რომ მრავალი სხვა სონარის მოწყობილობისგან განსხვავებით, MaxSonar ამუშავებს მრგვალ მოგზაურობას, ამიტომ წაკითხული მანძილი არის მანძილი მიზანთან.
ეს მეთოდი ასევე საკმაოდ დიდხანს აჭიანურებს, რომ მოწყობილობის სხვა გამოსავალი იყოს მოქმედი (სერიული, ანალოგი).
ნაბიჯი 13: კოდი - წაიკითხეთ MaxSonar სერიული მნიშვნელობა
მას შემდეგ, რაც MaxSonar გააქტიურებულია (ან როდესაც "უწყვეტ" რეჟიმშია), თუ სერიული გამომავალი ვარიანტი ჩართულია ("BW - Pin -1" კონტროლის საშუალებით) იგზავნება სერიული მონაცემების ნაკადი სახით "R nnn", რასაც მოჰყვება CARRIAGE-RETURN '\ r' მიერ. 'Nnn' არის ობიექტის ინჩების მნიშვნელობა.
მეთოდი `readDistanceFromSerial` კითხულობს სერიულ მონაცემებს (პროგრამული უზრუნველყოფის სერიული პორტიდან) და 'nnn' მნიშვნელობას ათწილადად გარდაქმნის. იგი მოიცავს ჩავარდნის უსაფრთხო ვადას, მხოლოდ იმ შემთხვევაში, თუ სერიული მნიშვნელობა არ მიიღება.
ნაბიჯი 14: კოდი - წაიკითხეთ MaxSonar ანალოგური მნიშვნელობა
MaxSonar ანალოგური პორტი განუწყვეტლივ უზრუნველყოფს გამომავალ ძაბვას პროპორციულად ბოლო გაზომული მანძილის. ამ მნიშვნელობის წაკითხვა შესაძლებელია ნებისმიერ დროს მოწყობილობის ინიციალიზაციის შემდეგ. მნიშვნელობა განახლებულია ბოლო დისტანციის წაკითხვის 50mS ფარგლებში (გააქტიურებული ან უწყვეტი რეჟიმი).
მნიშვნელობა არის (Vcc/512) ინჩზე. ასე რომ, Vcc– ით Arduino– დან 5 ვოლტი, ღირებულება იქნება 8 9.8mV/in. მეთოდი `readDistanceFromAnalog` კითხულობს მნიშვნელობას არდუინოს ანალოგური შეყვანისგან და გარდაქმნის მას 'ინჩის' მნიშვნელობად.
ნაბიჯი 15: კოდი - გამოიწერეთ და წაიკითხეთ HC -SR04
მიუხედავად იმისა, რომ არსებობს ბიბლიოთეკები HC-SR04– ის წასაკითხად, მე აღმოვაჩინე, რომ ზოგიერთი მათგანი არასანდოა სხვადასხვა მოწყობილობებით, რომლებითაც მე გამოვცადე. აღმოვაჩინე, რომ კოდი `sr04ReadDistance` არის მარტივი და უფრო საიმედო (რამდენადაც იაფი HC-SR04 მოწყობილობა შეიძლება იყოს).
ეს მეთოდი ადგენს და შემდეგ იწვევს HC-SR04 მოწყობილობას და შემდეგ ელოდება გაზომვას დასაბრუნებელი პულსის სიგანე. პულსის სიგანის გაზომვა მოიცავს დროის ამოწურვას HC-SR04 საკითხის გადასაჭრელად, ძალიან გრძელი პულსის ხანგრძლივობით, როდესაც ის ვერ პოულობს მიზანს. პულსის სიგანე, რომელიც აღემატება feet 10 ფუტის სამიზნე მანძილს, ითვლება, რომ არ არის ობიექტი ან ობიექტი, რომლის ამოცნობა შეუძლებელია. თუ დრო ამოიწურა, "0" მნიშვნელობა უბრუნდება მანძილს. ეს "მანძილი" (პულსის სიგანე) შეიძლება მორგებული იყოს #განსაზღვრული მნიშვნელობების გამოყენებით.
პულსის სიგანე გარდაიქმნება მრგვალი მოგზაურობის მანძილზე, სანამ არ დაბრუნდება, როგორც მანძილი ობიექტამდე.
ნაბიჯი 16: კოდი - Arduino IDE სერიული პლოტერის მხარდაჭერა
ახლა რაც შეეხება გამომავალს!
"მარყუჟის" მეთოდი იწვევს ორი მოწყობილობიდან მანძილის გაზომვის შეგროვებას - მაგრამ რას ვაკეთებთ?
რა თქმა უნდა, ჩვენ გამოგიგზავნით მას ისე, რომ მისი ნახვა შესაძლებელი იყოს კონსოლზე - მაგრამ ჩვენ გვინდა მეტი!
Arduino IDE ასევე უზრუნველყოფს სერიული Plotter ინტერფეისს. ჩვენ ამას გამოვიყენებთ, რათა უზრუნველვყოთ ჩვენი ობიექტის მანძილის რეალურ დროში გრაფიკი ჩვენი ორი მოწყობილობის შედეგებიდან.
Serial Plotter იღებს სათაურს, რომელიც შეიცავს ღირებულების ეტიკეტებს და შემდეგ მრავალრიცხოვან დიმიტირებულ მნიშვნელობებს, რომლებიც უნდა იყოს გამოსახული გრაფაში. თუ მნიშვნელობები გამოჩნდება რეგულარულად (ყოველ 'ამდენ წამში') გრაფიკი იძლევა ვიზუალიზაციას ობიექტის მანძილზე დროთა განმავლობაში.
`მარყუჟის method მეთოდი გამოაქვს სამი მნიშვნელობა MaxSonar– დან და მნიშვნელობა HC-SR04– დან tab– ით გამოყოფილ ფორმატში, რომელიც შეიძლება გამოყენებულ იქნას სერიულ Plotter– თან ერთად. ყოველ 20 სტრიქონში ერთხელ ის გამოაქვს სათაურს (მხოლოდ იმ შემთხვევაში, თუ სერიული პლოტერი ჩართულია შუა ნაკადში).
ეს საშუალებას გაძლევთ ასე ვიზუალურად შეაფასოთ მანძილი დაბრკოლებამდე და ასევე დაინახოთ განსხვავება ორი მოწყობილობის მიერ დაბრუნებულ მნიშვნელობებში.
ნაბიჯი 17: კოდი - გამართვა…
გამართვა აუცილებლობაა. როგორ შეგიძლიათ გაარკვიოთ პრობლემა, როდესაც რაღაც არ მუშაობს ისე, როგორც მოსალოდნელი იყო?
გაგების პირველი ხაზი ხშირად არის 'მარტივი' ტექსტის გამომუშავება, რომელსაც შეუძლია მიუთითოს რა ხდება. ეს შეიძლება დაემატოს კოდს, როდესაც და სადაც საჭიროა პრობლემის დასადგენად და შემდეგ ამოღებულ იქნას პრობლემის მოგვარებისთანავე. თუმცა, კოდის დამატება და ამოღება შრომატევადია და, თავისთავად, შეიძლება გამოიწვიოს სხვა პრობლემები. ხანდახან სჯობს შეძლოთ მისი დინამიურად ჩართვა და გამორთვა წყაროს კოდის მარტო დატოვებისას.
ამ ინსტრუქციებში მე ჩავრთე მექანიზმი, რომელიც საშუალებას გაძლევთ ჩართოთ და გამორთოთ დაბეჭდვის (სერიული გამომავალი) განცხადებები დინამიურად Arduino IDE სერიული მონიტორიდან წაკითხული შეყვანისგან (მომავალ გამოშვებაში, სერიული შემგროვებელი ასევე უნდა შეიცავდეს ამ შეყვანას).
`_DEBUG_OUTPUT` ლოგიკური გამოიყენება რიგი #განსაზღვრული ბეჭდვის მეთოდებში, რომლებიც შეიძლება გამოყენებულ იქნას კოდის ფარგლებში. _DEBUG_OUTPUT ცვლადის მნიშვნელობა გამოიყენება დაბეჭდვის (გამომავალი გაგზავნის) გასააქტიურებლად თუ არა. მნიშვნელობა შეიძლება შეიცვალოს დინამიურად კოდში, როგორც ამას აკეთებს `setDebugOutputMode` მეთოდი.
`SetDebugOutputMode` მეთოდს უწოდებენ` მარყუჟიდან` სერიული შეყვანიდან მიღებული შეყვანის საფუძველზე. შეყვანა გაანალიზებულია იმის გასარკვევად, შეესაბამება თუ არა ის "გამართვის ჩართვა/გამორთვა | ჭეშმარიტი/მცდარი" გამართვის რეჟიმის ჩართვის/გათიშვის მიზნით.
ნაბიჯი 18: დასკვნა
ვიმედოვნებ, რომ აპარატურის ეს მარტივი დაყენება და მაგალითი კოდი დაგეხმარებათ გაიგოთ განსხვავებები HC-SR04 და LV-MaxSonar-EZ მოწყობილობებს შორის. ორივე ძალიან მარტივი გამოსაყენებელია და მე მჯერა, რომ თითოეულს აქვს თავისი სარგებელი. იმის ცოდნა, თუ როდის გამოიყენოთ ერთი და არა მეორე, შეიძლება იყოს წარმატებული პროექტისთვის.
BTW-მე მიანიშნა ძალიან მარტივად გამოსაყენებელი გზა ზუსტად გავზომოთ მანძილი ობიექტამდე LV-MaxSonar-EZ გამოყენებით … თქვენ შეგიძლიათ გამოიყენოთ ანალოგური გამომავალი (ერთი მავთული) და უწყვეტი გაზომვის რეჟიმი, რომ წაიკითხოთ მანძილი საჭიროებისამებრ მარტივი საშუალებით კოდი `readDistanceFromAnalog`– ში პირდაპირ Arduino– ს ანალოგური შეყვანისგან. ერთი მავთული და (შედედებული) კოდის ერთი ხაზი!
ნაბიჯი 19: ალტერნატიული MaxSonar კავშირი (180 ° სათაურის გამოყენებით)
როგორც აღვნიშნე, MaxSonar– ს არ გააჩნია სათაური დაკავშირებული. ასე რომ, თქვენ შეგიძლიათ გამოიყენოთ ნებისმიერი კავშირი, რომელიც ყველაზე შესაფერისია თქვენი პროექტისათვის. ზოგიერთ შემთხვევაში 180 ° (სწორი) სათაური შეიძლება იყოს უფრო შესაფერისი. თუ ეს ასეა, მინდოდა სწრაფად მეჩვენებინა, თუ როგორ შეგიძლიათ გამოიყენოთ ეს ინსტრუქციულთან ერთად. ეს ილუსტრაცია აჩვენებს MaxSonar– ს, რომელსაც აქვს პირდაპირი სათაური, რომელიც დაკავშირებულია პურის დაფაზე მამრობითი და მდედრობითი ლენტიანი კაბელით, შემდეგ კი დაკავშირებულია არდუინოსთან, როგორც ეს აღწერილია სტატიის დანარჩენ ნაწილში.
ნაბიჯი 20: Arduino კოდი
Arduino კოდი არის პროექტის 'MaxSonar-outputs' საქაღალდეში Sonar Range-Finder Comparison
გირჩევთ:
ინტერფეისი HMC5883L კომპასის სენსორი Arduino– სთან ერთად: 10 ნაბიჯი (სურათებით)
ინტერფეისი HMC5883L კომპასის სენსორი Arduino– სთან ერთად: აღწერა HMC5883L არის 3 ღერძიანი ციფრული კომპასი, რომელიც გამოიყენება ორი ზოგადი მიზნისთვის: ფერომაგნიტის მსგავსად მაგნიტური მასალის მაგნეტიზაციის გასაზომად, ან სიძლიერის და, ზოგიერთ შემთხვევაში, მიმართულების გასაზომად. მაგნიტური ველი ერთ წერტილში
ვირტუალური რეალობა Raspberry Pi- სთან ერთად BeYourHero !: 19 ნაბიჯი (სურათებით)
ვირტუალური რეალობა Raspberry Pi– სთან ერთად BeYourHero!: კეთილი იყოს თქვენი მობრძანება " იყავით თქვენი გმირი " პროექტი! ვიმედოვნებ, რომ თქვენ მზად ხართ შეხვიდეთ ვირტუალური რეალობის ჩაძირვის მომავალ თაობაში! ეს პროექტი მოგცემთ ნებისმიერი ვირტუალური გმირის ჟესტიკულტურ კონტროლს, რომელიც მოგწონთ იაფი მოწყობილობების მარტივი ნაკრებით, რომელიც იყენებს
RGB LED ფერის შერევა Arduino– სთან ერთად Tinkercad– ში: 5 ნაბიჯი (სურათებით)
RGB LED ფერის შერევა Arduino– სთან ერთად Tinkercad– ში: მოდით ვისწავლოთ თუ როგორ გავაკონტროლოთ მრავალ ფერადი LED- ები Arduino– ს ანალოგური საშუალებების გამოყენებით. ჩვენ დავაკავშირებთ RGB LED- ს Arduino Uno– სთან და შევადგინეთ მარტივი პროგრამა მისი ფერის შესაცვლელად. თქვენ შეგიძლიათ გააგრძელოთ პრაქტიკულად Tinkercad სქემების გამოყენებით. ამის ნახვაც კი შეგიძლიათ
როგორ დავაკავშიროთ GPS მოდული (NEO-6m) Arduino– სთან ერთად: 7 ნაბიჯი (სურათებით)
როგორ დავაკავშიროთ GPS მოდული (NEO-6m) Arduino– სთან ერთად: ამ პროექტში მე ვაჩვენე როგორ გავაერთიანო GPS მოდული Arduino UNO– სთან. გრძედი და გრძედის მონაცემები ნაჩვენებია LCD– ზე და მისი ნახვა შესაძლებელია აპლიკაციაში. მასალის სია Arduino Uno == > $ 8 Ublox NEO-6m GPS მოდული == > 15 $ 16x
გადართეთ წვდომა Makey Makey– სთან ერთად: 3 ნაბიჯი (სურათებით)
გადართეთ წვდომა Makey Makey– სთან: ეს ორი გადართვის სისტემა იყენებს წრედის უჯრას (მე ეს IKEA– დან გამოვიყენე), გამტარ მასალას (მე ვიყენებ ალუმინის და სპილენძის ლენტს, მაგრამ თქვენ ყოველთვის შეგიძლიათ გამოიყენოთ ძველი ძველი სამზარეულოს ალუმინის კილიტა), წებოვანი ლენტი და მაკიაჟი გააკეთეთ მხოლოდ შეხებით გადამრთველის შესაქმნელად. სისტემა გ