Obsah:

Triediaci kôš - zistite a zoraďte svoj odpad: 9 krokov
Triediaci kôš - zistite a zoraďte svoj odpad: 9 krokov

Video: Triediaci kôš - zistite a zoraďte svoj odpad: 9 krokov

Video: Triediaci kôš - zistite a zoraďte svoj odpad: 9 krokov
Video: HARRY POTTER STUDIO TOUR LONDON | COMPLETE WALK THROUGH 2024, Júl
Anonim
Image
Image
Ako to funguje
Ako to funguje

Videli ste niekedy niekoho, kto nerecykluje alebo to robí zle?

Túžili ste niekedy po stroji, ktorý by za vás recykloval?

Pokračujte v čítaní nášho projektu, nebudete ľutovať!

Sorter bin je projekt s jasnou motiváciou pomôcť recyklácii vo svete. Ako je známe, nedostatok recyklácie spôsobuje na našej planéte vážne problémy, medzi inými napríklad miznutie surovín a morskú kontamináciu.

Z tohto dôvodu sa náš tím rozhodol vyvinúť projekt v malom meradle: triediaci kôš, ktorý je schopný rozdeliť odpadky na rôznych príjemcov v závislosti od toho, či je materiál kovový alebo nekovový. V budúcich verziách by tento triediaci kôš mohol byť extrapolovaný vo veľkom rozsahu, čo by umožnilo rozdeliť odpadky na všetky rôzne druhy materiálu (drevo, plast, kov, organické …).

Pretože hlavným účelom je rozlišovať medzi kovovými a nekovovými, triediaci kôš bude vybavený indukčnými snímačmi, ale aj ultrazvukovými snímačmi, aby zistil, či sa v zásobníku niečo nachádza. Okrem toho bude kôš potrebovať lineárny pohyb na presun odpadu do dvoch škatúľ, preto je zvolený okrem iného krokový motor.

V ďalších častiach bude tento projekt vysvetlený krok za krokom.

Krok 1: Ako to funguje

Ako to funguje
Ako to funguje
Ako to funguje
Ako to funguje

Triediaci kôš bol navrhnutý tak, aby bola práca relatívne jednoduchá pre užívateľa: odpadky sa musia zaviesť cez otvor, ktorý je umiestnený v hornej doske, žlté tlačidlo treba stlačiť a proces sa začína, pričom odpad končí v jednom. príjemcov. Otázkou však teraz je … ako tento proces funguje interne?

Hneď ako sa proces spustí, rozsvieti sa zelená LED dióda. Potom ultrazvukové senzory pripevnené k hornej doske cez podperu začnú svoju prácu, aby zistili, či sa vo vnútri škatule nachádza predmet alebo nie.

Ak vo vnútri škatule nie je žiadny predmet, rozsvieti sa červená LED a zelená zhasne. Naopak, ak je tam predmet, aktivujú sa indukčné snímače, aby zistili, či je predmet kovový alebo nekovový. Akonáhle je určený druh materiálu, rozsvietia sa červená a žltá LED dióda a box sa bude pohybovať v jednom alebo v opačnom smere v závislosti od typu materiálu poháňaného krokovým motorom.

Keď schránka dorazí na koniec ťahu a predmet spadne na správneho príjemcu, schránka sa vráti do pôvodnej polohy. Nakoniec, keď je box v počiatočnej polohe, žltá dióda LED zhasne. Triedič bude pripravený začať znova rovnakým postupom. Tento proces popísaný v posledných odsekoch je zobrazený aj na obrázku diagramu pracovného postupu priloženého v kroku 6: Programovanie.

Krok 2: Kusovník (kusovník)

Mechanické časti:

  • Zakúpené diely pre spodnú konštrukciu

    • Kovová konštrukcia [odkaz]
    • Sivé pole [Odkaz]
  • 3D tlačiareň

    PLA pre všetky tlačené diely (môžu byť použité aj iné materiály, napríklad ABS)

  • Laserový rezací stroj

    • MDF 3 mm
    • Plexisklo 4 mm
  • Sada lineárnych ložísk [Link]
  • Lineárne ložisko [odkaz]
  • Hriadeľ [odkaz]
  • Držiak hriadeľa (x2) [odkaz]

