Système Technique Simple - BA3:John Curez
Contents
Pixeleate
Note d'intention artistique
Le pixel est a la base une unité de mesure numérique, mais elle est maintenant detournée avec le pixel art et autre. En utilisant cette matrice a led, je refais du pixel art mais sans l'utilisation d'écran. Il n'est pas encore physique comme dans mon projet, c'est un hybride entre mon projet personnel et le pixel comme on le connais. Je veux montré au spectateur que le pixel peut etre partout, même en dehors de l'écran, et que grace a ces pixel, il est possible de generer ce que l'on veut, soit controllé par l'homme, ou en laissant l'ordinateur faire.
De plus, en contre partie de la programmation, il est possible de changer l'ordre des chose juste en intervertissant les cables rouge, bleu ou vert et modifier la façon de faire.
Synthèse technique détaillant la mise en oeuvre du dispositif technique choisi
- 1 Arduino Uno;
- 1 matrice RGB CILE 2088RGB-5;
- 4 Shift Register 74HC595N;
- Environ 70 câbles mâle-mâle;
Fritzing
Arduino
int SER_Pin = 8; //pin 14 on the 75HC595 int RCLK_Pin = 9; //pin 12 on the 75HC595 int SRCLK_Pin = 10; //pin 11 on the 75HC595 //Nombre de shift register #define number_of_74hc595s 4 //ON TOUCHE PAS #define numOfRegisterPins number_of_74hc595s * 8 boolean registers[numOfRegisterPins]; void setup() { pinMode(SER_Pin, OUTPUT); pinMode(RCLK_Pin, OUTPUT); pinMode(SRCLK_Pin, OUTPUT); //reset all register pins clearRegisters(); writeRegisters(); } //set all register pins to LOW void clearRegisters() { for (int i = numOfRegisterPins - 1; i >= 0; i--) { registers[i] = LOW; } } //Set and display registers //Only call AFTER all values are set how you would like (slow otherwise) void writeRegisters() { digitalWrite(RCLK_Pin, LOW); for (int i = numOfRegisterPins - 1; i >= 0; i--) { digitalWrite(SRCLK_Pin, LOW); int val = registers[i]; digitalWrite(SER_Pin, val); digitalWrite(SRCLK_Pin, HIGH); } digitalWrite(RCLK_Pin, HIGH); } //set an individual pin HIGH or LOW void setRegisterPin(int index, int value) { registers[index] = value; } void loop() { //On passe toute les pin à l'état OFF ( LOW pour les anodes et en HIGH pour les pin de couleurs for (int i = 0; i < 8; i++) setRegisterPin(i, LOW); for (int i = 8; i < 32 ; i++) setRegisterPin(i, HIGH); setRegisterPin(7, LOW); delay(100); writeRegisters(); //Carré bleu evolutif for (int j = 0; j <= 3; j++) { for (int i = 3 - j; i < 5 + j; i++) setRegisterPin(i, HIGH); for (int i = 27 - j; i < 29 + j ; i++)setRegisterPin(i, LOW); writeRegisters(); delay(100); } //Transfert vers le vert for (int j = 0; j <= 3; j++) { for (int i = 27 - j; i < 29 + j ; i++)setRegisterPin(i, HIGH); for (int i = 11 - j; i < 13 + j ; i++)setRegisterPin(i, LOW); writeRegisters(); delay(100); } //Bleu et rouge rencontre for (int i = 16; i < 23; i++) { setRegisterPin(i, LOW); setRegisterPin(i + 8, LOW); writeRegisters(); delay(100); } //Bleu et rouge separation for (int i = 23; i > 15; i--) { setRegisterPin(i, HIGH); setRegisterPin(i + 8, HIGH); writeRegisters(); delay(100); } //Eteinte des led for (int i = 7; i > -1; i--) { setRegisterPin(i, LOW); writeRegisters(); delay(100); } //Passage en aléatoire for (int ale = 0; ale < 50; ale++) { for (int i = 0; i < 8; i++) setRegisterPin(i, LOW); for (int i = 8; i < 32 ; i++) setRegisterPin(i, HIGH); for (int i = 0; i < 3; i++) setRegisterPin(random(0, 7), HIGH); for (int i = 0; i < 20 ; i++) setRegisterPin(random(8, 31), LOW); writeRegisters(); delay(100); } }