Aller au contenu


Photo
- - - - -

Alimenter un Atmega ou un ATtiny sans regulateur


10 réponses à ce sujet

#1 sky99

sky99

    Habitué

  • Membres
  • PipPip
  • 271 messages
  • Gender:Male

Posté 09 avril 2013 - 07:09

Bonjour à tous! J'ai fait divers petits robots, et la j'en fais un que je veux le plus simple possible. Donc je m'appuie sur une puce Atmega328P, et plus tard
un ATtiny85. Il s'agit d'un robot simple, avec deux servo à rotation continue, un capteur de distance infrarouge, et l'algo de base : si je vois un obstacle trop près je tourne, si je suis en dessous d'une certaine distance je recule, sinon j'avance. Bref, rien de très nouveau. Mon problème vient du fait que j'ai deux objectifs sur ce petit robot :
-Faire le plus petit robot possible avec le matériel dont je dispose en ce moment;
-Faire le robot le plus simple possible.

Pour la simplicité, donc, j'aimerais me passer de régulateurs de tension. J'ai de très bons régulateurs de tension, mais je souhaite m'en passer, pour les garder
pour d'autres projets. J'ai déjà fait tourner un ATmega directement sur des batteries AA, pour faire clignoter une LED.
Je sais qu'en cas de variation subite de la tension je peux avoir des résultats inattendus. Toutefois,avec 4 batteries AA, j'ai 4.8V en pleine charge, et 4V quand elles sont déchargées.
Normalement, la tension devrait progressivement varier entre ces deux valeurs. Logiquement on ne devrait pas avoir de variations rapides, simplement celle due au vidage de la batterie.

Je souhaite donc alimenter le ATmega ainsi, sans régulateur. Je sais que ça fonctionne, mais j'ignore s'il y a un risque. Avez vous des infos là dessus?
D'autre part, puisque les servos sont aussi alimentés par les batteries, je peux m'attendre à des variations de tension quand les moteurs "tirent", non?
Mais dans quelle mesure cela peut il poser problème? Sachant que les seuls systèmes connectés sont le capteur IR, et les deux servomoteurs. Éventuellement je peux me débarrasser du capteur IR, pour utiliser des
switches pour détecter le contact.

Donc pensez vous qu'il y aie un danger pour le microcontrôleur? (il est donné pour une plage de 1.8 à 5V je crois bien.)

Si jamais le µC reboote de temps en temps, ce n'est pas bien grave pour moi, tant que ça n’abîme rien.

Qu'en pensez vous?

Mon site principal : http://www.nagashur.com/ (format blog, un wiki y est aussi)

Mon profil sur hackaday.io : https://hackaday.io/sky99 (hackerspace en anglais, j'y ai plein de projets)

Mon Github : https://github.com/sarinkhan/


#2 Black Templar

Black Templar

    Membre

  • Membres
  • PipPipPipPipPip
  • 1 430 messages
  • Gender:Male
  • Location:Lille

Posté 09 avril 2013 - 07:56

Je souhaite donc alimenter le ATmega ainsi, sans régulateur. Je sais que ça fonctionne, mais j'ignore s'il y a un risque. Avez vous des infos là dessus?

Il faut vérifier dans la datasheet du proc la tension d'alim minimale. Si c'est <4V, alors il n'y a aucun problème.
Sinon, il ne faut pas que l'alim passe en dessous de cette tension (il faut couper le proc)
Il n'y a normalement pas de risque pour le matériel, mais par contre, l'exécution normale du programme n'est plus garantie !


D'autre part, puisque les servos sont aussi alimentés par les batteries, je peux m'attendre à des variations de tension quand les moteurs "tirent", non?
Mais dans quelle mesure cela peut il poser problème? Sachant que les seuls systèmes connectés sont le capteur IR, et les deux servomoteurs. Éventuellement je peux me débarrasser du capteur IR, pour utiliser des
switches pour détecter le contact.


