Question:
Recommendation for Arduino
iklln6
2009-12-19 11:47:15 UTC
view on stackexchange narkive permalink

D'accord, voici quelques informations de fond menant à la question [évidente] avec une élaboration plus approfondie: j'utilise un PICAXE 28 broches pour de petits projets ici et là depuis quelques années et je suis prêt à progresser. Mon projet actuel est le PICAXE en tant que module d'acquisition de données. J'ai simplement monté la carte à l'intérieur d'un boîtier et j'ai exécuté les entrées et les sorties vers [beaucoup] de bornes à vis à l'extérieur pour un échange de composants rapide et sans douleur. (Et pour une visualisation plus approfondie, j'ai également intégré un régulateur 5V et mis une prise CC pour pouvoir brancher une verrue murale universelle pour l'alimentation et câblé la connexion USB à un mini-usb qui peut être branché de l'extérieur.) Eh bien, l'interfaçage avec l'ordinateur est assez pénible avec le PICAXE, et il ne peut être programmé qu'avec leur programme officiel.

Donc, je vais passer à Arduino. Je pensais au Arduino Mega Starter Kit car il semble être le plus polyvalent, et je sais que quelle que soit la carte que j'obtiendrai sera la carte que j'utiliserai pendant un bon moment. Si je pouvais le refaire, j'aurais commencé avec l'Arduino.

Ce qui m'intéresse le plus est l'acquisition de données et l'envoi de données vers mon ordinateur, ainsi que l'automatisation, ce qui, je sais, ne sera pas un problème. J'ai de l'expérience avec C et BASIC mais je préfère C; Je ne sais pas s'il existe une différence de langue entre Arduino ou non. Alors, que recommanderiez-vous en tant qu'Arduino le plus polyvalent qui atteindra mes objectifs actuels et me gardera gras et heureux de capacités pour toutes les choses étranges que je désire faire ensuite?

En tant que question secondaire: est-il possible de interface un (ou tous) des Arduino avec LabVIEW?

Dix réponses:
#1
+7
edebill
2009-12-20 00:52:44 UTC
view on stackexchange narkive permalink

Il semble que vous ayez largement répondu à votre propre question. Le Mega est de loin le plus gros et le plus puissant des Arduinos. Personnellement, je penche davantage vers la quantité que vers la qualité, donc j'aurais deux Arduinos moins chers. Je trouve les en-têtes féminins sur les arduinos quelque peu limitatifs, donc les différents Arduinos de la maquette ont tendance à obtenir mon signe de tête ( Really Bare Bones Boarduino et Boarduino). Vous choisissez généralement deux choses lorsque vous choisissez un Arduino: le nombre d'entrées / sorties dont il dispose et comment communiquer avec lui. Vous êtes évidemment au top des questions d'E / S, mais vous voudrez peut-être vous demander si vous allez utiliser USB ou série (probablement via USB -> adaptateur série) pour programmer l'Arduino. Si vous n'achetez qu'une ou deux cartes, l'USB est la plus simple et la moins chère. Si vous vous retrouvez avec 3 cartes ou plus, il est probablement moins cher d'acheter des cartes série uniquement et un convertisseur USB -> série séparé ( câble FTDI ou carte de dérivation de base FTDI).

L'Arduino de base est incroyablement capable et il est assez facile d'ajouter des entrées supplémentaires avec des circuits intégrés multiplexeurs bon marché. Si vous n'avez pas besoin immédiat d'entrées supplémentaires, cela vaut peut-être la peine de commencer par une carte moins chère.

Si vous utilisez l'IDE Arduino, vous programmerez en C ++ sur tous les Arduinos. La documentation Arduino a tendance à encourager l'utilisation d'un peu plus que le sous-ensemble C de C ++ (essentiellement C avec juste un ou deux extras), donc un programmeur C devrait se sentir très à l'aise. En prime, vous pouvez faire des choses comme déclarer des variables juste avant de les utiliser, plutôt que d'avoir à le faire au début des fonctions. D'autre part, faites attention aux différences par rapport à la bibliothèque standard C. sprintf ("% f", foo) et d'autres choses ne fonctionnent pas par défaut. En cas de doute, cliquez sur arduino.cc et recherchez.

En ce qui concerne la communication avec l'ordinateur, j'utilise personnellement Ruby on Rails pour parler à mes projets Arduino, mais la plupart des gens semblent préférer le traitement. Tout se résume à un port série, vous pouvez donc utiliser ce avec quoi vous vous sentez le plus à l'aise.

Réponse géniale - J'avais l'intention d'acheter l'ATMega qui a été identifié comme le plus gros, mais vous détenez un très très bon point avec les multiples cartes moins chères et l'ajout d'entrées si nécessaire à l'aide de multiplexeurs. Je pense que c'est la voie que je vais emprunter. La limitation virtuelle des entrées pré-construites serait largement compensée par les capacités supplémentaires d'avoir plusieurs cartes.J'utiliserai bien sûr USB jusqu'à ce que je construise quelque chose de mieux (le bluetooth est dans le futur, mais simplement comme un pont série, donc pas philosophiquement différent de serial-> usb).
#2
+3
jluciani
2009-12-19 19:18:13 UTC
view on stackexchange narkive permalink

À ce jour, tous les systèmes Arduino et compatibles se composent d'une carte avec une puce Atmel (comme un '168 ou 328), un chargeur de démarrage, une bibliothèque de haut niveau et une interface graphique multiplateforme. Le chargeur de démarrage vous permet de télécharger des programmes développés sur l'hôte à l'aide du port série uC. La plupart des gens convertissent le port série uC en une connexion USB en utilisant une variété d'interfaces FTDI USB vers série. L'interface série / USB peut être utilisée avec LabView.

Vous pouvez utiliser ces cartes comme Arduinos ou comme systèmes embarqués. La plupart de ces cartes ont un en-tête 3x2 conforme à la spécification Atmels ICSP. En utilisant un adaptateur USB vers ICSP (tel que l'ATmel AVRISPMKII), vous pouvez programmer la carte sans le chargeur de démarrage ou les bibliothèques Arduino. Il existe une grande variété de bibliothèques Atmel que vous pouvez utiliser pour le développement C autonome. La plupart de mes développements sont effectués en utilisant le port ICSP, gcc et un Makefile. Les bibliothèques Arduino font un excellent travail en fournissant un contrôle matériel à un niveau élevé. Parfois, le compromis est la performance. Dans une application récente, j'ai remarqué une amélioration majeure de la vitesse lorsque j'ai changé les instructions digitalWrite en opérations bitset et bitclear.

La bonne carte dépend davantage de votre application -

  1. De combien d'E / S numériques avez-vous besoin?
  2. L'uC A / D précision et résolution suffisantes?
  3. Avez-vous besoin d'une sortie analogique? Quelle précision et quelle résolution?
  4. Avez-vous besoin d'un conditionnement de signal?
  5. Avez-vous besoin d'une isolation?
  6. Avez-vous besoin d'un horodatage des données sur la carte uC ou est-ce possible être géré par l'hôte?
  7. De combien d'interfaces série avez-vous besoin? (Les deux dernières applications que j'ai n'ont pas pu utiliser un UART de plus;)

Si vous ne pouvez pas utiliser l'A / D sur l'uC, et que vous n'avez pas besoin des UART, vous serez peut-être mieux de avec la plus petite planche. Le dernier grand système d'acquisition de données que j'ai utilisé a utilisé un uC avec seulement quelques périphériques. Nous avions besoin d'un A / N 16 bits et d'un DAC 14 bits. Il n'y avait aucun sens à payer pour un DAC interne 10 bits A / D ou 8 bits.

Je fabrique quelques cartes compatibles Arduino qui font ressortir toutes les connexions d'E / S sur un seul en-tête. Vous pouvez créer un système comportant des cartes coplanaires, des cartes empilées, des cartes distantes (un câble ruban) ou un fond de panier. Le fond de panier peut être utile pour un système d'acquisition de données utilisant des cartes périphériques. Mes tableaux se trouvent sur http://www.wiblocks.com

#3
+2
zklapow
2009-12-19 12:26:41 UTC
view on stackexchange narkive permalink

Si vous ne faites que l'acquisition de données, le Mega semblera un peu superflu, à moins bien sûr que vous n'utilisiez des tonnes de capteurs et / ou que vous ayez besoin de plusieurs ports série. Je dirais que pour une simple acquisition de données, vous feriez bien avec juste le Diecimila (encore une fois en fonction de ce que vous devez en faire)

Je sais que le Mega est un peu exagéré pour une simple tâche d'acquisition de données, mais je ne veux pas être limité si je fais en sorte que les cheveux sauvages utilisent des tonnes de capteurs. Il y a quelques années, j'ai acheté la configuration PICAXE pour construire mon premier robot, mais maintenant j'aurais aimé faire plus de recherches pour obtenir quelque chose de plus complet pour supporter l'inévitable addiction. Je suppose qu'une question plus appropriée aurait pu être "Quelle carte Arduino a le plus de fonctions / fonctionnalités?" mais je ne sais pas si cette question est sans réponse en raison de configurations spécifiques à l'application.
Vous pourriez dire que le Mega a plus de fonctionnalités, mais votre précision dépend de votre configuration. Si tous vos capteurs sont I2C, il n'y a aucune différence, ils peuvent tous être contrôlés via un seul bus I2C, ce que tous les arduinos ont, la série en revanche est une autre histoire.
#5
+1
todbot
2009-12-19 16:15:19 UTC
view on stackexchange narkive permalink

Ouais, j'obtiendrais deux Arduinos ordinaires au lieu de l'Arduino MEGA, sauf si vous avez spécifiquement un projet qui nécessite beaucoup d'E / S.

Il est facile de créer un projet que vous souhaitez conserver, donc au lieu de déchirer votre circuit pour créer un nouveau projet, gardez-le et obtenez un autre Arduino. Si le coût d'un Arduino ordinaire est trop élevé, vous pouvez créer un kit Freeduino. Et si c'est trop, vous pouvez faire une configuration Arduino minimale en utilisant juste un ATmega8, une résistance et un condensateur.

#6
+1
Amos
2009-12-19 16:19:13 UTC
view on stackexchange narkive permalink

Une solution légèrement différente à votre question est de garder à l'esprit que vos PicAXE ne sont qu'un PIC préprogrammé, le manuel répertorie les équivalences suivantes:

  • PICAXE-28X1 = PIC16F886
  • PICAXE-28X2 = PIC18F2520 (3V version PIC18F25K20)

et puces obsolètes:

  • PICAXE-28A = PIC16F872 (remplacé par 28X1)
  • PICAXE-28X = PIC16F873A (Remplacé par 28X1)

Donc, en théorie, vous pourriez obtenir un programmeur qui prend en charge ces PIC et les reprogrammer soit en C ou en Assembler, effaçant Bootloader PicAXE et utilisez-les comme PIC standard. De cette façon, vous pouvez programmer vos puces avec beaucoup plus de flexibilité.

Ainsi, vous pouvez prendre la puce dans votre enregistreur de données par exemple, la reprogrammer en C pour faire ce que vous voulez, et la remplacer par la même circuit. Bien que vous deviez peut-être retirer le circuit de programmation PicAXE si vous l'avez en place, je ne sais pas à quel point il imite le circuit ICSP des PIC (vous n'utiliserez pas la prise audio, je pense).

#7
+1
Mike M
2009-12-26 07:33:45 UTC
view on stackexchange narkive permalink

un clone arduino presque entièrement fonctionnel (par exemple, un duinostamp de Fundamentalogic) peut être obtenu pour aussi peu que 10 à 12 $ ... et une fois que vous avez terminé le prototypage, il est assez facile à intégrer dans votre projet et libérez-le dans la nature. Intégrer un Arduino (TM) complet serait exagéré pour moi. Je dirais obtenir les moins chers et obtenir un câble FTDI pour télécharger des `` croquis '' (via l'IDE arduino), etc. Vous pouvez également obtenir un programmeur FAI si vous prévoyez de mettre des chargeurs de démarrage personnalisés, etc. (ou simplement économiser de l'argent un puce en brûlant le bootloader vous-même)

Je suis un débutant et j'ai eu la carte Duemilanove au début, mais j'ai fini par obtenir un boarduino aussi après avoir joué avec l'original, car il est beaucoup plus facile de prototyper avec correctement sur la planche à pain. À l'avenir, j'ai l'intention de créer uniquement le timbre "duino" barebones ou équivalent pour l'intégrer dans tous les projets.

Arduino (tm) est génial pour commencer, mais j'ai trouvé très rapidement cela pour des projets réels que j'ai l'intention de publier dans la nature, j'aurais besoin de quelque chose de plus flexible ... et moins cher (en plus les en-têtes féminins peuvent devenir un peu désagréables, bien qu'ils soient parfaits pour les débutants)

#8
  0
russ_hensel
2009-12-19 22:12:21 UTC
view on stackexchange narkive permalink

Considérez quelques planches barebones sous forme de kit, fonctionnent bien avec une planche à pain, très bon marché. Inconvénients: ils sont rs232 ttl et ne prennent pas de boucliers. Maker shed a quelques adaptateurs de la norme 232. Moderndevice.com fournit la carte. Moins de 15 dollars comme je me souviens.

#9
  0
JRobert
2011-10-22 19:43:45 UTC
view on stackexchange narkive permalink

Un gros avantage du Mega est qu'il a plus de mémoire et la RAM, en particulier, est assez limitée sur les micro-contrôleurs. Selon les types d'expériences que vous souhaitez faire, vous pouvez apprécier le flash supplémentaire pour les programmes volumineux et le stockage de chaînes constantes; et vous apprécierez certainement l'espace RAM supplémentaire pour les tableaux, les journaux, les tampons en anneau, les listes chaînées, etc., sans avoir à inventer des schémas de compression (assez souvent ...) pour tenir dans moins de RAM, surtout pendant le débogage ou tester des concepts.

#10
  0
ViennaMike
2012-10-09 21:24:57 UTC
view on stackexchange narkive permalink

Une autre option pour une compatibilité arduino basée sur une maquette est le Teensy. Ils ont un connecteur mini-USB afin que vous n'ayez pas besoin de l'USB externe vers série, et peuvent être programmés comme un Arduino en utilisant le code fourni gratuitement pour l'ajouter à l'IDE Arduino (ou le programme comme un AVR direct, votre choix). Ils sont disponibles avec et sans les en-têtes pour la maquette. J'en ai utilisé plusieurs sur divers projets.



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...