Përmbajtje:

Kutia e Renditjes - Zbuloni dhe Renditni Plehrat tuaja: 9 Hapa
Kutia e Renditjes - Zbuloni dhe Renditni Plehrat tuaja: 9 Hapa

Video: Kutia e Renditjes - Zbuloni dhe Renditni Plehrat tuaja: 9 Hapa

Video: Kutia e Renditjes - Zbuloni dhe Renditni Plehrat tuaja: 9 Hapa
Video: Микроволновка работает но не греет 2024, Korrik
Anonim
Image
Image
Si punon
Si punon

A keni parë ndonjëherë dikë që nuk po riciklon ose po e bën atë në një mënyrë të keqe?

A keni dëshiruar ndonjëherë për një makinë që do të riciklojë për ju?

Vazhdoni të lexoni projektin tonë, nuk do të pendoheni!

Sorter bin është një projekt me një motivim të qartë për të ndihmuar riciklimin në botë. Siç dihet mirë, mungesa e riciklimit po shkakton probleme serioze në planetin tonë, si zhdukja e lëndëve të para dhe ndotja e detit, ndër të tjera.

Për atë arsye, ekipi ynë ka vendosur të zhvillojë një projekt në një shkallë të vogël: një kosh ndarës që është në gjendje të ndajë mbeturinat në marrës të ndryshëm në varësi të faktit nëse materiali është metal ose jo metal. Në versionet e ardhshme, koshi i ndarjes mund të ekstrapolohet në një shkallë të madhe, duke lejuar ndarjen e plehrave në të gjitha llojet e materialeve të ndryshme (druri, plastika, metali, organiku …).

Meqenëse qëllimi kryesor është të bëhet dallimi midis metaleve ose jometaleve, koshi i klasifikuesit do të pajiset me sensorë induktivë, por edhe me sensorë tejzanor në mënyrë që të zbulohet nëse ka diçka në kosh. Për më tepër, koshi do të ketë nevojë për një lëvizje lineare për të zhvendosur mbeturinat në dy kutitë, kështu që zgjidhet një motor stepper.

Në pjesët e ardhshme, ky projekt do të shpjegohet hap pas hapi.

Hapi 1: Si funksionon

Si punon
Si punon
Si punon
Si punon

Koshi i ndarjes është krijuar për ta bërë punën relativisht të lehtë për përdoruesin: plehrat duhet të futen përmes vrimës që vendoset në pllakën e sipërme, butoni i verdhë duhet të shtypet dhe procesi fillon, duke përfunduar me mbeturinat në një të marrësve. Por pyetja tani është … si po funksionon ai proces brenda?

Sapo të ketë filluar procesi, LED i gjelbër ndizet. Pastaj sensorët tejzanor, të bashkangjitur në pllakën e sipërme përmes një mbështetëse, fillojnë punën e tyre për të përcaktuar nëse ka një objekt brenda kutisë apo jo.

Nëse nuk ka ndonjë objekt brenda kutisë, LED i kuq ndizet dhe ai jeshil fiket. Përkundrazi, nëse ka një objekt, sensorët induktivë do të aktivizohen për të zbuluar nëse objekti është metal ose jo metal. Pasi të jetë përcaktuar lloji i materialit, LED -të e kuqe dhe të verdhë do të ndizen dhe kutia do të lëvizë drejt një drejtimi ose atij të kundërt në varësi të llojit të materialit, të shtyrë nga motori stepper.

Kur kutia të arrijë në fund të goditjes dhe objekti të bjerë në marrësin e duhur, kutia do të kthehet në pozicionin fillestar. Së fundi, me kutinë në pozicionin fillestar, LED i verdhë do të fiket. Renditësi do të jetë gati për të filluar përsëri me të njëjtën procedurë. Ky proces i përshkruar në paragrafët e fundit tregohet gjithashtu në figurën e tabelës së rrjedhës së punës të bashkangjitur në Hapin 6: Programimi.

Hapi 2: Fatura e Materialeve (BOM)

Pjesët mekanike:

  • Blerë pjesë për strukturën e poshtme

    • Struktura metalike [Link]
    • Kuti gri [Link]
  • Printer 3D

    PLA për të gjitha pjesët e shtypura (mund të përdoren edhe materiale të tjera, si ABS)

  • Makinë prerëse me lazer

    • MDF 3 mm
    • Pleksiglas 4mm
  • Seti i mbajtjes lineare [Lidhja]
  • Mbajtës linear [Link]
  • Boshti [Lidhja]
  • Mbajtës i boshtit (x2) [Lidhja]

Pjesët elektronike:

  • Motor

    Motor Stepper Linear Nema 17 [Link]

  • Bateri

    12 v Bateria [Link]

  • Sensorë

    • 2 Sensor tejzanor HC-SR04 [Link]
    • 2 sensorë induktiv LJ30A3-15 [Link]
  • Mikrokontrollues

    1 bord arduino UNO

  • Komponentë shtesë

    • DRV8825 Shofer
    • 3 LED: e kuqe, jeshile dhe portokalli
    • 1 buton
    • Disa tela, tela dhe pllaka bashkimi
    • Breadboard
    • Kabllo USB (lidhje Arduino-PC)
    • Kondensatori: 100uF

Hapi 3: Dizajni mekanik

Image
Image
Projektim Mekanik
Projektim Mekanik
Projektim Mekanik
Projektim Mekanik

Në fotografitë e mëparshme, të gjitha pjesët e montimit janë treguar.

Për dizajnin mekanik, SolidWorks është përdorur si program CAD. Pjesët e ndryshme të montimit janë projektuar duke marrë parasysh metodën e prodhimit të cilën do të prodhohen.

Pjesët e prera me lazer:

  • MDF 3 mm

    • Shtylla
    • Pllaka e sipërme
    • Sensorët tejzanor mbështesin
    • Mbështet sensorë induktivë
    • Kuti plehrash
    • Mbështetje për baterinë
    • Mbështetje për Breadboard dhe Arduino
  • Pleksiglas 4mm

    Platforma

Pjesë të printuara 3D:

  • Baza e shtyllave
  • Elementi i transmetimit të lëvizjes lineare nga motori stepper
  • Motori stepper dhe mbështetëset e kushinetave
  • Pjesët e fiksimit të mureve për kutinë e mbeturinave

Për prodhimin e secilës prej këtyre pjesëve, skedarët. STEP duhet të importohen në formatin e duhur, në varësi të makinës që do të përdoret për atë qëllim. Në këtë rast, skedarët.dxf janë përdorur për makinën me prerje me lazer dhe skedarët.gcode për printerin 3D (Ultimaker 2).

Asambleja mekanike e këtij projekti mund të gjendet në skedarin. STEP të bashkangjitur në këtë seksion.

Hapi 4: Elektronikë (Zgjedhja e Komponentit)

Në këtë pjesë, do të bëhet një përshkrim i shkurtër i përbërësve elektronikë të përdorur dhe një shpjegim i zgjedhjeve të përbërësve.

Bordi Arduino UNO (si mikrokontrollues):

Hardware dhe softuer me burim të hapur. I lirë, lehtësisht i disponueshëm, i lehtë për tu koduar. Ky tabelë është i pajtueshëm me të gjithë komponentët që kemi përdorur dhe ju lehtë gjeni mësime dhe forume të shumëfishta shumë të dobishme për të mësuar dhe zgjidhur problemet.

Motor (Motor Stepper Linear Nema 17):

Ashtë një lloj stepper motor që ndan një rrotullim të plotë në një numër të caktuar hapash. Si pasojë, kontrollohet duke dhënë një numër të caktuar hapash. Shtë i fortë dhe i saktë dhe nuk ka nevojë për sensorë për të kontrolluar pozicionin e tij aktual. Misioni i motorit është të kontrollojë lëvizjen e kutisë që përmban objektin e hedhur dhe ta hedhë atë në koshin e djathtë.

Për të zgjedhur modelin keni bërë disa llogaritje të çift rrotullues maksimal të kërkuar duke shtuar një faktor sigurie. Lidhur me rezultatet, ne blemë modelin që mbulon kryesisht vlerën e llogaritur.

DRV8825 Shoferi:

Ky bord përdoret për të kontrolluar një motor stepper bipolar. Ka një kontroll të rregullueshëm të rrymës që ju lejon të vendosni daljen maksimale të rrymës me një potenciometër, si dhe gjashtë rezolucione të ndryshme të hapave: me hap të plotë, gjysmë hap, 1/4-hap, 1/8-hap, 1/16- hapi, dhe 1/32-hapi (më në fund përdorëm hapin e plotë pasi nuk gjetëm ndonjë nevojë për të shkuar në mikrosteping, por prapë mund të përdoret për të përmirësuar cilësinë e lëvizjes).

Sensorë tejzanor:

Këto janë një lloj sensorë akustikë që konvertojnë një sinjal elektrik në ultratinguj dhe anasjelltas. Ata përdorën përgjigjen jehonë të një sinjali akustik të emetuar së pari për të llogaritur distancën në një objekt. Ne i përdorëm ato për të zbuluar nëse ka një objekt në kuti apo jo. Ato janë të lehta për t'u përdorur dhe ofrojnë një masë të saktë.

Edhe pse dalja e këtij sensori është një vlerë (distancë), duke vendosur një prag për të përcaktuar nëse një objekt është i pranishëm apo jo, ne transformojmë

Sensorë induktivë:

Bazuar në ligjin e Faraday, ai i përket kategorisë së sensorit të afërsisë elektronike pa kontakt. I vendosëm në fund të kutisë lëvizëse, nën platformën e pleksiglasit që mbështet objektin. Qëllimi i tyre është të bëjnë dallimin midis objektit metalik dhe jo metalik duke dhënë një dalje dixhitale (0/1).

LED (jeshile, e verdhë, e kuqe):

Misioni i tyre është të komunikojnë me përdoruesit:

-LED i gjelbër i ndezur: roboti është duke pritur për një objekt.

-LED i kuq i ndezur: makina punon, nuk mund të hidhni asnjë objekt.

-LED i verdhë i ndezur: një objekt është zbuluar.

Bateri 12V ose burim energjie 12V + fuqi USB 5V:

Nevojitet një burim tensioni për të fuqizuar sensorët dhe motorin stepper. Nevojitet një burim energjie 5V për të fuqizuar Arduino. Kjo mund të bëhet përmes baterisë 12V, por është mirë që të keni një burim energjie të veçantë 5V për Arduino (të tilla si me një kabllo USB dhe përshtatës telefoni të lidhur me një burim energjie ose me një kompjuter).

Çështjet që kemi gjetur:

  • Zbulimi i sensorit induktiv, ne nuk morëm saktësinë e dëshiruar pasi nganjëherë një objekt metalik i pozicionuar keq nuk perceptohet. Kjo është për shkak të 2 kufizimeve:

    • Zona e mbuluar nga sensorët brenda platformës katrore përfaqëson më pak se 50% të saj (kështu që objekti i vogël nuk mund të zbulohet). Për ta zgjidhur atë, ne rekomandojmë përdorimin e 3 ose 4 sensorëve induktivë për të siguruar që më shumë se 70% e zonës është e mbuluar.
    • Distanca e zbulimit të sensorëve është e kufizuar në 15 mm, kështu që ne u gjendëm të detyruar të përdorim një platformë të mirë pleksiglasi. Ky gjithashtu mund të jetë gjithashtu një kufizim tjetër për zbulimin e objekteve me një formë të çuditshme.
  • Zbulimi tejzanor: përsëri, objektet e formuara në mënyrë komplekse japin probleme pasi sinjali i emetuar nga sensorët reflektohet keq dhe kthehet më vonë seç duhet te sensori.
  • Bateria: ne kemi disa çështje që kontrollojnë rrymën e dhënë nga bateria dhe për ta zgjidhur atë më në fund kemi përdorur një burim energjie. Sidoqoftë, zgjidhje të tjera si përdorimi i një diodë mund të kryhen.

