Smart Dustbin From Magicbit: 5 ნაბიჯი
Smart Dustbin From Magicbit: 5 ნაბიჯი
Anonim
Image
Image

ამ გაკვეთილში ჩვენ შევისწავლით თუ როგორ უნდა გავაკეთოთ სმარტ ნაგვის ურნა Magicbit dev– ის გამოყენებით. დაფა Arduino IDE– ით. დავიწყოთ.

მარაგები

  • მეჯიბბიტი
  • USB-A მიკრო USB კაბელი
  • ულტრაბგერითი სენსორი - HC -SR04 (ზოგადი)
  • SG90 მიკრო სერვო ძრავა

ნაბიჯი 1: ისტორია

აპარატურის დაყენება
აპარატურის დაყენება

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

ნაბიჯი 2: თეორია და მეთოდოლოგია

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

ნაბიჯი 3: აპარატურის დაყენება

აპარატურის დაყენება
აპარატურის დაყენება
აპარატურის დაყენება
აპარატურის დაყენება

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

ულტრაბგერითი სენსორი იყენებს 3.3 ვ ენერგიას. ამიტომ ჩვენ ვიყენეთ Magicbit დაფის მარჯვენა ქვედა პორტი ულტრაბგერითი სენსორის Magicbit– თან დასაკავშირებლად. მაგრამ სერვო ძრავა გამოიყენება 5V სწორი მუშაობისთვის, ამიტომ ჩვენ გამოვიყენეთ ქვედა მარცხენა პორტი სერვო ძრავის Magicbit– თან დასაკავშირებლად. ამ შემთხვევაში, ჩვენ ვიყენებთ Magic bit servo connector მოდულს. მაგრამ თუ თქვენ არ გაქვთ ეს მოდული, შეგიძლიათ გამოიყენოთ სამი ჯამპერის მავთული 5V 5V- თან, Gnd Gnd- თან და სიგნალის pin 26 magin Magbit– ზე.

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

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

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

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

სერვოს მართვისთვის ჩვენ ვიყენებთ ESP32 სერვო ბიბლიოთეკას. ეს ბიბლიოთეკა თითქმის შეიცავს ჯადოსნურ ბიტ დაფის მენეჯერს Arduino IDE– ში. ულტრაბგერითი სენსორის დასაძლევად ჩვენ ვიყენებთ newPing ბიბლიოთეკას. ამის გადმოწერა შესაძლებელია შემდეგი ბმულიდან.

bitbucket.org/teckel12/arduino-new-ping/d…

ჩამოტვირთეთ zip ფაილი და გადადით ინსტრუმენტებში> ჩართეთ ბიბლიოთეკა> დაამატეთ ZIP ბიბლიოთეკა Arduino– ში. ახლა შეარჩიეთ ახალი pin ბიბლიოთეკის გადმოწერილი zip ფაილი. კოდში ჩვენ პირველად ვაცხადებთ სერვო და ულტრაბგერითი სენსორების ბიბლიოთეკებს. მარყუჟის ფუნქციაში ჩვენ ყოველთვის ვამოწმებთ მანძილს ნაგვის ყუთიდან უახლოეს წინა ობიექტამდე. თუ ეს გრატერი 200 -ზე მეტია, მაშინ ბიბლიოთეკის მანძილის გამომუშავება არის 0. როდესაც მანძილი 60 სმ -ზე დაბალია, მაშინ ის ახორციელებს მარყუჟს საფარის გასახსნელად, მბრუნავი სერვო. თუ მანძილი 60 სმ -ზე მეტია, საფარი დაიდება. ლოგიკური ცვლადის გამოყენებით ჩვენ ყოველთვის ვამოწმებთ საფარის მდგომარეობას. თუ საფარი ქვემოთაა, მხოლოდ ის გაიხსნება. ასევე პირიქით. ახლა შეარჩიეთ სწორი COM პორტი და დაფა როგორც magcibit, შემდეგ ატვირთეთ კოდი. ახლა თქვენი ჭკვიანი ნაგვის ყუთი მზადაა გამოსაყენებლად.

ნაბიჯი 5: Arduino კოდი

#ჩართეთ

#განსაზღვრეთ TRIGGER_PIN 21 #განსაზღვრეთ ECHO_PIN 22 #განსაზღვრეთ MAX_DISTANCE 200 NewPing სონარი (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #მოიცავს // მოიცავს სერვო ბიბლიოთეკას int მანძილზე; Servo RadarServo; void setup () {Serial.begin (115200); RadarServo.attach (26); // განსაზღვრავს რომელ პინზეა სერვო ძრავაზე მიმაგრებული დაყოვნება (3000); } void loop () {// ბრუნავს სერვო ძრავას 15 -დან 165 გრადუსამდე (int i = 0; i <= 180; i ++) {RadarServo.write (i); დაგვიანება (50); მანძილი = sonar.ping_cm (); // იძახებს ფუნქციას ულტრაბგერითი სენსორით გაზომული მანძილის გამოსათვლელად თითოეული ხარისხისათვის (int j = 0; j0) {შესვენებისათვის; } Serial.print (i); // აგზავნის მიმდინარე ხარისხს სერიულ პორტში Serial.print (","); // აგზავნის დამატებით სიმბოლოს წინა მნიშვნელობის გვერდით, რომელიც საჭიროა მოგვიანებით დამუშავების IDE– ში Serial.print (j) ინდექსირებისთვის; // აგზავნის მიმდინარე ხარისხს სერიულ პორტში Serial.print ("*"); სერიული. ბეჭდვა (1); // აგზავნის მანძილის მნიშვნელობას სერიულ პორტში Serial.print ("/"); // აგზავნის დამატებით სიმბოლოს წინა მნიშვნელობის გვერდით, რომელიც საჭიროა შემდგომი დამუშავების IDE– ში Serial.print– ის ინდექსირებისთვის (მანძილი); // აგზავნის მანძილის მნიშვნელობას სერიულ პორტში Serial.print ("."); // აგზავნის დამატებით სიმბოლოს წინა მნიშვნელობის გვერდით, რომელიც საჭიროა მოგვიანებით ინდექსირებისთვის IDE}} // იმეორებს წინა სტრიქონებს 165-დან 15 გრადუსამდე (int i = 180; i> = 0; i-) {RadarServo. დაწერე (ი); დაგვიანება (50); მანძილი = sonar.ping_cm (); for (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {გაგრძელება; } Serial.print (i); // აგზავნის მიმდინარე ხარისხს სერიულ პორტში Serial.print (","); // აგზავნის დამატებით სიმბოლოს წინა მნიშვნელობის გვერდით, რომელიც საჭიროა მოგვიანებით დამუშავების IDE– ში Serial.print (j) ინდექსირებისთვის; // აგზავნის მიმდინარე ხარისხს სერიულ პორტში Serial.print ("*"); Serial.print (-1); // აგზავნის მანძილის მნიშვნელობას სერიულ პორტში Serial.print ("/"); // აგზავნის დამატებით სიმბოლოს წინა მნიშვნელობის გვერდით, რომელიც საჭიროა შემდგომი დამუშავების IDE– ში Serial.print– ის ინდექსირებისთვის (მანძილი); // აგზავნის მანძილის მნიშვნელობას სერიულ პორტში Serial.print ("."); // აგზავნის დამატებით სიმბოლოს წინა მნიშვნელობის გვერდით, რომელიც საჭიროა მოგვიანებით დამუშავების IDE ინდექსირებისთვის}}}

გირჩევთ: