Étape 2: prototypage
Prenant le concept d’ohoilette, j’ai identifié que je voulais un panier de basket qui avait un score visible affichée, contrôlée par un Arduino et déclenché par un capteur de distance axé sur le net.
Révision à la baisse les segments LED individuellement mappés à un affichage alphanumérique quad avec un sac à dos de IC2 d’Adafruit fait le codage plus facile et semblait plus forte que tout ce que je ferais à partir de zéro. Je voulais vraiment utiliser un bijou au lieu de la Micro, mais je ne pouvais pas obtenir mon esquisse assez petit pour tenir sur le bijou. Peu importe, réduction des effectifs à la Micro fait la possibilité de montage dans une maquette de taille moitié d’une réalité. Je suis allé presque avec le capteur de distance à ultrasons jusqu'à ce que j’ai vu le capteur numérique Sharp figurant dans ma liste de pièces. Il est beaucoup plus petit et fait le travail de base de détection de mouvement fait efficacement.
J’ai créé le montage d’essai schématique ci-dessus avec Fritzing, mais voici les liens que j’ai utilisé :
- Arduino
- 5V > rail 5v
- GND > rail GND
- A0 > capteur de distance (sort)
- 2/SDA > alpha SDA
- 3/SCL > alpha SCL
- Affichage capteur
- SORTIR > adruino A0
- VIN > rail 5v
- GND > rail GND
- Affichage alphanumérique
- Vi2C > rail 5v
- SCR > rail 5v
- GND > rail GND
- SDA > adrunio 2/SDA
- SCL > adruino 3/SCL
Descend, j’ai créé un entier appelé Score qui est toujours affichée sur l’afficheur alpha. Chaque fois que le capteur de distance se déclenche, 1 est ajouté au nombre entier, ainsi mise à jour de la partition à l’écran. Voici le croquis :
//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); }}
Après que tout cela testé correctement, j’ai soudé les composants d’une maquette de taille moitié pour le montage sur le panneau.