Là par contre, oui ça pose problème !
Sans régulation et sans filtrage, ça ne marchera pas.
Lorsque les servos vont s'activer, tu auras une chute de tension au niveau du proc avec un risque de reset intempestif !!

Je te conseil de lire cette discussion. Léon à développer le problème de manière très intéressante et constructive Image IPB
http://forum.caliban...obot-t1648.html

Donc pensez vous qu'il y aie un danger pour le microcontrôleur? (il est donné pour une plage de 1.8 à 5V je crois bien.)

Si jamais le µC reboote de temps en temps, ce n'est pas bien grave pour moi, tant que ça n'abîme rien.

Ah, si la plage d'alim est 1.8 à 5 alors il n'y a aucun danger.
Le seul risque, c'est d'avoir un reset à chaque fois que les moteurs vont tirer...

Mon site internet : http://ferdinandpiette.com/


#3 sky99

sky99

    Habitué

  • Membres
  • PipPip
  • 271 messages
  • Gender:Male

Posté 09 avril 2013 - 08:46

C'est intéréssant!
Du coup la seule chose que je risque c'est un comportement erratique par moment.
Si j'ai des baisses de tension quand les servo prennent du courant, mon signal logique
pourrait ne pas être aussi haut que je le voudrais. Toutefois, beaucoup de composants qui fonctionnent
en 5V comprennent le +3.3V haut comme un signal logique haut également, et j'ai pu tester cela
entre l'arduino et le pi (le pi envoie des signaux +3.3V, et l'arduino a bien interprété ces signaux)

Du coup au pire j'ai le capteur IR qui renverra des données faussées si il n'aime pas le signal plus bas, et le servo
qui risque de ne pas obéir si le signal est trop bas.

Le robot pèse 219g, hors batteries (dont une bonne partie -90g au total- provient des servos).
Les 4 Batteries AA de 2700mAh pesent au total 121g.

Cela fait donc une masse totale de 340g.
Les servos, c'est ce modèle :
http://www.adafruit.com/products/154
Le couple est annoncé à 3400g-cm.
Les roues font 65mm de diamètre.
L'ensemble possède donc une force de propulsion très largement supérieure
à la puissance nécessaire, donc on peut s'attendre à une consommation faible des
servos (sans charge, ils sont annoncés à quelques dizaines de mA).

Du coup, les risques de baisses de tension significatives sont d'autant plus réduits. (et du coup il faudrait que je trouve des logements pour batteries AAA, ça me permettra de réduire les dimensions et le poids).

Je vais donc le programmer, et voir comment il s'en sort :)

Du coup, vu tout ça, je me dis qu'il serait également intéressant de tenter le robot le plus économe possible, pour voir combien de temps il peut fonctionner... Et s'il était capable de rester en veille toute une nuit, je pourrais envisager un robot solaire qui chargerait ses batteries la journée, et fonctionnerait "en permanence", par exemple sur le toit de chez moi :)

En restant simple, on peut imaginer quantité d'expérimentations, avec les robots!

En tous cas, merci pour les réponses :)

Au passage, même si ça ne fonctionne pas avec le robot, c'est quand une bonne nouvelle, car je souhaite aussi faire des montages à ultra basse conso, qui serviraient uniquement
à collecter des données. Par ex un petit module alimenté par une ou deux piles AAA, un micro-contrôleur, un/quelques capteur(s), et un module radio.
L'idée étant que ce soit aussi économe en énergie que possible, et peu cher. Ainsi on peut imaginer une application ou le système serait à usage unique :
je fais le montage, je le coule dans de la résine, et je le mets quelque part. S'il dure quelques années, ça vaut le coup!
(la résine c'est pour un modèle devant aller dehors bien sur. En intérieur, bah une petite boite et c'est réglé).

Mon site principal : http://www.nagashur.com/ (format blog, un wiki y est aussi)

Mon profil sur hackaday.io : https://hackaday.io/sky99 (hackerspace en anglais, j'y ai plein de projets)

Mon Github : https://github.com/sarinkhan/


#4 Black Templar

