Orodha ya maudhui:

Mfupi Bin - Gundua na Upange Tupio lako: Hatua 9
Mfupi Bin - Gundua na Upange Tupio lako: Hatua 9

Video: Mfupi Bin - Gundua na Upange Tupio lako: Hatua 9

Video: Mfupi Bin - Gundua na Upange Tupio lako: Hatua 9
Video: Walt Disney World Resort Vacation Planning Video (1994) 2024, Julai
Anonim
Image
Image
Inavyofanya kazi
Inavyofanya kazi

Je! Umewahi kuona mtu ambaye hana kuchakata au anafanya kwa njia mbaya?

Je! Umewahi kutamani mashine ambayo itasindika tena kwako?

Endelea kusoma mradi wetu, hautajuta!

Sorter bin ni mradi ulio na motisha wazi ya kusaidia kuchakata tena ulimwenguni. Kama inavyojulikana, ukosefu wa kuchakata tena unasababisha shida kubwa katika sayari yetu, kama kutoweka kwa malighafi na uchafuzi wa bahari, kati ya zingine.

Kwa sababu hiyo, timu yetu imeamua kukuza mradi kwa kiwango kidogo: pipa la mchawi ambalo linaweza kutenganisha takataka kwa wapokeaji tofauti kulingana na ikiwa nyenzo ni ya chuma au isiyo ya chuma. Katika matoleo yajayo, bin hiyo ya mchawi inaweza kutolewa kwa kiwango kikubwa, ikiruhusu kugawanywa kwa takataka katika aina zote za nyenzo (kuni, plastiki, chuma, kikaboni…).

Kwa kuwa kusudi kuu ni kutofautisha kati ya chuma au isiyo ya chuma, pipa la mchawi litawekwa na sensorer za kufata, lakini pia na sensorer za ultrasonic ili kugundua ikiwa kuna kitu ndani ya pipa. Kwa kuongezea, pipa itahitaji harakati laini ili kuhamisha takataka ndani ya masanduku mawili, kwa hivyo motor ya stepper imechaguliwa.

Katika sehemu zinazofuata, mradi huu utaelezwa hatua kwa hatua.

Hatua ya 1: Jinsi inavyofanya kazi

Inavyofanya kazi
Inavyofanya kazi
Inavyofanya kazi
Inavyofanya kazi

Bin ya sorter imeundwa ili kuifanya kazi iwe rahisi kwa mtumiaji: takataka lazima iletwe kupitia shimo ambalo limewekwa kwenye bamba la juu, kitufe cha manjano lazima kibonyeze na mchakato uanze, kuishia na takataka kuwa moja ya wapokeaji. Lakini swali sasa ni… je! Mchakato huo unafanya kazije ndani?

Mara tu mchakato huo umeanza LED ya kijani ni taa. Kisha sensorer za ultrasonic, zilizowekwa kwenye bamba la juu kupitia msaada, anza kazi yao kuamua ikiwa kuna kitu ndani ya sanduku au la.

Ikiwa hakuna kitu chochote ndani ya sanduku, LED nyekundu inawasha na ile ya kijani huzima. Kinyume chake, ikiwa kuna kitu, sensorer zinazoingiza zitaamilishwa ili kugundua ikiwa kitu ni cha chuma au kisicho cha chuma. Mara tu ikiwa aina ya nyenzo imedhamiriwa, LED nyekundu na manjano zitawasha na sanduku litaelekea upande mmoja au ule tofauti kulingana na aina ya nyenzo, inayosukumwa na motor stepper.

Sanduku linapofika mwisho wa kiharusi na kitu kimeangushwa kwa mpokeaji sahihi, sanduku litarudi katika nafasi ya kwanza. Mwishowe, sanduku likiwa katika nafasi ya kwanza, taa ya manjano itazima. Mchawi huyo atakuwa tayari kuanza tena na utaratibu huo huo. Utaratibu huu ulioelezewa katika aya za mwisho pia umeonyeshwa kwenye picha ya chati ya mtiririko wa kazi iliyowekwa kwenye Hatua ya 6: Programu.

Hatua ya 2: Muswada wa Vifaa (BOM)

Sehemu za Mitambo:

  • Sehemu zilizonunuliwa kwa muundo wa chini

    • Muundo wa metali [Kiungo]
    • Sanduku la kijivu [Kiungo]
  • Printa ya 3D

    PLA kwa sehemu zote zilizochapishwa (vifaa vingine pia vinaweza kutumika, kama ABS)

  • Mashine ya kukata laser

    • MDF 3mm
    • Plexiglass 4mm
  • Kuweka Linear Kuweka [Kiungo]
  • Kuzaa Linear [Kiungo]
  • Shimoni [Kiungo]
  • Mmiliki wa shimoni (x2) [Kiungo]

Sehemu za elektroniki:

  • Magari

    Linear Stepper Motor Nema 17 [Kiungo]

  • Betri

    12 v Betri [Kiungo]

  • Sensorer

    • 2 sensor ya Ultrasonic HC-SR04 [Kiungo]
    • Sensorer za kushawishi 2 LJ30A3-15 [Kiungo]
  • Mdhibiti mdogo

    Bodi 1 ya arduino UNO

  • Vipengele vya ziada
    • Dereva wa DRV8825
    • 3 LEDs: nyekundu, kijani na machungwa
    • Kitufe 1
    • Baadhi ya waya zinazoruka, waya na sahani za kutengenezea
    • Bodi ya mkate
    • Kebo ya USB (Uunganisho wa Arduino-PC)
    • Msimamizi: 100uF

Hatua ya 3: Ubunifu wa Mitambo

Image
Image
Ubunifu wa Mitambo
Ubunifu wa Mitambo
Ubunifu wa Mitambo
Ubunifu wa Mitambo

Katika picha zilizopita, sehemu zote za kusanyiko zinaonyeshwa.

Kwa muundo wa mitambo, SolidWorks imetumika kama mpango wa CAD. Sehemu tofauti za mkusanyiko zimetengenezwa kwa kuzingatia njia ya utengenezaji ambayo watatengenezwa.

Sehemu za kukata Laser:

  • MDF 3mm

    • Nguzo
    • Sahani ya juu
    • Ultrasonic sensorer msaada
    • Sensorer za kuingiza
    • Sanduku la takataka
    • Msaada wa betri
    • Breadboard na msaada wa Arduino
  • Plexiglass 4mm

    Jukwaa

Sehemu zilizochapishwa za 3D:

  • Msingi wa nguzo
  • Sehemu ya usambazaji wa harakati kutoka kwa motor stepper
  • Magari ya stepper na kubeba inasaidia
  • Sehemu za kurekebisha kuta kwa sanduku la takataka

Kwa utengenezaji wa kila moja ya sehemu hizi, faili za. STEP zinapaswa kuingizwa katika muundo sahihi, kulingana na mashine ambayo itatumika kwa kusudi hilo. Katika kesi hii, faili za.dxf zimetumika kwa mashine ya kukata laser na faili za.gcode kwa printa ya 3D (Ultimaker 2).

Mkutano wa kiufundi wa mradi huu unaweza kupatikana katika faili ya. STEP iliyoambatishwa katika sehemu hii.

Hatua ya 4: Elektroniki (Chaguzi za Vipengee)

Katika sehemu hii, maelezo mafupi ya vifaa vya elektroniki vilivyotumika na ufafanuzi wa uchaguzi wa sehemu utafanyika.

Bodi ya Arduino UNO (kama mdhibiti mdogo):

Vifaa vya programu wazi na programu. Nafuu, inapatikana kwa urahisi, rahisi kwa nambari. Bodi hii inaambatana na vifaa vyote tulivyotumia na hupata mafunzo na vikao vingi kusaidia sana kujifunza na kutatua shida.

Magari (Linear Stepper Motor Nema 17):

Ni aina ya motor ya stepper ambayo hugawanya mzunguko kamili katika idadi fulani ya hatua. Kama matokeo, inadhibitiwa kwa kutoa hatua kadhaa. Ni thabiti na sahihi na haiitaji sensorer yoyote kudhibiti nafasi yake halisi. Ujumbe wa motor ni kudhibiti mwendo wa sanduku ambalo lina kitu kilichotupwa na kukiacha kwenye pipa la kulia.

Ili kuchagua mtindo ulifanya mahesabu kadhaa ya muda wa juu unaohitajika kuongeza sababu ya usalama. Kuhusu matokeo, tulinunua mfano ambao kwa kiasi kikubwa hufunika thamani iliyohesabiwa.

Dereva wa DRV8825:

Bodi hii hutumiwa kudhibiti motor bipolar stepper. Ina udhibiti wa sasa unaoweza kubadilishwa ambao hukuruhusu kuweka kiwango cha juu cha pato la sasa na potentiometer na vile vile maazimio sita ya hatua tofauti: hatua kamili, hatua ya nusu, hatua ya 1/4, hatua ya 1/8, 1 / 16- hatua, na 1/32-hatua (mwishowe tulitumia hatua kamili kwa kuwa hatukupata hitaji la kwenda kwenye microstepping lakini bado inaweza kutumika kuboresha ubora wa harakati).

Sensorer za Ultrasonic:

Hizi ni aina ya sensorer za acoustic ambazo hubadilisha ishara ya umeme kuwa ultrasound na kinyume chake. Walitumia mwitikio wa mwangwi wa ishara ya sauti iliyotolewa kwanza kuhesabu umbali wa kitu. Tulizitumia kugundua ikiwa kuna kitu kwenye sanduku au la. Ni rahisi kutumia na kutoa kipimo sahihi.

Ingawa pato la sensa hii ni thamani (umbali), kwa kuanzisha kizingiti cha kuamua ikiwa kitu kipo au la, tunabadilisha

Sensorer za kushawishi:

Kulingana na sheria ya Faraday, ni ya jamii ya sensorer ya ukaribu wa elektroniki isiyo ya mawasiliano. Tuliwaweka chini ya sanduku linalosonga, chini ya jukwaa la plexiglass linalounga mkono kitu. Lengo lao ni kutofautisha kati ya kitu cha chuma na kisicho cha chuma kinachotoa pato la dijiti (0/1).

LEDs (kijani, manjano, nyekundu):

Dhamira yao ni kuwasiliana na mtumiaji:

-Green LED juu: robot inasubiri kitu.

-Red LED juu: kazi ya mashine, huwezi kutupa kitu chochote.

-Yellow LED juu: kitu hugunduliwa.

Betri ya 12V au chanzo cha nguvu cha 12V + 5V nguvu ya USB:

Chanzo cha voltage kinahitajika ili kuwezesha sensorer na motor stepper. Chanzo cha nguvu cha 5V kinahitajika ili kuwezesha Arduino. Hii inaweza kufanywa kupitia betri ya 12V lakini ni bora kuwa na chanzo tofauti cha 5V cha Arduino (kama vile kebo ya USB na adapta ya simu iliyounganishwa na chanzo cha umeme au kompyuta).

Maswala ambayo tumepata:

  • Kugundua sensorer ya kushawishi, hatukupata usahihi unaohitajika kwani wakati mwingine kitu kibaya cha metali kibaya hakijatambuliwa. Hii ni kwa sababu ya mapungufu 2:

    • Eneo lililofunikwa na sensorer ndani ya jukwaa la mraba linawakilisha chini ya 50% yake (kitu kidogo sana hakiwezi kugunduliwa). Ili kuisuluhisha tunapendekeza utumie sensorer 3 au 4 za kufata ili kuhakikisha zaidi ya 70% ya eneo hilo linafunikwa.
    • Umbali wa kugundua sensorer ni mdogo kwa 15mm kwa hivyo tulijikuta tukilazimika kutumia jukwaa nzuri la plexiglass. Hii pia inaweza kuwa kizuizi kingine cha kugundua vitu vyenye umbo la kushangaza.
  • Kugundua Ultrasonic: tena, vitu vilivyoundwa kwa njia ngumu vinatoa shida kama ishara inayotolewa na sensorer imeonyeshwa vibaya na inarudi baadaye kuliko inavyopaswa kwa sensa.
  • Betri: tuna maswala kadhaa ya kudhibiti sasa iliyotolewa na betri na kuisuluhisha mwishowe tulitumia chanzo cha nguvu. Walakini, suluhisho zingine kama kutumia diode zinaweza kufanywa.

Hatua ya 5: Elektroniki (Miunganisho)

Umeme (Miunganisho)
Umeme (Miunganisho)
Umeme (Miunganisho)
Umeme (Miunganisho)

Sehemu hii inaonyesha wiring ya vifaa tofauti kuweka kabisa. Inaonyesha pia ni pini ipi kwenye Arduino kila sehemu imeunganishwa.

Hatua ya 6: Programu

Kupanga programu
Kupanga programu

Sehemu hii itaelezea mantiki ya programu nyuma ya mashine ya Upangaji wa Bin.

Programu imegawanywa katika hatua 4, ambazo ni kama ifuatavyo:

  1. Anzisha mfumo
  2. Angalia uwepo wa vitu
  3. Angalia aina ya kitu kilichopo
  4. Sogeza Sanduku

Kwa maelezo ya kina ya kila hatua, angalia hapa chini:

Hatua ya 1 Anzisha mfumo

Jopo la LED (3) - weka Calibrating LED (nyekundu) JUU, Tayari LED (kijani) LOW, Object present (njano) LOW

Angalia motor ya stepper iko katika nafasi ya kwanza

  • Tumia mtihani wa sensorer ya ultrasonic kupima umbali kutoka ukuta hadi upande wa sanduku

    • Msimamo wa awali == 0 >> Sasisha maadili ya Tayari ya LED ya Juu na Kuweka viwango vya chini vya LED -> hatua ya 2
    • Msimamo wa awali! = 0 >> Thamani ya kusoma dijiti ya sensorer za ultrasonic na kulingana na maadili ya sensa
      • Sasisha thamani ya gari inayohamia LED HIGH.
      • Run sanduku la kusonga hadi thamani ya sensorer zote za ultrasonic ni <thamani ya kizingiti.

Sasisha thamani ya nafasi ya awali = 1 >> Sasisha thamani ya Tayari ya Tayari ya LED na kusonga kwa magari CHINI na Kusawazisha CHINI >> hatua ya 2

Hatua ya 2

Angalia uwepo wa vitu

Tumia kugundua kitu cha Ultrasonic

  • Kitu kilichopo == 1 >> Sasisha thamani ya kitu kilichopo LED HIGH >> Hatua ya 3
  • Kitu kilichopo == 0 >> Usifanye chochote

Hatua ya 3

Angalia aina ya kitu kilichopo

Endesha ugunduzi wa kitambuzi

  • inductiveState = 1 >> Hatua ya 4
  • inductiveState = 0 >> Hatua ya 4

Hatua ya 4

Sogeza Sanduku

Endesha Operesheni ya Magari

  • Jimbo la inductive == 1

    Sasisha mwendo wa kusonga kwa mwendo wa hali ya juu ya LED >> Fanya kusogea kwa gari kushoto, (sasisha nafasi ya awali = 0) uchelewesha na urudi nyuma kulia >> Hatua ya 1

  • Hali ya inductive == 0

    Sasisha mwendo wa kusonga kwa LED HIGH >> Fanya motor isonge kulia, (sasisha nafasi ya awali = 0), uchelewesha na urudi nyuma kushoto >> Hatua ya 1

Kazi

Kama inavyoonekana kutoka kwa mantiki ya programu, programu inafanya kazi kwa kutekeleza kazi na lengo maalum. Kwa mfano, hatua ya kwanza ni kuanzisha mfumo ambao una kazi "Angalia stepper motor iko katika nafasi ya awali". Hatua ya pili kisha huangalia uwepo wa kitu ambacho yenyewe ni kazi nyingine ("Utambuzi wa kitu cha Ultrasonic" kazi). Na kadhalika.

Baada ya hatua ya 4, programu imetekelezwa kikamilifu na itarudi kwa hatua ya 1 kabla ya kuanza tena.

Kazi zinazotumiwa katika mwili kuu zimefafanuliwa hapa chini.

Wao ni mtiririko huo:

  • Jaribio la kufata ()
  • hojaBox (Hali ya kufata)
  • Ugunduzi wa UltrasonicObject ()

// Angalia ikiwa kitu ni cha metali au la

Jaribio la kufata bool () {if (digitalRead (inductiveSwitchRight) == 1 || digitalRead (inductiveSwitchLeft == 0)) {kurudi kweli; vinginevyo {kurudi uwongo; }} batili moveBox (bool inductiveState) {// Sanduku huenda kushoto wakati chuma hugunduliwa na inductiveState = kweli ikiwa (inductiveState == 0) {stepper.moveTo (hatua); // nafasi ya nasibu kumaliza kwa kupima stepper.runToPosition (); kuchelewesha (1000); stepper.soveTo (0); stepper.runToPosition (); kuchelewesha (1000); } mwingine ikiwa (inductiveState == 1) {stepper.moveTo (-steps); // nafasi ya nasibu kumaliza kwa kupima stepper.runToPosition (); kuchelewesha (1000); stepper.soveTo (0); // nafasi ya nasibu kumaliza kwa kupima stepper.runToPosition (); kuchelewesha (1000); }} boolean ultrasonicObjectDetection () {muda mrefu1, umbali1, mudaTemp, umbaliTemp, wastaniDistance1, wastaniDistanceTemp, averageDistanceOlympian1; // Fafanua idadi ya vipimo vya kuchukua umbali mrefu Max = 0; umbali mrefuMin = 4000; umbali mrefu Jumla = 0; kwa (int i = 0; i umbaliMax) {umbaliMax = umbaliTemp; } ikiwa (umbaliTemp <umbaliMin) {umbaliMin = umbaliTemp; } umbaliTotal + = umbaliTemp; } Serial.print ("Sensor1 maxDistance"); Serial.print (umbaliMax); Serial.println ("mm"); Serial.print ("Sensor1 minDistance"); Serial.print (umbaliMin); Serial.println ("mm"); // Chukua umbali wa wastani kutoka kwa usomaji wastaniUrefu1 = umbali Jumla / 10; Serial.print ("Sensor1 averageDistance1"); Rekodi ya serial (wastaniDistance1); Serial.println ("mm"); // Ondoa viwango vya juu na vya chini vya vipimo ili kuepusha usomaji mbaya wastaniDistanceTemp = umbaliTotal - (umbaliMax + umbaliMin); wastaniDistanceOlympian1 = wastaniDistanceTemp / 8; Rekodi ya serial ("Sensor1 averageDistanceOlympian1"); Rekodi ya serial (wastaniDistanceOlympian1); Serial.println ("mm");

// Weka upya maadili ya muda

umbaliTotal = 0; umbaliMax = 0; umbaliMin = 4000; muda mrefu2, umbali2, wastaniDistance2, wastaniDistanceOlympian2; // Fafanua idadi ya vipimo vya kuchukua (int i = 0; i umbaliMax) {distanceMax = umbaliTemp; } ikiwa (umbaliTemp <umbaliMin) {umbaliMin = umbaliTemp; } umbaliTotal + = umbaliTemp; } Serial.print ("Sensor2 maxDistance"); Serial.print (umbaliMax); Serial.println ("mm"); Serial.print ("Sensor2 minDistance"); Serial.print (umbaliMin); Serial.println ("mm"); // Chukua umbali wa wastani kutoka usomaji wastaniD22 = umbali Jumla / 10; Serial.print ("Sensor2 averageDistance2"); Printa ya serial (wastani wa Usaidizi2); Serial.println ("mm"); // Ondoa viwango vya juu na vya chini vya vipimo ili kuepusha usomaji mbaya wastaniDistanceTemp = umbaliTotal - (umbaliMax + umbaliMin); wastaniDistanceOlympian2 = wastaniDistanceTemp / 8; Rekodi ya serial ("Sensor2 averageDistanceOlympian2"); Rekodi ya serial (wastaniDistanceOlympian2); Serial.println ("mm"); // Weka upya maadili ya muda umbali Jumla = 0; umbaliMax = 0; umbaliMin = 4000; ikiwa (averageDistanceOlympian1 + averageDistanceOlympian2 <emptyBoxDistance) {kurudi kweli; } vingine {kurudi uwongo; }}

Mwili kuu

Mwili kuu una mantiki sawa iliyoelezewa juu ya sehemu hii, lakini imeandikwa kwa kificho. Faili inapatikana kwa kupakuliwa hapa chini.

Onyo

Vipimo vingi vilifanywa ili kupata viboreshaji: Utupu wa Sawa, hatua na kasi ya kasi na kuongeza kasi katika usanidi.

Hatua ya 7: Maboresho yanayowezekana

Uboreshaji unaowezekana
Uboreshaji unaowezekana

- Tunahitaji maoni juu ya nafasi ya sanduku ili kuhakikisha kuwa iko kila wakati katika nafasi nzuri ya kuchukua kitu mwanzoni. Chaguzi tofauti zinapatikana kusuluhisha shida lakini rahisi inaweza kuwa kunakili mfumo ambao tunapata katika printa za 3D kwa kutumia swichi mwisho mmoja wa njia ya sanduku.

-Kutokana na maswala ambayo tumepata na kugundua kwa ultrasonic, tunaweza kutafuta njia mbadala za kazi hiyo: KY-008 Laser na Detector ya Laser (picha), sensorer capacitive.

Hatua ya 8: Vipengele vya Kupunguza

Mradi huu hufanya kazi kama ilivyoelezewa kwa mafundisho lakini utunzaji maalum lazima uchukuliwe wakati wa hatua zifuatazo:

Upimaji wa Sensorer za Ultrasonic

Pembe ambayo sensorer za ultrasonic zimewekwa kuhusiana na kitu ambacho wanapaswa kugundua ni muhimu sana kwa utendaji sahihi wa mfano. Kwa mradi huu, pembe ya 12.5 ° hadi kawaida ilichaguliwa kwa mwelekeo wa sensorer za ultrasonic lakini pembe bora inapaswa kuamua kwa majaribio kwa kurekodi usomaji wa umbali kwa kutumia vitu anuwai.

Chanzo cha Nguvu

Nguvu inayohitajika kwa dereva wa gari la stepper DRV8825 ni 12V na kati ya 0.2 na 1 Amp. Arduino pia inaweza kuwezeshwa na kiwango cha juu cha 12V na 0.2 Amp kwa kutumia pembejeo ya jack kwenye Arduino. Uangalifu maalum lazima uchukuliwe ikiwa unatumia chanzo hicho hicho cha nguvu kwa Arduino na dereva wa gari. Ikiwa inatumiwa kutoka kwa tundu la kawaida la umeme kwa kutumia umeme wa adapta ya 12V / 2A AC / DC, inapaswa kuwe na mdhibiti wa voltage na diode kwenye mzunguko kabla ya nguvu kuingizwa kwa dereva wa arduino na stepper.

Kukaribisha Sanduku

Ingawa mradi huu unatumia gari la kukanyaga ambalo chini ya hali ya kawaida linarudi katika nafasi yake ya awali kwa usahihi wa hali ya juu, ni vizuri kuwa na utaratibu wa kusonga ikiwa kosa litatokea. Mradi ulivyo hauna mfumo wa homing lakini ni rahisi kutekeleza moja. Kwa hili, ubadilishaji wa mitambo katika nafasi ya awali ya sanduku inapaswa kuongezwa kama kwamba wakati sanduku linapogonga swichi, inajua iko katika nafasi yake ya nyumbani.

Stepper dereva DRV8825 Tuning

Dereva wa stepper anahitaji kurekebisha kufanya kazi na motor stepper. Hii imefanywa kwa majaribio kwa kugeuza potentiometer (screw) kwenye chip ya DRV8825 ili kiwango kinachofaa cha sasa kinapewa motor. Kwa hivyo, kugeuza screw ya potentiometer kidogo mpaka motor itende kwa njia nyembamba.

Hatua ya 9: Mikopo

Mradi huu ulifanywa kama sehemu ya kozi ya vifaa vya elektroniki wakati wa mwaka wa masomo 2018-2019 kwa Bruface Master katika Chuo Kikuu cha Libre de Bruxelles (ULB) - Vrije Universiteit Brussel (VUB).

Waandishi ni:

Maxime Decleire

Lidia Gomez

Markus Poder

Adriana Puentes

Narjisse Snoussi

Shukrani za pekee kwa msimamizi wetu Albert de Beir ambaye alitusaidia katika mradi huo pia.

Ilipendekeza: