| Animation d'une remise | |
|
|
Auteur | Message |
---|
Fantasio Membre
Age : 64 Localisation : Saint Médard en Jalles (33) Nombre de messages : 2367 Date d'inscription : 15/11/2019
| Sujet: Animation d'une remise Jeu 13 Mai 2021 - 18:48 | |
| Tout part de là: L'annexe de SoiFran et d'une proposition d'animation pour sa remise. En complément de Bruno83, j'envisagerai bien une simulation de soudure à l'arc au fond de ta remise qui se déclencherait quand une machine s'approche d'un heurtoir...
En cherchant un peu sur le net- en particulier l'excellent site Locoduino- et de me creuser un peu la tête voici le résultat: L'animation que j'envisage est double, tout d'abord un éclairage du bâtiment fonction de son occupation ou non, et complétée par une simulation de soudure à l'arc. La chronologie des évènements -remise vide: L'éclairage est éteint et la soudure à l'arc ne fonctionne pas. -une machine rentre dans la remise: L'éclairage s'allume, au bout de quelques secondes la soudure à l'arc fonctionne, ces deux animations continuent tant que la remise est occupée. -la machine quitte la remise: L'éclairage et la soudure à l'arc s'arrêtent. Matériels Le cœur du système est un microprocesseur ATtiny85, sur les 5 E/S disponibles j'en utilise 4. Bien évidemment une carte Uno ou Nano peuvent le remplacer. Pour détecter les machines dans la remise j'ai recours à un capteur infrarouge. Une bande de LEDs pour l'éclairage ainsi qu'une LED blanche 3mm pour la soudure à l'arc. Vue du montage Précisions nécessaires: La détection se faisant par coupure du faisceau IR, il faut transformer le capteur qui fonctionne par reflection en barrière IR. Cela nécessite de sortir l'émetteur et le récepteur du capteur et de les positionner en vis à vis. Attention de bien repérer les pattes!. L' ATtiny ne peut que délivrer 40mA par sortie, si la consommation des LEDs est inférieure à cette valeur elles peuvent être câblées en parallèle directement sur la sortie, dans le cas contraire utiliser par exemple un Transistor BS170 pour les commander. Maintenant voici le code: Je me suis inspiré de celui de Christian sur le site Locoduino. - Code:
-
/* attiny detection remise2 13/05/2021 Fantasio ATtiny85 8MHz Capteur détection IR modifié en barrière IR lien: https://www.vs-elec.fr/fr/lumiere/281-ir-infrarouge-capteur-evitement-obstacles-cellule-photoelectrique-3665662005397.html
Ce programme se base sur le code proposé par Christian sur le site Locoduino lien: https://www.locoduino.org/spip.php?article191 Duree_flash est la durée d'un flash. Duree_int est la durée entre deux flashes. Duree_flash et Duree_int forment un événement. Nbre_even est le nombre d'événements au cours d'un cycle de soudure P_repos est la durée entre deux cycles de soudure.
Toutes ces données sont aléatoires mais bornées entre une valeur minimum et une valeur maximum. En jouant sur l'intervalle, on peut simuler au mieux l'effet de soudure à l'arc. Led est la broche sur laquelle la LED est connectée L'emetteur et le récepteur du capteur IR sont positionnés l'un face à l'autre perpendiculairement aux voies. Si la remise est vide, son écalirage est éteint et la soudure à l'arc est à l'arrêt. Si une machine rentre dans la remise quelque soit la voie, elle coupe le faisceau lumineux, la remise s'éclaire et après un retard la soudure à l'arc débute.
Brochage Attiny85 =|1 U 8|= +5V Capteur 3 =|2 7|= 2 random 4 =|3 6|= 1 AllumeRemise GND =|4 5|= 0 Led */
//constantes const byte Led = 13; // la sortie qui commande la Led const byte Capteur = 4; // reliée à la sortie du capteur IR const byte AllumeRemise = 1; // commande de l'éclairage de la remise const int TempoRetard = 5000; // temporisation en ms avant de lancer la soudure à l'arc
//variables long Duree_flash; long Duree_flash_mini = 10; long Duree_flash_maxi = 101; long Duree_int; long Duree_int_mini = 10; long Duree_int_maxi = 31; long Nbre_even; long Nbre_even_mini = 10; long Nbre_even_maxi = 21; long P_repos ; long P_repos_mini = 1500; long P_repos_maxi = 7001; long i; boolean retard;
void setup () { randomSeed (analogRead (2)); pinMode(Capteur, INPUT_PULLUP);// pinMode(Led, OUTPUT); pinMode(AllumeRemise, OUTPUT);// éclairage de la remise retard = true; }
void loop () { int etatCapteur = digitalRead(Capteur); // lecture du niveau logique présent sur la pin if (etatCapteur) { // si présence d'une machine digitalWrite (AllumeRemise, HIGH); // éclairage de la remise if (retard) { delay(TempoRetard); retard = false; } soudure(); // lancement de la soudure à l'arc après un retard } else { digitalWrite (AllumeRemise, LOW); // remise éteinte digitalWrite (Led, LOW); // pas de soudure retard = true; } }
void soudure() { Nbre_even = random (Nbre_even_mini, Nbre_even_maxi); for (i = 1; i <= Nbre_even; i++) { Duree_flash = random (Duree_flash_mini, Duree_flash_maxi); Duree_int = random (Duree_int_mini, Duree_int_maxi); digitalWrite (Led, HIGH); delay (Duree_flash); digitalWrite (Led, LOW); delay (Duree_int); } P_repos = random (P_repos_mini, P_repos_maxi); delay (P_repos); }
Amusez vous bien |
|
| |
rvmer52 Membre
Age : 72 Localisation : 29 Roscanvel Nombre de messages : 605 Date d'inscription : 15/11/2011
| Sujet: Re: Animation d'une remise Jeu 13 Mai 2021 - 19:56 | |
| Sympa comme idée mais j'ai deux demandes :
La photo est super mais comment tous cela est-il connecté ? Peux tu faire un schéma pour les nuls comme moi !!!!
Y aurait-il la possibilité de mettre du son ? RV |
|
| |
Fantasio Membre
Age : 64 Localisation : Saint Médard en Jalles (33) Nombre de messages : 2367 Date d'inscription : 15/11/2019
| Sujet: Re: Animation d'une remise Jeu 13 Mai 2021 - 21:09 | |
| Pour le son c'est possible, mais il ne faudra pas être trop exigeant: La solution serait de brancher entre la broche 3 et la masse de l'ATtiny un petit haut parleur de 8 ohms avec en série une résistance de 100 ohms. Après il est nécessaire de modifier le code de la façon suivante: -à la fin du bloc constantes, rajouter - Code:
-
const byte HP = 4; -à la fin du bloc Setup, rajouter - Code:
-
pinMode(HP, OUTPUT); -rajouter à la suite des lignes - Code:
-
digitalWrite(Led,LOW); la ligne suivante: - Code:
-
digitalWrite(HP,LOW); Enfin à la suite de la ligne - Code:
-
digitalWrite(Led,HIGH); la ligne suivante: - Code:
-
digitalWrite(HP,HIGH); Et voilà pour le son |
|
| |
Fantasio Membre
Age : 64 Localisation : Saint Médard en Jalles (33) Nombre de messages : 2367 Date d'inscription : 15/11/2019
| Sujet: Re: Animation d'une remise Jeu 13 Mai 2021 - 21:25 | |
| - rvmer52 a écrit:
- ...
La photo est super mais comment tous cela est-il connecté ? Peux tu faire un schéma pour les nuls comme moi !!!! Je n'avais pas prévu de faire un schéma. je te demande un peu de patience... |
|
| |
Fantasio Membre
Age : 64 Localisation : Saint Médard en Jalles (33) Nombre de messages : 2367 Date d'inscription : 15/11/2019
| Sujet: Re: Animation d'une remise Jeu 13 Mai 2021 - 22:38 | |
| J'ai mis à jour le code en prenant en compte le HP et une erreur dans le branchement de la sortie du capteur. - Code:
-
/* attiny detection remise2 13/05/2021 Fantasio ATtiny85 8MHz Capteur détection IR modifié en barrière IR lien: https://www.vs-elec.fr/fr/lumiere/281-ir-infrarouge-capteur-evitement-obstacles-cellule-photoelectrique-3665662005397.html
Ce programme se base sur le code proposé par Christian sur le site Locoduino lien: https://www.locoduino.org/spip.php?article191 Duree_flash est la durée d'un flash. Duree_int est la durée entre deux flashes. Duree_flash et Duree_int forment un événement. Nbre_even est le nombre d'événements au cours d'un cycle de soudure P_repos est la durée entre deux cycles de soudure.
Toutes ces données sont aléatoires mais bornées entre une valeur minimum et une valeur maximum. En jouant sur l'intervalle, on peut simuler au mieux l'effet de soudure à l'arc. Led est la broche sur laquelle la LED est connectée L'emetteur et le récepteur du capteur IR sont positionnés l'un face à l'autre perpendiculairement aux voies. Si la remise est vide, son écalirage est éteint et la soudure à l'arc est à l'arrêt. Si une machine rentre dans la remise quelque soit la voie, elle coupe le faisceau lumineux, la remise s'éclaire et après un retard la soudure à l'arc débute.
Brochage Attiny85 =|1 U 8|= +5V HP 3 =|2 7|= A1 random Capteur 4 =|3 6|= 1 AllumeRemise GND =|4 5|= 0 Led */
//constantes const byte Led = 13; // la sortie qui commande la Led const byte Capteur = 4; // reliée à la sortie du capteur IR const byte AllumeRemise = 1; // commande de l'éclairage de la remise const byte HP = 3; // sortie HP const int TempoRetard = 5000; // temporisation en ms avant de lancer la soudure à l'arc
//variables long Duree_flash; long Duree_flash_mini = 10; long Duree_flash_maxi = 101; long Duree_int; long Duree_int_mini = 10; long Duree_int_maxi = 31; long Nbre_even; long Nbre_even_mini = 10; long Nbre_even_maxi = 21; long P_repos ; long P_repos_mini = 1500; long P_repos_maxi = 7001; long i; boolean retard;
void setup () { randomSeed (analogRead (A1)); pinMode(Capteur, INPUT_PULLUP);// pinMode(Led, OUTPUT); pinMode(AllumeRemise, OUTPUT);// éclairage de la remise pinMode(HP, OUTPUT); retard = true; }
void loop () { int etatCapteur = digitalRead(Capteur); // lecture du niveau logique présent sur la pin if (etatCapteur) { // si présence d'une machine digitalWrite (AllumeRemise, HIGH); // éclairage de la remise if (retard) { delay(TempoRetard); retard = false; } soudure(); // lancement de la soudure à l'arc après un retard } else { digitalWrite (AllumeRemise, LOW); // remise éteinte digitalWrite (Led, LOW); // pas de soudure digitalWrite (HP, LOW); // pas de son retard = true; } }
void soudure() { Nbre_even = random (Nbre_even_mini, Nbre_even_maxi); for (i = 1; i <= Nbre_even; i++) { Duree_flash = random (Duree_flash_mini, Duree_flash_maxi); Duree_int = random (Duree_int_mini, Duree_int_maxi); digitalWrite (Led, HIGH); digitalWrite (HP, HIGH); delay (Duree_flash); digitalWrite (Led, LOW); digitalWrite (HP, LOW); delay (Duree_int); } P_repos = random (P_repos_mini, P_repos_maxi); delay (P_repos); }
|
|
| |
rvmer52 Membre
Age : 72 Localisation : 29 Roscanvel Nombre de messages : 605 Date d'inscription : 15/11/2011
| Sujet: Re: Animation d'une remise Jeu 13 Mai 2021 - 23:02 | |
| OK Merci .... |
|
| |
SoiFran Membre
Age : 58 Localisation : Toulouse Nombre de messages : 4025 Date d'inscription : 13/06/2008
| Sujet: Re: Animation d'une remise Sam 15 Mai 2021 - 6:02 | |
| Merci Fantasio de t'être ainsi penché sur l'animation de ma petite annexe. L'idée est très sympa. Je n'envisageais pas , dans un premier temps, d'éclairage quel qu'il soit pour mon réseau. Que ce soit l'annexe, comme Laroque de l'autre côté. Peut-être au fil du temps y viendrai-je ? Quoi qu'il en soit, encore un grand merci à toi . Je vois que tu maîtrises bien Arduino, à l'inverse de moi qui suis ignare dans ce domaine. |
|
| |
Fantasio Membre
Age : 64 Localisation : Saint Médard en Jalles (33) Nombre de messages : 2367 Date d'inscription : 15/11/2019
| Sujet: Re: Animation d'une remise Sam 15 Mai 2021 - 14:12 | |
| C'est moi qui te remercie car ton annexe m'a motivé ...
L'Arduino n'est qu'un outil que j'utilise pour créer des animations sur les réseaux, surtout des animations lumineuses -éclairage de bâtiments- mais pas que...) Je me considère sans fausse modestie comme débutant en Arduino et ma grande chance c'est que d'autres qui maitrisent parfaitement le sujet, partagent leur savoir sur le net. Il suffit de s'en inspirer.
Bonne continuation à toi |
|
| |
Fantasio Membre
Age : 64 Localisation : Saint Médard en Jalles (33) Nombre de messages : 2367 Date d'inscription : 15/11/2019
| Sujet: Re: Animation d'une remise Ven 21 Mai 2021 - 18:29 | |
| - rvmer52 a écrit:
- Sympa comme idée mais j'ai deux demandes :
La photo est super mais comment tous cela est-il connecté ? Peux tu faire un schéma pour les nuls comme moi !!!!
Y aurait-il la possibilité de mettre du son ? RV @rvmer52 Comme tu le souhaitais voici le schéma de l'animation remise. J'ai rajouté le haut-parleur. J'espère que cela pourra te convenir. Pour info, j'ai utilisé comme logiciel de dessin SDS version 3.2 de Bruno Urbani. |
|
| |
rvmer52 Membre
Age : 72 Localisation : 29 Roscanvel Nombre de messages : 605 Date d'inscription : 15/11/2011
| Sujet: Re: Animation d'une remise Ven 21 Mai 2021 - 19:12 | |
| Bonjour Fantasio Au nom des Nuls UN GRAND MERCI !!!! RV |
|
| |
Fantasio Membre
Age : 64 Localisation : Saint Médard en Jalles (33) Nombre de messages : 2367 Date d'inscription : 15/11/2019
| Sujet: Re: Animation d'une remise Ven 21 Mai 2021 - 19:24 | |
| De rien! Ta demande était légitime et c'est normal de s'entraider. Le plus difficile pour moi c'était en fait de retrouver un logiciel pour faire ce schéma. Bonne continuation |
|
| |
Contenu sponsorisé
| Sujet: Re: Animation d'une remise | |
| |
|
| |
| Animation d'une remise | |
|