Elektronické súčiastky:

  • Motor

    Lineárny krokový motor Nema 17 [Link]

  • Batéria

    12 v batéria [odkaz]

  • Senzory

    • 2 Ultrazvukový senzor HC-SR04 [Link]
    • 2 indukčné snímače LJ30A3-15 [odkaz]
  • Mikrokontrolér

    1 doska arduino UNO

  • Dodatočné komponenty

    • Ovládač DRV8825
    • 3 LED diódy: červená, zelená a oranžová
    • 1 tlačidlo
    • Niektoré skákacie drôty, drôty a spájkovacie platne
    • Breadboard
    • USB kábel (pripojenie Arduino-PC)
    • Kondenzátor: 100uF

Krok 3: Mechanická konštrukcia

Image
Image
Mechanický dizajn
Mechanický dizajn
Mechanický dizajn
Mechanický dizajn

Na predchádzajúcich obrázkoch sú zobrazené všetky časti zostavy.

Na mechanické navrhovanie bol ako CAD program použitý SolidWorks. Rôzne časti zostavy boli navrhnuté s prihliadnutím na výrobný spôsob, ktorý sa bude vyrábať.

Laserom rezané diely:

  • MDF 3 mm

    • Piliere
    • Horná doska
    • Podpora ultrazvukových senzorov
    • Podpora indukčných senzorov
    • Smetný kôš
    • Podpora batérie
    • Podpora Breadboard a Arduino
  • Plexisklo 4 mm

    Plošina

3D tlačené diely:

  • Základňa stĺpikov
  • Prvek lineárneho prenosu pohybu z krokového motora
  • Krokový motor a podpery ložísk
  • Časti na upevnenie stien na odpadkový kôš

Na výrobu každej z týchto častí by mali byť súbory. STEP importované v správnom formáte v závislosti od zariadenia, ktoré sa na tento účel použije. V tomto prípade boli na laserom vyrezávaný stroj použité súbory.dxf a na 3D tlačiareň súbory.gcode (Ultimaker 2).

Mechanickú zostavu tohto projektu nájdete v súbore. STEP priloženom v tejto sekcii.

Krok 4: Elektronika (Možnosti komponentov)

V tejto časti bude vykonaný krátky popis použitých elektronických komponentov a vysvetlenie výberu komponentov.

Doska Arduino UNO (ako mikrokontrolér):

Hardvér a softvér s otvoreným zdrojovým kódom. Lacné, ľahko dostupné, ľahko kódovateľné. Táto doska je kompatibilná so všetkými komponentmi, ktoré sme použili, a pohotovo nájdete niekoľko návodov a fór, ktoré sú veľmi užitočné pri učení sa a riešení problémov.

Motor (lineárny krokový motor Nema 17):

Je to typ krokového motora, ktorý rozdeľuje úplné otáčanie v určitom počte krokov. V dôsledku toho je ovládaný vykonaním určitého počtu krokov. Je robustný a presný a na ovládanie svojej aktuálnej polohy nepotrebuje žiadne senzory. Poslaním motora je ovládať pohyb škatule, ktorá obsahuje odhodený predmet, a hodiť ju do pravého koša.

Pri výbere modelu ste urobili niekoľko výpočtov maximálneho potrebného krútiaceho momentu s pridaním bezpečnostného faktora. Pokiaľ ide o výsledky, kúpili sme model, ktorý do značnej miery pokrýva vypočítanú hodnotu.

Ovládač DRV8825:

Táto doska sa používa na ovládanie bipolárneho krokového motora. Má nastaviteľné ovládanie prúdu, ktoré vám umožňuje nastaviť maximálny prúdový výkon pomocou potenciometra, ako aj šiestich rôznych rozlíšení krokov: plný krok, polovičný krok, 1/4 kroku, 1/8 kroku, 1/16- krok a 1/32 kroku (nakoniec sme použili plný krok, pretože sme nenašli žiadnu potrebu prejsť na mikrokrok, ale stále ho možno použiť na zlepšenie kvality pohybu).

Ultrazvukové senzory:

Jedná sa o typ akustických senzorov, ktoré prevádzajú elektrický signál na ultrazvuk a naopak. Na výpočet vzdialenosti k objektu použili odozvu akustického signálu, ktorý bol najskôr vydaný. Použili sme ich na zistenie, či sa v krabici nachádza predmet alebo nie. Ľahko sa používajú a poskytujú presné meranie.

Aj keď je výstupom tohto senzora hodnota (vzdialenosť), stanovením prahu na určenie, či je objekt prítomný alebo nie, transformujeme

Indukčné snímače:

Na základe Faradayovho zákona patrí do kategórie bezkontaktných elektronických senzorov priblíženia. Umiestnili sme ich na dno pohyblivého boxu, pod platformu z plexiskla, ktorá nesie predmet. Ich cieľom je rozlíšiť kovový a nekovový predmet s digitálnym výstupom (0/1).

