Operácie

Acrob043: Rozdiel medzi revíziami

Z SensorWiki

Riadok 1: Riadok 1:
== Software for Color Sensors ==
+
= Software for Color Sensors =
 +
 
 +
== Basic demonstration ==
 +
 
 +
* TCS230 sensor: [http://ap.urpi.fei.stuba.sk/sscim/TCS230Demo01.bs2  BASIC Stamp II code]
 +
* ColorPAL sensor [http://ap.urpi.fei.stuba.sk/sscim/ColorPalDemo01.ino Arduino code]
  
  
Riadok 6: Riadok 11:
 
Following Arduino code works with an original Parallax (or PhiPi) ColorDemo.exe program available at
 
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
 
the following address: http://www.parallax.com/Portals/0/Downloads/docs/prod/sens/ColorPAL_programs.zip
 +
 +
* TCS230 sensor: [http://ap.urpi.fei.stuba.sk/sscim/TCS230Demo02.bs2  BASIC Stamp II code]
 +
* ColorPAL sensor [http://ap.urpi.fei.stuba.sk/sscim/ColorPalDemo02.ino Arduino code]
  
 
[[Obrázok:ColorMatchDemoExe.png|center]]
 
[[Obrázok:ColorMatchDemoExe.png|center]]
  
<source lang="c">
 
/*====================================================
 
/ 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>
 
 
SoftwareSerial ColorPAL(2, 3); // rx = 2, tx = 3
 
 
int red, grn, blu;
 
 
int gotcolor = 0;
 
int letter;
 
 
char colorByte[9];
 
 
void setup(){
 
 
  // for colordemo 9600,
 
Serial.begin(9600); // Start communication with serial port read value
 
ColorPAL.begin(4800); // Send signal to led to read value
 
 
pinMode(2,INPUT); // serial pin out from color pal
 
pinMode(3,INPUT); // from same serial pin, signal pulls up, sends, pulls down, reads
 
digitalWrite(2,HIGH); // Enable the pull-up resistor
 
digitalWrite(3,HIGH); // Enable the pull-up resistor
 
 
pinMode(2,OUTPUT); // send signal out
 
pinMode(3,OUTPUT);
 
digitalWrite(2,LOW); // turn pin off so pin 3 can go high
 
digitalWrite(3,LOW);
 
 
pinMode(2,INPUT); // Input signal to print
 
pinMode(3,INPUT);
 
 
delay(20);
 
 
while( digitalRead(2) != HIGH || digitalRead(3) != HIGH ) {
 
delay(50);
 
}
 
 
 
pinMode(2,OUTPUT);
 
pinMode(3,OUTPUT);
 
digitalWrite(2,LOW);
 
digitalWrite(3,LOW);
 
delay(100); // spec is 80, but not all ColorPAL units work with 80
 
 
pinMode(2,INPUT);
 
pinMode(3,OUTPUT);
 
delay(100);
 
 
 
  delay(20);
 
  ColorPAL.begin(4800);
 
  ColorPAL.print("= (00 $ m) !"); // set up loop to continuously send color data
 
  pinMode(3,INPUT);
 
 
 
}
 
 
// This oscillates back and forth on one wire to turn off led, send signal,
 
// turn on led, read signal. very fast strobe read - arduino is not capable of
 
// one wire signal communication over digital ports, so this is a way around
 
// that over 2 wires communicating with 1 pin on the sensor.
 
//---------------------------------
 
 
void loop()
 
{
 
 
  readColor();
 
  gotcolor = 0;
 
  delay(100);
 
 
}  /* End of loop()  */
 
 
 
/* ***************************************** */
 
/* Function readColor()                      */
 
/* Reads ColorPAL, putting results in the    */
 
/*      red, grn, blu variables            */
 
/* ***************************************** */
 
void readColor()
 
{
 
  char rByte[9];
 
  char dummy[4];
 
 
//  delay(20);
 
//  ColorPAL.begin(4800);
 
//  ColorPAL.print("= (00 $ m) !"); // set up loop to continuously send color data
 
  
  pinMode(3,INPUT);
+
== Processing software ==
  gotcolor = 0;
 
  while (gotcolor == 0)
 
  {
 
    rByte[0] = ColorPAL.read();
 
    if( rByte[0] == '$' )
 
      {
 
      gotcolor = 1;
 
      for (int i=0; i<9; i++)
 
          {
 
          rByte[i] = ColorPAL.read();
 
          }
 
  
    Serial.print("R0");
+
* TCS230 sensor: [http://ap.urpi.fei.stuba.sk/sscim/TCS230Demo03.bs2  BASIC Stamp II code]
    Serial.print(rByte[0]);
+
* ColorPAL sensor [http://ap.urpi.fei.stuba.sk/sscim/ColorPalDemo03.ino Arduino code]
    Serial.print(rByte[1]);
 
    Serial.print(rByte[2]);
 
    Serial.print(" G0");
 
    Serial.print(rByte[3]);
 
    Serial.print(rByte[4]);
 
    Serial.print(rByte[5]);
 
    Serial.print(" B0");
 
    Serial.print(rByte[6]);
 
    Serial.print(rByte[7]);
 
    Serial.print(rByte[8]);
 
    Serial.println();   
 
  
    }
+
[[Obrázok:ColorProcessingDemo.png|center]]
  }
 
}  /* End of function readColor() */
 
</source>
 

Verzia zo dňa a času 09:37, 20. marec 2013

Software for Color Sensors

Basic demonstration


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

ColorMatchDemoExe.png


Processing software

ColorProcessingDemo.png