Empfehlung für Arduino [geschlossen]

7

Okay, hier sind einige Hintergrundinformationen, die zu der [offensichtlichen] Frage mit weiterer Ausarbeitung führen: Ich habe in den letzten Jahren hier und da eine 28-polige PICAXE für kleine Projekte verwendet und bin bereit, aufzusteigen. Mein aktuelles Projekt ist die PICAXE als Datenerfassungsmodul. Ich habe die Platine einfach in einem Gehäuse montiert und die Ein- und Ausgänge an [viele] Schraubklemmen an der Außenseite angeschlossen, um einen schnellen und schmerzlosen Austausch von Komponenten zu ermöglichen. (Und zur weiteren Visualisierung habe ich auch einen 5-V-Regler eingebaut und eine DC-Buchse angeschlossen, damit ich eine universelle Netzwarze für die Stromversorgung anschließen und die USB-Verbindung mit einem Mini-USB-Anschluss verbinden kann, der von außen angeschlossen werden kann.) Nun, die Anbindung an den Computer ist für die PICAXE ziemlich schmerzhaft und kann nur mit ihrem offiziellen Programm programmiert werden.

Also werde ich auf Arduino upgraden. Ich dachte an das Arduino Mega Starter Kit, weil es das vielseitigste zu sein scheint, und ich weiß, dass jedes Board, das ich bekomme, das Board sein wird, das ich für eine Weile verwenden werde. Wenn ich es noch einmal machen könnte, hätte ich mit dem Arduino angefangen.

Am meisten interessiert mich die Datenerfassung und das Zurücksenden von Daten an meinen Computer sowie die Automatisierung, von der ich weiß, dass sie kein Problem darstellt. Ich habe Erfahrung mit C und BASIC, aber ich bevorzuge C; Ich bin mir nicht sicher, ob es einen Unterschied in der Sprache zwischen Arduino gibt oder nicht. Also, was würden Sie als das vielseitigste Arduino empfehlen, das meine aktuellen Ziele erreicht und mich fett und glücklich über die Fähigkeiten für die seltsamen Dinge hält, die ich als nächstes tun möchte?

Als sekundäre Frage: Ist es möglich, einige (oder alle) Arduinos mit LabVIEW zu verbinden?

iklln6
quelle

Antworten:

7

Anscheinend haben Sie Ihre eigene Frage weitgehend beantwortet. Das Mega ist mit Abstand das größte und mächtigste der Arduinos. Persönlich neige ich eher zur Quantität als zur Qualität, also würde ich zwei günstigere Arduinos bekommen. Ich finde die weiblichen Überschriften auf den Arduinos etwas einschränkend, so dass die verschiedenen Steckbrett-Arduinos dazu neigen, mein Nicken zu bekommen ( Really Bare Bones Boarduino und Boarduino). Wenn Sie sich für ein Arduino entscheiden, wählen Sie normalerweise zwei Dinge: Wie viele Ein- / Ausgänge hat es und wie kommuniziert man mit ihm? Sie haben offensichtlich die E / A-Fragen im Griff, möchten aber möglicherweise überlegen, ob Sie USB oder seriell (wahrscheinlich über USB -> seriellen Adapter) zum Programmieren des Arduino verwenden möchten. Wenn Sie nur ein oder zwei Boards kaufen möchten, ist USB das einfachste und billigste. Wenn Sie am Ende 3 oder mehr Karten haben, ist es wahrscheinlich billiger, nur serielle Karten und einen separaten USB -> seriellen Konverter ( FTDI-Kabel oder FTDI Basic Breakout Board ) zu kaufen .

Das Basis-Arduino ist erstaunlich leistungsfähig und es ist ziemlich einfach, zusätzliche Eingänge mit billigen Multiplexer-ICs hinzuzufügen. Wenn Sie die zusätzlichen Eingänge nicht sofort benötigen, lohnt es sich möglicherweise, mit einer günstigeren Karte zu beginnen.

