Magicbit -dən Ağıllı Çöp Kovası: 5 addım
Magicbit -dən Ağıllı Çöp Kovası: 5 addım
Anonim
Image
Image

Bu təlimatda Magicbit dev -dən istifadə edərək ağıllı bir zibil qutusu düzəltməyi öyrənəcəyik. Arduino IDE ilə lövhə. Başlayaq.

Təchizat

  • Magicbit
  • USB-A-dan Mikro-USB Kabelinə
  • Ultrasonik Sensor - HC -SR04 (Ümumi)
  • SG90 Mikro-servo motor

Addım 1: Hekayə

Avadanlıq Quraşdırması
Avadanlıq Quraşdırması

Layihəyə keçməzdən əvvəl Ağıllı zibil qutusunun nə olduğuna baxaq. Hər evdə bir və ya daha çox zibil qutusu var. Çox vaxt bunu örtmüsünüz. Çünki bu, evinizdə qoxu gətirəcək. Zibil qutusuna bir az zibil atmaq istədiyiniz zaman onu açmalısınız. Ancaq zibil qutusuna yaxınlaşanda zibili qoyursan və avtomatik olaraq qapağı açılırsa, necə görünür. Çılğın aaa …. ağıllı zibil qutusu budur.

Addım 2: nəzəriyyə və metodologiya

Teoriya çox sadədir. Çöp qutusuna yaxınlaşanda sizi aşkar edəcək. Çöp qutusu ilə aranızdakı məsafə müəyyən bir məsafədən kiçik olarsa, zibil qutusunun qapağı avtomatik olaraq açılacaqdır. Hər iki obyekti tamamlamaq üçün HC-SRO4 ultrasəs sensoru və kiçik servo mühərriklərdən istifadə edirik. İstənilən növ rəqəmsal servo motor əldə edə bilərsiniz.

Addım 3: Hardware Setup

Avadanlıq Quraşdırması
Avadanlıq Quraşdırması
Avadanlıq Quraşdırması
Avadanlıq Quraşdırması

Bu layihə üçün əsasən üç hardware komponentindən istifadə etdik. Bunlar Magicbit, servo motor və ultrasəs sensoru. Bütün bu hissələr arasındakı əlaqə yuxarıdakı Şəkildə göstərilmişdir.

Ultrasonik sensor güc üçün 3.3 v istifadə edir. Beləliklə, ultrasəs sensoru Magicbit -ə bağlamaq üçün Magicbit lövhəsinin sağ alt limanından istifadə etdik. Ancaq servo motor düzgün işləmək üçün 5V istifadə olunur, buna görə də servo motoru Magicbit ilə bağlamaq üçün sol aşağı portdan istifadə etdik. Bu vəziyyətdə Magic bit servo bağlayıcı modulundan istifadə edirik. Ancaq bu modulunuz yoxdursa, 5V -dan 5V -a, Gnd -Gnd -ə və magicbit -də 26 pin -ə siqnal pinini bağlamaq üçün üç keçid teli istifadə edə bilərsiniz.

İndi layihəmizin mexaniki tərəfinə baxaq. Qapağı açmaq üçün çox sadə qol mexanizmindən istifadə edirik. Bir tərəfli servo əl klipini servoya bağladıq. Sonra güclü metal tel istifadə edərək klipdəki künc çuxurunu və zibil qutusunun qapağını bağladıq. Metal tel servo klip və zibil qutusu örtüyünə görə dönə bilər. Ən yaxşı şəkilləri və videoları öyrənərək bunu çox asanlıqla qura bilərsiniz.

Addım 4: Proqram Quraşdırması

Proqram Quraşdırması
Proqram Quraşdırması

Proqram hissəsi də çox asandır. Arduino IDE koduna və bu kodun necə işlədiyinə baxaq.

Sürücülük üçün ESP32 servo kitabxanasından istifadə edirik. Bu kitabxana demək olar ki, Arduino IDE -də sehrli bit lövhə menecerinə daxildir. Ultrasonik sensorla məşğul olmaq üçün newPing kitabxanasından istifadə edirik. Bunu aşağıdakı linkdən yükləmək olar.

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

