Paso 3: Arduino lado - Software
Destaco las partes más interesantes de las cuatro secciones de lo sketch de Arduino:
1• llamada de bibliotecas
#incluye < Wire.h > #include "I2C_RGBC_Reader.h"
2• definición de variables y constantes
MyRGBC_Reader de I2C_RGBC_Reader ;
3• el procedimiento setup() lanza el lector de color y la calibración estándar de llama
myRGBC_Reader.begin ();
myRGBC_Reader.standard ();
Se establece la dirección I2C y calibración estándar se envían en el sensor de color.
4• el procedimiento loop() incluye dos partes fundamentales: una función de memorise() aprende los colores
Serial.println ("0..3 aprender");
Serial.Print ("> color objeto required\n");
mientras (!. Serial.Available());
myRGBC_Reader.memorise ((comando - 0 x 30));
y una función getRGBC() lee el cilindro mientras que una función de recognise() identifica el color.
myRGBC_Reader.getRGBC (r, g, b, c);
myRGBC_Reader.recognise (n, p);
Reconocimiento es base de cálculo de distancia: más cercano al color memorizado de color leer está seleccionada. También se proporciona un índice de proximidad: debe ser menor que 100%, si el color devuelto confianza es baja.
N color entonces es codificado en 2 bits y enviado a TX-C.
• caso no = 0 ningún objeto i1 = i2 0 = 0
• caso = 1 color azul i1 = i2 0 = 1
• caso = 2 color rojo i1 = 1 i2 = 0
• caso = 3 color blanco i1 = 1 i2 = 1
Si (n == 0) {}
digitalWrite (out1pin, bajo);
digitalWrite (out2pin, bajo);
}
else if (n == 1) {}
digitalWrite (out1pin, bajo);
digitalWrite (out2pin, HIGH);
}
else if (n == 2) {}
digitalWrite (out1pin, HIGH);
digitalWrite (out2pin, bajo);
}
else if (n == 3) {}
digitalWrite (out1pin, HIGH);
digitalWrite (out2pin, HIGH);
}
Else {}
digitalWrite (out1pin, bajo);
digitalWrite (out2pin, bajo);
}