Sadržaj:
- Korak 1: Kako to radi
- 2. korak: Opis materijala (BOM)
- Korak 3: Strojarski dizajn
- Korak 4: Elektronika (izbor komponenti)
- Korak 5: Elektronika (veze)
- Korak 6: Programiranje
- Korak 7: Moguća poboljšanja
- Korak 8: Ograničavajući čimbenici
- Korak 9: Krediti
Video: Kanta za razvrstavanje - Otkrijte i sortirajte otpad: 9 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
Jeste li ikada vidjeli nekoga tko ne reciklira ili to radi na loš način?
Jeste li ikada poželjeli stroj koji bi reciklirao umjesto vas?
Nastavite čitati naš projekt, nećete požaliti!
Sortirnica je projekt s jasnom motivacijom pomoći recikliranju u svijetu. Kao što je poznato, nedostatak recikliranja uzrokuje ozbiljne probleme na našem planetu, poput nestanka sirovina i onečišćenja mora, među ostalim.
Zbog toga je naš tim odlučio razviti projekt u malom opsegu: kantu za razvrstavanje koja može odvojiti smeće na različite primatelje ovisno o tome je li materijal metalni ili nemetalni. U budućim verzijama ta bi se kanta za razvrstavanje mogla ekstrapolirati u velikoj mjeri, dopuštajući podjelu smeća na sve različite vrste materijala (drvo, plastika, metal, organski …).
Budući da je glavna svrha razlikovati metalne ili nemetalne, kanta za razvrstavanje bit će opremljena induktivnim senzorima, ali i ultrazvučnim senzorima kako bi se otkrilo ima li nešto u kanti. Štoviše, kanti će trebati linearno kretanje za premještanje smeća u dvije kutije, pa je odabran ia koračni motor.
U sljedećim odjeljcima ovaj će se projekt objasniti korak po korak.
Korak 1: Kako to radi
Kanta za razvrstavanje dizajnirana je kako bi korisniku učinila posao relativno lakim: smeće se mora unijeti kroz rupu postavljenu na gornjoj ploči, pritisnuti žuti gumb i proces počinje, završavajući smećem u jedno primatelja. No, pitanje je sada … kako taj proces funkcionira interno?
Nakon što je proces započeo, zelena LED lampica svijetli. Zatim ultrazvučni senzori, pričvršćeni na gornju ploču kroz nosač, započinju svoj rad kako bi utvrdili postoji li objekt unutar kutije ili ne.
Ako unutar kutije nema predmeta, crvena LED lampica se uključuje, a zelena isključuje. Naprotiv, ako postoji objekt, aktivirat će se induktivni senzori kako bi se otkrilo je li predmet metalni ili nemetalni. Nakon što se utvrdi vrsta materijala, uključit će se crvena i žuta LED dioda, a kutija će se pomaknuti prema jednom ili suprotnom smjeru, ovisno o vrsti materijala, pogonjenom koračnim motorom.
Kad okvir stigne do kraja poteza i objekt je pao u ispravnog primatelja, okvir će se vratiti u početni položaj. Konačno, s kutijom u početnom položaju, žuta LED dioda će se isključiti. Sortirač će biti spreman za ponovni početak s istim postupkom. Ovaj proces opisan u posljednjim odlomcima također je prikazan na slici grafikona tijeka rada u prilogu u Koraku 6: Programiranje.
2. korak: Opis materijala (BOM)
Mehanički dijelovi:
-
Kupljeni dijelovi za donju konstrukciju
- Metalna struktura [Veza]
- Siva kutija [Veza]
-
3D pisač
PLA za sve tiskane dijelove (mogu se koristiti i drugi materijali, poput ABS -a)
-
Stroj za lasersko rezanje
- MDF 3 mm
- Pleksiglas 4 mm
- Set linearnih ležajeva [veza]
- Linearni ležaj [veza]
- Vratilo [Veza]
- Držač vratila (x2) [Veza]
Elektronički dijelovi:
-
Motor
Linearni koračni motor Nema 17 [Veza]
- Baterija
12 v baterija [veza]
-
Senzori
- 2 Ultrazvučni senzor HC-SR04 [Veza]
- 2 induktivna senzora LJ30A3-15 [Veza]
-
Mikrokontroler
1 arduino UNO ploča
-
Dodatne komponente
- Upravljački program DRV8825
- 3 LED diode: crvena, zelena i narančasta
- 1 gumb
- Neke žice za preskakanje, žice i ploče za lemljenje
- Oglasna ploča
- USB kabel (Arduino-PC veza)
- Kondenzator: 100uF
Korak 3: Strojarski dizajn
Na prethodnim slikama prikazani su svi dijelovi sklopa.
Za mehaničko projektiranje, SolidWorks je korišten kao CAD program. Različiti dijelovi sklopa dizajnirani su uzimajući u obzir način proizvodnje koji će se proizvoditi.
Laserski izrezani dijelovi:
-
MDF 3 mm
- Stupovi
- Gornja ploča
- Podrška ultrazvučnim senzorima
- Podrška za induktivne senzore
- Kutija za smeće
- Podrška za baterije
- Breadboard i podrška za Arduino
-
Pleksiglas 4 mm
Platforma
3D ispisani dijelovi:
- Baza stupova
- Element prijenosa linearnog kretanja iz koračnog motora
- Nosači koračnog motora i ležajeva
- Dijelovi za pričvršćivanje zidova na kutiju za smeće
Za proizvodnju svakog od ovih dijelova,. STEP datoteke trebaju se uvesti u ispravan format, ovisno o stroju koji će se koristiti u tu svrhu. U ovom slučaju,.dxf datoteke su korištene za stroj za lasersko rezanje, a.gcode datoteke za 3D pisač (Ultimaker 2).
Mehanički sklop ovog projekta može se pronaći u. STEP datoteci priloženoj u ovom odjeljku.
Korak 4: Elektronika (izbor komponenti)
U ovom odjeljku bit će napravljen kratak opis korištenih elektroničkih komponenti i objašnjenje izbora komponenti.
Arduino UNO ploča (kao mikrokontroler):
Hardver i softver otvorenog koda. Jeftino, lako dostupno, lako kodiranje. Ova je ploča kompatibilna sa svim komponentama koje smo koristili i lako ćete pronaći više vodiča i foruma koji su vrlo korisni za učenje i rješavanje problema.
Motor (Linearni koračni motor Nema 17):
Je tip koračnog motora koji dijeli potpunu rotaciju u određenom broju koraka. Kao posljedica toga, kontrolira se davanjem određenog broja koraka. Robustan je i precizan i ne trebaju nikakvi senzori za kontrolu njegovog stvarnog položaja. Misija motora je kontrolirati kretanje kutije koja sadrži bačeni predmet i ispustiti ga u desnu košaru.
Za odabir modela napravili ste neke izračune najvećeg potrebnog zakretnog momenta dodajući sigurnosni faktor. Što se tiče rezultata, kupili smo model koji velikim dijelom pokriva izračunatu vrijednost.
DRV8825 Upravljački program:
Ova ploča služi za upravljanje bipolarnim koračnim motorom. Ima podesivu kontrolu struje koja vam omogućuje podešavanje maksimalnog izlaza struje s potenciometrom, kao i šest različitih razlučivosti koraka: puni korak, pola koraka, 1/4 koraka, 1/8 koraka, 1/16- korak i 1/32 koraka (konačno smo koristili potpuni korak jer nismo našli potrebu ići na mikrokorake, ali se i dalje može koristiti za poboljšanje kvalitete pokreta).
Ultrazvučni senzori:
To su vrsta akustičkih senzora koji pretvaraju električni signal u ultrazvuk i obrnuto. Koristili su odjek odziva zvučnog signala koji se prvo emitirao za izračunavanje udaljenosti do objekta. Koristili smo ih za otkrivanje postoji li objekt u kutiji ili ne. Jednostavni su za uporabu i pružaju točne mjere.
Iako je izlaz ovog senzora vrijednost (udaljenost), utvrđivanjem praga za utvrđivanje je li objekt prisutan ili ne, pretvaramo
Induktivni senzori:
Na temelju Faradayevog zakona, spada u kategoriju beskontaktnih elektroničkih senzora blizine. Postavili smo ih na dno pokretne kutije, ispod platforme od pleksiglasa koja podržava objekt. Njihov je cilj razlikovati metalne i nemetalne predmete koji daju digitalni izlaz (0/1).
LED diode (zelena, žuta, crvena):
Njihova misija je komunicirati s korisnikom:
-Uključena zelena LED dioda: robot čeka objekt.
-Crvena LED lampica svijetli: stroj radi, ne možete baciti bilo koji predmet.
-Žuta LED svijetli: otkriven je objekt.
12V baterija ili 12V izvor napajanja + 5V USB napajanje:
Za napajanje senzora i koračnog motora potreban je izvor napona. Za napajanje Arduina potreban je izvor napajanja od 5 V. To se može učiniti pomoću baterije od 12 V, ali najbolje je imati zaseban izvor napajanja od 5 V za Arduino (kao što je USB kabel i telefonski adapter spojen na izvor napajanja ili na računalo).
Problemi koje smo pronašli:
-
Detekcijom induktivnog senzora nismo dobili željenu točnost jer se ponekad ne opaža metalni predmet koji je loše postavljen. To je zbog 2 ograničenja:
- Područje prekriveno senzorima unutar četvrtaste platforme predstavlja manje od 50% (tako da se mali objekt ne može otkriti). Za njegovo rješavanje preporučujemo korištenje 3 ili 4 induktivna senzora kako biste osigurali da je više od 70% površine pokriveno.
- Udaljenost dokazivanja senzora ograničena je na 15 mm pa smo se našli prisiljeni koristiti platformu od pleksiglasa. Ovo također može biti još jedno ograničenje za otkrivanje objekata čudnog oblika.
- Ultrazvučno otkrivanje: opet, predmeti oblikovani na složen način stvaraju probleme jer se signal koji emitiraju senzori loše reflektira i vraća se senzoru kasnije nego što bi trebao.
- Baterija: imamo nekih problema s kontroliranjem struje koju isporučuje baterija i kako bismo je riješili, napokon smo upotrijebili izvor napajanja. Međutim, mogu se izvesti i druga rješenja poput upotrebe diode.
Korak 5: Elektronika (veze)
Ovaj odjeljak prikazuje ožičenje različitih komponenti stavljenih zajedno. Također pokazuje na koji je pin na Arduinu spojena svaka komponenta.
Korak 6: Programiranje
Ovaj odjeljak objašnjava logiku programiranja koja stoji iza stroja za sortiranje kanti.
Program je podijeljen u 4 koraka, a to su:
- Inicijalizirati sustav
- Provjerite prisutnost objekata
- Provjerite vrstu prisutnog objekta
- Premjesti kutiju
Detaljan opis svakog koraka potražite u nastavku:
Korak 1 Pokrenite sustav
LED ploča (3) - postavljena Kalibracijska LED (crvena) HIGH, LED spremna (zelena) LOW, Objekt prisutan (žuta) LOW
Provjerite je li koračni motor u početnom položaju
-
Pokrenite test ultrazvučnog senzora za mjerenje udaljenosti od strane do stijenke kutije
- Početni položaj == 0 >> Ažurirajte vrijednosti Ready LED HIGH i Calibrating LED LOW -> korak 2
-
Početna pozicija! = 0 >> digitalna vrijednost očitanja ultrazvučnih senzora i na temelju vrijednosti senzora:
- Ažuriranje vrijednosti LED -a u pokretu HIGH.
- Pokrenite okvir za pomicanje dok vrijednost oba ultrazvučna senzora ne bude <vrijednost praga.
Ažuriranje vrijednosti početnog položaja = 1 >> Vrijednost ažuriranja LED spremno HIGH i motor se kreće LOW i kalibrira LOW >> korak 2
Korak 2
Provjerite prisutnost objekata
Pokrenite ultrazvučno otkrivanje objekata
- Objekt je prisutan == 1 >> Ažuriraj vrijednost prisutnog objekta LED HIGH >> Korak 3
- Objekt je prisutan == 0 >> Ne poduzimajte ništa
Korak 3
Provjerite vrstu prisutnog objekta
Pokrenite otkrivanje induktivnog senzora
- inductiveState = 1 >> Korak 4
- inductiveState = 0 >> Korak 4
Korak 4
Premjesti kutiju
Pokrenite rad motora
-
induktivnadržava == 1
Ažuriranje LED -a u pokretu motora HIGH >> Ostavite motor da se pomakne ulijevo, (ažurirajte početni položaj = 0) odgodite i pomaknite se natrag udesno >> Korak 1
-
induktivnadržava == 0
Ažuriranje LED -a u pokretu motora HIGH >> Pomaknite motor udesno (ažurirajte početni položaj = 0), odgodite i pomaknite se natrag ulijevo >> Korak 1
Funkcije
Kao što se može vidjeti iz programske logike, program radi izvršavajući funkcije s određenim ciljem. Na primjer, prvi korak je inicijalizacija sustava koji sadrži funkciju "Provjerite je li koračni motor u početnom položaju". Drugi korak zatim provjerava prisutnost objekta koji je sam po sebi druga funkcija (funkcija "Ultrazvučno otkrivanje objekata"). I tako dalje.
Nakon 4. koraka, program je u potpunosti izveden i vratit će se na 1. korak prije ponovnog izvođenja.
Dolje su definirane funkcije koje se koriste u glavnom tijelu.
Oni su:
- inductiveTest ()
- moveBox (inductiveState)
- ultrasonicObjectDetection ()
// Provjerite je li predmet metalni ili nije
bool inductiveTest () {if (digitalRead (inductiveSwitchRight) == 1 || digitalRead (inductiveSwitchLeft == 0)) {return true; else {return false; }} void moveBox (bool inductiveState) {// Okvir ide lijevo kada se otkrije metal, a inductiveState = true if (inductiveState == 0) {stepper.moveTo (koraci); // slučajni položaj do kraja za testiranje stepper.runToPosition (); kašnjenje (1000); stepper.moveTo (0); stepper.runToPosition (); kašnjenje (1000); } else if (inductiveState == 1) {stepper.moveTo (-steps); // slučajni položaj do kraja za testiranje stepper.runToPosition (); kašnjenje (1000); stepper.moveTo (0); // slučajni položaj do kraja za testiranje stepper.runToPosition (); kašnjenje (1000); }} boolean ultrasonicObjectDetection () {long duration1, distance1, durationTemp, distanceTemp, averageDistance1, averageDistanceTemp, averageDistanceOlympian1; // Definiraj broj mjerenja za dugo udaljenostMax = 0; velika udaljenostMin = 4000; long distanceTotal = 0; for (int i = 0; i distanceMax) {distanceMax = distanceTemp; } if (distanceTemp <distanceMin) {distanceMin = distanceTemp; } distanceTotal+= distanceTemp; } Serial.print ("Sensor1 maxDistance"); Serijski.ispis (distanceMax); Serial.println ("mm"); Serial.print ("Senzor1 minDistance"); Serial.print (distanceMin); Serial.println ("mm"); // Uzmi prosječnu udaljenost od očitanja averageDistance1 = distanceTotal/10; Serial.print ("Sensor1 averageDistance1"); Serial.print (averageDistance1); Serial.println ("mm"); // Uklanjanje najvećih i najnižih vrijednosti mjerenja kako bi se izbjegla pogrešna očitanja averageDistanceTemp = distanceTotal - (distanceMax+distanceMin); averageDistanceOlympian1 = averageDistanceTemp/8; Serial.print ("Sensor1 averageDistanceOlympian1"); Serial.print (averageDistanceOlympian1); Serial.println ("mm");
// Vraćanje privremenih vrijednosti
distanceTotal = 0; udaljenostMax = 0; udaljenostMin = 4000; dugo trajanje2, udaljenost2, prosječna udaljenost2, prosječna udaljenostolimpijca2; // Definiraj broj mjerenja za (int i = 0; i distanceMax) {distanceMax = distanceTemp; } if (distanceTemp <distanceMin) {distanceMin = distanceTemp; } distanceTotal+= distanceTemp; } Serial.print ("Sensor2 maxDistance"); Serijski.ispis (distanceMax); Serial.println ("mm"); Serial.print ("Sensor2 minDistance"); Serial.print (distanceMin); Serial.println ("mm"); // Uzmi prosječnu udaljenost od očitanja averageDistance2 = distanceTotal/10; Serial.print ("Sensor2 averageDistance2"); Serial.print (averageDistance2); Serial.println ("mm"); // Uklanjanje najvećih i najnižih vrijednosti mjerenja kako bi se izbjegla pogrešna očitanja averageDistanceTemp = distanceTotal - (distanceMax+distanceMin); averageDistanceOlympian2 = averageDistanceTemp/8; Serial.print ("Sensor2 averageDistanceOlympian2"); Serial.print (averageDistanceOlympian2); Serial.println ("mm"); // Vraćanje temp. Vrijednosti distanceTotal = 0; udaljenostMax = 0; udaljenostMin = 4000; if (averageDistanceOlympian1 + averageDistanceOlympian2 <emptyBoxDistance) {return true; } else {return false; }}
Glavno tijelo
Glavno tijelo sadrži istu logiku objašnjenu na vrhu ovog odjeljka, ali napisanu u kodu. Datoteka je dostupna za preuzimanje u nastavku.
Upozorenje
Provedeni su mnogi testovi za pronalaženje konstanti: emptyBoxDistance, koraci i maksimalna brzina te ubrzanje u postavljanju.
Korak 7: Moguća poboljšanja
- Potrebne su nam povratne informacije o položaju kutije kako bismo osigurali da je uvijek na pravim pozicijama za odabir objekta na početku. Dostupne su različite opcije za rješavanje problema, ali jednostavna bi mogla biti kopiranje sustava koji nalazimo u 3D pisačima pomoću prekidača na jednom kraju puta kutije.
-Zbog problema koje smo pronašli s ultrazvučnim otkrivanjem, možemo potražiti neke alternative za tu funkciju: KY-008 Laser i laserski detektor (slika), kapacitivni senzori.
Korak 8: Ograničavajući čimbenici
Ovaj projekt funkcionira kako je opisano u uputama, no potrebno je obratiti posebnu pažnju tijekom sljedećih koraka:
Kalibracija ultrazvučnih senzora
Kut pod kojim su ultrazvučni senzori postavljeni u odnosu na objekt koji moraju otkriti od presudne je važnosti za ispravno funkcioniranje prototipa. Za ovaj je projekt odabran kut od 12,5 ° u odnosu na normalu za orijentaciju ultrazvučnih senzora, no najbolji kut treba odrediti eksperimentalno snimanjem očitanja udaljenosti pomoću različitih objekata.
Izvor napajanja
Potrebna snaga za pogon koračnog motora DRV8825 je 12V i između 0,2 i 1 Amp. Arduino se također može napajati s maksimalnih 12V i 0.2 Amp pomoću priključka na Arduinu. Međutim, morate biti posebno oprezni ako koristite isti izvor napajanja i za Arduino i za upravljački program koračnog motora. Ako se napaja iz obične utičnice za napajanje pomoću, na primjer, napajanja AC/DC adaptera od 12V/2A, u krugu bi trebao biti regulator napona i diode prije nego što se napajanje uključi u arduino i upravljački program koračnog motora.
Pozivanje kutije
Iako ovaj projekt koristi koračni motor koji se u normalnim uvjetima s velikom točnošću vraća u početni položaj, dobra je praksa imati mehanizam za navođenje u slučaju pogreške. Ovakav projekt nema mehanizam za navođenje, ali ga je vrlo jednostavno implementirati. U tu svrhu treba dodati mehanički prekidač na početnom položaju kutije tako da kad kutija udari u prekidač, zna da je u svom početnom položaju.
Upravljač koraka DRV8825 Ugađanje
Steper vozaču je potrebno podešavanje za rad s koračnim motorom. To se radi eksperimentalno okretanjem potenciometra (vijka) na čipu DRV8825 tako da se odgovarajućoj količini struje napaja motor. Dakle, lagano okrećite vijak potenciometra dok motor ne djeluje mršavo.
Korak 9: Krediti
Ovaj je projekt napravljen u sklopu tečaja mehatronike tijekom akademske godine 2018. -2019. Za magistra bruce na Université Libre de Bruxelles (ULB) - Vrije Universiteit Brussel (VUB).
Autori su:
Maxime Decleire
Lidia Gomez
Markus Poder
Adriana Puentes
Narjisse Snoussi
Posebna hvala našem nadzorniku Albertu de Beiru koji nam je pomogao i tijekom cijelog projekta.
Preporučeni:
Otpad vode protiv vode: 4 koraka
Otpadnik vode: U našoj kući navodno je trošenje vode koje ostavlja slavinu da radi duže vrijeme. Ovaj otpadnik protiv vode dizajniran je da nježno podsjeti spomenutog pojedinca koji troši vodu
Djed Božićnjakov šešir za razvrstavanje: 10 koraka (sa slikama)
Santa's Sorting Hat: Blisko smo surađivali s Djedovom radionicom kako bismo vam predstavili ovu inovaciju u nestašnoj ili lijepoj komunikaciji s popisima. Sada možete provjeriti u stvarnom vremenu jesu li vaša dobra i loša djela utjecala na vaš položaj na Djedinovoj listi Nevaljalih ili Lijepih! Zabavan projekt
Stroj za neželjeni otpad s pogonom na Raspberry Pi: 15 koraka (sa slikama)
Mašina za neželjeni bubanj s pogonom na Raspberry Pi: Ova uputa pokazat će vam kako napraviti robotski stroj s bubnjem na pogon Raspberry Pi. To je doista zabavan, kreativan, interaktivan projekt. Pokazat ću vam kako postići unutarnje funkcioniranje, no stvarni bubnjevi bit će na vama, dajući vam
PhantomX Pincher razvrstavanje boja: 4 koraka
PhantomX Pincher Sortiranje boja: UvodOvu instrukciju mogu izraditi 2 studenta Automation Engineering -a, iz UCN -a (Danska). Instrukcija ilustrira kako se može koristiti PhantomX Pncher za razvrstavanje kutija po bojama pomoću CMUcam5 Pixy -a i njihovo slaganje. Ova aplikacija
Privjesak za e-otpad: 3 koraka (sa slikama)
Privjesak za e-otpad: Pozdrav, ova instrukcija ima namjeru pružiti bolji uvid u to kako ponovno upotrijebiti vaše smeće! Matične ploče koje sam uzeo za druge upute (ovo: zvučnik za e-otpad) Međutim, koraci su prilično isti. Razlika je u tome što da su privesci mali