je me lance dans l'utilisatio de l'arduino, j'ai une expérience hardware electronique
j'ai commandé un uno, un nano et des cartes mini pro atmega328 sans usb ni bootloader integré ( clone?) dont j'attends la livraison
mon but : utiliser l uno et nano pour devellopement et les cartes mini pro en stand alone
mes questions :
apres avoir réussi a compiler avec l'ide arduino un pgme compatible uno et nano trouvé sur le net,, le fichier binaire ou hex est-il crée ? je compare avec l'assembleur mpasm pour pic, où je compile qui me donne le fichier hex a flasher dans le pic
admettons que mon sketch fonctionne avec la carte uno, je veux en faire un montage stand alone
je dois flasher une carte minipro avec un bootloader+le sketch ?
un atmega328 vierge , atmega328 avec bootloader (on trouve sur ebay le 328 seul avec bootloader integré en boitier dil )
vu que l'uno et le nano tournent a 16mhz, un 328 demandera un qtz 16mhz+capas
, on ne pourra pas utiliser l oscillateur intégré 8mhz,
elektrax:
apres avoir réussi a compiler avec l'ide arduino un pgme compatible uno et nano trouvé sur le net,, le fichier binaire ou hex est-il crée ? je compare avec l'assembleur mpasm pour pic, où je compile qui me donne le fichier hex a flasher dans le pic
Oui un hex est évidemment généré, il est stocké dans les dossiers temporaires. Mais tout est transparent pour l'utilisateur.
elektrax:
admettons que mon sketch fonctionne avec la carte uno, je veux en faire un montage stand alone
je dois flasher une carte minipro avec un bootloader+le sketch ?
Pas forcement, tout dépend le moyen d'upload choisi. Si tu veux uploader via liaison série alors oui il faut un bootloader. Sinon tu peux utiliser la voie "classique" avec un programmateur externe, genre USBTinyISP (~10€ sur ebay), qui servent donc également à graver le bootloader.
elektrax:
un atmega328 vierge , atmega328 avec bootloader (on trouve sur ebay le 328 seul avec bootloader integré en boitier dil )
vu que l'uno et le nano tournent a 16mhz, un 328 demandera un qtz 16mhz+capas
, on ne pourra pas utiliser l oscillateur intégré 8mhz,
Tu peux tout à fait utiliser l'oscillo interne, il faut juste flasher les fuses, sur Arduino ça se passe à la gravure du bootloader
je pensais qu'un pgme écrit et compilé pour un atmega tournant a 16 mhz fonctionnerait mal sur un qui tourne a 8 mhz point de vue delais et surtout si on utilise un bus i2c can etc...
le compilateur va compiler une trame i2c pour un 16mhz puisque c'est ce qu'on lui indique
Tu as raison. C'est pourquoi quelque soit la manière de développer/compiler/transférer ( avec l'IDE Arduino, avec un IDE comme Eclipse ou codeblocks ou avec un makefile) il faudra indiquer le type de micro et la fréquence d'horloge.
l'IDE arduino étant fait pour les cartes arduino il suffit de chercher dans la liste la carte qui correspond à la tienne et le type de micro et la fréquence horloge seront automatiquement configurés.
elektrax:
je pensais qu'un pgme écrit et compilé pour un atmega tournant a 16 mhz fonctionnerait mal sur un qui tourne a 8 mhz point de vue delais et surtout si on utilise un bus i2c can etc...
le compilateur va compiler une trame i2c pour un 16mhz puisque c'est ce qu'on lui indique
Oui c'est exact, la fréquence est spécifié dans le fichier board.txt dans arduino>hardware>arduino
Mais bon si tu flash les fuses en flashant le bootloader la flash est effacée donc il faudra recompilé, re-uploader
la carte uno ou nano at328 servant au dévellopement tourne a 16 mhz, le sketch luxmetre est ok (admettons)
je veux en faire un boitier autonome standalone au moindre cout :
carte promini 16mhz (clone?) sans usb sans boot intégré (2 €) > flasher avec ide arduino avec convertisseur usb>serie
at328 seul +qtz 16 + capas : avec pmteur iscp pour µc atmel : flasher le boot puis ?
at328 8mhz interne > ide arduino propose minipro @ 3v3 8 mhz ?
Difficile de te comprendre mais si tu veux un standalone "fait main" les attiny ont l'air d'avoir la cote - autrement toujours dans l'optique du standalone: les clones de pro mini (trouvables facilement à 1.5€ avec crystal et bootloader), en tant que noob j'en utilise à la pelle et je ne suis jamais déçu - je ne vois pas comment faire moins cher que 1,5€ vraiment o_o...
J'ai eu qu'une fois un problème avec une clone nano, l'alim n'a pas tenu 5 sec les 12V ... Le mieux c'est que tu prennes chez dx.com, avec les commentaires ça donne un suivi des modèle fiable ou non.
Pour ton projet : il te faut une liaison usb ?
Pour résumer le reste : avec un programmateur externe tu pourras graver le bootloader et ensuite faire l'upload via liaison série, ou bien directement télécharger ton programme. Sans programmateur, c'est upload par série sur un atmega contenant déjà un bootloader, et sans modification de fuse (donc "bloquer" à 16 mhz avec un quartz).
A noter que tu peux également utiliser une autre Arduino comme programmateur (mais au moment où jte parle, sur ebay y'a un programmateur usbtinyisp à 4.4€ ...)
B@tto:
J'ai eu qu'une fois un problème avec une clone nano, l'alim n'a pas tenu 5 sec les 12V ... Le mieux c'est que tu prennes chez dx.com, avec les commentaires ça donne un suivi des modèle fiable ou non.
Je sais pas je me fie à ce que je vois (t'as une chouchoute en particulier ? ) , j'ai plus ou moins toutes (bon doit me manquer une ou deux variantes soyons realistes) les versions de pro mini dispo sur ebay et aliexpress et y'a pas photo celles de la "marque" BAITE sont les seules à ne jamais atrapper des décès quand elles sont exposées à des voltages peu sympathiques. Aors que par exemple dans les mêmes conditions (12v 1A) avec le même programme que j'utilise pour mon projet de domotique sans fil: les board bleus (avec bouton rouge, et deux variantes à boutons blanc) n'arrivent pas à produire du 5v donc le MOSFET marche mal (sans parler des reset) et les relais pas du tout, une version rouge à carrément flambée son entrée RAW (marche, mais le RAW est mort)... Alors que la version noire ne m'enquiquine jamais de chez jamais. Bref /hors_sujet.
Non pas si hors sujet que ça.
Ce qu'il faut comprendre c'est qu'un micro-controleur c'est "un cerveau" ce n'est pas un organe de puissance.
Même si les versions "avr" sont particulièrement costaudes ce n'est pas une raison pour leur en demander plus qu'elles ne peuvent "décemment" fournir. A prendre des mauvaises habitudes avec les avr le passage aux ARM sera très douloureux.
Ensuite il y a le savoir-faire de certains qui ont compris la thermique et qui savent comment utiliser le cuivre des circuits imprimés comme radiateur pour les boîtiers CMS et ceux qui n'ont rien compris.
Sur ce sujet quand on regarde l'évolution de la UNO de la R1 à la R3 la régression est constante sur le régulateur 5V.
Mais est-ce le rôle d'une carte micro-controleur de fournir une alim pour tout un montage ?
Faut surtout pas oublié que les platine arduino sont des plateforme ... de développement ! Donc à la base de la base elles sont conçues pour faire du prototypage, et pas des modèles définitifs. Et en premier lieu justement à cause de l'alimentation qui ne sera jamais adaptée à 100% et dont l'importance est très souvent capitale mais souvent négligée.
Non pas si hors sujet que ça.
Ce qu'il faut comprendre c'est qu'un micro-controleur c'est "un cerveau" ce n'est pas un organe de puissance.
Même si les versions "avr" sont particulièrement costaudes ce n'est pas une raison pour leur en demander plus qu'elles ne peuvent "décemment" fournir. A prendre des mauvaises habitudes avec les avr le passage aux ARM sera très douloureux.
Ensuite il y a le savoir-faire de certains qui ont compris la thermique et qui savent comment utiliser le cuivre des circuits imprimés comme radiateur pour les boîtiers CMS et ceux qui n'ont rien compris.
Sur ce sujet quand on regarde l'évolution de la UNO de la R1 à la R3 la régression est constante sur le régulateur 5V.
Mais est-ce le rôle d'une carte micro-controleur de fournir une alim pour tout un montage ?
Son rôle? Je ne pense pas même sans rien savoir, et pourtant la représentation que j'ai à présent des µC est faussée - souvent je colle trois rangées de pins sur une perf board pour partager le 5V, 3.3V (transfo séparé), et GND entre mes différents périphériques, cela me semble "normal" que mon microcontrôleur joue aussi le doux rôle de station de pompage à électrons et je sais au fond de moi que c'est mal, mais c'est tellement pratique...
Et si j'en demande trop à mes cartes c'est généralement parce que je n'ai pas (la sensation d'avoir) le choix, je veux avancer dans un projet et le désir de "faire avec" ("et on verra plus tard") malgré mon cruel manque de connaissances (et de matos) l'emporte.
Après, je sais aussi que c'est un univers extrêmement complexe, qui est à des années lumières de ce que j'étudie à la fac et que j'ai largement le temps de faire le tour de la plateforme d'expé arduino avant d'oser d'autres choses, choses qui me donneront de fortes migraines je n'en doute pas, ça me plaît de me sentir tout petit face à une immense étendue de connaissances.
B@tto:
Faut surtout pas oublié que les platine arduino sont des plateforme ... de développement ! Donc à la base de la base elles sont conçues pour faire du prototypage, et pas des modèles définitifs. Et en premier lieu justement à cause de l'alimentation qui ne sera jamais adaptée à 100% et dont l'importance est très souvent capitale mais souvent négligée.
Vouih, mais je suis bien content de pouvoir quand même en faire quelque chose qui marche ^^ (même si ça doit bouffer 5x plus de courrant qu'un barebone).
Par contre je suis curieux de t'entendre (et vous autres aussi hein) concernant les alimentations, qu'est-ce qui définit une bonne alimentation, quel est le "bon" moyen de réguler une alimentation? disons une alim 7v à 500ma tu l'adaptes comment à un arduino barebone par exemple? Puis tirer du 3.3v à partir de 5v? (j'utilise des modules, mais je me doute que ce doit être débile.) - J'ai entendu parler de diviseurs de voltages par résistances, mais cela me trouble car une résistances ... ça n'agit pas que sur l'ampérage? :$.
Non non pas de régulation par pont diviseur ! Sauf pour éventuellement des cas précis, mais c'est vraiment la solution du pauvre et qui limite forcement le courant.
Une bonne alim c'est une alim capable de fournir le courant maximal demandé, même s'il est très transitoire (démarrage d'un moteur par exemple), sans que la tension ne varie. Et elle doit également fournir cette tension avec le moins de bruit possible.
Après plusieurs technologies s'affrontent et tout dépend de ce qui est recherché : pour les montages où le bruit est à bannir, on va utiliser la classique alim a transformateur. Pour ceux demandant beaucoup de jus ou un bon rendement ou de la compacité, des alim à découpage. Et pour ceux qui demande beaucoup de courant sans bruit, et bien c'est un super régulateur à découpage avec des gros condensateurs ...
Après ne pas oublier que le tirage des lignes d'alimentation est au moins aussi important, surtout les masses.
bonjour
je situe brievement mes acquis : hardware ok fabrication pcb et soudage, utilisation pgmateurs eproms et pics12fxxx 16fxxx etc..
software : assembleur pic : bases, et langage basic qbasic, aucune connaissance du C ni autre
ayant reçu ma commande : 1 ,arduino nano v3.0 (gravitech us) + 1 arduino uno+ 5 cartes promini sans usb ni bootloader
je commence à l'instant : branchement du nano sur pc avec cable usb (non livré) : j'ai pris un cable standard mini usb du coté nano
led pwr verte sur ce modele s'allume
1ere frayeur : la led orange pin 13 clignote sans stopper dés que je branche l usb, des que jalimente le nano en 5 volts en d'autres termes, installation des drivers (pc win xp) : ok, led clignote toujours, çà me parait bizarre
je flashe le pgme blink apres avoir fait reset sur la carte : ok la led clignote avec tempo prévu, je change les delay high low dans le pgme, ok, je flash sans m'occuper du bouton reset : ok,
bien coté hardware c'est presque bon : en dehors que je ne sais pas stopper le clignotement de cette led L, comment rendre "vierge" la partie hors bootloader ???
software arduino : essai : faire clignoter la led 5 L 5 X rapide puis 5 fois lent, je n'ai rien cablé j'utilise la carte nano sur usb pc, j'ai juste la led L a utiliser
je peux ecrire 10 fois la sequence led high delay(x) led low, etc....
il doit y avoir plus simple
je pars sur boucle "for next" du basic puis je passe a while puis a do while
retour à for avec les accolades aux bons endroits
elektrax:
bien coté hardware c'est presque bon : en dehors que je ne sais pas stopper le clignotement de cette led L, comment rendre "vierge" la partie hors bootloader ???
Il faut utiliser un programmateur externe, comme j'en ai parlé avant. Si utilisation du bootloader, le programme sera chargé dans la partie de la flash hors bootloader (sinon le bootloader se compromettrait lui même !). Si tu charges ton programme avec un programmateur externe, un effacement de toute la flash est préalablement réalisé avant de chargé le programme, effaçant de facto le bootloader au passage.
patg_:
On ne peut pas vraiment l'effacer, mais on peut y charger un sketch qui ne fait rien
Oui l'ancien programme est totalement effacé quand on écrit un nouveau parce que l'IDE utilise avrdude avec l'option -D . Pour le voir allez dans le réglage des "preferences" activer le mode bavard ou lisez les fichiers du répertoire temporaire.
PS : dans la notice d'avrdude rien n'indique que l'on est obligé d'écrire un fichier quand on le lance en ligne de commande. C'est ceinture et bretelles quand on écrit un programme qui ne fait rien mais peut-être bien que ce n'est pas obligatoire.
ATTENTION je décline toute responsabilité si en testant vous briquez votre micro.