Wenn Sie die Arduino IDE verwenden, programmieren Sie in C ++ auf allen Arduinos. In der Arduino-Dokumentation wird die Verwendung von nur geringfügig mehr als der C-Teilmenge von C ++ (im Grunde C mit nur ein oder zwei Extras) empfohlen, sodass sich ein C-Programmierer sehr wohl fühlen sollte. Als zusätzlichen Bonus können Sie beispielsweise Variablen deklarieren, bevor Sie sie verwenden, anstatt dies zu Beginn der Funktionen tun zu müssen. Achten Sie andererseits auf Unterschiede zur C-Standardbibliothek. sprintf ("% f", foo) und einige andere Dinge funktionieren standardmäßig nicht. Wenn Sie Zweifel haben, klicken Sie auf arduino.cc und suchen Sie.

Für die Kommunikation mit dem Computer verwende ich Ruby on Rails persönlich, um mit meinen Arduino-Projekten zu sprechen, aber die meisten Leute scheinen die Verarbeitung zu bevorzugen. Alles läuft auf eine serielle Schnittstelle hinaus, sodass Sie alles verwenden können, mit dem Sie sich am wohlsten fühlen.

edebill
quelle
Fantastische Antwort - Ich hatte vor, den ATMega zu kaufen, der als der größte identifiziert wurde, aber Sie haben einen sehr guten Punkt mit den mehreren billigeren Karten und dem Hinzufügen von Eingängen, falls erforderlich, über Multiplexer. Ich denke, das ist der Weg, den ich gehen werde. Die virtuelle Einschränkung vorgefertigter Eingaben würde durch die zusätzlichen Funktionen mehrerer Karten erheblich ausgeglichen. Ich werde natürlich USB verwenden, bis ich etwas Besseres baue (Bluetooth ist in Zukunft, aber nur als serielle Brücke, also nicht philosophisch anders als seriell-> USB).
Iklln6
3

Bisher bestehen alle Arduino-Systeme und kompatiblen Systeme aus einer Karte mit einem Atmel-Chip (z. B. 168 oder 328), einem Bootloader, einer High-Level-Bibliothek und einer plattformübergreifenden Benutzeroberfläche. Mit dem Bootloader können Sie Programme herunterladen, die auf dem Host über die serielle uC-Schnittstelle entwickelt wurden. Die meisten Benutzer konvertieren den seriellen uC-Anschluss über eine Vielzahl von FTDI-USB-zu-Seriell-Schnittstellen in eine USB-Verbindung. Die serielle / USB-Schnittstelle kann mit LabView verwendet werden.

Sie können diese Boards als Arduinos oder als eingebettete Systeme verwenden. Die meisten dieser Karten haben einen 3x2-Header, der der Atmels ICSP-Spezifikation entspricht. Mit einem USB-zu-ICSP-Adapter (wie dem ATmel AVRISPMKII) können Sie die Karte ohne den Bootloader oder die Arduino-Bibliotheken programmieren. Es gibt eine Vielzahl von Atmel-Bibliotheken, die Sie für die eigenständige C-Entwicklung verwenden können. Der größte Teil meiner Entwicklung erfolgt über den ICSP-Port, gcc und ein Makefile. Die Arduino-Bibliotheken leisten hervorragende Arbeit bei der Bereitstellung von Hardwaresteuerung auf hohem Niveau. Manchmal ist der Kompromiss die Leistung. In einer kürzlich durchgeführten Anwendung stellte ich eine erhebliche Geschwindigkeitsverbesserung fest, als ich digitalWrite-Anweisungen in Bitset- und Bitclear-Operationen änderte.

Die richtige Karte hängt mehr von Ihrer Anwendung ab -

  1. Wie viele digitale E / A benötigen Sie?
  2. Ist die Genauigkeit und Auflösung des uC A / D ausreichend?
  3. Benötigen Sie einen Analogausgang? Welche Genauigkeit und Auflösung?
  4. Benötigen Sie eine Signalkonditionierung?
  5. Benötigen Sie Isolation?
  6. Benötigen Sie eine Zeitstempelung der Daten auf der uC-Karte oder kann dies vom Host übernommen werden?
  7. Wie viele serielle Schnittstellen benötigen Sie? (Die letzten beiden Anwendungen, die ich durchgeführt habe, könnten einen weiteren UART verwendet haben;)

