Paso 2: creación de prototipos
Tomando el concepto de ohoilette, he identificado que quería un aro de baloncesto que tenían una puntuación visible aparece, controlado por un Arduino y accionados por un sensor de distancia centrado en la red.
Reducción los segmentos LED individualmente asignados a un cuádruple pantalla alfanumérica con una mochila de IC2 de Adafruit hizo la codificación más fácil y parecía más que nada que quiero hacer desde cero. Realmente quería usar una baratija en lugar del Micro, pero no pude conseguir mi dibujo lo suficientemente pequeño como para caber en el Abalorio. Cueste lo que cueste, reducción al Micro hizo la posibilidad de colocar todo en un protoboard tamaño medio una realidad. Casi fui con el sensor de distancia ultrasónico hasta que vi el Sharp sensor digital de mi lista de piezas. Es mucho más pequeño y obtiene el trabajo básico de manera eficiente de detección de movimiento.
Creé el protoboard esquema arriba con Fritzing, pero aquí son las conexiones que utilizan:
- Arduino
- 5V > riel de 5v
- Tierra > carril de tierra
- A0 > sensor de distancia (hacia fuera)
- 2/SDA > alfa SDA
- 3/SCL > alfa SCL
- Sensor de la pantalla
- A > adruino A0
- VIN > riel de 5v
- Tierra > carril de tierra
- Pantalla alfanumérica
- Vi2C > riel de 5v
- VCC > riel de 5v
- Tierra > carril de tierra
- SDA > adrunio 2/SDA
- SCL > adruino 3/SCL
Código, he creado un entero llamado Score que siempre se muestra en la pantalla alfa. Cada vez que se dispara el sensor de distancia, 1 se agrega a la cuenta número entero, actualizando así la partitura en la pantalla. Aquí está el bosquejo:
//include libraries#include #include "Adafruit_LEDBackpack.h" #include "Adafruit_GFX.h" //create Adafruit Alphanumeric Display object Adafruit_AlphaNum4 alpha4 = Adafruit_AlphaNum4(); //define integer int score = 0; void setup() { //set sensor pin to INPUT pinMode(A0, INPUT); //set BAUD rate Serial.begin(9600); //start display alpha4.begin(0x70); //write zeros to all positions alpha4.writeDigitAscii(0, '0'); alpha4.writeDigitAscii(1, '0'); alpha4.writeDigitAscii(2, '0'); alpha4.writeDigitAscii(3, '0'); //display newly written values alpha4.writeDisplay();} void loop() { //add 1 to the score if sensor voltage is LOW if (analogRead(A0) < 200) { score++; //write score to display data alpha4.writeDigitAscii(3, (score%10) + '0'); alpha4.writeDigitAscii(2, (score%100/10) + '0'); alpha4.writeDigitAscii(1, (score%1000/100) + '0'); alpha4.writeDigitAscii(0, (score/1000) + '0'); //push display data to display alpha4.writeDisplay(); //wait 1.5 sec to eliminate phantom reads delay(1500); }}
Después de todo lo que probado correctamente, había soldado los componentes para un tablero de tamaño medio para montaje en tablero.