Arduino et Atméga

Bonjour à tous les Arduino-nautes
Je me décide a poster après avoir lu le sujet de darkduino : Mettre un atmega328 en arduino
Je m'explique: J' ai ce montage de lecteur MIDI sur carte SD
Version Allemande: Midi Rekorder mit MMC/SD-Karte – Mikrocontroller.net
Version Anglaise: Pocket Computer
Mon problème: En utilisation normale (montage fermé en boitier) j'ai grillé 2 Atméga 168 en moins d'un an; à 90€ le kit, çà va!
Les réponses données à Darkduino me font penser que je peux peut-être me dépanner. En effet, sur ces sites, il y a les sources, mais pas en langage Arduino.
Ma question: Avec 2 cartes Arduino, peut-on charger un bootloader non Arduino dans un 168 vierge? et ensuite charger un programme toujours no Arduino dans ce même 168?
Mon problème, c'est que je ne m'y retrouve pas dans tous ces fichiers, et ne sais celui dont j' ai besoin, c' est pourquoi je me tourne vers vous.
Cela me permettrait de me dépanner en attendant de trouver un soft équivalent en langage Arduino.
J'ai trouvé une vidéo mais sans aucune explication!
Merci d'avance de votre aide
PapyDuino

Re
J'ai retrouvé la vidéo du montage idéal sous Arduino!

Bien sur, je ne suis pas capable d'écrire un tel programme.
Amicalement
PapyDuino

Bonjour,

PapyDuino:
Mon problème: En utilisation normale (montage fermé en boitier) j'ai grillé 2 Atméga 168 en moins d'un an; à 90€ le kit, çà va!

ouch !

PapyDuino:
Les réponses données à Darkduino me font penser que je peux peut-être me dépanner. En effet, sur ces sites, il y a les sources, mais pas en langage Arduino.

Il fournisse un fichier .hex apparemment donc dans ton cas c'est pas grave.

PapyDuino:
Ma question: Avec 2 cartes Arduino, peut-on charger un bootloader non Arduino dans un 168 vierge? et ensuite charger un programme toujours no Arduino dans ce même 168?

Dans ce cas précis tu as le code source mais ce n'est pas du "arduino" c'est du vrai code c fait sous avrStudio donc a compiler/linker sous avrStudio ou avr-gcc/avrdude
Si tu n'as pas de programmateur ISP il faudra que tu utilise un arduino avec le sketch arduinoISP puis avec avrdude envoyer sur l'atmega vierge le .hex

PapyDuino:
Mon problème, c'est que je ne m'y retrouve pas dans tous ces fichiers, et ne sais celui dont j' ai besoin, c' est pourquoi je me tourne vers vous.

Dans ton cas le .hex ! Sauf si tu veux recompiler le projet alors là il te faut les .c .h.

PapyDuino:
Cela me permettrait de me dépanner en attendant de trouver un soft équivalent en langage Arduino.
PapyDuino

Vu le travail fournis par là personne je pense pas que trouvé une version arduino est vraiment utile :wink:

Bonjour et merci skywodd pour cette réponse rapide.
Je n'ai pas de programmateur ISP, je débute en Arduino et aussi en programmation, et je n'ai pas tous les outils.
Je peux donc programmer mon Atméga en utilisant 2 arduinos comme expliqué, sans passer par le bootloader ?

J'ai noté:"il faudra que tu utilise un arduino avec le sketch arduinoISP puis avec avrdude envoyer sur l'atmega vierge le .hex"

==Je ne sais pas inclure de partie d' autres messages==

Dans ce cas, l'Atméga est-il programmé une fois pour toutes ?
Puis-je utiliser un 328 en lieu et place du 168, peut-être mois cher et plus facile à trouver ?
Je vais regarder les différentes versions de fichiers HEX et essayer de trouver mon bonheur, mais j'ai des problèmes avec l' anglais: a l'époque, j' ai fais le mauvais choix de l' espagnol !
Amicalement
PapyDuino

PapyDuino:
Je n'ai pas de programmateur ISP, je débute en Arduino et aussi en programmation, et je n'ai pas tous les outils.
Je peux donc programmer mon Atméga en utilisant 2 arduinos comme expliqué, sans passer par le bootloader ?

Oui mais dans ton cas un seul arduino suffit :wink: l'autre atmega sera sur ton kit.

PapyDuino:
==Je ne sais pas inclure de partie d' autres messages==

"Insert quote" en haut à droite de chaque message :wink:

PapyDuino:
Dans ce cas, l'Atméga est-il programmé une fois pour toutes ?

Oui, sauf si quelqu'un vient à le griller :grin:

PapyDuino:
Puis-je utiliser un 328 en lieu et place du 168, peut-être mois cher et plus facile à trouver ?

Aucun problème le 328 et juste une version "mise à jour" du 168.
EDIT: le programme semble coder spécialement pour le 168, la compilation en 328 donne 27 erreurs et 22 warning :~
J'ai le .hex pour le 168 mais je garanti pas qu'il tournera sur un 328.

PapyDuino:
Je vais regarder les différentes versions de fichiers HEX et essayer de trouver mon bonheur, mais j'ai des problèmes avec l' anglais: a l'époque, j' ai fais le mauvais choix de l' espagnol !

J'ai fait l'inverse ^^ anglais ok, espagnol ... "como esta en la casa" (pub free), c'est mon niveau après 3 ans d'espagnol :cold_sweat:

Je vais compilé ton .hex et te préparer les commandes avrdude :wink: suite au prochain poste :wink:

Re merci skiwood

Oui mais dans ton cas un seul arduino suffit l'autre atmega sera sur ton kit.
Je n'ai aucun connecteur sur le pcb du kit ! donc 2 Aduinos ?

"Insert quote" en haut à droite de chaque message
A droite, j'ai "quote" et çà inserre tout le message et pas de pointillé rouge autour

Oui, sauf si quelqu'un vient à le griller
OK pour çà

Aucun problème le 328 et juste une version "mise à jour" du 168.
Merci pou l' info

Je vais compiler ton .hex et te préparer les commandes avrdude
Merci mais il faudra que je sache faire.
Suite au prochain post

Merci à ceux qui savent et qui partagent, pour permettre aux anciens d' occuper sainement leur retraite.

Pour revenir à la vidéo, je me contenterais de fonctions de base: Play/Pause - Stop - défilement droite et gauche des fichiers dans la racine.
Donc: pas de Tempo ajustable, de Transposition, de Record, de lecture dans les sous répertoires.
Donc, pas de Menu, car toutes les fonctions seraient directement accessibles par switchs.
Mais je reconnais que c'est déjà pas mal: Gestion afficheur, boutons, carte SD,et sortie Midi (dans un 1er temps)
Avis aux courageux.
Amicalement
PapyDuino

PapyDuino:
Re merci skiwood

haaa! skywodd :slight_smile:

PapyDuino:
Je n'ai aucun connecteur sur le pcb du kit ! donc 2 Arduinos ?

Dans ce cas effectivement un deuxième arduinos peut être utilisé comme support pour l'atmega à programmer.

PapyDuino:
A droite, j'ai "quote" et çà inserre tout le message et pas de pointillé rouge autour

Tu dois voir [ qu.ote author=blabla blablabla] blablabla [/qu.ote] (quote sans . :wink: c'est après avoir envoyer ton post le cadre s'affiche ;))

PapyDuino:
Merci pour l' info

J'ai édité mon message ^^" je ne garanti pas qu'avec un 328 ça marche le programme semble vraiment fait pour le 168 uniquement.

PapyDuino:
Pour revenir à la vidéo, je me contenterais de fonctions de base: Play/Pause - Stop - défilement droite et gauche des fichiers dans la racine.
Donc: pas de Tempo ajustable, de Transposition, de Record, de lecture dans les sous répertoires.
Donc, pas de Menu, car toutes les fonctions seraient directement accessibles par switchs.
Mais je reconnais que c'est déjà pas mal: Gestion afficheur, boutons, carte SD,et sortie Midi (dans un 1er temps)