Wenn Sie den A / D auf dem uC nicht verwenden können und die UARTs nicht benötigen, sind Sie mit dem kleineren Board möglicherweise besser dran. Das letzte große Datenerfassungssystem, das ich verwendet habe, war ein uC mit nur wenigen Peripheriegeräten. Wir brauchten einen 16-Bit-A / D- und einen 14-Bit-DAC. Es machte keinen Sinn, für einen internen 10-Bit-A / D- oder 8-Bit-DAC zu bezahlen.

Ich mache ein paar Arduino-kompatible Karten, die alle E / A-Verbindungen zu einem einzigen Header zusammenführen. Sie können ein System mit koplanaren Karten, gestapelten Karten, Remote-Karten (ein Flachbandkabel) oder einer Rückwandplatine erstellen. Die Rückwandplatine könnte für ein Datenerfassungssystem nützlich sein, das Peripheriekarten verwendet. Meine Boards sind unter http://www.wiblocks.com

jluciani
quelle
2

Wenn Sie nur Daten erfassen, erscheint das Mega etwas überflüssig, es sei denn, Sie verwenden Tonnen von Sensoren und benötigen mehrere serielle Schnittstellen. Ich würde sagen, dass Sie für eine einfache Datenerfassung nur mit dem Diecimila einverstanden sind (wiederum abhängig davon, was Sie tatsächlich damit tun müssen).

zklapow
quelle
Ich weiß, dass der Mega für eine einfache Datenerfassungsaufgabe etwas übertrieben ist, aber ich möchte nicht eingeschränkt werden, wenn ich die wilden Haare dazu bringe, Tonnen von Sensoren zu verwenden. Vor ein paar Jahren habe ich das PICAXE-Setup gekauft, um meinen ersten Roboter zu bauen, aber jetzt wünschte ich mir, ich hätte mehr Nachforschungen angestellt, um etwas umfassenderes zur Unterstützung der unvermeidlichen Sucht zu erhalten. Ich nehme an, eine passendere Frage könnte gewesen sein: "Welches Arduino-Board hat die meisten Funktionen / Merkmale?" Ich weiß jedoch nicht, ob diese Frage aufgrund anwendungsspezifischer Setups nicht beantwortet werden kann.
Iklln6
Man könnte sagen, dass der Mega mehr Funktionen hat, aber Ihre Enge hängt von Ihrem Setup ab. Wenn alle Ihre Sensoren I2C sind, gibt es keinen Unterschied, dass sie alle über einen einzigen I2C-Bus gesteuert werden können, den alle Arduinos haben. Seriell ist dagegen eine andere Geschichte.
Zklapow
1

Ja, ich würde zwei reguläre Arduinos anstelle des Arduino MEGA bekommen, es sei denn, Sie haben speziell ein Projekt, das viele E / A erfordert.

Es ist einfach, ein Projekt zu erstellen, das Sie behalten möchten. Anstatt Ihre Schaltung zu zerreißen, um ein neues Projekt zu erstellen, behalten Sie es und holen Sie sich einfach ein anderes Arduino. Wenn die Kosten für ein normales Arduino zu hoch sind, können Sie ein Freeduino-Kit bauen. Und wenn das zu viel ist, können Sie mit nur einem ATmega8, einem Widerstand und einem Kondensator ein minimales Arduino-Setup vornehmen.

todbot
quelle
1

Eine etwas andere Lösung für Ihre Frage besteht darin, zu berücksichtigen, dass Ihre PicAXEs nur ein vorprogrammierter PIC sind. Das Handbuch listet die folgenden Äquivalenzen auf:

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

und veraltete Chips:

  • PICAXE-28A = PIC16F872 (ersetzt durch 28X1)
  • PICAXE-28X = PIC16F873A (ersetzt durch 28X1)

