Përmbajtje:
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-13 06:58
Në këtë tutorial do të mësojmë se si të bëjmë një kosh plehrash Smart duke përdorur Magicbit dev. bord me Arduino IDE. Le të fillojmë.
Furnizimet
- Magicbit
- Kabllo USB-A në mikro-USB
- Sensor tejzanor - HC -SR04 (Generic)
- Mikro-servo motor SG90
Hapi 1: Histori
Para se të kaloni në projekt le të shikojmë se çfarë është Koshi i plehrave Smart. Ka një ose më shumë plehra në çdo shtëpi. Shumë herë e ke mbuluar. Sepse kjo do të bëjë erë në shtëpinë tuaj. Pra, kur doni të vendosni disa mbeturina në koshin e plehrave, duhet t'i hapni. Por nëse, kur afroheni pranë koshit të plehrave për të hedhur mbeturinat dhe kapaku i tij automatikisht hapet, atëherë si duket. E çmendur aaa…. kështu që është plehra e zgjuar.
Hapi 2: Teori dhe Metodologji
Teoria është shumë e thjeshtë. Kur i afroheni plehrave të plehrave do t’ju zbulojë. Nëse distanca midis jush dhe plehrave është më e vogël se një distancë e përcaktuar, atëherë mbulesa e koshes së plehrave do të hapet automatikisht. Për të përfunduar të dyja këto objekte ne përdorim sensorin tejzanor HC-SRO4 dhe motorët e vegjël servo. Ju mund të merrni çdo lloj servo motor dixhital.
Hapi 3: Konfigurimi i harduerit
Për këtë projekt ne kemi përdorur kryesisht tre komponentë harduerikë. Ato janë Magicbit, servo motor dhe sensor tejzanor. Lidhja midis të gjitha këtyre pjesëve është treguar në Figurën e mësipërme.
Sensori tejzanor ka përdorur 3.3 v për fuqizim. Prandaj, ne përdorëm portën e poshtme të poshtme të bordit Magicbit për të lidhur sensorin tejzanor me Magicbit. Por servo motori përdoret 5V për funksionimin e duhur, prandaj ne përdorëm portën e poshtme të majtë për të lidhur servo motorin me Magicbit. Në këtë rast, ne përdorim modulin lidhës të servo Magic bit. Por nëse nuk e keni atë modul, mund të përdorni tre tela kërcyes për të lidhur 5V në 5V, Gnd në Gnd dhe sinjalin e pinit në 26 pin në magicbit.
Tani le të shohim anën mekanike të projektit tonë. Për të hapur kapakun ne përdorim një mekanizëm shumë të thjeshtë levash. Ne lidhëm kapësin e dorës servo të një anë me servo. Pastaj lidhëm vrimën e qoshes në kapës dhe kapakun e plehrave duke përdorur tela të fortë metalikë. Teli metalik mund të rrotullohet në lidhje me kapësin servo dhe kapakun e plehrave. Duke studiuar imazhin dhe videon kryesore, ju mund ta ndërtoni atë shumë lehtë.
Hapi 4: Konfigurimi i softuerit
Pjesa e softuerit është gjithashtu shumë e lehtë. Le të shohim kodin Arduino IDE dhe si funksionon ai kod.
Për drejtimin e servo ne përdorim bibliotekën servo ESP32. Kjo bibliotekë pothuajse përfshin menaxherin e bordit magjik të bitit në Arduino IDE. Për t'u marrë me sensorin tejzanor ne përdorim bibliotekën newPing. Kjo mund të shkarkohet nga lidhja e mëposhtme.
bitbucket.org/teckel12/arduino-new-ping/d…
Shkarkoni skedarin zip dhe dhe shkoni mjetet> përfshini bibliotekën> shtoni bibliotekën Zip në Arduino. tani zgjidhni skedarin tuaj të shkarkuar zip të bibliotekës së re pin. në kod fillimisht deklarojmë biblioteka servo dhe sensor tejzanor. Në funksionin e lakut ne gjithmonë kontrollojmë distancën nga koshi i plehrave në objektin e përparmë më të afërt. Nëse ajo është më e madhe se 200, atëherë dalja në distancë e bibliotekës është 0. Kur distanca është më e ulët se 60 cm, atëherë ajo ekzekuton për lak për hapjen e kapakut duke rrotulluar servo. Nëse distanca është më e madhe se 60 cm, atëherë kapaku do të ulet. Duke përdorur variablin boolean ne gjithmonë kontrollojmë gjendjen e kapakut. Nëse mbulesa është poshtë atëherë vetëm ajo do të hapet. Gjithashtu anasjelltas. Tani zgjidhni portën dhe bordin e duhur COM si magcibit, Pastaj ngarkoni kodin. Tani koshi juaj i zgjuar i plehrave është gati për t'u përdorur.
Hapi 5: Kodi Arduino
#përfshi
#define TRIGGER_PIN 21 #përcakto ECHO_PIN 22 #përcakto MAX_DISTANCE 200 Sonar i riPing (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // përfshini servo bibliotekën int distancë; Servo RadarServo; void setup () {Serial.begin (115200); RadarServo.tash (26); // Përcakton në cilën pin është vonesa e bashkangjitur servo motorit (3000); } void loop () {// rrotullon servo motorin nga 15 në 165 gradë për (int i = 0; i <= 180; i ++) {RadarServo.shkruaj (i); vonesë (50); distanca = sonar.ping_cm (); // Thërret një funksion për llogaritjen e distancës së matur nga sensori tejzanor për çdo shkallë për (int j = 0; j0) {pushim; } Serial.print (i); // Dërgon gradën aktuale në Port Serial Port Serial.print (","); // Dërgon karakter shtesë përveç vlerës së mëparshme të nevojshme më vonë në Processing IDE për indeksimin Serial.print (j); // Dërgon gradën aktuale në Portin Serial Serial.print ("*"); Serial.print (1); // Dërgon vlerën e distancës në Portin Serial Serial.print ("/"); // Dërgon karakter shtesë shtesë pranë vlerës së mëparshme të nevojshme më vonë në Processing IDE për indeksimin Serial.print (distanca); // Dërgon vlerën e distancës në Portin Serial Serial.print ("."); // Dërgon karakter shtesë shtesë pranë vlerës së mëparshme të nevojshme më vonë në IDE të përpunimit për indeksimin}} // Përsërit rreshtat e mëparshëm nga 165 në 15 gradë për (int i = 180; i> = 0; i-) {RadarServo.shkruani (i); vonesë (50); distanca = sonar.ping_cm (); për (int j = 75; j> = 0; j- = 25) {nëse (i == 180 && (j == 75 || j == 50 || j == 25)) {vazhdoj; } Serial.print (i); // Dërgon gradën aktuale në Port Serial Port Serial.print (","); // Dërgon karakter shtesë përveç vlerës së mëparshme të nevojshme më vonë në Processing IDE për indeksimin Serial.print (j); // Dërgon gradën aktuale në Portin Serial Serial.print ("*"); Serial.print (-1); // Dërgon vlerën e distancës në Portin Serial Serial.print ("/"); // Dërgon karakter shtesë shtesë pranë vlerës së mëparshme të nevojshme më vonë në Processing IDE për indeksimin Serial.print (distanca); // Dërgon vlerën e distancës në Portin Serial Serial.print ("."); // Dërgon karakter shtesë përveç vlerës së mëparshme të nevojshme më vonë në IDE të përpunimit për indeksimin}}}