La porte de la cabine du St Gilles

Publié le par le Moujo

Projet d'animation "ParéALaManoeuvre.ino

Voici ce que j'ai imaginé pour le remorqueur Saint Gilles :

Le remorqueur est en approche d'un autre navire ou d’un obstacle, il klaxonne 2 fois puis le pont s'allume, une porte de la cabine s'ouvre, un homme en sort, lève son porte-voix et crie "parés à la manœuvre". Puis il rentre dans la cabine et ferme la porte. Bon voilà, mais ça c’est facile à dire. Dans les faits ça me semble plutot compliqué.

Il faut faire une séquence :

Le capteur audio détecte un signal audio ou un capteur infrarouge détecte un obstacle. La carte programmée interpréte le signal, déclenche la corne, allume le pont. Ensuite elle commande le servo1 pour ouvrir la porte et le bonhomme sort (par une tringlerie fixée à la porte), ensuite le servo2 fait lever son bras et une sortie numérique provoque la lecture d’un fichier audio. A la fin de la lecture le servo2 baisse le bras, le 1 referme la porte. Le tout avec temporisation car les événements ne doivent pas être simultanés.

6 fonctions + la remise à 0 des servos.

J'utiliserais une carte At85 + carte son ou Nano +shield SD . Je suis plutot novice en programmation Arduino, j'ai donc fait un petit shéma de principe avec le fichier de programmation qui me servira de base de travail. Si vous avez des suggestions, des idées, je suis preneur  …

Synoptique du projet

 

Finalement ça s'annonce pas mal, après quelques recherches sur le net, j'ai trouvé le fichier de programmation qui va servir de base à mon projet. Il s'agit de "SeveralThingsAtTheSameTime.ino" trouvé sur le forum Arduino, une expansion du sketch BlinkWithoutDelay, Il faudra bien sûr le modifier. (amplement), mais je vois à peu près comment faire.

  • 1, détection sonore,  le pont s'allume. Un capteur audio en entrée sur At85, 1 LED en sortie.
  • ou 2, en alternative, si un capteur infrarouge détecte un mouvement, le pont s'allume.  
  • 3, ouverture de la porte par un servo
  • 4, le capitaine sort de la cabine. Il me faut un simple bout de cuivre coudé relié à la porte.
  • 5, le capitaine lève le bras, il a un portevoix à la main. servo2 au dessus de la porte.
  • 6, le capitaine donne un ordre grace au circuit d'une carte d'anniversaire modifiée, 1 petit ampli, le LM186 et un haut-parleur.
  • quand l'animation est terminée le capitaine baisse le bras, rentre dans la cabine, la porte se ferme et la led s'éteint.

Le plus délicat  va être de compiler tous ces sketchs pour qu'ils n'en fassent qu'un. De plus pour fonctionner avec l'AT85 il ne doit pas excéder 8Kg-octets de stockage et 2Kg de Ram

Fonction

Moyen

Programmation

1 & 2-repérage d'un obstacle ou d'un son et le pont s'allume

1 capteur audio en entrée         1 capteur Pir en entrée            2 Led en série

Etapes1-2.Ino       Résolu

2-la sirène se déclenche (éventuellement)

Mp3 file + SDcard + Nano + ampli + HP

 SD library            Résolu

3- la porte s'ouvre

servo1

SoftwareServo1

4-un type sort

servo1

   "   "    "

5- le type lève le bras

servo2

SoftwareServo2

6- lecture du fichier audio sur SDcard  de " Paré à la manœuvre ! »

carte son + HP ou Mp3 file + SDcardShield + Nano + ampli + HP

SD library ?? TouchSwitch ??

7- le type baisse le bras

servo2  refresh

SoftwareServo2

8- le type rentre dans la cabine et la porte se referme  - Le pont s'éteint

                   servo1 refresh         If (millis==x) digitalwrite(Led 0)

SoftwareServo1

 

 

 

1 le capteur de son

Description:

  • Détecte l'intensité de l'environnement sonore selon le principe de la vibration ou d'une fréquence particulière du son, il ne reconnaît pas le volume du son.
  • Potentiomètre numérique réglable de sensibilité pour ajuster (bleu). Vf 3.3-5V
  • Sortie de commutation numérique (0 et 1). Dimensions : 3.2 cmx1.7 cm

Quand le module dans l'intensité de l'environnement sonore ne peut pas atteindre le seuil défini, DO sortira le niveau haut, quand l'intensité du son de l'environnement extérieur est plus que définie, le module sortira le niveau bas;

J'utilise Arduino UNO pour faire les essais. Brancher la sortie numérique Dout du capteur sur le microcontrôleur (D0)

Le sketch
// Le but de ce montage est de détecter s’il y a présence de son / bruit on non. Si on détecte un bruit on allume une LED.
//====================================================================
/*
  Ce montage se basera sur le câblage suivant :
  capteur → Digital 0
 LED (Anode)-> Digital 1(cathode→ R 330 -> GND Arduino)
 5V (Arduino) → +5V (capteur)
  GND (Arduino) → GND (capteur)
================= constantes ========================*/
const int capteur =0;// pin connecté à la sortie digital du capteur
const int LED =1;// pin connecté à la LED + resistance
//================ setup (définition des entrées/sorties)==============
void setup()
{
   pinMode(capteur, INPUT);
   pinMode(LED, OUTPUT);
}
//===== la boucle, s'execute encore et encore tant qu'il y a un signal audio ===
void loop()
{
if(digitalRead(capteur)== HIGH)
   {
   digitalWrite(LED, HIGH);// Allumer la LED
   delay(10);// Temps de traitement
   }
else
   {
   digitalWrite(LED, LOW);// Eteindre la LED
   delay(1000); // Temps de traitement 1seconde
   }
}
//================ fin du sketch ========================

 

La porte de la cabine du St Gilles

Pas satisfaisant, il faut crier à 1 mètre du micro, même avec le potar à fond, pour que la Led s'allume. Je vais devoir ajouter un ampli op, le LM 741 par exemple pour amplifier le signal.

Voyons à présent l'étape n°2, l'ouverture mécanique de la porte

Peut-on mettre un servo dans la cabine ?

Dans la cabine...
Dans la cabine...

Dans la cabine...

Le plan de travail...
Le plan de travail...
Le plan de travail...

Le plan de travail...

J'ai résolu les 2 premières étapes, à savoir le capteur son en entrée et le capteur infrarouge en entrée. (Merci aux explications du blog d'Eskimon)

Voici le sketch

//Programme du capteur de son et du capteur PIR
// Le but de ce montage est de détecter s’il y a présence de son ou de mouvement. Si on détecte un bruit on allume une LED et elle reste allumée tant que, plus tard, je mettrais la fonction millis.
//Le croquis utilise 900 octets (2%) de l'espace de stockage de programmes.
//Les variables globales utilisent 9 octets (0%) de mémoire dynamique, ce qui laisse 2039 octets pour les variables locales.
//====================================================================
/* Principe du montage :
  capteur audio → Digital 0 (RX)
  capteur PIR -> Digital 2
 LED (Anode)-> Digital 1(cathode→ R 330 -> GND Arduino)
 Alim externe → +5V (les 2capteurs)
  GND (Arduino) → GND alim capteurs) */
//=========================== constantes ============================
const int capteur_son = 0;// pin connecté à la sortie d0 du capteur audio
const int buttonPin = 2; // broche du capteur PIR
int buttonState = 0; // etat de la sortie du capteur PIR
const int LED =1; // pin connecté à la LED + resistance
//================ setup (définition des entrées/sorties)==========================
void setup()
{
  pinMode(capteur_son, INPUT);// la broche du capteur son est mise en entrée
  pinMode(buttonPin, INPUT); //la broche du capteur PIR est mise en entrée
  pinMode(LED, OUTPUT); // la LED est mise en sortie
}
//=========== boucle, s'execute encore et encore... ===========================
void loop()
{
  while(digitalRead(capteur_son)== HIGH); // tant que capteur audio capte un son
 {
  digitalWrite(LED, HIGH); //on allume la LED
 }
while(digitalRead(buttonPin == HIGH));//  tant que quelquechose est détecté avec PIR
{
  digitalWrite(LED, HIGH); //on allume la LED
}   }

//============= fin du sketch =====================================

A suivre...

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article