Arduino ou comment s'en passer par transfert

Toutes les discussions sur l'Arduino !

Modérateur : MOD

Répondre
Avatar du membre
HDE5962
Fécond
Messages : 535
Enregistré le : mar. 20 août 2013, 10:03
Echelle pratiquée : H0, H0e
Prénom : Hubert
Club : LOCODUINO
Localisation : Malakoff par obligation et Schti par naissance
Âge : 57
Contact :

Re: Arduino ou comment s'en passer par transfert

Message par HDE5962 » dim. 02 févr. 2014, 12:46

Non Christian, j'ai bien dis que l'on pouvait utiliser la broche 1 du RESET pour faire une sortie mais ce n'est pas évident et le problème reste que le RESET disparait et on ne peut plus reprogrammer le microcontrôleur sans revenir au paramètre sortie d'usine et cette manip est beaucoup plus difficile.

D'ailleurs les schémas postés montrent bien cette possibilité. Mais comme Classe66240, je n'ai pas réussi à la déclarer en entrée sortie sans erreur lors du transfert et donc comme lui je creuse mais je n'ai pas envie de flinguer un microcontrôleur pour cela. je veux être sur de pouvoir revenir en arrière, alors doucement j'avance.

Cousin Hub
Le train de la vie file.

Avatar du membre
Arduino
Prolixe
Messages : 1701
Enregistré le : mer. 25 sept. 2013, 17:14

Re: Arduino ou comment s'en passer par transfert

Message par Arduino » dim. 02 févr. 2014, 18:32

Je suis en train de creuser l'affaire également ; le chip a le P.O.R (Power On Reset), donc il est toujours possible de le reseter par un ON/OFF pour faire repartir le programme au départ. Reste à savoir comment utiliser la broche à partir du langage Arduino, car en assembleur, il suffit d'aller écrire dans le registre qui va bien. Dans ce cas, est-ce ou non une opération définitive, ou peut-on revenir en arrière ?

As-tu étudié le forum du site Arduino ? Sinon, il me semble que Pierre59 a l'air de connaitre assez bien les microcontrôleurs AVR ; peut-être pourrions-nous lui poser la question. :?:

Avatar du membre
Class66240
Bavard
Messages : 67
Enregistré le : sam. 03 oct. 2009, 01:13
Localisation : Paris
Âge : 65

Re: Arduino ou comment s'en passer par transfert

Message par Class66240 » dim. 02 févr. 2014, 18:56