Zip faylını yükləyin və alətlərə keçin> kitabxana daxil edin> Arduinoda Zip kitabxanası əlavə edin. İndi yeni pin kitabxanasının yüklənmiş zip faylını seçin. kodda əvvəlcə servo və ultrasəs sensor kitabxanalarını elan edirik. Döngü funksiyasında həmişə zibil qutusundan ən yaxın ön cisimə olan məsafəni yoxlayırıq. Əgər bu 200 -dən çox olarsa, kitabxananın məsafə çıxışı 0 -a bərabərdir. Məsafə 60 sm -dən aşağı olduqda, servo fırlanaraq qapağın açılması üçün döngə icra edilir. Məsafə 60 sm -dən çox olarsa, örtük yerə qoyulacaq. Mantıksal dəyişəndən istifadə edərək həmişə örtüyün vəziyyətini yoxlayırıq. Qapaq aşağıdırsa, yalnız açılacaqdır. Həm də əksinə. İndi düzgün COM portunu seçin və magcibit olaraq lövhəni qurun, sonra kodu yükləyin. İndi ağıllı zibil qutunuz istifadəyə hazırdır.

Addım 5: Arduino Kodu

#daxil edin

#define TRIGGER_PIN 21 #dexine ECHO_PIN 22 #dexine MAX_DISTANCE 200 NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // servo kitabxananı int məsafəsinə daxil edin; Servo RadarServo; void setup () {Serial.begin (115200); RadarServo.attach (26); // Servo motorun bağlı olduğu gecikmənin hansı pin üzərində olduğunu təyin edir (3000); } void loop () {// (int i = 0; i <= 180; i ++) {RadarServo.write (i); üçün servo motoru 15 ilə 165 dərəcə döndürür; gecikmə (50); məsafə = sonar.ping_cm (); // (int j = 0; j0) {break; } Serial.print (i); // Mövcud dərəcəni Serial Port Serial.print (",") göndərir; // Serial.print (j) indekslənməsi üçün daha sonra Qenerasiya IDE -də lazım olan əvvəlki dəyərin yanında əlavə xarakter göndərir; // Mövcud dərəcəni Serial Port Serial.print ("*") göndərir; Serial çapı (1); // Məsafə dəyərini Serial Port Serial.printə göndərir ("/"); // Serial.print (məsafə) indeksləşdirilməsi üçün daha sonra Processing IDE -də lazım olan əvvəlki dəyərin yanında əlavə xarakter göndərir; // Məsafə dəyərini Serial Port Serial.print (".") Göndərir; // Əlavə xarakteri indeksləmə üçün IDE-də daha sonra lazım olan əvvəlki dəyərin yanına göndərir}} // Əvvəlki sətirləri 165 ilə 15 dərəcə arasında təkrarlayır (int i = 180; i> = 0; i-) {RadarServo. yaz (i); gecikmə (50); məsafə = sonar.ping_cm (); for (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {davam; } Serial.print (i); // Mövcud dərəcəni Serial Port Serial.print (",") göndərir; // Serial.print (j) indekslənməsi üçün daha sonra Qenerasiya IDE -də lazım olan əvvəlki dəyərin yanında əlavə xarakter göndərir; // Mövcud dərəcəni Serial Port Serial.print ("*") göndərir; Serial. çap (-1); // Məsafə dəyərini Serial Port Serial.printə göndərir ("/"); // Serial.print (məsafə) indeksləşdirilməsi üçün daha sonra Processing IDE -də lazım olan əvvəlki dəyərin yanında əlavə xarakter göndərir; // Məsafə dəyərini Serial Port Serial.print (".") Göndərir; // Əlavə xarakteri indeksləşdirmək üçün daha sonra Qenerasiya IDE -də lazım olan əvvəlki dəyərin yanına göndərir}}}