Question:
Arduino: ça vaut le coup?
Dean
2010-12-20 21:27:06 UTC
view on stackexchange narkive permalink

J'ai déjà joué avec des AVR avec mon kit de développement atmel et j'ai vu récemment l'utilisation des Arduinos augmenter. J'ai quelques questions des utilisateurs:

  1. Est-ce la même chose que l'utilisation d'un microcontrôleur?
  2. Y a-t-il des restrictions avec l'utilisation de l'Arduino au lieu d'utiliser le microcontrôleur?

Je suis intéressé à passer à eux mais aussi ce que je devrais obtenir car il y en a tellement de choix.

Cinq réponses:
#1
+10
Leon Heller
2010-12-20 21:36:24 UTC
view on stackexchange narkive permalink

Les différentes cartes Arduino utilisent des micro-contrôleurs AVR.

Avec le logiciel approprié, utiliser l'Arduino équivaut à utiliser n'importe quel autre micro-contrôleur. Cependant, le logiciel Arduino ne prend pas en charge le débogage en circuit, qui est disponible avec d'autres logiciels de développement comme AVR Studio d'Atmel. Vous pouvez utiliser le matériel Arduino avec les outils matériels AVR Studio et Atmel comme le programmeur / débogueur Dragon. Le logiciel Arduino prend en charge le téléchargement vers la cible via un chargeur de démarrage.

Le site Web et les forums Arduino sont très utiles si vous avez besoin d'aide.

#2
+6
Nick T
2010-12-20 21:33:19 UTC
view on stackexchange narkive permalink

Un Arduino est essentiellement une carte de développement bon marché, non prise en charge ("open-source"). Vous pouvez utiliser les bibliothèques et logiciels Arduino pour une introduction en douceur aux MCU, ou vous pouvez tout mettre en œuvre et n'en utiliser aucun et développer sur Atmel AVR directement avec AVR Studio et WinAVR (contenant le compilateur avr-gcc ).

Même si vous n'utilisez pas le logiciel Arduino, la carte sera toujours physiquement la même taille, donc rien ne vous empêche d'utiliser des boucliers, ce qui est un moyen pratique pour les amateurs d'ajouter du matériel si vous ne voulez pas faire beaucoup d'assemblage de composants (encore moins fabriquer / percer des PCB).

Pour ce que ça vaut, j'aime un peu le concept Arduino, mais l'utilisation de C ++ est odieuse, et je ne vois pas la valeur de cacher main (); à l'utilisateur . Heureusement, tout cela peut être éliminé.

Je qualifierais «non pris en charge» de «non pris en charge par Atmel» - il existe une vaste et croissante communauté d'utilisateurs Arduino, sans parler des nombreuses ressources disponibles sur http://www.arduino.cc/
@vicatcu, non pris en charge implique par l'entreprise, il pourrait être intéressant d'ajouter qu'il existe une grande communauté, mais il n'y a pas une équipe d'ingénieurs d'application qui attendent votre appel, ce qui est normalement ce qu'une entreprise a besoin de support.
+1 pour l'utilisation inutile de C ++ et masquer main (). J'ai jeté un coup d'œil à l'utilisation de l'IDE Arduino lorsque j'ai eu le mien pour la première fois. Ensuite, j'ai décidé que je préférais le faire moi-même et je suis allé directement à avr-gcc et avrdude pour la programmation. Il convient de noter que la bibliothèque de câblage peut être utilisée très facilement sans l'IDE Arduino également.
#3
+5
vicatcu
2010-12-21 02:29:44 UTC
view on stackexchange narkive permalink

En fait, avr-gcc est également sous les couvertures d'Arduino ... il vous suffit d'utiliser la syntaxe C ++ si vous utilisez leurs bibliothèques ou écrivez la vôtre. Sinon, la seule contrainte est que vous êtes "forcé" d'utiliser le modèle équivalent à:

  int main (int argc, char * argv []) {setup (); pour (;;) {boucle (); } return 0;} 

qui est un modèle qui correspond à une grande section transversale (sans doute l'intégralité) de la conception intégrée. Vous implémentez simplement setup () et loop ().

Ce n'est pas non plus un choix entre Arduino et un micro-contrôleur. En principe, vous pouvez sortir l'ATMega328P d'un contexte de carte Arduino, programmé avec un croquis, et le transplanter dans une solution plus étroitement intégrée.

Donc, je suppose que je ne suis pas d'accord avec le sentiment de certaines des autres réponses suggérant qu'Arduino n'est qu'une plate-forme "jouet". À mon avis, c'est viable pour un développement plus «sérieux». Cela réduit simplement la barrière à l'entrée dans le monde embarqué. La possibilité de le programmer sans programmeur séparé (par exemple AVRISP mkII, STK500, etc.) est un gros problème à cet égard.

Je ne pense pas vraiment que cela exige un compromis significatif de la part d'utilisateurs plus avancés.

La plupart des compilateurs et assembleurs insèrent de toute façon une instruction de type reset après la fin de main, ce qui fait que main s'exécute effectivement dans une boucle infinie - comme exécuter setup () puis loop () une fois, puis revenir au début.
le principal problème que j'ai avec le "système Arduino" est qu'une fois que vous vous développez au-delà d'un seul module utilisateur, il est écœurant de le gérer car il vide tout le code dans un seul fichier, vous ne pouvez donc rien cacher. Vous pouvez utiliser des fichiers normaux et «# include», mais si vous les introduisez dans l'EDI, cela échoue lamentablement. @Thom, n'est pas que l'on doive jamais abandonner le contrôle de ... tout ce qui se trouve après `main` dans un système embarqué ... mais je m'attendrais à ce que le micro attende juste une réinitialisation ou une interruption.
@Nick, avez-vous lu le "comment faire un tutoriel de bibliothèque Arduino" ... Je viens de faire mon premier récemment et cela a bien fonctionné pour moi.
Je dirais presque que le modèle de boucle de configuration convient à tous les programmes, intégrés ou non.
#4
+4
Dave
2010-12-20 21:51:39 UTC
view on stackexchange narkive permalink

Ma première question pour vous est: qu'allez-vous en faire? Bien que la mise en service d'Arduino soit facile et que de nombreux croquis soient disponibles, le développement n'est pas si amusant. IMO, l'EDI est un peu bizarre et certains des raccourcis clavier sont vraiment désagréables pour les développeurs Visual Studio. :) Comme Leon l'a dit, vous n'aurez pas de débogage en circuit, mais certains des autres appareils faciles d'accès comme mbed ne l'ont pas non plus.

Si vous ne faites que jouer autour et bitbanging pour en savoir plus sur les LCD, ou si vous souhaitez lire les données des capteurs ou interagir avec des périphériques série, c'est génial. Cependant, si je décidais d'une plate-forme pour un produit grand public, je choisirais autre chose qui fournisse un débogage en circuit.

Ouais juste pour jouer vraiment.
Je suis d'accord sur les bizarreries IDE. Développer avr-gcc dans eclipse rend la programmation beaucoup moins pénible. L'auto-complétion de Ctrl-espace en particulier manque à mon avis.
Arduino has an IDE? lol.
@Nick: haha, ouais plus comme Bloc-notes avec une peau différente.
Oui - doit ... avoir ... la saisie semi-automatique
#5
+1
russ_hensel
2011-01-05 00:13:23 UTC
view on stackexchange narkive permalink

Dave Jones a créé un blog vidéo sur l'Arduino. Si le lien ne fonctionne pas, recherchez l'EEVBlog # 45.

@user1498,, veuillez ne pas simplement vider un lien, en particulier lorsque vous créez un lien vers des blogs. Les blogs sont excellents pour détruire les liens, donc si quelqu'un vient à votre réponse quelques mois plus tard et si le lien est mort, votre réponse est * totalement sans valeur *, et le site en souffre. Les liens * ne sont pas mauvais *, mais offrent au moins une petite description.


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 2.0 sous laquelle il est distribué.
Loading...