Bonsoir,
pour alimenter notre recherche, voila ce que j'ai compris :
Il est possible de désactiver le RESET en agissant sur la valeur RSTDISBL à mettre à 1 (paramètre inclus dans les 3 octets des "fuses"). (J'ai "visionné" le contenu du fichier .hex compilé par l'arduino pour l'ATtiny45 avec le pgm WinPic800 et afficher ainsi les 3 "fuses" et vérifier que le RESET était "enabled" : valeur du bit à 0.
Mais dans ce cas, la reprogrammation de l'ATtiny45 doit se faire en mode "high voltage serial", ce qui implique de disposer d'un programmateur pour AVR qui dispose de cette fonction.
Extrait de la datasheet :
Port B, Bit 5 – RESET/dW/ADC0/PCINT5
• RESET: External Reset input is active low and enabled by unprogramming (“1”) the RSTDISBL Fuse. Pullup is activated and output driver and digital input are deactivated when the pin is used as the RESET pin.
After this fuse has been programmed device can be programmed via high-voltage serial mode, only.
Image
A+
Fichiers joints
RSTDISBL.JPG
RSTDISBL.JPG (53.54 Kio) Vu 2224 fois
Réseau N - MS Minitrix

Avatar du membre
Arduino
Prolixe
Messages : 1701
Enregistré le : mer. 25 sept. 2013, 17:14

Re: Arduino ou comment s'en passer par transfert

Message par Arduino » dim. 02 févr. 2014, 19:34

Ce que tu as trouvé est intéressant et correspond d'ailleurs à la réponse donnée par Pierre59 (sur un autre forum) ainsi que ce que disait Hubert. La broche est donc récupérable, mais cette opération ne permet pas de revenir en arrière ; elle est donc à réserver à une application bien précise et à éviter absolument si on veut réutiliser le µC pour autre chose. :cry:

En faisant mes recherches, j'ai voulu comparer à ce qui se passe avec le µC ATMega 328 qui constitue le cœur d'un module Arduino Uno. C'est le même cas, la broche RESET est PC6 et n'est utilisée que pour cela. Le port D alimente les sorties D0 à D7, le port C (de 0 à 5) alimente les sorties A0 à A5, et le port B (de 0 à 5) alimente les sorties D8 à D13. Mais où sont passées PB6 et PB7 ? Utilisées pour le quartz XTAL1 et XTAL2 ! :geek:

Les choix qui ont été faits par les concepteurs d'Arduino nous privent de quelques ressources, mais nous permettent d'avoir un module de microélectronique facilement programmable. A partir du moment où on veut se passer d'Arduino, c'est à nous de faire nos propres choix, ce qui se résume par "avons-nous vraiment besoin de telle ressource ou bien gardons-nous la possibilité d'une broche RESET ?" :roll:

Je ne pensais pas que la manip était aussi compliquée (en référence aux µC PIC) ; Hubert avait donc bien raison :wink:

Avatar du membre
Arduino
Prolixe
Messages : 1701
Enregistré le : mer. 25 sept. 2013, 17:14

Re: Arduino ou comment s'en passer par transfert

Message par Arduino » dim. 02 févr. 2014, 20:09

Voici ce que j'ai également trouvé sur le forum du site Arduino, en français :

Utilisation pin RST en pin Digital ?

Bonjour,

J'utilise une arduino nano et j'aimerais savoir si il est possible d'utiliser le pin RST comme un pin digital ?

Merci pour vos réponses.

Re: Utilisation pin RST en pin Digital ?

Bonjour,

Réponse courte : Oui MAIS ce n'est pas une bonne idée.

Réponse longue : sur les AVR tu peut désactiver la broche RESET pour gagner une broche en plus.
MAIS sans reset plus de programmation possible, à moins d'avoir un programmateur HVSP ce qui n'est pas courant.
A toi de peser le pour et le contre, personnellement je te déconseille fortement de désactiver la broche RST.

>>>>>>>>

Finalement, la réponse était sur ce site. Pourquoi Diable n'ai-je pas commencé par cela ? :diable:

Avatar du membre
Djpierre
Papotier
Messages : 135
Enregistré le : sam. 02 juin 2007, 18:48
Localisation : Vaucluse
Âge : 62

Re: Arduino ou comment s'en passer par transfert

Message par Djpierre » dim. 02 févr. 2014, 22:42

Bonsoir,
Il y a ceci pour rescaper la plupart des AVR
HV Rescue Shield
@+
Cordialement
JP

Avatar du membre
Arduino
Prolixe
Messages : 1701
Enregistré le : mer. 25 sept. 2013, 17:14

Re: Arduino ou comment s'en passer par transfert

Message par Arduino » lun. 03 févr. 2014, 17:05

Bonjour Djpierre,

Un grand merci pour cette information qui pourra intéresser ceux qui veulent développer une application très particulière, et qui peuvent alors avoir besoin d'un programmateur High Voltage.

Avatar du membre
Class66240
Bavard
Messages : 67
Enregistré le : sam. 03 oct. 2009, 01:13
Localisation : Paris
Âge : 65

Re: Arduino ou comment s'en passer par transfert

Message par Class66240 » lun. 03 févr. 2014, 17:31

Bonjour Christian,
Arduino a écrit :Pour ce qui est de la sonorisation, tu montes un haut-parleur de 8 ohms via une résistance de 100 ohms (comme indiqué sur le site Arduino pour le programme tone il me semble, programme donné dans les exemples). Ensuite, il y a quatre lignes de programme à rajouter, comme je l'ai dit dans le forum.
Grâce à tes conseils éclairés, j'ai trouvé l'ensemble des infos "sons"... et t'en remercie. Je viens de terminer l'essai avec un HP de 4 ohms (de chez ESU) que j'avais sous la main, ainsi qu'un piezo. Après avoir cherché pendant une heure pourquoi le montage son ne fonctionnait pas, je me suis rendu compte que j'avais omis l'instruction digitalWrite (Broche_HP, HIGH); :oops: Bon ça fonctionne mieux avec. Deux constats : le son est très faible tant avec le HP qu'avec le piezo. J'ai suivi le conseil de virer la 100 ohms pour la remplacer par une capa (j'ai mis 10 uF), mais ça ne change pas le niveau sonore ... arfff De plus le son ressemble plus à un grésillement, qu'à un son d'arc électrique... Je pensais que le son que tu proposais s'appuyait sur différentes notes et faisait appel à l'instruction "tone" (j'ai trouvé dans l'aide "tone" de quoi faire le fichier pitches.h qui est une "nomenclature" des sons). Je vais creuser cette piste...
A moins que quelqu'un ait écrit un convertisseur de fichier sons .wav en code "arduino" ???? :siffle: Allez on peut bien rêver...
Enfin pour la pin RESET des Attiny, il y a le fournisseur du programmateur USB-GTplus (avec WinPic800) qui propose son module qui prévoit le HVSP (High Voltage Serial Programming). LE HV Rescue shield a l'air très bien mais le coût du transport double le prix !!!
Bonne soirée à tous... A+
Réseau N - MS Minitrix

Avatar du membre
Arduino
Prolixe
Messages : 1701
Enregistré le : mer. 25 sept. 2013, 17:14

Re: Arduino ou comment s'en passer par transfert

Message par Arduino » lun. 03 févr. 2014, 17:55

Bonjour class66240,

Effectivement, le son ressemble à un grésillement, mais après tout, le son de la soudure à arc est aussi un grésillement, celui produit par l'arc (étincelle) qui dilate l'air et produit un petit claquement (comme la foudre mais en beaucoup moins puissant). Pour reproduire le vrai son, je ne vois pas comment faire sauf à l'enregistrer. Dans ce cas, on l'enregistre sous forme de fichier wave ou bien mp3 car il existe des shields qui permettent de lire ce type de fichier avec Arduino :D

Concernant la puissance du son, si tu retires la résistance, il est déjà un peu plus puissant, mais je te le déconseille. En effet, il ne faudrait pas que le haut-parleur (qui ne fait que quelques ohms) pompe un courant dépassant les limites d'Arduino ; à la longue, le module risquerait d'être abimé. :( Je pense que ce n'est pas pour rien si le site Arduino publie un montage de haut-parleur avec une résistance de 100 ohms. :roll: La solution, à mon avis, est donc d'amplifier le son avec un transistor et comme ce son n'en est pas un, mais un petit claquement, le transistor travaillera en commutation en non en amplification, donc ne chauffera pas. :wink:

Mais la qualité sonore sera toujours la même : une suite de petits claquements. Du son Hi Fi sur un réseau est-il vraiment nécessaire ? Pour ma part, je trouve que cette sonorisation de soudure à arc est déjà pas si mal. :)

Avatar du membre
jlb
Fécond
Messages : 694
Enregistré le : jeu. 04 oct. 2012, 16:38
Echelle pratiquée : N
Prénom : Jean-Luc
Site Internet : http://modelleisenbahn.triskell.org

Re: Arduino ou comment s'en passer par transfert

Message par jlb » lun. 03 févr. 2014, 18:02

Bonjour,

Il existe une petite carte avec un ampli 2x2,8W faite par Adafruit : http://www.adafruit.com/products/1552

Et pour produire du son, il faut un convertisseur numérique analogique.

Avatar du membre
HDE5962
Fécond
Messages : 535
Enregistré le : mar. 20 août 2013, 10:03
Echelle pratiquée : H0, H0e
Prénom : Hubert
Club : LOCODUINO
Localisation : Malakoff par obligation et Schti par naissance
Âge : 57
Contact :

Re: Arduino ou comment s'en passer par transfert

Message par HDE5962 » lun. 03 févr. 2014, 23:36

Cher camarade Arduino et Classe66240,

Je vous livre mon petit code de mon programme de soudure à arc. :coeur2:
J'ai intégré le son par un piezo sans ajouter quoique ce soit.

Pour moi le résultat est tout à fait correct.

On croirait vraiment entendre un poste à soudure dans un atelier. :applause:
#define Blanche 3
#define Bleu 6
#define soudure 4

#define Arc 150000

typedef void (*fonction)();
fonction effet[] = {Feu_eteint, Feu_soudure, Feu_eteint, Feu_bleu, Feu_eteint};
 
void setup()
{
  pinMode(Blanche, OUTPUT);
  pinMode(Bleu, OUTPUT);
  randomSeed(analogRead(A0));
  Feu_eteint();
}
 
void loop()
{
  effet[random(4)]();
  temps_aleatoire(random(50, 100));
}
 
void Feu_eteint()
{
  analogWrite(Blanche, 0);
  analogWrite(Bleu, 0);
  noTone(soudure);
  delay(1000);
}
 
void Feu_soudure()
{
  for(byte i = 0; i <random(100,200); i++)
  {
    analogWrite(Blanche, random(255));
    analogWrite(Bleu, 0);
    tone(soudure,Arc);
    delay(random(200));
    noTone(soudure);
  }
}
 
void Feu_bleu()
{
  for(byte i = 0; i <random(1,10); i++)
  {
    analogWrite(Blanche, random(255));
    analogWrite(Bleu, random(60));
    tone(soudure,Arc);
    delay(random(200));
    noTone(soudure);
  }
}

void temps_aleatoire(byte stabilite)
{
  unsigned int horloge = analogRead(A0);
  horloge = horloge * (stabilite + 1) / random(horloge % stabilite, horloge * (stabilite + 1));
  delay(horloge);
}
En ce qui concerne le matos
une led Blanche HD,
une led Bleu HD,
un piezo HPE-120,
2 R 220 Ohm pour les leds.

Banchement :
led Blanche sortie PWM 3
Led Bleu sortie PWM 5
Piezo directement sortie 4 (surtout pas PWM sinon changement de ton) :gne:

les 3 masses sur la même sortie GND

Certe le son est bas mais il est pour moi plus vraisemblable, peut être avec un piezo plus puissant mais je n'ai pas dans mes composants.

Dires moi ce que vous en pensez.

Cousin Hub
Le train de la vie file.

Avatar du membre
Djpierre
Papotier
Messages : 135
Enregistré le : sam. 02 juin 2007, 18:48
Localisation : Vaucluse
Âge : 62

Re: Arduino ou comment s'en passer par transfert

Message par Djpierre » mar. 04 févr. 2014, 11:47

Bonjour,
Ce n'est pas concluant chez moi pour les LED, je n'ai pas de LED blanche, mais avec une jaune, et une bleue, j'ai très peu d'allumage, alors que le son y est (faible, mais plus proche pour le bruit).
En farfouillant sur le net j'ai trouvé ceci:
http://www.indiegogo.com/projects/ardui ... s-the-book.

Je n'ai pas essayé, mais l'exemple de branchement N°4 représente un mini ampli assez simple.

PS: J'ai réédité pour un schéma plus net
@+
Cordialement
JP

Avatar du membre
HDE5962
Fécond
Messages : 535
Enregistré le : mar. 20 août 2013, 10:03
Echelle pratiquée : H0, H0e
Prénom : Hubert
Club : LOCODUINO
Localisation : Malakoff par obligation et Schti par naissance
Âge : 57
Contact :

Re: Arduino ou comment s'en passer par transfert

Message par HDE5962 » mar. 04 févr. 2014, 12:18

Djpierre a écrit :Bonjour,
Ce n'est pas concluant chez moi pour les LED, je n'ai pas de LED blanche, mais avec une jaune, et une bleue, j'ai très peu d'allumage, alors que le son y est (faible, mais plus proche pour le bruit).
En farfouillant sur le net j'ai trouvé ceci:
http://www.indiegogo.com/projects/ardui ... s-the-book.

Je n'ai pas essayé, mais l'exemple de branchement N°4 représente un mini ampli assez simple.

PS: J'ai réédité pour un schéma plus net
effectivement si tu ne prends pas de led Haute Densité, tu n'auras pas l'effet escomptée. moi j'ai fabriqué en plus un tunnel de lumière avec le carton d'un rouleau de toilette dans lequel j'ai découpé une grande fenêtre et inserer un morceau de papier sulfurisé pour faire un tunnel de lumière et orienté le faisceau de lumière pour un meilleur rendu.

j'ai fais un film dans le noir complet et je suis satisfait du montage.

il n'y a pas besoin de résistance sur le piezo vu qu'il est branché sur un port de l'Arduino et qu'il ne recevra jamais plus de 5V,encore plus sur un Attiny 85, on pourra éventuellement prévoir un reducteur de tension genre 7805 pour éviter le survoltage.
j'ai inséré quand même lors d'un test une résistance de 220 Ohms et je n'ai pas constaté de changement dans le son.

En revanche, j'ai beaucoup joué avec la fréquence et la modulation pour en arriver à cette définition de la variable Arc et sincérement je crois que 150000 est la meilleure.
J'ai cassé les oreilles de ma compagne et de mon beau-fils qui étaient devant la télé dans le salon en recherchant la bonne modulation toute la soirée. :siffle:

ton lien est interessant et je me le garde pour plus tard. :coeur2:

Cousin Hub
Le train de la vie file.

Avatar du membre
Djpierre
Papotier
Messages : 135
Enregistré le : sam. 02 juin 2007, 18:48
Localisation : Vaucluse
Âge : 62

Re: Arduino ou comment s'en passer par transfert

Message par Djpierre » mar. 04 févr. 2014, 13:39

Tu as bien du t'amuser en effet :D .
Une petite vidéo serait bien sympa, si tu en as l'occasion :siffle: .
Je n'ai pas de LED haute luminosité en stock, encore une chose à noter pour une prochaine commande de composants.
Au fait, ce sont des LEDS de 3 ou de 5mm ?
@+
Cordialement
JP

Avatar du membre
Class66240
Bavard
Messages : 67
Enregistré le : sam. 03 oct. 2009, 01:13
Localisation : Paris
Âge : 65

Re: Arduino ou comment s'en passer par transfert

Message par Class66240 » mar. 04 févr. 2014, 19:16

HDE5962 a écrit :Cher camarade Arduino et Classe66240,
Je vous livre mon petit code de mon programme de soudure à arc. :coeur2:
J'ai intégré le son par un piezo sans ajouter quoique ce soit.
Bonsoir,
Merci et Bravo pour ce super programme dans lequel je me suis plongé cet après-midi... :coeur1: Et qui m'amène à quelques questions...
Le branchement : j'ai connecté la led bleue sur la pin 6 (conforme au #define) et non comme indiqué dans le texte : Led Bleu sortie PWM 5. C'est correct ou non ?
Le fonctionnement :
D'abord j'ai utilisé deux leds que j'avais dans mes composants : une bleue de 3mm "normale" et une blanche 1,8mm lumière "chaude". Le fonctionnement est étonnant :
il n'y a pas d'allumage des deux leds simultanément au son (et je ne trouve pas pourquoi... arrfff !)
En effet dans la séquence "feu_soudure" la led bleue est toujours éteinte et la led blanche ne s'allume pas...
Donc bruitage (très réaliste) de l'arc électrique, mais pas d'arc... je pige pas bien...
******************************************************************************************
void Feu_soudure()
{
for(byte i = 0; i <random(100,200); i++)
{
analogWrite(Blanche, random(255));
analogWrite(Bleu, 0); ---> la led bleue sera toujours éteinte, j'ai fait un essai avec random(60) au lieu de 0 et c'est plus satisfaisant.
tone(soudure,Arc);
delay(random(200));
noTone(soudure);
}
***********************************************************************************
Le problème que j'ai : la led blanche s'allume parfois, mais très peu de temps... alors que le son est présent. Je me demande si je n'ai pas un problème de qualité de leds ?
D'autre part pourquoi utiliser "analogWrite(Blanche, random(255));" et non digitalWrite ? C'est à cause du PWM
Voila, it's all folks !!!
Bon maintenant, faut que je potasse les fonctions, génial, mais faut digérer !!! Mille bravo pour ce programme qui permet d'apprendre "plein" de choses...
Bonne soirée à tous,
Réseau N - MS Minitrix

Répondre