Black Templar

    Membre

  • Membres
  • PipPipPipPipPip
  • 1 430 messages
  • Gender:Male
  • Location:Lille

Posté 09 avril 2013 - 09:56

Du coup la seule chose que je risque c'est un comportement erratique par moment.


Il faut voir dans la datasheet si ton µC reset automatiquement s'il détecte une trop forte perturbation de la tension d'alim et voir si tu peux désactiver l'option (comme chez les PIC)

Du coup au pire j'ai le capteur IR qui renverra des données faussées si il n'aime pas le signal plus bas, et le servo
qui risque de ne pas obéir si le signal est trop bas.

C'est un peu plus tordu que ça.
Tes capteurs peuvent êtres perturbés, mais surtout ton convertisseur A/N te filera une donnée numérique PAR RAPPORT à ta tension d'alim !
Donc si tu obtiens par exemple 443 avec la pile chargé à 5V, ça n'aura pas la même signification que 443 avec une pile chargé à 4V :/
Après, peut-être que ton µC te permet de fournir une référence de tension externe pour l'ADC Image IPB



Au passage, même si ça ne fonctionne pas avec le robot, c'est quand une bonne nouvelle, car je souhaite aussi faire des montages à ultra basse conso, qui serviraient uniquement
à collecter des données. Par ex un petit module alimenté par une ou deux piles AAA, un micro-contrôleur, un/quelques capteur(s), et un module radio.
L'idée étant que ce soit aussi économe en énergie que possible, et peu cher. Ainsi on peut imaginer une application ou le système serait à usage unique :
je fais le montage, je le coule dans de la résine, et je le mets quelque part. S'il dure quelques années, ça vaut le coup!
(la résine c'est pour un modèle devant aller dehors bien sur. En intérieur, bah une petite boite et c'est réglé).

Super idée Image IPB
Là il va falloir tout optimiser.
Utiliser des transistors pour customiser ra consommation plutôt que des CI tout fait, etc.

Mon site internet : http://ferdinandpiette.com/


#5 sky99

sky99

    Habitué

  • Membres
  • PipPip
  • 271 messages
  • Gender:Male

Posté 09 avril 2013 - 10:53

Il faut voir dans la datasheet si ton µC reset automatiquement s'il détecte une trop forte perturbation de la tension d'alim et voir si tu peux désactiver l'option (comme chez les PIC)


C'est un peu plus tordu que ça.
Tes capteurs peuvent êtres perturbés, mais surtout ton convertisseur A/N te filera une donnée numérique PAR RAPPORT à ta tension d'alim !
Donc si tu obtiens par exemple 443 avec la pile chargé à 5V, ça n'aura pas la même signification que 443 avec une pile chargé à 4V :/
Après, peut-être que ton µC te permet de fournir une référence de tension externe pour l'ADC Image IPB




Super idée Image IPB
Là il va falloir tout optimiser.
Utiliser des transistors pour customiser ra consommation plutôt que des CI tout fait, etc.

En effet, sur les ATMega, il y a le "brown-out detector", qui sert à détecter les baisses de tensions, qui peut être désactivé. J'y ai aussi pensé.
Pour le ADC, justement, avec le ATmega3289P, on définit également la tension de référence du convertisseur via la broche Aref. Du coup en la reliant au VCC, ma tension de référence devrait varier
dans le temps avec celle de la batterie!
Pour la conso minimale, bah pour l'instant dans le robot il n'y a aucun CI si ce n'est le microcontroleur. Apres peut être qu'il y a un IC dans le servo, voire dans le capteur IR. Mais dans ce cas, une solution serait de commander l'alimentation de chaque servo et du capteur IR via un transistor. Du coup les systèmes tomberaient à 0mA de conso quand je ne m'en sers pas. Sachant que le ATmega peut tomber très bas en conso si on s'en sert hors de la carte Arduino, et encore plus bas en changeant quelques détails, je pense qu'on peut tenir longtemps :)
Sinon avec les ATtiny, on peut tomber à quelques µA de conso. Je peux faire le robot avec le ATTiny85, le seul souci c'est qu'il n'a que 8 pattes, dont 6 E/S (2PWM, pour les servos, 2analogiques, et 2 "normales"), juste ce qu'il faut. ça suffit, mais du coup c'est pas super extensible, si je veux ajouter des petits trucs en plus.
Avec le ATiny85, je pense utiliser le second ADC pour un capteur IR courte portée pour détecter les vides (Comme ça j'en ferais un robot "de bureau"), et les deux entrées analogiques pourraient servir à des détecteurs de contact. Dans ce cas, ce serait le robot maximal sur cette puce :)

J'ai des ATtiny2313 avec plein d'entrées sorties, mais toutes numériques. Et sinon le ATMega, plus complet, avec 6 ADC, 6PWM et encore des sorties numériques.

Enfin je verrai bien :)