LED diódy (zelené, žlté, červené):

Ich poslaním je komunikovať s používateľom:

-Svieti zelená LED: robot čaká na predmet.

-Červená dióda LED svieti: stroj funguje, nemôžete hádzať žiadny predmet.

-Žltá dióda LED svieti: je detekovaný objekt.

12 V batéria alebo 12 V zdroj + 5 V USB napájanie:

Na napájanie senzorov a krokového motora je potrebný zdroj napätia. Na napájanie Arduina je potrebný 5V zdroj energie. To sa dá dosiahnuť pomocou 12 V batérie, ale pre Arduino je najlepšie mať samostatný zdroj napájania 5 V (napríklad pomocou kábla USB a telefónneho adaptéra pripojeného k zdroju napájania alebo k počítaču).

Problémy, ktoré sme zistili:

  • Indukčnou detekciou senzora sme nedosiahli požadovanú presnosť, pretože niekedy nie je vnímaný zlý polohu kovového predmetu. Je to kvôli 2 obmedzeniam:

    • Oblasť pokrytá senzormi v rámci štvorcovej platformy predstavuje menej ako 50% (takže malý predmet nemožno detekovať). Na vyriešenie tohto problému odporúčame použiť 3 alebo 4 indukčné snímače, aby ste zaistili pokrytie viac ako 70% plochy.
    • Detekčná vzdialenosť senzorov je obmedzená na 15 mm, takže sme sa ocitli nútení použiť jemnú platformu z plexiskla. To môže byť tiež ďalšie obmedzenie detekcie predmetov podivného tvaru.
  • Ultrazvuková detekcia: Zložité objekty tvarované opäť spôsobujú problémy, pretože signál vysielaný senzormi sa zle odráža a vracia sa k senzoru neskôr, ako by mal.
  • Batéria: máme nejaké problémy s ovládaním prúdu dodávaného batériou a na vyriešenie sme nakoniec použili zdroj energie. Je však možné vykonať aj iné riešenia, ako je použitie diódy.

Krok 5: Elektronika (pripojenia)

Elektronika (pripojenia)
Elektronika (pripojenia)
Elektronika (pripojenia)
Elektronika (pripojenia)

Táto časť ukazuje zapojenie rôznych komponentov dohromady. Tiež ukazuje, ku ktorému kolíku na Arduine je každý komponent pripojený.

Krok 6: Programovanie

Programovanie
Programovanie

Táto časť vysvetlí programovaciu logiku za strojom na triedenie zásobníkov.

Program je rozdelený do 4 krokov, ktoré sú nasledujúce:

  1. Inicializujte systém
  2. Skontrolujte prítomnosť predmetov
  3. Skontrolujte typ prítomného objektu
  4. Presunúť schránku

Podrobný popis každého kroku nájdete nižšie:

Krok 1 Inicializujte systém

LED panel (3) - sada Kalibračná LED (červená) VYSOKÁ, LED dióda Ready (zelená) NÍZKA, Objekt prítomný (žltý) NÍZKY

Skontrolujte, či je krokový motor v počiatočnej polohe

  • Spustite test ultrazvukového senzora a zmerajte vzdialenosť od steny k stene skrinky

    • Počiatočná poloha == 0 >> Aktualizujte hodnoty Ready LED HIGH a kalibračnej LED LOW -> krok 2
    • Počiatočná poloha! = 0 >> digitálna načítaná hodnota ultrazvukových senzorov a založená na hodnotách senzora:

      • Aktualizujte hodnotu LED pohybujúceho sa motora HIGH.
      • Spustite pohyb, kým hodnota oboch ultrazvukových senzorov nie je <prahová hodnota.

Aktualizovať hodnotu počiatočnej polohy = 1 >> Aktualizovať hodnotu LED Ready HIGH a motor sa pohybuje LOW a kalibrácia LOW >> krok 2

Krok 2

Skontrolujte prítomnosť predmetov

Spustite ultrazvukovú detekciu objektov

  • Objekt prítomný == 1 >> Aktualizovaná hodnota LED indikátora prítomnosti objektu VYSOKÝ >> Krok 3
  • Objekt je prítomný == 0 >> Nerobte nič

Krok 3

Skontrolujte typ prítomného objektu

Spustite indukčnú detekciu senzora

  • inductiveState = 1 >> Krok 4
  • inductiveState = 0 >> Krok 4

Krok 4

Presunúť schránku

Spustite prevádzku motora

  • induktívny stav == 1

    Aktualizujte LED diódy v pohybe HIGH >> Nechajte motor posunúť sa doľava, (aktualizujte počiatočnú polohu = 0) oneskorte a vráťte sa doprava >> Krok 1

  • inductiveState == 0

    Aktualizujte pohyblivú LED diódu VYSOKO >> Nechajte motor pohybovať sa vpravo (aktualizácia počiatočnej polohy = 0), zdržte a vráťte sa doľava >> Krok 1

Funkcie

Ako je zrejmé z programovacej logiky, program funguje tak, že vykonáva funkcie s konkrétnym cieľom. Prvým krokom je napríklad inicializácia systému, ktorý obsahuje funkciu „Skontrolujte, či je krokový motor v počiatočnej polohe“. Druhý krok potom skontroluje prítomnosť objektu, ktorý je sám o sebe ďalšou funkciou (funkcia „Ultrazvuková detekcia objektov“). A tak ďalej.

Po kroku 4 sa program úplne vykoná a pred ďalším spustením sa vráti ku kroku 1.

Funkcie používané v hlavnom tele sú definované nižšie.

Sú to:

  • inductiveTest ()
  • moveBox (inductiveState)
  • ultrasonicObjectDetection ()

// Skontrolujte, či je predmet kovový alebo nie