Theoretisch könnten Sie also einen Programmierer bekommen, der diese PICs unterstützt und sie entweder in C oder Assembler neu programmiert, den PicAXE-Bootloader löscht und sie als Standard-PICs verwendet. Auf diese Weise können Sie Ihre Chips viel flexibler programmieren.

So können Sie beispielsweise den Chip in Ihren Datenlogger aufnehmen, ihn in C neu programmieren, um das zu tun, was Sie wollen, und ihn in derselben Schaltung ersetzen. Obwohl Sie möglicherweise die PicAXE-Programmierschaltung entfernen müssen, wenn Sie sie installiert haben, weiß ich nicht, wie genau sie die ICSP-Schaltung der PICs nachahmt (ich denke, Sie werden die Audio-Buchse nicht verwenden).

Amos
quelle
1

Ein fast voll funktionsfähiger Arduino-Klon (z. B. ein Duinostamp von Fundamentalogic ) ist für nur 10-12 US-Dollar erhältlich. Sobald Sie mit dem Prototyping fertig sind, können Sie ihn einfach in Ihr Projekt einbetten und in freier Wildbahn veröffentlichen . Das Einbetten eines vollständigen Arduino (TM) wäre imo übertrieben. Ich würde sagen, holen Sie sich die billigsten und besorgen Sie sich ein FTDI-Kabel zum Hochladen von 'Skizzen' (über die Arduino-IDE) usw. Möglicherweise möchten Sie auch einen ISP-Programmierer, wenn Sie benutzerdefinierte Bootloader usw. einsetzen möchten (oder einfach nur Geld sparen) Chip durch Verbrennen des Bootloaders selbst)

Ich bin ein Anfänger und habe zuerst das Duemilanove-Board bekommen, aber auch nach dem Spielen mit dem Original ein Boarduino bekommen, da es viel einfacher ist, Prototypen direkt auf dem Steckbrett zu erstellen. In Zukunft beabsichtige ich, nur den Barebone-Stempel "duino" oder einen gleichwertigen Stempel für die Einbettung in Projekte zu erstellen.

Arduino (tm) ist anfangs großartig, aber ich fand sehr schnell heraus, dass ich für tatsächliche Projekte, die ich in die Wildnis bringen möchte, etwas Flexibleres ... und Billigeres brauchen würde (plus die weiblichen Header können etwas unweildy werden , obwohl sie ideal für Anfänger sind)


quelle
0

Betrachten Sie einige Barebone-Boards in Kit-Form, arbeiten gut mit Steckbrett, sehr preiswert. Nachteile: Sie sind rs232 ttl und nehmen keine Schilde. Maker Shed hat einige Adapter von Standard 232. Moderndevice.com bezieht das Board. Unter 15 Dollar wie ich mich erinnere.

russ_hensel
quelle
0

Ein großer Vorteil des Mega ist, dass es mehr Speicher hat und insbesondere RAM bei Mikrocontrollern ziemlich begrenzt ist. Abhängig davon, welche Art von Experimenten Sie durchführen möchten, können Sie den zusätzlichen Flash für große Programme und die Speicherung konstanter Zeichenfolgen schätzen. und Sie werden sicherlich den zusätzlichen RAM-Speicherplatz für Arrays, Protokolle, Ringpuffer, verknüpfte Listen usw. zu schätzen wissen, ohne Komprimierungsschemata (ziemlich oft ...) erfinden zu müssen, um in weniger RAM zu passen, insbesondere beim Debuggen oder Testkonzepte.

JRobert
quelle
0

Eine weitere Option für ein Arduino-kompatibles Steckbrett ist das Teensy . Sie verfügen über einen Mini-USB-Anschluss, sodass Sie keinen externen USB-zu-Seriell-Anschluss benötigen. Sie können als Arduino programmiert werden, indem Sie den kostenlosen Code zum Hinzufügen zur Arduino-IDE verwenden (oder als Straight-AVR Ihrer Wahl programmieren). Sie sind mit und ohne Header zum Breadboarding erhältlich. Ich habe mehrere davon für verschiedene Projekte verwendet.

ViennaMike
quelle