Triedenie lentiliek: Rozdiel medzi revíziami
Zo stránky SensorWiki
Riadok 53: | Riadok 53: | ||
Schematic diagram: | Schematic diagram: | ||
[[Obrázok: | [[Obrázok:Parallax_ColorPAL_Schematic3.png]] | ||
Demo program: | Demo program: | ||
<source lang=" | <tabs> | ||
<tab name="Arduino Demo"><source lang="cpp"> | |||
#include <ColorPAL.h> /* Kniznica pre pracu so senzorom */ | |||
# | #define SW1 6 /* Ak chceme meranie ovladat tlacitkom */ | ||
#define LED1 13 /* LEDka na doske */ | |||
ColorPAL sensor; /* Vytvori instanciu senzora */ | |||
int red; /* Premenne na jednotlive farby */ | |||
int grn; | |||
int blu; | |||
</source> | char buffer[20]; /* Docasny buffer na textovy retazec */ | ||
void setup() | |||
{ | |||
pinMode(SW1,INPUT_PULLUP); | |||
pinMode(LED1,OUTPUT); | |||
sensor.attachPAL(10); /* Senzor je pripojeny na D10 */ | |||
Serial.begin(9600); /* Rychlost seriovej linky 9600Bd */ | |||
} | |||
void loop() | |||
{ | |||
red = sensor.redPAL(); // Reads sensors and returns red value | |||
grn = sensor.greenPAL(); // Reads sensors and returns green value | |||
blu = sensor.bluePAL(); // Reads sensors and returns blue value | |||
buffer[19] = '\0'; | |||
buffer[18] = '\0'; | |||
// Tu si pripravime retazec na odvysielanie | |||
// v tvare R0000 G0000 B0000 <CR> | |||
sprintf(buffer, "R%4.4d G%4.4d B%4.4d\015", red, grn, blu); | |||
Serial.println(buffer); // A tu ho odvysielame | |||
delay(100); // 10 merani za sekundu nam staci | |||
} | |||
</source></tab> | |||
</tabs> | |||
If the program works correctly, it will send to the serial port (115 200 Bd) following data: | If the program works correctly, it will send to the serial port (115 200 Bd) following data: | ||
Riadok 77: | Riadok 118: | ||
R34 39 G126 84 B46 57 | R34 39 G126 84 B46 57 | ||
Green | Green | ||
== Demo software == | == Demo software == |
Verzia z 07:32, 26. marec 2023
Lentilky sú obvykle čokoládové alebo ovocné cukríky v tvare šošovky (franc. lentille, angl. lentil) s rôznofarebnoou cukrovou krustou na povrchu. V Česku ich vyrábala firma Sfinx Holešov už od roku 1907 (konkurenčné M&M's sa vyrábajú až od r. 1941). Unikátny výrobný proces českých lentiliek trvá viac ako osem hodín. Firma Sfinx sa v roku 1992 stala súčasťou koncernu Nestlé, čo žiaľ znamenalo aj koniec Lentiliek, pretože od apríla 2021 prevzala výrobu továreň v Hamburgu a to jednak z ekologických dôvodov, ako aj z dôvodu „harmonizácie“ (= zjednotenie receptúry) so značkou Smarties.
Na toto cvičenie si musíte zaobstarať niektoré z týchto cukríkov:
Knižnica ColorPAL
Postup inštalácie (ak ešte nie je na počítači knižnica nainštalovaná):
1. Choďte na nižsieuvedenú stránku, kliknite na zelené tlačítko Code (vpravo hore), z rozbaľovacieho menu si vyberte Download ZIP...
https://github.com/westpoint-robotics/ColorPAL
2. Po nahratí rozbaľte ColorPAL-master.zip a vyberte folder ColorPAL (bez prípony '-master'). Presu+nte ho do adresára
C:\Users\USername\Documents\Arduino\libraries
3. Reštartujte Arduino IDE a knižnica by mala byť pridaná.
Color sensor
Ak chceme aj zobrazenie na displeji, pozri LCD displej
Senzorov na snímanie farieb je viacero, my sa budeme zaoberať snímačom ColorPAL.
- Pozri aj ďalšie Senzory na rozpoznávanie farieb
Parallax ColorPAL module contains TAOS TSL12T photodiode with integrated Q/U converter.
Following text will show You a basic connection and operation of the Parallax ColorPal digital colour sensor module.
Product page: #28380 ColorPAL
- Documentation (.pdf)
- Chip datasheet (.pdf)
Schematic diagram:
Demo program:
#include <ColorPAL.h> /* Kniznica pre pracu so senzorom */
#define SW1 6 /* Ak chceme meranie ovladat tlacitkom */
#define LED1 13 /* LEDka na doske */
ColorPAL sensor; /* Vytvori instanciu senzora */
int red; /* Premenne na jednotlive farby */
int grn;
int blu;
char buffer[20]; /* Docasny buffer na textovy retazec */
void setup()
{
pinMode(SW1,INPUT_PULLUP);
pinMode(LED1,OUTPUT);
sensor.attachPAL(10); /* Senzor je pripojeny na D10 */
Serial.begin(9600); /* Rychlost seriovej linky 9600Bd */
}
void loop()
{
red = sensor.redPAL(); // Reads sensors and returns red value
grn = sensor.greenPAL(); // Reads sensors and returns green value
blu = sensor.bluePAL(); // Reads sensors and returns blue value
buffer[19] = '\0';
buffer[18] = '\0';
// Tu si pripravime retazec na odvysielanie
// v tvare R0000 G0000 B0000 <CR>
sprintf(buffer, "R%4.4d G%4.4d B%4.4d\015", red, grn, blu);
Serial.println(buffer); // A tu ho odvysielame
delay(100); // 10 merani za sekundu nam staci
}
If the program works correctly, it will send to the serial port (115 200 Bd) following data:
R27 32 G106 71 B40 50 Green R37 41 G134 89 B50 61 Green R34 39 G126 84 B46 57 Green
Demo software
Following Arduino code works with an original Parallax (or PhiPi) ColorDemo.exe program available at the following address: http://www.parallax.com/Portals/0/Downloads/docs/prod/sens/ColorPAL_programs.zip
/*====================================================
/ Connect ColorPAL SIG signal to Arduino pin 2 and 3
/ Baud Rate = 9600 kbps
/ Works with Arduino 0.20, not with 1.00 and above?
/====================================================*/
#include <SoftwareSerial.h>
} /* End of function readColor() */
Snímač farby ColorPAL
- Vypracovali:
- Bc. Tamás Vincze
- Bc. Adam Rozsár
- Študijný odbor: Aplikovaná mechatronika
- Ročník: 2.Ing
Literatúra:
- Product Page (parallax.com)
- Datasheet
- Sensor datasheet
Snímač a generátor farby ColorPAL
Vlastnosti
- Sníma celý rozsah farieb o ktorých dáva informáciu vo forme RGB (Red/Green/Blue) komponentov.
- Sníma spektrum okolitého osvetlenia s citlivosťou až 44uW/cm2 na lsb.
- Generuje 24 bitové farby pomocou vstavaného RGB LED.
- Možnosť pripojenia priamo na skúšobnú dosku alebo pomocou predlžovacích káblov.
- Na detekciu a generovanie farby využíva sériovú komunikáciu cez jeden pin.
- Detekcia a generovanie farieb je riadené pomocou vstavaného mikrokontrolera.
- Disponuje vstavanou EEPROM pamäťou pre uloženie snímaných informácií a generačných programov.
- Autorun funkcia umožňuje spustenie vopred určeného programu iba použitím napájania.
Princíp činnosti
ColorPAL používa RGB LED na osvetlenie meranej farby (jedna farba naraz), spolu so široko spektrovým prevodníkom svetlo-napätie na meranie odrazeného svetla. Podľa množstva svetla ktoré sa odráža od meranej farby pri osvetlení od červenej, zelenej a modrej LED diódy je možné určiť farbu vzorky. ColorPAL používa sveteľný senzor TAOS typu TSL13T, ktorý má krivku spektrálnej citlivosťi nasledovný:
- Obr. 1: Krivka spektrálnej citlivosti prevodníka svetlo-napätie
Prevodník je kombináciou fotodiódy a transimpedančného zosilňovača v jednom integrovanom obvode. Aktívna plocha fotodiódy je 0.5 mm x 0.5 mm a senzor vníma žiarenie s vlnovou dĺžkou v rozsahu od 320 nm do 1050 nm.Výstupné napätie sa mení lineárne s intenzitou dopadajúceho žiarenia.
- Obr. 2: Funkčná schéma zapojenie prevodníka
- Obr. 3: Pohľad z hora prevodníka
Výstupom snímača je napätie, úmerné celého žiarenia ktoré detekuje a ktoré sú potom merané podľa hore uvedenej krivky spektrálnej citlivosti. Keď predmet je osvetlený iba červenou LED, tak snímač bude reagovať s napätím úmerným červenej zložky z farby predmetu a podobne s modrou a zelenou. Snímač a RGB LED diódy sú umiestnené vedľa seba v jednej plastickej trubice.
Použitie
Senzor používa 3 piny: regulované +5V napájanie, zem a sériový dátový pin s otvoreným kolektorom. Pri práci sme snímač napojili na skúšobnú dosku podľa Obr. 2. Museli sme dávať pozor, aby bol jumper vhodne nastavený, na Vdd a nie na Vin.
- Obr. 4: Schéma zapojenia snímača ColorPAL
Programovanie
Komunikácia s ColorPAL-om je realizovaná cez sériovú linku, prijímanie a odosielanie medzi 2400 a 7200 baudom. ColorPAL má v sebe zabudovaný pullup rezistor, preto nie je potrebné používať externý. Pretože používa open-drain protokol, pin ktorý sa používa na komunikáciu s ColorPAL-om by mal byť vždy nastavený ako vstupný, okrem prípadu keď je v stave 0. Pri inicializovaní snímača musíme čakať aby ColorPAL dal tento pin do jednotky predtým než začneme posielať príkazy.
Snímač môže pracovať v rôznych režimoch:
- Priamy režim: príkazy sú prijímané a vykonávané ihneď
- Bufferovací režim: príkazy sú prijímané a uložené do buffera pre použitie v budúcnosti
- Vykonávací režim: príkazy, ktoré sú uložené do EEPROM pamäte, sa vykonajú
Snímač vieme resetovať tromi rôznymi spôsobmi:
- Powerup: pri prvom zapnutí ColorPAL začne vykonávať príkazy, ktoré sú uložené vo vnútornej pamäti EEPROM na adrese 00. Pri novom, ešte neprogramovanom snímači tento program prejde do priameho módu.
- Short Break: 7 milisekundová logická 0 resetuje snímač a začne sa vykonávať Powerup.
- Long Break: 80< milisekundová logická 0 resetuje snímač a vstúpi do Priameho módu.