Système de retour de bille – Partie 2

Bonjour à tous. Ces derniers jours, je me suis lancé dans une tâche assez nouvelle pour moi (depuis les cours de techno de 6ème en tous cas) : la soudure ! Et avec ça, beaucoup de choses ont avancé.

L’Arduino Due

J’ai remplacé l’Arduino Uno que j’utilisais jusqu’ici par un clone de l’Arduino Due (remplaçant de l’Arduino Mega). Il a plus de connecteurs, ce qui me laisse le temps de voir venir. Vous pouvez lire l’article dédié au Due.

J’ai soudé (et c’est moche) !

J’ai cherché des solutions pour faire quelque chose de propre question circuit, mais soit c’est cher, soit il faut du matériel que je n’ai pas en confinement… En réalité, c’est surtout par flemme et parce que je n’ai pas encore décidé de ce que la partie haute du plateau contiendra.

Pour compenser, j’essaye de ranger le dessous du plateau avec des petites impressions 3D fort efficaces.

J’ai testé (et là ça roxe du poney) !

Et c’est là où je m’étonne moi-même : ça fonctionne ! Dans le jeu, lorsque qu’une bille est perdue, elle est détectée par la photorésistance et elle est renvoyée dans l’injecteur. Ce dernier la détecte à son tour et la remet en jeu. Voyez plutôt :

Les photos résistances fonctionnent !

Et voici le code de test :

int pinSolenoid0 = 8;
int pinSolenoid1 = 11;
int pinPhoto0 = 0;
int pinPhoto1 = 1;
int photocellReading0;
int photocellReading1;

void setup()
{
  // Init Serial
  Serial.begin(9600);
  while(!Serial); // Waiting for serial...
  Serial.println("Starting...");  

  // Set pin mode
  pinMode(pinSolenoid0, OUTPUT);
  pinMode(pinSolenoid1, OUTPUT);
}

void loop()
{
  Serial.println("Sequence");  

  // Read photo
  Serial.print("Photo 0: ");
  photocellReading0 = analogRead(pinPhoto0);
  Serial.println(photocellReading0);
  
  Serial.print("Photo 1: ");
  photocellReading1 = analogRead(pinPhoto1);
  Serial.println(photocellReading1);

  if (photocellReading0 < 300)
  {
    digitalWrite(pinSolenoid0, HIGH);
    delay(100);
    digitalWrite(pinSolenoid0, LOW);
  }
  else
  {
    digitalWrite(pinSolenoid0, LOW);
  }

  if (photocellReading1 < 300)
  {
    digitalWrite(pinSolenoid1, HIGH);
    delay(100);
    digitalWrite(pinSolenoid1, LOW);
  }
  else
  {
    digitalWrite(pinSolenoid1, LOW);
  }
  delay(10);
}

Une nouvelle grande étape de franchie puisque ça signifie que je peux connecter les composants à peu prés comme je le veux ! je vais pouvoir revenir sur les flippers (qui sont sans doute l’élément le plus important du plateau). A très vite !

Laisser un commentaire