- Kinakailangan ang Mga Bahagi
- Paano gumawa ng chassis para sa Colour Sorting Robotic Arm
- TCS3200 Color Sensor
- Arduino Color Sorter Circuit Diagram
- Programming Arduino Uno para sa pag-uuri ng mga makukulay na bola
Tulad ng ipinahihiwatig ng pangalan, ang pag-uuri ng kulay ay simpleng pag-uuri-uriin ang mga bagay ayon sa kanilang kulay. Madali itong magagawa sa pamamagitan ng pagtingin dito ngunit kapag maraming bagay na maiayos at ito ay isang paulit-ulit na gawain kung gayon ang mga awtomatikong pag-uuri ng kulay ng mga machine ay lubhang kapaki-pakinabang. Ang mga machine na ito ay may color sensor upang maunawaan ang kulay ng anumang mga bagay at pagkatapos matukoy ang kulay na motor ng servo motor ay kunin ang bagay at ilagay ito sa kani-kanilang kahon. Maaari silang magamit sa iba't ibang mga lugar ng aplikasyon kung saan ang pagkilala sa kulay, pagkakaiba ng kulay at pag-uuri ng kulay ay mahalaga. Ang ilan sa mga lugar ng aplikasyon ay kasama ang industriya ng Agrikultura (Grain Sorting batay sa kulay), Industriya ng Pagkain, diamante at Mining na industriya, Pag-recycle atbp Ang mga aplikasyon ay hindi limitado dito at maaaring karagdagang mailapat sa iba't ibang mga industriya.
Ang pinakapopular na sensor para sa pagtuklas ng mga kulay ay TCS3200 color sensor. Ginamit namin dati ang TCS3200 sensor na may Arduino upang makuha ang bahagi ng RGB (Pula, berde, Asul) ng anumang kulay at nakipag-interfaced din ito sa Raspberry Pi para sa pagtuklas ng kulay ng anumang bagay.
Dito sa tutorial na ito gagawa kami ng isang machine ng pag-uuri ng kulay gamit ang isang color sensor TCS3200, ilang mga servo motor at Arduino board. Ang tutorial na ito ay isasama ang pag- uuri ng mga may kulay na bola at panatilihin ang mga ito sa nauugnay na kahon ng kulay. Ang kahon ay makikita sa nakapirming posisyon at gagamitin ang servo motor upang ilipat ang kamay ng sorter upang mapanatili ang bola sa may-katuturang kahon.
Kinakailangan ang Mga Bahagi
- Arduino UNO
- TCS3200 Color Sensor
- Mga Servo Motors
- Mga jumper
- Breadboard
Paano gumawa ng chassis para sa Colour Sorting Robotic Arm
Para sa paggawa ng kumpletong pag-setup kasama ang chassis, braso, roller, pad, ginamit namin ang puting Sunboard na may 2mm kapal. Madali itong magagamit sa mga nakatigil na tindahan. Gumamit kami ng pamutol ng papel upang putulin ang Sunboard Sheet at FlexKwik o FeviKwik para sa pagsali sa iba't ibang mga bahagi.
Nasa ibaba ang ilang mga hakbang na bumuo ng Kulay ng pag-uuri ng Kulay:
1) Kunin ang Sunboard Sheet.
2) Gupitin ang sheet ng sunboard sa mga piraso pagkatapos sukatin ang lahat ng panig na may sukat at marker tulad ng ipinakita sa pigura.
3) Ngayon hawakan ang dalawang piraso ng sunboard at ibuhos ang isang patak ng FeviKwik dito upang idikit ang mga piraso. Patuloy na pagsali sa mga piraso sa pamamagitan ng pagsunod sa figure.
4) Matapos pagsamahin ang lahat ng mga piraso ng magkasama, ang makina ng pag-uuri ng kulay na ito ay magiging ganito ang hitsura:
TCS3200 Color Sensor
Ang TCS3200 ay isang sensor ng kulay na makakakita ng anumang bilang ng mga kulay na may tamang programa. Naglalaman ang TCS3200 ng mga array na RGB (Red Green Blue). Tulad ng ipinakita sa pigura sa antas ng mikroskopiko na makikita ng isa ang mga parisukat na kahon sa loob ng mata sa sensor. Ang mga square box na ito ay mga arrays ng RGB matrix. Ang bawat isa sa mga kahon na ito ay naglalaman ng tatlong mga sensor, Ang isa ay para sa sensing RED light intensity, Ang isa ay para sa sensing GREEN light intensity at ang huli para sa sensing BLUE light intensity.
Ang bawat isa sa mga arrays ng sensor sa tatlong arrays na ito ay pinili nang magkahiwalay depende sa kinakailangan. Samakatuwid ito ay kilala bilang programmable sensor. Maaaring maitampok ang modyul upang maunawaan ang partikular na kulay at iwanan ang iba. Naglalaman ito ng mga filter para sa layuning iyon ng pagpili. Mayroong mode na pabalik na tinatawag na ' walang filter mode' kung saan nakita ng sensor ang puting ilaw.
Arduino Color Sorter Circuit Diagram
Ang circuit diagram para sa Arduino Color Sorter na ito ay medyo madaling gawin at hindi nangangailangan ng maraming koneksyon. Ang eskematiko ay ibinibigay sa ibaba.
Ito ang circuitry sa likod ng pag-set up ng color sorting machine:
Programming Arduino Uno para sa pag-uuri ng mga makukulay na bola
Ang Programing Arduino UNO ay isang medyo simple at nangangailangan ng isang simpleng lohika upang gawing simple ang mga hakbang na kasangkot sa pag-uuri ng kulay. Kumpletuhin ang programa na may isang demonstrasyong Video ay ibinibigay sa huli.
Dahil ginagamit ang servo motor, kaya't ang servo library ay mahalagang bahagi ng programa. Narito gumagamit kami ng dalawang servo motor. Ang unang magpaandar buhat sa malayo ay ilipat ang mga kulay na mga bilog mula sa mga paunang posisyon upang TCS3200 detector posisyon at pagkatapos ay lumipat sa pagbubukod-bukod ng posisyon kung saan ang bola ay bumaba. Matapos lumipat sa posisyon ng pag-uuri, ang pangalawang servo ay ihuhulog ang bola gamit ang braso nito sa nais na color bucket. Tingnan ang kumpletong pagtatrabaho sa Video na ibinigay sa dulo.
Ang unang hakbang ay ang lahat ng pagsasama ng library at tukuyin ang mga variable ng servo.
# isama
Ang sensor ng kulay ng TCS3200 ay maaaring gumana nang walang library dahil kailangan lamang ng dalas ng pagbabasa mula sa sensor pin upang magpasya ang kulay. Kaya tukuyin lamang ang mga numero ng pin ng TCS3200.
#define S0 4 # tukuyin ang S1 5 # tukuyin ang S2 7 # tukuyin ang S3 6 # tukuyin ang sensorOut 8 int frequency = 0; int kulay = 0;
Gawin ang mga piling pin bilang output dahil gagawin nitong mataas o mababa ang kulay na photodiode at kunin ang Out pin ng TCS3200 bilang input. Ang OUT pin ay magbibigay ng dalas. Piliin ang pag-scale ng dalas ng 20% nang una.
pinMode (S0, OUTPUT); pinMode (S1, OUTPUT); pinMode (S2, OUTPUT); pinMode (S3, OUTPUT); pinMode (sensorOut, INPUT); digitalWrite (S0, LOW); digitalWrite (S1, TAAS);
Ang mga motor na servo ay konektado sa Pin 9 at 10 ng Arduino. Ang pickup servo na kukunin ang mga bola ng kulay ay konektado sa Pin 9 at ang drop servo na ibabagsak ang mga bola ng kulay ayon sa kulay ay konektado sa Pin10.
pickServo.attach (9); dropServo.attach (10);
Sa una ang pick servo motor ay nakatakda sa paunang posisyon na sa kasong ito ay 115 degree. Maaari itong magkakaiba at maaaring ipasadya nang naaayon. Gumagalaw ang motor pagkatapos ng ilang pagkaantala sa rehiyon ng detektor at naghihintay para sa pagtuklas.
pickServo.write (115); pagkaantala (600); para sa (int i = 115; i> 65; i--) { pickServo.write (i); antala (2); } pagkaantala (500);
Ang TCS 3200 bumabasa ang kulay at nagbibigay sa dalas mula sa Out Pin.
kulay = detectColor (); pagkaantala (1000);
Nakasalalay Sa nakita ang kulay, ang drop servo motor ay gumagalaw na may partikular na anggulo at ihuhulog ang color ball sa kani-kanilang kahon.
lumipat (kulay) { case 1: dropServo.write (50); pahinga; kaso 2: dropServo.write (80); pahinga; kaso 3: dropServo.write (110); pahinga; kaso 4: dropServo.write (140); pahinga; kaso 5: dropServo.write (170); pahinga; kaso 0: masira; } pagkaantala (500);
Ang servo motor ay bumalik sa paunang posisyon para sa susunod na bola na pipiliin.
para sa (int i = 65; i> 29; i--) { pickServo.write (i); antala (2); } pagkaantala (300); para sa (int i = 29; i <115; i ++) { pickServo.write (i); antala (2); }
Ginagamit ang pagpapaandar naColor () upang sukatin ang dalas at ihinahambing ang dalas ng kulay upang gawin ang konklusyon ng kulay. Ang resulta ay naka-print sa serial monitor. Pagkatapos ay ibabalik nito ang halaga ng kulay para sa mga kaso upang ilipat ang anggulo ng drop servo motor.
int detectColor () {
Ang pagsulat sa S2 at S3 (LOW, LOW) ay nagpapagana ng pulang mga photodiode upang kunin ang mga pagbasa para sa pulang kulay ng density.
digitalWrite (S2, LOW); digitalWrite (S3, LOW); dalas = pulseIn (sensorOut, LOW); int R = dalas; Serial.print ("Pula ="); Serial.print (dalas); // pag-print ng RED dalas ng kulay Serial.print (""); antala (50);
Ang pagsulat sa S2 at S3 (LOW, HIGH) ay nagpapagana ng asul na mga photodiode upang kunin ang mga pagbasa para sa asul na kulay na density.
digitalWrite (S2, LOW); digitalWrite (S3, TAAS); dalas = pulseIn (sensorOut, LOW); int B = dalas; Serial.print ("Blue ="); Serial.print (dalas); Serial.println ("");
Ang pagsulat sa S2 at S3 (TAAS, TAAS) ay nagpapagana ng berdeng mga photodiode upang kunin ang mga pagbasa para sa berdeng kulay na density.
digitalWrite (S2, TAAS); digitalWrite (S3, TAAS); // Pagbasa ng dalas ng dalas ng output = pulseIn (sensorOut, LOW); int G = dalas; Serial.print ("Green ="); Serial.print (dalas); Serial.print (""); antala (50);
Pagkatapos ang mga halaga ay inihambing upang gawin ang pagpapasya sa kulay. Ang mga pagbabasa ay magkakaiba para sa iba't ibang pag-set up ng pang-eksperimentong magkakaiba ang distansya ng pagtuklas para sa lahat kapag gumagawa ng pag-set up.
kung (R <22 & R> 20 & G <29 & G> 27) { color = 1; // Red Serial.print ("Detected Color is ="); Serial.println ("PULA"); } kung (G <25 & G> 22 & B <22 & B> 19) { color = 2; // Orange Serial.println ("Orange"); } kung (R <21 & R> 20 & G <28 & G> 25) { color = 3; // Green Serial.print ("Detected Color is ="); Serial.println ("GREEN"); } kung (R <38 & R> 24 & G <44 & G> 30) { color = 4; // Yellow Serial.print ("Detected Color is ="); Serial.println ("DILAW"); } kung (G <29 & G> 27 & B <22 & B> 19) { color = 5; // Blue Serial.print ("Detected Color is ="); Serial.println ("BLUE"); } kulay ng pagbabalik; }
Ito natapos ang kulay ng pag-uuri machine gamit TCS3200 at Arduino UNO. Maaari mo ring i-program ito upang matukoy ang higit pang mga kulay kung kinakailangan. Kung mayroon kang anumang pag-aalinlangan o may anumang mungkahi pagkatapos ay sumulat sa aming forum o puna sa ibaba. Suriin din ang video na ibinigay sa ibaba.