bool inductiveTest () {if (digitalRead (inductiveSwitchRight) == 1 || digitalRead (inductiveSwitchLeft == 0)) {return true; else {return false; }} void moveBox (bool inductiveState) {// Políčko prejde doľava, keď je detekovaný kov a inductiveState = true if (inductiveState == 0) {stepper.moveTo (kroky); // náhodná poloha do konca pre testovanie stepper.runToPosition (); oneskorenie (1000); stepper.moveTo (0); stepper.runToPosition (); oneskorenie (1000); } else if (inductiveState == 1) {stepper.moveTo (-kroky); // náhodná poloha do konca pre testovanie stepper.runToPosition (); oneskorenie (1000); stepper.moveTo (0); // náhodná poloha do konca pre testovanie stepper.runToPosition (); oneskorenie (1000); }} boolean ultrasonicObjectDetection () {long duration1, distance1, durationTemp, distanceTemp, averageDistance1, averageDistanceTemp, averageDistanceOlympian1; // Definujte počet meraní na dlhé vzdialenostiMax = 0; veľká vzdialenosťMin = 4000; veľká vzdialenosťCelkom = 0; pre (int i = 0; i distanceMax) {distanceMax = distanceTemp; } if (distanceTemp <distanceMin) {distanceMin = distanceTemp; } distanceTotal+= distanceTemp; } Serial.print ("MaxDistance Sensor1 max"); Serial.print (vzdialenosťMax); Serial.println ("mm"); Serial.print ("Snímač1 min. Vzdialenosť"); Serial.print (distanceMin); Serial.println ("mm"); // Odčítajte priemernú vzdialenosť z nameraných hodnôt averageDistance1 = distanceTotal/10; Serial.print ("Sensor1 averageDistance1"); Serial.print (averageDistance1); Serial.println ("mm"); // Odstráňte najvyššie a najnižšie hodnoty meraní, aby ste sa vyhli chybným hodnotám averageDistanceTemp = distanceTotal - (distanceMax+distanceMin); averageDistanceOlympian1 = averageDistanceTemp/8; Serial.print ("Sensor1 averageDistanceOlympian1"); Serial.print (averageDistanceOlympian1); Serial.println ("mm");

// Resetovanie tepl. Hodnôt

vzdialenosťCelkom = 0; vzdialenosťMax = 0; vzdialenosťMin = 4000; dlhé trvanie2, vzdialenosť2, priemerná vzdialenosť2, priemerná vzdialenosťOlympijská2; // Definujte počet meraní, ktoré sa majú vykonať (int i = 0; i distanceMax) {distanceMax = distanceTemp; } if (distanceTemp <distanceMin) {distanceMin = distanceTemp; } distanceTotal+= distanceTemp; } Serial.print ("MaxDistance Sensor2 max"); Serial.print (vzdialenosťMax); Serial.println ("mm"); Serial.print ("Senzor2 min. Vzdialenosť"); Serial.print (distanceMin); Serial.println ("mm"); // Odčítajte priemernú vzdialenosť z nameraných hodnôt averageDistance2 = distanceTotal/10; Serial.print ("Sensor2 averageDistance2"); Serial.print (averageDistance2); Serial.println ("mm"); // Odstráňte najvyššie a najnižšie hodnoty meraní, aby ste sa vyhli chybným hodnotám averageDistanceTemp = distanceTotal - (distanceMax+distanceMin); averageDistanceOlympian2 = averageDistanceTemp/8; Serial.print ("Sensor2 averageDistanceOlympian2"); Serial.print (averageDistanceOlympian2); Serial.println ("mm"); // Resetovanie tepl. Hodnôt distanceTotal = 0; vzdialenosťMax = 0; vzdialenosťMin = 4000; if (averageDistanceOlympian1 + averageDistanceOlympian2 <emptyBoxDistance) {return true; } else {return false; }}

Hlavné telo

Hlavné telo obsahuje rovnakú logiku, ako je vysvetlená v hornej časti tejto časti, ale je napísaná v kóde. Súbor je k dispozícii na stiahnutie nižšie.

Pozor

Vykonalo sa mnoho testov na nájdenie konštánt: emptyBoxDistance, kroky a Maximumspeed a zrýchlenie v nastavení.

Krok 7: Možné vylepšenia

Možné vylepšenia
Možné vylepšenia

- Potrebujeme spätnú väzbu o polohe boxu, aby sme zaistili, že bude vždy na správnom mieste, aby si vybral predmet na začiatku. Na vyriešenie problému sú k dispozícii rôzne možnosti, ale jednoduchým spôsobom by bolo skopírovať systém, ktorý nachádzame v 3D tlačiarňach, pomocou prepínača na jednom konci dráhy krabice.

-Vzhľadom na problémy, ktoré sme zistili pri ultrazvukovej detekcii, môžeme hľadať niektoré alternatívy k tejto funkcii: laserový a laserový detektor KY-008 (obrázok), kapacitné snímače.

Krok 8: Limitujúce faktory

Tento projekt funguje tak, ako je popísané v pokynoch, ale pri nasledujúcich krokoch je potrebné postupovať obzvlášť opatrne:

Kalibrácia ultrazvukových senzorov

Uhol, pod ktorým sú ultrazvukové snímače umiestnené voči objektu, ktorý majú detegovať, má zásadný význam pre správnu funkciu prototypu. Pre tento projekt bol pre orientáciu ultrazvukových senzorov zvolený uhol 12,5 ° k normálu, ale najlepší uhol by mal byť určený experimentálne zaznamenaním odčítaných vzdialeností pomocou rôznych predmetov.

Zdroj energie

Požadovaný výkon pre ovládač krokového motora DRV8825 je 12V a medzi 0,2 a 1 Amp. Arduino môže byť tiež napájané maximálne 12 V a 0,2 A pomocou konektorového vstupu na Arduine. Osobitnú pozornosť však treba venovať používaniu rovnakého zdroja napájania pre ovládač Arduino aj krokový motor. Ak je napájaný z bežnej elektrickej zásuvky napríklad pomocou napájacieho adaptéra 12V/2A AC/DC, v obvode by mal byť regulátor napätia a diódy predtým, ako sa napája napájanie do ovládača arduino a krokového motora.

Domov boxu

Napriek tomu, že tento projekt používa krokový motor, ktorý sa za normálnych podmienok vracia do pôvodnej polohy s vysokou presnosťou, je dobrým zvykom mať navádzací mechanizmus v prípade chyby. Projekt taký, aký je, nemá navádzací mechanizmus, ale je celkom jednoduché ho implementovať. Za týmto účelom by mal byť pridaný mechanický spínač v počiatočnej polohe škatule tak, aby keď krabica narazí na spínač, vedel, že je vo svojej základnej polohe.

Krokový ovládač DRV8825 Tuning

Krokový ovládač vyžaduje ladenie, aby fungovalo s krokovým motorom. To sa robí experimentálne otočením potenciometra (skrutky) na čipe DRV8825 tak, aby bolo do motora dodané príslušné množstvo prúdu. Mierne otáčajte skrutkou potenciometra, kým motor nepôsobí šikmo.

Krok 9: Kredity

Tento projekt bol realizovaný ako súčasť kurzu mechatroniky počas akademického roku 2018 - 2019 pre Bruface Master na Université Libre de Bruxelles (ULB) - Vrije Universiteit Brussel (VÚB).

Autormi sú:

Maxime Decleire

Lidia Gomez

Markus Poder

Adriana Puentes

Narjisse Snoussi

Osobitné poďakovanie patrí nášmu vedúcemu Albertovi de Beirovi, ktorý nám tiež pomáhal počas celého projektu.

Odporúča: