Création d'un programme de téléversement

Bonjour,

Nous savons que Arduino est Open Source. Nous voudrions créer un petit logiciel permettant de téléverser un programme prédéfini sur le micro-contrôleur Arduino Uno (avec Wifi Shield), en permettant à l'utilisateur de modifier quelques paramètres de notre programme. Ces paramètres seraient un SSID et une clef WiFi. Nous avons télécharger les sources (sur le site Google Code) mais nous ne s'avons pas comment les exploiter. Nous souhaiterions de préférence créer ce logiciel en C/C++ si cela était possible, mais nous pouvons nous adapter à tous les langages.

Merci d'avance
Cordialement

AntoineOnTheWeb et Alex7841

Bonjour,

Le bootloader arduino est une version modifié du bootloader STK500 de ATMEL.
Il suffit d'avoir un morceau de code gérant le port série et un autre gérant le protocole STK500 pour uploader un programme.

Le protocole STK500 :
http://www.atmel.com/Images/doc2525.pdf

Merci pour cette réponse rapide.

Dans quel langage faut t-il créer ce programme ?
Est-il possible de récupérer des bouts de programme du logiciel Arduino ?

AntoineOnTheWeb:
Dans quel langage faut t-il créer ce programme ?

Le langage importe peu du moment qu'il peut communiquer avec les ports séries de l'ordinateur.

AntoineOnTheWeb:
Est-il possible de récupérer des bouts de programme du logiciel Arduino ?

Non, l'ide arduino ne gére en rien l'upload, il ne fait qu'appeler le logiciel "avrdude" qui lui gère différent protocole de programmation.
Le plus simple reste quand même de faire quelque chose de propre en partant de zéro.
(le protocole STK500 est vraiment basique)

Ok nous allons regarder cela, reviendrons vers vous si nous avons besoin d'informations supplémentaires.

Merci encore pour vos réponses rapides.

J'ai trouvé ça en cherchant un peu sur internet : Implementing Serial Communication in Win9X/2000 | CodeGuru
Est-ce que ceci correspond à notre besoin au niveau de la communication avec les ports séries ?

Merci d'avance

AntoineOnTheWeb:
Est-ce que ceci correspond à notre besoin au niveau de la communication avec les ports séries ?

Oui mais le programme final ne sera compatible que windows à ce moment là.

Moi j'utilise une librairie cross-plateforme, Boost :
http://www.boost.org/doc/libs/1_52_0/doc/html/boost_asio/overview/serial_ports.html
(avec les avantage qu'apporte le C++)

Donc nous devons utiliser cette librairies avec le protocole STK500 ?

AntoineOnTheWeb:
Donc nous devons utiliser cette librairies avec le protocole STK500 ?

Non pas forcément, tout dépend de ce que vous voulez faire.

Si vous voulez un programme compatible linux / mac / windows il faut utiliser des librairies cross-plateforme comme Boost par exemple.
Si vous voulez faire un programme pour windows uniquement vous pouvez utiliser l'API windows directement.

Le protocole STK500 en lui même n'est qu'une "norme" qu'il faut suivre.
Elle peut être implémenter dans n'importe quelle langage et sur n'importe quelle plateforme.
C'est au développeur de faire son implémentation suivant les contraintes / cahier des charges.

Je pense que nous allons utiliser la librairie boost. Par contre nous ne comprenons pas comme utiliser la norme STK500 pour uploader un programme sur le arduino uno... Pourriez vous nous donner un peu plus d'informations à ce sujet.

Merci d'avance

*Si vous voulez faire un programme pour windows uniquement*

Ce serait pas bien ça !

68tjs:

Si vous voulez faire un programme pour windows uniquement

Ce serait pas bien ça !

Effectivement ! Tant qu'à faire faisons quelque chose de multi-plateforme !

Edit: si je commence à me mélanger les pinceaux ça va pas le faire :.
L'implémentation du protocole STK500 sur arduino :

Avec la doc du protocole en plus : http://www.atmel.com/Images/doc2525.pdf
(j'avais linké la v2 du protocole, la v1 est plus simple)
tout devrait être clair :wink:

Je dois dire que pour le coup nous sommes un peu perdu :~
Est-il possible d'avoir plus de précision sur la procédure à suivre ?

AntoineOnTheWeb:
Je dois dire que pour le coup nous sommes un peu perdu :~
Est-il possible d'avoir plus de précision sur la procédure à suivre ?

Oula je me suis mélangé les pinceaux dans mes liens ... désolé :blush:
Le bon lien : GitHub - spake/Arduino-Copier: An Arduino sketch that can upload sketches to other boards.

Ce programme permet uniquement de copier un programme de carte Arduino à carte Arduino et non d'ordinateur à Arduino, non ?

AntoineOnTheWeb:
Ce programme permet uniquement de copier un programme de carte Arduino à carte Arduino et non d'ordinateur à Arduino, non ?

Oui mais ça permet de comprendre les grandes ligne du fonctionnement du protocole STK500.
Ça donne même une base pour le code.

Ok merci
Nous allons alors regarder ça et essayer de comprendre.

Est-ce bien le fichier Copier.pde qui nous concerne ?

Je crois que je viens de comprendre quelque chose de nouveau...
Si nous voulons appliquer la technique qui était dans les liens, nous devons créer un programme côté arduino qui récupère les infos transmise par le programme du PC. Est-ce biens ça ?

Merci d'avance
Cordialement