C'est déjà un sacré bouleau rien que la gestion sd->midi :cold_sweat:

Bon sinon le .hex pour un atmega168 (marchera t'il sur un 328, je sais pas :.) est en piéce jointe.
Et les commandes avrdude qui vont bien:

avrdude -c avrisp -p atmega168 -P COM9 -U lfuse:w:0xe2:m -U hfuse:w:0xdf:m -U efuse:w:0xf9:m
avrdude -c avrisp -p atmega168 -P COM9 -U flash:w:MrMidi2.hex

Il faut bien sur avoir le sketch arduinoISP sur le 1er arduino pour que ça marche :wink:

MrMidi2.hex (39.6 KB)

Je viens de prendre le temps de regarder le code dans son intégralité pour voir comment faire un equivalent arduino.
en réalité ce serais pas si compliquer que ça a faire !
gestion de la carte sd -> librairie SD (officielle) (SD - Arduino Reference),
gestion de la télécommande ir rc5 -> librairie IRremote (A Multi-Protocol Infrared Remote Library for the Arduino),
gestion du midi -> librairie midi du playground (Arduino Playground - MIDILibrary),
gestion des boutons -> digitalRead ou même la librairie button du playground (Arduino Playground - Button Library),
gestion ecran lcd -> librairie liquidCrystal (officielle) (LiquidCrystal - Arduino Reference).

Je vais pas me lancer dans le codage, vu que je n'est aucun matos pour tester ce serais vraiment la galère.
Mais d'un point de vu faisabilité c'est assez simple !
Même la gestion des sous répertoires, du play/pause/stop, menu, tempo, transitions dans fond la base est déjà faite !

Merci skywodd et excuse si j' ai écorché ton pseudo.
Je suis vraiment une bille , je ne vois pas pour le quote!
Et je ne vois pas non plus le fichier joint! débuts difficiles!

J'avais oublié: pas besoin non plus de RC5; en fait, sur mon appareil le récepteur IR a été remplacé par un ILS avec le code qui va bien. C'est çà qui m' avait fait préférer ce montage, car je l' utilise sur un orgue de barbarie électronique, et le tempo est modifié par la variation de vitesse de la manivelle avec un aimant sur une poulie. Et çà simule la lecture d'un vrai carton!

Tu as l' air optimiste quant au portage sur Arduino; Je vais d'abord me dépanner et puis je vais creuser.
Il faut d' abord que je commande le matos.
Merci pour çà!
A+
PapyDuino

PapyDuino:
Je suis vraiment une bille , je ne vois pas pour le quote!

C'est pas super grave non plus j'ai l'habitude des >> XD

PapyDuino:
Et je ne vois pas non plus le fichier joint! débuts difficiles!

En bas de mon précédant message ou sinon > ici <

PapyDuino:
J'avais oublié: pas besoin non plus de RC5; en fait, sur mon appareil le récepteur IR a été remplacé par un ILS avec le code qui va bien. C'est çà qui m' avait fait préférer ce montage, car je l' utilise sur un orgue de barbarie électronique, et le tempo est modifié par la variation de vitesse de la manivelle avec un aimant sur une poulie. Et çà simule la lecture d'un vrai carton!

C'est cool ça rend le code encore plus simple alors ^^

PapyDuino:
Tu as l' air optimiste quant au portage sur Arduino; Je vais d'abord me dépanner et puis je vais creuser.
Il faut d' abord que je commande le matos.

Niveau portage le plus dur ce sera le décodage des fichiers midi (quoi que ...) sinon le reste se fait en moins d'une semaine.

J'était en train de regarder, il faut quoi finalement, un support sd + buffer, un lcd 2x16, un arduino, un opto + connecteur midi et quelques boutons ...
Je dois avoir ça en stock, j'ai un batch de carte à faire, je rajouterai de quoi faire ce portage :wink:

J'ai une bonne nouvelle pour toi PapyDuino :wink:

L'auteur de la vidéo qui te semblait si parfaite s'appelle popsworld et c'est un membre du forum :wink:

Voici le lien de son projet sur le forum:
http://arduino.cc/forum/index.php/topic,8804.0.html

Si tu veux tu peut lui envoyer un message pour lui demander son code avec un peu de chance il acceptera, sinon je suis en train de commencer un truc dans le genre de mon coté pour mon enrichissement personnel :wink:

Re
pour ce montage, j'ai tout sauf le support de SD.
Et pourquoi pas ma carte qui est prête à recevoir un Atméga avec le nouveau programme si les connections respectent le schéma !
Tu parles de buffer pour la carte, sur mon montage, il n'y en a pas.
Sur ce lien, tu verras le schéma de ma platine avec l'entrée IR détournée.

Tu n'auras pas besoin de réfléchir à redéfinir les entrées/sorties.
Je vais contacter l'auteur de la vidéo.
Bonne bidouille
Papy Duino

Re
J' ai parlé trop vite; les connections de l' afficheur et du reste ne doivent pas correspondre aux librairies Arduino donc, pas compatible, mais la platine Arduino est faite pour çà !

En ce qui concerne popsworld, encore la barrière de la langue, il faut que je fasse faire un message par ma fille qui, elle, a fait anglais.
A+
Papy Duino

PapyDuino:
Tu parles de buffer pour la carte, sur mon montage, il n'y en a pas.

Si il y en a un :wink: les cartes sd fonctionnent sous 3v3, l'arduino sous 5v regarde sur le schéma il ont fait un pont diviseur avec des résistances si on reprend le calcul pour 5v en entré il y a 3v en sorti c'est bien un buffer :wink:

PapyDuino:
Sur ce lien, tu verras le schéma de ma platine avec l'entrée IR détournée.

J'ai deja téléchargé le schéma sous eagle en plus code source :wink:

PapyDuino:
Tu n'auras pas besoin de réfléchir à redéfinir les entrées/sorties.
Je vais contacter l'auteur de la vidéo.

J'ai déjà presque finit mon prototype ^^" juste quelque problème de timing mais dans le principe c'est bien parti.

PapyDuino:
J' ai parlé trop vite; les connections de l' afficheur et du reste ne doivent pas correspondre aux librairies Arduino donc, pas compatible, mais la platine Arduino est faite pour

Rien n'est incompatible avec l'arduino ^^ juste une déclaration à changer je les déja fait dans mon prototype est ça marche niquel :wink:

PapyDuino:
En ce qui concerne popsworld, encore la barrière de la langue, il faut que je fasse faire un message par ma fille qui, elle, a fait anglais.

Au pire je le contacterai pas de problème pour ça :wink:

Tu vas trop vite !
Sauf erreur, les cartes Arduino ont un régulateur 5v et un régulateur 3,3.
Je vois une sortie 3v3 à coté de la sortie 5v sur la gauche.
C'est vrai qu'il y a des ponts diviseurs; je pensais que c' était pour les signaux logiques donc de 5v et que l'entrée VCC de la carte était reliée au 3v3 du régulateur.
J'avais préparé un topo sur ce que j' ai pu observer sur ce matériel, mais j'ai fait une fausse manip, et plus rien.
Je le réécris mais peut-être sais-tu déjà tout çà !
Ces lecteurs n'acceptent que des fichiers Midi Type 0.
Pas de caractères accentués.
Certains n'affichent que 8 caractères (5+3)
D' autres acceptent les noms longs avec l'autoscroll: pratique !
Certains sortent en Midi, d'autres décodent directement le signal série avec des shift registers 74LS595 + ULN2803 ; 4 couples pour 32 notes. c'est plus compact qu' un lecteur + une interface de décodage.
L'afficheur en 4 bits économise des pins.
Si pas de menu qui demande une combinaison de touches, switchs en série en diviseur de tension sur une seule AnalogIn.
Et sans doute d'autres astuces que je n'ai plus en tête.
Je fais çà pour participer comme je peux au projet, mais tu sais sans doute tout çà !
A+
PapyDuino

PapyDuino:
Tu vas trop vite !

A bon XD tu vera a la fin de ce message si je vais trop vite ^^

PapyDuino:
Sauf erreur, les cartes Arduino ont un régulateur 5v et un régulateur 3,3.
Je vois une sortie 3v3 à coté de la sortie 5v sur la gauche.
C'est vrai qu'il y a des ponts diviseurs; je pensais que c' était pour les signaux logiques donc de 5v et que l'entrée VCC de la carte était reliée au 3v3 du régulateur.

Les cartes arduino ont effectivement un régulateur ldo 5v et 3v3 sauf les pro mini de sparkfun,
le régulateur 3v3, il sert juste à l'alimentation de la carte sd :wink:

PapyDuino:
J'avais préparé un topo sur ce que j' ai pu observer sur ce matériel, mais j'ai fait une fausse manip, et plus rien.

ah ... pas cool !

PapyDuino:
Ces lecteurs n'acceptent que des fichiers Midi Type 0.

Midi type 0, un grand classique, une seul track, mon lecteur gère ce format aussi :wink:

PapyDuino:
Pas de caractères accentués.
Certains n'affichent que 8 caractères (5+3)
D' autres acceptent les noms longs avec l'autoscroll: pratique !

les caractères accentué peuvent être afficher en redéfinissant les emplacements de caractère libre
(http://icontexto.com/charactercreator/)
l'autoscroll est une vrai galère à utiliser quand même des fois.

PapyDuino:
Certains sortent en Midi, d'autres décodent directement le signal série avec des shift registers 74LS595 + ULN2803 ; 4 couples pour 32 notes. c'est plus compact qu' un lecteur + une interface de décodage.

Alors ça je savez pas.

PapyDuino:
L'afficheur en 4 bits économise des pins.

Afficheur Lcd en mode 4bits j'utilise que ça :wink:

PapyDuino:
Si pas de menu qui demande une combinaison de touches, switchs en série en diviseur de tension sur une seule AnalogIn.

J'ai déjà eu à utiliser, on peut pas avoir plusieurs boutons en simultané je crois par contre ?

PapyDuino:
Je fais çà pour participer comme je peux au projet, mais tu sais sans doute tout çà !

En tant qu'étudiant dans le domaine et venant de passez les exam dessus j'ai déjà pas mal de chose en tête oui :grin:

Sinon ça fait quoi 12heures que tu as crée ce topic ^^ et bien je viens de finir mon lecteur midi, certes il gère pas les timings pour le moment mais il marche ^^
Je vais crée mon propre topic pour le présenter :wink:

Hello PapyDuino,

Je viens de lire ce topic. Je vois que tu as une aide extraordinaire de la part de Skywodd qui adapte un lecteur midi en moins de 24h.

Bravo à toi Skywodd :astonished: !!!

J'ai aussi lu le topic de DarkDuino et son problème de programmation de bootloader et je réitère ici ma modeste proposition d'aide pour ce qui est du travail sur Atmega en-dehors de l'environnement Arduino.

A propos de l'Atmega328, il a le même pin-out que l'Atmega168 mais il s'agit d'une évolution de l'Atmega32.
L'Atmega328 a 32k de mémoire FLASH, 2k de mémoire RAM et 1k d'EEPROM.
L'Atmega168 a 16k de mémoire FLASH, 1k de mémoire RAM et 512 octets d'EEPROM.

Hello Jean-marie
Tu as raison; extraordinaire, c' est le mot juste, et merci encore à lui.
J'ai lu sur un forum, "pas d' anglais, pas d' électronique" je trouve çà un peu réducteur.
Je n' ai pas fait d' anglais, mais je me débrouille avec les datasheet pour l' essentiel.
Bien sur, la programmation, c' est autre chose. Heureusement est arrivé Arduino Open Source.
Un petit stage de 1 jour 1/2 et c'est parti avec plein d'exemples disponibles, et, sans programmateur spécifique. J'ai un programmateur de Pic tout neuf, qui dort dans sa boite depuis des années; je n'ai jamais eu le courage de me lancer.
Merci pour ta proposition, mais mon sauveur va sans doute me tirer d' affaire.
Amicalement
PapyDuino