Hapi 5: Elektronikë (Lidhjet)

Elektronikë (Lidhjet)
Elektronikë (Lidhjet)
Elektronikë (Lidhjet)
Elektronikë (Lidhjet)

Ky seksion tregon instalimet elektrike të përbërësve të ndryshëm të vendosur së bashku. Gjithashtu tregon se me cilën pin në Arduino është lidhur çdo komponent.

Hapi 6: Programimi

Programimi
Programimi

Ky seksion do të shpjegojë logjikën e programimit pas makinës së Renditjes Bin.

Programi është i ndarë në 4 hapa, të cilët janë si më poshtë:

  1. Filloni sistemin
  2. Kontrolloni praninë e objekteve
  3. Kontrolloni llojin e objektit të pranishëm
  4. Lëviz Kutinë

Për një përshkrim të hollësishëm të secilit hap, shihni më poshtë:

Hapi 1 Filloni sistemin

Paneli LED (3) - vendosur LED Kalibrues (i kuq) LART HIGH, LED i gatshëm (jeshil) LOW, Objekti i pranishëm (i verdhë) LOW

Kontrolloni që motori stepper është në pozicionin fillestar

  • Kryeni testin e sensorit tejzanor për të matur distancën nga muri në kuti

    • Pozicioni fillestar == 0 >> Përditësoni vlerat e Ready LED HIGH dhe Calibrating LED LOW -> hapi 2
    • Pozicioni fillestar! = 0 >> vlera dixhitale e leximit të sensorëve tejzanor dhe bazuar në vlerat e sensorit:

      • Përditësoni vlerën e motorit LED të lëvizshëm LART.
      • Drejtoni kutinë e lëvizjes derisa vlera e të dy sensorëve tejzanor të jetë <vlera e pragut.

Vlera e përditësimit të pozicionit fillestar = 1 >> Vlera e përditësimit të LED Ready HIGH dhe motori lëviz LOW dhe Calibrating LOW >> hapi 2

Hapi 2

Kontrolloni praninë e objekteve

Drejtoni zbulimin e objektit tejzanor

  • Objekti i pranishëm == 1 >> Përditëso vlerën e Objektit të pranishëm LED të Lartë >> Hapi 3
  • Objekti i pranishëm == 0 >> Mos bëni asgjë

Hapi 3

Kontrolloni llojin e objektit të pranishëm

Drejtoni zbulimin e sensorit induktiv

  • inductiveState = 1 >> Hapi 4
  • inductiveState = 0 >> Hapi 4

Hapi 4

Lëviz Kutinë

Drejtoni funksionimin e motorit

  • shteti induktiv == 1

    Përditësoni motorin LED LED të Lartë >> Lëvizni motorin majtas, (përditësoni pozicionin fillestar = 0) vononi dhe lëvizni prapa djathtas >> Hapi 1

  • shteti induktiv == 0

    Përditësoni motorin LED LED të Lartë >> Bëni lëvizjen e motorit djathtas, (përditësoni pozicionin fillestar = 0), vononi dhe lëvizni prapa majtas >> Hapi 1

Funksione

Siç mund të shihet nga logjika e programimit, programi punon duke ekzekutuar funksione me një qëllim specifik. Për shembull, hapi i parë është fillimi i sistemit i cili përmban funksionin "Kontrolloni që motori stepper është në pozicionin fillestar". Hapi i dytë kontrollon praninë e një objekti i cili në vetvete është një funksion tjetër (funksioni "Zbulimi i objektit tejzanor"). Dhe kështu me radhë.

Pas hapit 4, programi ka ekzekutuar plotësisht dhe do të kthehet në hapin 1 para se të ekzekutohet përsëri.

Funksionet e përdorura në trupin kryesor janë përcaktuar më poshtë.

Ato janë përkatësisht:

  • test induktiv ()
  • moveBox (shtet induktiv)
  • ultrasonicObjectDetection ()

// Kontrolloni nëse objekti është metalik apo jo

