- Tarvittavat komponentit
- Kuinka tehdä alustan väriä lajittelevalle robottivarrelle
- TCS3200 -värianturi
- Arduino Color Sorter -piirikaavio
- Arduino Unon ohjelmointi värikkäiden pallojen lajittelua varten
Kuten nimestä voi päätellä, värilajittelu on vain lajitella asiat niiden värin mukaan. Se voidaan tehdä helposti näkemällä se, mutta kun lajiteltavia asioita on liian monta ja se on toistuva tehtävä, automaattiset värilajittelukoneet ovat erittäin hyödyllisiä. Näissä koneissa on värianturi, joka havaitsee esineiden värin, ja havaittuaan värin servomoottorin tartu asiaan ja laita se vastaavaan laatikkoon. Niitä voidaan käyttää eri käyttöalueilla, joilla värin tunnistaminen, värien erottelu ja värin lajittelu on tärkeää. Joitakin sovellusalueita ovat maatalousteollisuus (viljan lajittelu värin perusteella), elintarviketeollisuus, timantti- ja kaivosteollisuus, kierrätys jne. Sovellukset eivät rajoitu tähän, ja niitä voidaan edelleen soveltaa eri toimialoihin.
Suosituin anturi värien tunnistamiseen on TCS3200-värianturi. Aikaisemmin käytimme TCS3200-anturia Arduinon kanssa saadaksesi minkä tahansa värisen RGB-komponentin (punainen, vihreä, sininen) ja liitimme sen myös Raspberry Pi: hen minkä tahansa kohteen värin havaitsemiseksi.
Tässä tässä opetusohjelmassa teemme värien lajittelukoneen käyttämällä värisensoria TCS3200, joitain servomoottoreita ja Arduino-korttia. Tämä opetusohjelma sisältää värillisten pallojen lajittelun ja pitämisen vastaavassa väriruudussa. Laatikko on kiinteässä asennossa ja servomoottoria käytetään lajittelijan käden siirtämiseen pallon pitämiseksi kyseisessä laatikossa.
Tarvittavat komponentit
- Arduino UNO
- TCS3200 -värianturi
- Servomoottorit
- Neulepuserot
- Leipälauta
Kuinka tehdä alustan väriä lajittelevalle robottivarrelle
Kokoonpanon tekemiseen, mukaan lukien runko, varsi, rulla, tyyny, olemme käyttäneet valkoista 2 mm paksua aurinkolevyä. Se on helposti saatavilla kiinteissä liikkeissä. Olemme käyttäneet paperileikkuria Sunboard Sheetin leikkaamiseen ja FlexKwik tai FeviKwik eri osien liittämiseen.
Seuraavassa on joitain vaiheita värin lajitteluvarren rakentamiseksi:
1) Ota Sunboard Sheet.
2) Leikkaa aurinkolevy palasiksi, kun olet mitannut kaikki sivut mittakaavalla ja merkinnällä kuvan osoittamalla tavalla.
3) Pidä nyt kahta aurinkolautakappaletta yhdessä ja kaada siihen tippa FeviKwik kiinnittääksesi palat yhteen. Liitä palat edelleen seuraamalla kuvaa.
4) Kun kaikki kappaleet on yhdistetty toisiinsa, tämä värilajittelukone näyttää tältä:
TCS3200 -värianturi
TCS3200 on värianturi, joka tunnistaa minkä tahansa määrän värejä oikealla ohjelmoinnilla. TCS3200 sisältää RGB (punainen vihreä sininen) taulukot. Kuten kuvassa näkyy mikroskooppisella tasolla, voidaan nähdä neliön muotoiset laatikot silmän sisällä anturissa. Nämä neliölaatikot ovat RGB-matriisiryhmiä. Jokainen näistä laatikoista sisältää kolme anturia, yksi on PUNAISEN valon voimakkuuden, toinen VIHREÄN valon voimakkuuden, ja viimeinen sinisen valon voimakkuuden,
Kukin näiden kolmen ryhmän anturiryhmistä valitaan erikseen vaatimuksesta riippuen. Siksi se tunnetaan nimellä ohjelmoitava anturi. Moduuli voidaan käyttää tunnistamaan tietty väri ja jättämään muut. Se sisältää suodattimia valintaa varten. On neljäs tila, jota kutsutaan ' ei suodatintilaa', jossa anturi havaitsee valkoisen valon.
Arduino Color Sorter -piirikaavio
Tämän Arduino Color Sorterin piirikaavio on melko helppo tehdä eikä vaadi paljon yhteyksiä. Kaavio on esitetty alla.
Tämä on piirilaji värilajittelukoneen asennuksen takana:
Arduino Unon ohjelmointi värikkäiden pallojen lajittelua varten
Arduino UNO: n ohjelmointi on melko yksinkertainen ja vaatii yksinkertaisen logiikan värilajittelun vaiheiden yksinkertaistamiseksi. Täydellinen ohjelma esittelyvideolla annetaan lopussa.
Koska servomoottoria käytetään, servokirjasto on olennainen osa ohjelmaa. Tässä käytetään kahta servomoottoria. Ensimmäinen servo siirtää pallot alkuperäisestä asennosta TCS3200 ilmaisimen asentoon ja sitten siirtyä lajittelu asentoon, jossa pallo pudotetaan. Lajitteluasentoon siirtymisen jälkeen toinen servo pudottaa pallon käsivarteensa haluttuun värikauhaan. Katso koko työskentely lopussa annetusta videosta.
Ensimmäinen vaihe on kaikki kirjaston sisällyttäminen ja määritellä servomuuttujat.
#sisältää
TCS3200-värianturi voi toimia ilman kirjastoa, koska värin määrittämiseen tarvitaan vain lukutaajuus anturin tapista. Joten määritä vain TCS3200: n pin-numerot.
#define S0 4 #define S1 5 #define S2 7 #define S3 6 #define sensorOut 8 int taajuus = 0; int väri = 0;
Tee valitut nastat ulostulona, koska tämä tekee värivalodiodista korkean tai matalan ja ottaa tuloksi TCS3200: n Out-nastan. OUT-nasta tarjoaa taajuuden. Valitse aluksi taajuuden skaalaus arvoksi 20%.
pinMode (S0, OUTPUT); pinMode (S1, OUTPUT); pinMode (S2, OUTPUT); pinMode (S3, OUTPUT); pinMode (sensorOut, INPUT); digitalWrite (S0, LOW); digitalWrite (S1, HIGH);
Servomoottorit on kytketty Arduinon napoihin 9 ja 10. Pickup servo joka pickup väri pallot on liitetty Pin 9 ja pudota servo joka laskee, väri pallot värin mukaan on liitetty Pin10.
pickServo.attach (9); dropServo.attach (10);
Aluksi pick-servomoottori asetetaan alkuasentoon, joka tässä tapauksessa on 115 astetta. Se voi vaihdella ja voidaan räätälöidä vastaavasti. Moottori siirtyy jonkin viiveen jälkeen ilmaisinalueelle ja odottaa havaitsemista.
pickServo.write (115); viive (600); for (int i = 115; i> 65; i--) { pickServo.write (i); viive (2); } viive (500);
TCS 3200 lukee värin ja antaa kytkentätaajuutta Out Pin.
väri = detectColor (); viive (1000);
Havaitusta väristä riippuen pudotusservomoottori liikkuu tietyllä kulmalla ja pudottaa väripallon vastaavaan laatikkoonsa.
kytkin (väri) { tapaus 1: dropServo.write (50); tauko; tapaus 2: dropServo.write (80); tauko; tapaus 3: dropServo.write (110); tauko; tapaus 4: dropServo.write (140); tauko; tapaus 5: dropServo.write (170); tauko; tapaus 0: tauko; } viive (500);
Servomoottori palaa alkuasentoon seuraavaa palloa varten.
for (int i = 65; i> 29; i--) { pickServo.write (i); viive (2); } viive (300); for (int i = 29; i <115; i ++) { pickServo.write (i); viive (2); }
Toimintoa detektoidaVäri () käytetään taajuuden mittaamiseen ja verrataan väritaajuutta väriä koskevan päätelmän tekemiseksi. Tulos tulostetaan sarjamonitorille. Sitten se palauttaa väri-arvon tapauksille, joilla siirretään pudotusservomoottorin kulmaa.
int detectColor () {
Kirjoittaminen S2: een ja S3: een (LOW, LOW) aktivoi punaiset valodiodit ottamaan punaisen väritiheyden lukemat.
digitalWrite (S2, LOW); digitalWrite (S3, LOW); taajuus = pulssi (sensorOut, LOW); int R = taajuus; Sarja.tulos ("Punainen ="); Serial.print (taajuus); // RED- väritaajuuden tulostaminen Serial.print (""); viive (50);
Kirjoittaminen S2: een ja S3: een (LOW, HIGH) aktivoi siniset valodiodit ottamaan sinisen väritiheyden lukemat.
digitalWrite (S2, LOW); digitalWrite (S3, HIGH); taajuus = pulssi (sensorOut, LOW); int B = taajuus; Sarjaprintti ("Sininen ="); Sarjaprintti (taajuus); Sarja.println ("");
Kirjoittaminen S2: een ja S3: een (HIGH, HIGH) aktivoi vihreät valodiodit ottamaan lukemat vihreän värin tiheydelle.
digitalWrite (S2, HIGH); digitalWrite (S3, HIGH); // Lähtötaajuuden taajuuden lukeminen = pulseIn (sensorOut, LOW); int G = taajuus; Sarjaprintti ("Vihreä ="); Sarjaprintti (taajuus); Sarjaprintti (""); viive (50);
Sitten arvoja verrataan väripäätöksen tekemiseksi. Luvut ovat erilaiset kokeellisessa asennuksessa, koska havaitsemisetäisyys vaihtelee kaikille asetusta tehdessä.
jos (R <22 & R> 20 & G <29 & G> 27) { väri = 1; // Red Serial.print ("Havaittu väri on ="); Serial.println ("PUNAINEN"); } if (G <25 & G> 22 & B <22 & B> 19) { väri = 2; // Oranssi sarja.println ("oranssi"); } if (R <21 & R> 20 & G <28 & G> 25) { väri = 3; // Green Serial.print ("Havaittu väri on ="); Sarja.println ("VIHREÄ"); } if (R <38 & R> 24 & G <44 & G> 30) { väri = 4; // Yellow Serial.print ("Havaittu väri on ="); Serial.println ("KELTAINEN"); } jos (G <29 & G> 27 & B <22 & B> 19) { väri = 5; // Blue Serial.print ("Havaittu väri on ="); Serial.println ("SININEN"); } paluu väri; }
Tämä viimeistelee värilajittelukoneen TCS3200: lla ja Arduino UNO: lla. Voit myös ohjelmoida sen tunnistamaan lisää värejä tarvittaessa. Jos sinulla on epäilyksiä tai sinulla on ehdotuksia, kirjoita foorumillemme tai kommentoi alla. Tarkista myös alla oleva video.