Mon site principal : http://www.nagashur.com/ (format blog, un wiki y est aussi)

Mon profil sur hackaday.io : https://hackaday.io/sky99 (hackerspace en anglais, j'y ai plein de projets)

Mon Github : https://github.com/sarinkhan/


#6 Black Templar

Black Templar

    Membre

  • Membres
  • PipPipPipPipPip
  • 1 430 messages
  • Gender:Male
  • Location:Lille

Posté 09 avril 2013 - 11:14

Pour le ADC, justement, avec le ATmega3289P, on définit également la tension de référence du convertisseur via la broche Aref. Du coup en la reliant au VCC, ma tension de référence devrait varier
dans le temps avec celle de la batterie!


Justement, le principe, c'est de ne pas relier Aref à Vcc, sinon ça n'a pas vraiment d'intérêt.
Tu peux pas contre créer une référence de tension (avec des diodes/zener & co.) qui ne changera pas même avec la variation de la tension d'alim.
Ainsi, plus de soucis côté ADC. Peut-être encore des problèmes côté capteurs, et encore, je ne suis pas sûr (j'ai utilisé un capteur température il n'y a pas longtemps que j'ai alimenté en 3.3V et en 5V (c'est dans la plage de spécification) La sortie ne variait pas beaucoup en fonction de l'alimentation choisi :) )

Mon site internet : http://ferdinandpiette.com/


#7 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 969 messages
  • Gender:Male
  • Location:Anglet

Posté 10 avril 2013 - 01:30

Au passage, même si ça ne fonctionne pas avec le robot, c'est quand une bonne nouvelle, car je souhaite aussi faire des montages à ultra basse conso, qui serviraient uniquement
à collecter des données. Par ex un petit module alimenté par une ou deux piles AAA, un micro-contrôleur, un/quelques capteur(s), et un module radio.
L'idée étant que ce soit aussi économe en énergie que possible, et peu cher. Ainsi on peut imaginer une application ou le système serait à usage unique :
je fais le montage, je le coule dans de la résine, et je le mets quelque part. S'il dure quelques années, ça vaut le coup!
(la résine c'est pour un modèle devant aller dehors bien sur. En intérieur, bah une petite boite et c'est réglé).


Une partie de mon travail consiste à réaliser un système du genre ! D'ailleurs j'utilise un module sigfox pour la radio ...
Par contre du coup il y a pas mal de chose à prendre en compte ! J'utilise un pic extra low consomation fonctionnant en 3.3V avec une batterie lipo une cellule 1250mAh qui coute 2 euros...
Et le système doit tenir 2 ans sans recharges !

Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#8 sky99

sky99

    Habitué

  • Membres
  • PipPip
  • 271 messages
  • Gender:Male

Posté 10 avril 2013 - 04:07

Justement, le principe, c'est de ne pas relier Aref à Vcc, sinon ça n'a pas vraiment d'intérêt.
Tu peux pas contre créer une référence de tension (avec des diodes/zener & co.) qui ne changera pas même avec la variation de la tension d'alim.
Ainsi, plus de soucis côté ADC. Peut-être encore des problèmes côté capteurs, et encore, je ne suis pas sûr (j'ai utilisé un capteur température il n'y a pas longtemps que j'ai alimenté en 3.3V et en 5V (c'est dans la plage de spécification) La sortie ne variait pas beaucoup en fonction de l'alimentation choisi :)/> )

Je ne suis pas sur de bien te suivre, ici. Si je relie Aref à VCC, ça veut dire que la tension maximale retournée correspondra à la valeur numérique maximale (par exemple 1024) quelle que soit la tension d'alimentation non? Si VCC=5V et que Aref=5V, le capteur étant également alimenté par VCC, alors il retournera des valeurs entre 0 et 1024, et retournera les mêmes valeurs pour VCC=Aref=Vcapteur=4V non?

ce qui me poserait problème, ce serait que le capteur de distance retourne 300 pour une distance quelconque, puis 200 pour la même distance; mais avec une tension plus basse.
Maintenant je me rends compte que je ne peux pas, par ce biais, mesurer la tension des batteries, puisque ma référence varie avec elle. Mais si je fixe Aref à une valeur stable alors que VCC ne l'est pas, n'aurai-je pas une variation de la valeur retournée par le ADC pour une même mesure?

Je ne suis toutefois pas bien sur d'avoir compris parfaitement le role de Aref. Pour moi c'est la tension de référence à laquelle sera comparée la tension mesurée par le ADC. Comme la tension de sortie du capteur pour une valeur dépendra de la tension d'alimentation de celui ci, si Aref est stable, et VCC variable, une même distance ne va elle pas retourner diverses valeurs?

Dans tous les cas, j'ai monté le robot, et il fonctionne sans soucis visibles pour le moment sur l'électronique. En revanche, du point de vue mécanique, il est déséquilibré, et il bascule vers l'arrière quand il tourne. J'ai donc rajouté une roulette à l'arrière, et ça fonctionne ^^
Il est très réactif,et la navigation est assez précise sans que je fasse de réglages. Par contre il ne voit pas trop les obstacles en dessous du niveau de ses yeux.

Je vais poster un sujet dessus, dans la bonne section, ce qui sera l'occasion de discuter d'idées sur l'autonomie atteignable :)

Au passage, quelqu'un saurait ou trouver la consommation maximale des servos? j'ai beau fouiller la doc, je vois la conso mini, le câblage, le couple, mais pas le courant consommé! C'est quand même pas sérieux de pas fournir cette donnée, je trouve!

Mon site principal : http://www.nagashur.com/ (format blog, un wiki y est aussi)

Mon profil sur hackaday.io : https://hackaday.io/sky99 (hackerspace en anglais, j'y ai plein de projets)

Mon Github : https://github.com/sarinkhan/


#9 sky99

sky99

    Habitué

  • Membres
  • PipPip
  • 271 messages
  • Gender:Male

Posté 10 avril 2013 - 07:22

Une partie de mon travail consiste à réaliser un système du genre ! D'ailleurs j'utilise un module sigfox pour la radio ...
Par contre du coup il y a pas mal de chose à prendre en compte ! J'utilise un pic extra low consomation fonctionnant en 3.3V avec une batterie lipo une cellule 1250mAh qui coute 2 euros...
Et le système doit tenir 2 ans sans recharges !

Voila un domaine qui m'intéresse fortement :)
Je ne connaissais pas le protocole sigfox, c'est également très intéréssant!
Par contre je subodore que ce n'est pas forcément fait pour les particuliers...
Enfin, je veux dire, je n'ai pas l'impression que je puisse acheter deux "cartes sigfox" pour faire une communication entre deux appareils non?

Mon site principal : http://www.nagashur.com/ (format blog, un wiki y est aussi)

Mon profil sur hackaday.io : https://hackaday.io/sky99 (hackerspace en anglais, j'y ai plein de projets)

Mon Github : https://github.com/sarinkhan/


#10 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 969 messages
  • Gender:Male
  • Location:Anglet

Posté 10 avril 2013 - 08:35

Voila un domaine qui m'intéresse fortement :)/>
Je ne connaissais pas le protocole sigfox, c'est également très intéréssant!
Par contre je subodore que ce n'est pas forcément fait pour les particuliers...
Enfin, je veux dire, je n'ai pas l'impression que je puisse acheter deux "cartes sigfox" pour faire une communication entre deux appareils non?


De toute façon pour l'instant ces modules ne sont pas encore au points ;) Il vendent beaucoup de rèves et sont assez prometteur mais je pense qu'il ne serait intéressant pour toi d'utiliser ce genre de module que d'ici un à deux ans ! Du coup nous on se prend pas mal la tête aussi bien sur l'hardware que le software les problèmes de géolocalisation et de législation ...
Par contre je ne suis pas le grand spécialiste de ce module loin de là ! Mais j'ai de bons interlocuteurs ;) Donc si tu as une question n'hésite pas !

Mais j'en reparlerais sûrement plus tard de ce module ! ;)

Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#11 Black Templar

Black Templar

    Membre

  • Membres
  • PipPipPipPipPip
  • 1 430 messages
  • Gender:Male
  • Location:Lille

Posté 10 avril 2013 - 08:41

Je ne suis pas sur de bien te suivre, ici. Si je relie Aref à VCC, ça veut dire que la tension maximale retournée correspondra à la valeur numérique maximale (par exemple 1024) quelle que soit la tension d'alimentation non?

Tout à fais, si Vcc=Aref=5V, et si l'ADC est sur 10bits, 1023 correspondra à une valeur de tension de 5V.
Si la pile se décharge et que Vcc vaut 4V, 1023 correspondra à ces 4 volts.

Si VCC=5V et que Aref=5V, le capteur étant également alimenté par VCC, alors il retournera des valeurs entre 0 et 1024, et retournera les mêmes valeurs pour VCC=Aref=Vcapteur=4V non?

Pas forcement. D'une part il se peut que la sortie soit stable et ne dépende pas de la tension d'alim (cas de mes capteurs de températures).
Même si la sortie évolue en fonction des tension d'alim du capteur, il se peut que cette évolution ne soit pas linéaire. Dans ce cas, même en posant Vcc=Aref=Vcapteur, il y aura de soucis.


ce qui me poserait problème, ce serait que le capteur de distance retourne 300 pour une distance quelconque, puis 200 pour la même distance; mais avec une tension plus basse.

Ce qui sera fort probable.
Il faut donc tester ton capteur pour savoir comment il se comporte en fonction de la tension d'alim et ainsi choisir une solution pour contrer les problèmes.


Maintenant je me rends compte que je ne peux pas, par ce biais, mesurer la tension des batteries, puisque ma référence varie avec elle. Mais si je fixe Aref à une valeur stable alors que VCC ne l'est pas, n'aurai-je pas une variation de la valeur retournée par le ADC pour une même mesure?

Normalement non si Aref est fixe.
Il faut lire la datasheet pour savoir comment ça marche pour ton µC, mais normalement, ton convertisseur te retournera 0 pour 0V et 1023 pour Aref, tout le temps.

Je ne suis toutefois pas bien sur d'avoir compris parfaitement le role de Aref. Pour moi c'est la tension de référence à laquelle sera comparée la tension mesurée par le ADC. Comme la tension de sortie du capteur pour une valeur dépendra de la tension d'alimentation de celui ci, si Aref est stable, et VCC variable, une même distance ne va elle pas retourner diverses valeurs?

Sauf qu'avec certain capteurs, même avec une tension d'alim variable, pour une même mesure, la sortie sera toujours la même (c'est le cas de mes capteurs de températures par exemple).
Dans ce cas, avoir un ARef est utile.
Le mieux est de faire des tests avec ton capteur : tu lui fais mesurer un truc précis, tu change la tension d'alim (dans les limites des spécifications) et tu regardes l'évolution de la sortie.

Mon site internet : http://ferdinandpiette.com/




Répondre à ce sujet



  


0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users