bool inductiveTest () {if (digitalRead (inductiveSwitchRight) == 1 || digitalRead (inductiveSwitchLeft == 0)) {kthehu e vërtetë; else {return false; }} void moveBox (bool inductiveState) {// Kutia shkon në të majtë kur zbulohet metali dhe inductiveState = true nëse (inductiveState == 0) {stepper.moveTo (hapa); // pozicioni i rastësishëm për të përfunduar për testimin e stepper.runToPosition (); vonesa (1000); stepper.moveTo (0); stepper.runToPosition (); vonesa (1000); } else if (inductiveState == 1) {stepper.moveTo (-hapa); // pozicioni i rastësishëm për të përfunduar për testimin e stepper.runToPosition (); vonesa (1000); stepper.moveTo (0); // pozicioni i rastësishëm për të përfunduar për testimin e stepper.runToPosition (); vonesa (1000); }} boolean ultrasonicObjectDetection () {kohëzgjatje e gjatë1, distanca1, kohëzgjatjaTemp, distanceTemp, mesatarjaDistanca1, mesatarDistancaTemp, mesatarjaDistancaOlimpike1; // Përcaktoni numrin e matjeve për të marrë distanca të gjataMax = 0; distancë të gjatëMin = 4000; distancë e gjatëTotal = 0; për (int i = 0; i distanceMax) {distanceMax = distanceTemp; } if (distanceTemp <distanceMin) {distanceMin = distanceTemp; } distanceTotal+= distanceTemp; } Serial.print ("Sensori1 maksDistanca"); Serial.print (distanceMax); Serial.println ("mm"); Serial.print ("Sensori1 minDistanca"); Serial.print (distanceMin); Serial.println ("mm"); // Merrni distancën mesatare nga leximet averageDistance1 = distanceTotal/10; Serial.print ("Sensori1Distanca mesatare1"); Serial.print (distanca mesatare1); Serial.println ("mm"); // Hiq vlerat më të larta dhe më të ulëta të matjeve për të shmangur leximet e gabuara averageDistanceTemp = distanceTotal - (distanceMax+distanceMin); averageDistanceOlympian1 = averageDistanceTemp/8; Serial.print ("Sensori1 mesatarja e distancës olimpike1"); Serial.print (averageDistanceOlympian1); Serial.println ("mm");

// Rivendosni vlerat e temperaturës

distanceTotal = 0; distanceMax = 0; distanceMin = 4000; kohëzgjatje e gjatë2, distancë2, mesatareDistanca2, mesatareDistancaOlimpike2; // Përcaktoni numrin e matjeve që duhen marrë (int i = 0; i distanceMax) {distanceMax = distanceTemp; } if (distanceTemp <distanceMin) {distanceMin = distanceTemp; } distanceTotal+= distanceTemp; } Serial.print ("Sensori2 maksDistanca"); Serial.print (distanceMax); Serial.println ("mm"); Serial.print ("Sensori2 minDistanca"); Serial.print (distanceMin); Serial.println ("mm"); // Merrni distancën mesatare nga leximet averageDistance2 = distanceTotal/10; Serial.print ("Sensori2Distanca mesatare2"); Serial.print (mesatarjaDistanca2); Serial.println ("mm"); // Hiq vlerat më të larta dhe më të ulëta të matjeve për të shmangur leximet e gabuara averageDistanceTemp = distanceTotal - (distanceMax+distanceMin); averageDistanceOlympian2 = averageDistanceTemp/8; Serial.print ("Sensori2Distanca mesatareOlimpike2"); Serial.print (averageDistanceOlympian2); Serial.println ("mm"); // Rivendos vlerat e temperaturës distanceTotal = 0; distanceMax = 0; distanceMin = 4000; if (averageDistanceOlympian1 + averageDistanceOlympian2 <emptyBoxDistance) {kthehu true; } else {return false; }}

Trupi Kryesor

Trupi kryesor përmban të njëjtën logjikë të shpjeguar në krye të këtij seksioni, por të shkruar në kod. Skedari është në dispozicion për shkarkim më poshtë.

Paralajmërim

Shumë teste u kryen për të gjetur konstantet: blankBoxDistance, hapa dhe shpejtësi maksimale dhe përshpejtim në konfigurim.

Hapi 7: Përmirësime të mundshme

Përmirësimet e mundshme
Përmirësimet e mundshme

- Ne kemi nevojë për reagime në lidhje me pozicionin e kutisë për të siguruar që është gjithmonë në pozicionet e duhura për të zgjedhur objektin në fillim. Opsione të ndryshme janë në dispozicion për të zgjidhur problemin, por një e lehtë mund të jetë kopjimi i sistemit që gjejmë në printerët 3D duke përdorur një ndërprerës në njërin skaj të rrugës së kutisë.

-Për shkak të çështjeve që gjetëm me zbulimin tejzanor, ne mund të kërkojmë disa alternativa për atë funksion: KY-008 Laser and Laser Detector (imazh), sensorë kapacitivë.

Hapi 8: Faktorët kufizues

Ky projekt funksionon siç përshkruhet në udhëzimet, por kujdes i veçantë duhet treguar gjatë hapave të mëposhtëm:

Kalibrimi i sensorëve tejzanor

Këndi në të cilin vendosen sensorët tejzanor në lidhje me objektin që duhet të zbulojnë është me rëndësi vendimtare për funksionimin e saktë të prototipit. Për këtë projekt, një kënd prej 12.5 ° në normale u zgjodh për orientimin e sensorëve tejzanor, por këndi më i mirë duhet të përcaktohet në mënyrë eksperimentale duke regjistruar leximet e distancës duke përdorur objekte të ndryshme.

Burimi i energjisë

Fuqia e kërkuar për drejtuesin e motorit stepper DRV8825 është 12V dhe midis 0.2 dhe 1 Amp. Arduino gjithashtu mund të fuqizohet nga maksimumi 12V dhe 0.2 Amp duke përdorur hyrjen e prizës në Arduino. Kujdes i veçantë duhet treguar megjithatë nëse përdorni të njëjtin burim energjie si për Arduino ashtu edhe për drejtuesin e motorit stepper. Nëse mundësohet nga një prizë e zakonshme e energjisë duke përdorur për shembull një furnizues të rrymës së përshtatësit 12V/2A AC/DC, duhet të ketë një rregullator të tensionit dhe dioda në qark para se të futet fuqia në shoferin e motorit arduino dhe stepper.

Vendosja e Kutisë

Edhe pse ky projekt përdor një motor stepper i cili në kushte normale kthehet në pozicionin e tij fillestar me saktësi të lartë, është praktikë e mirë që të ketë një mekanizëm strehimi në rast të një gabimi. Projekti siç është nuk ka një mekanizëm strehimi, por është mjaft i thjeshtë për tu zbatuar. Për këtë, një çelës mekanik në pozicionin fillestar të kutisë duhet të shtohet i tillë që kur kutia të godasë çelësin, ai e di që është në pozicionin e tij në shtëpi.

Drejtuesi i Stepper DRV8825 Akordimi

Shoferi stepper kërkon akordim për të punuar me motorin stepper. Kjo bëhet eksperimentalisht duke e kthyer potenciometrin (vidën) në çipin DRV8825 në mënyrë që sasia e duhur e rrymës të furnizohet me motor. Pra, duke e kthyer vidën e potenciometrit pak derisa motori të veprojë në një mënyrë të dobët.

Hapi 9: Kredite

Ky projekt u bë si pjesë e një kursi mekatronikë gjatë vitit akademik 2018-2019 për Master Bruface në Université Libre de Bruxelles (ULB) - Vrije Universiteit Brussel (VUB).

Autorët janë:

Maxime Decleire

Lidia Gomez

Markus Poder

Adriana Puentes

Narjisse Snoussi

Falenderime të veçanta për mbikëqyrësit tonë Albert de Beir i cili na ndihmoi gjatë gjithë projektit gjithashtu.

Recommended: