Arduino Vs DIY-Board

Die Arduino-Website geht auf einige dieser Fragen ein, jedoch nicht sehr detailliert.

Was ist also der Unterschied, ob man ein Arduino-Board kauft oder selbst eines herstellt? Welche Vorteile hat der Kauf des Boards gegenüber dem Zusammenbau aus verschiedenen Teilen?

Ich habe gesehen, dass Sie den eigentlichen Mikrocontroller (ATmega328 oder ähnliches) mit und ohne Arduino-Bootloader kaufen können. Was bedeutet das?

Wie würden Sie vorgehen, um ein Board zu programmieren, das separat zusammengebaut wurde (vermutlich ohne Verbindung mit Arduino, dem Bootloader usw.)?

Gibt es Vorteile beim Programmieren eines Arduino über einen AVR gegenüber einer USB-Verbindung? Ist die Programmierung auf diese Weise der Programmierung mit der Arduino IDE ähnlich?

Eine Weile nachdem ich mit der Arduino-Programmierung begonnen hatte, baute ich ein „Steckbrett-Arduino“ und kurz darauf 10 Platinen mit benutzerdefinierten Stiftausbrüchen (keine Arduino-„Schild“-Header) an einem billigen chinesischen Platinenplatz für jeweils 2,50 $. Atmega328p-Chips kosten jeweils 2,50 US-Dollar in großen Mengen. Fügen Sie einen Regler, einige Kappen und vielleicht einen Reset-Knopf hinzu und Sie sind im Geschäft. Ich programmiere diese Boards mit einem USB-Programmierer (ICSP) und nicht über die serielle Schnittstelle, sodass ich den auf den Chips vorinstallierten "Arduino-Bootloader" nicht benötige.

Antworten (4)

Es ist wahrscheinlicher, dass vorgefertigte Boards sofort einsatzbereit sind. Wenn Sie ein DIY-Steckbrett herstellen, erhalten Sie mehr Einblick.

Ich würde beides tun: einen professionell gebauten Arduino kaufen, die Komponenten kaufen, um einen Steckbrettklon zu machen. Während Sie klonen, können Sie das professionell gebaute Arduino als Referenz verwenden, von dem Sie wissen, dass es funktioniert.

Viel lesen. Mit der Zeit werden mehr Dinge Sinn machen. Zögern Sie nicht, das ATMega-Datenblatt (zumindest überfliegen) und andere Atmel-Papiere zu lesen.

Hier ist eine Seite auf der Arduino-Website, die beschreibt, wie man Arduino als In-System-Programmierer verwendet .

Der praktische Unterschied liegt in den Kosten, der Verarbeitungsqualität und dem Support. Es ist einfacher, einen vorgefertigten zu bekommen, möglicherweise billiger für eine exakte Kopie.

Der Arduino ist ein Ökosystem zwischen den Hardwareplatinen, der Programmierumgebung und dem Bootloader auf dem ATMega-Mikrocontroller. Der Bootloader ist wie Windows auf einem PC.

Es ist seltsam, es ein Ökosystem zu nennen, wenn die Teile isoliert voneinander gut funktionieren.
@ChrisStratton sicher, dass sie isoliert gut funktionieren, aber sie sollen zusammen verwendet werden. Wie das Apple-Ökosystem aus Mac-Hardware + OS + iStuff.
Aber das ist ein perfektes Beispiel dafür, was dies nicht ist - das iStuff hat einen erheblichen Lock-in und welche Alternativen es für einzelne Komponenten gibt, wird besonders 2. Klasse gehalten und oft mit Kopfschmerzen belastet. Dies ist ausdrücklich nicht der Fall bei den einzelnen Arduino-Teilen, die für sich allein oder mit Alternativen sehr gut funktionieren.
@chris. Ich denke, Passerbys Satz wurde auf den abgeleiteten Wissensstand des Fragestellers abgestellt. Ich hoffe, dass der Fragesteller daraus versteht, dass es eine besonders große Anzahl von Add-Ons von Drittanbietern gibt, die für die Arbeit mit Arduino-Boards entwickelt wurden, die das normale Header-Layout haben, und dass es eine große Community von Leuten gibt, die Software und Tutorials für teilen der Arduino. Es könnte für A besser sein, dies explizit zu machen, als sich zu viele Gedanken über die Definition von „Ökosystem“ zu machen.
Ich kann viele Compiler (Avrdude) verwenden und bin nicht auf die Arduino-IDE beschränkt. Ich kann eine Arduino-IDE verwenden, um jeden Atmega mit dem Bootloader zu programmieren. Ich kann den Bootloader mit minimalen Änderungen auf vielen Chips installieren, mit denen Arduino nicht geliefert wird atmega-chips auf anderen plattformen verwenden kann, die nicht dem arduino-standard entsprechen, ich kann auch andere avrs in das arduino tauschen. Sehen Sie nicht, wie sie ineinander verriegelt sind

Wenn Sie Ihren eigenen bauen, müssen Sie einen ATMega328P kaufen, der bereits mit dem Aurduino-Bootloader programmiert ist. Das ist so, dass Sie die Arduino IDE verwenden können, um Programme oder "Skizzen" zu laden, wenn sie aufgerufen werden. Die Programmierung ist identisch mit einem im Laden gekauften Arduino. Wer auch immer Sie den Chip bekommen, wird Ihnen sagen, welche Art von Board Sie auswählen müssen, basierend auf dem Bootloader, den sie darin eingebaut haben. Für einen Chip würde ich VirtualBotix https://www.virtuabotix.com/product-information/?productid=06092245317437 empfehlen, da sie ein Kit mit AtMega328p, Quarzoszillator, Kappen und Spannungsregler haben. Ihre Unterstützung ist großartig, wenn Sie Hilfe brauchen, um loszulegen.

Zum Programmieren benötigen Sie eine FTDI-Schnittstellenkarte. Hier ist einer: https://www.virtuabotix.com/product-information/?productid=6092245318977

Diese beiden Dinge sind rund 23 $. Für 25 bis 30 US-Dollar können Sie auf ein vorgefertigtes (sogar echtes) Arduiono setzen. Wenn Sie weiterhin mit Arduino arbeiten, möchten Sie wahrscheinlich sowieso ein Board zur Hand haben. Lassen Sie mich erklären, echt vs. Klon. Da es sich bei Arduino um Open-Source-Hardware und -Software handelt, sind die Schaltpläne verfügbar und jeder kann sie frei herstellen und verkaufen. Einige Leute sind da draußen auf Klone von geringerer Qualität gestoßen.

Nachdem ich all dies eingegeben habe, ist meine Empfehlung, ein echtes Arduino Uno zu kaufen. Sie können mit verschiedenen Schilden spielen und wenn Sie später Ihr eigenes kleines Brett bauen möchten, haben Sie das Wissen, wie das "Ökosystem" funktioniert.

Es geht um Vorlieben, vorausgesetzt, Sie erhalten alle Vorteile der Arduino-Plattform, wenn Sie sich daran halten. Aber Sie können die Mikrocontroller sicherlich kaufen und sie eigenständig verwenden. Bisher müssen die, die ich verwendet habe, nicht vorprogrammiert werden, sie haben ein paar bis drei verschiedene Methoden zum Programmieren des Teils. Atmegas sind einfacher, Xmega etwas schwieriger, weil das Timing empfindlicher, aber machbar ist. (Sie können ein Xmega-Breakout-Board von Sparkfun bekommen und es selbst ausprobieren, oder einfach ein paar Teile besorgen und Ihr eigenes Breakout machen oder was auch immer. Ich habe gerade oshpark ausprobiert, es ist in vielerlei Hinsicht vernünftig).

Wenn Sie die USB-Schnittstelle zum Programmieren des Teils verwenden möchten, müssen Sie einen Bootloader mit einer der anderen Programmiermethoden installieren.

Die Dokumentation von Atmel enthält die Programmierprotokolle, die sind nicht so schwierig, wenn Sie etwas zu hämmern haben. Ein anderer Mikrocontroller zum Beispiel oder eine Art Ftdi-Board.

Der offensichtliche Vorteil der Programmierung über USB ist, dass es einfacher ist, solange der Bootloader nicht überschrieben/gelöscht wird. Sie müssen einen Bootloader für den Mikrocontroller und ein Programm für den Host und das Betriebssystem usw. besorgen. Dies kann eine große Aufgabe sein. Je nachdem, welchen Mikrocontroller und welches Protokoll Sie wählen, kann das Bit-Banging eines ftdi-Teils der einfachere Weg sein und Ihnen mit weniger Aufwand mehr Hosts (Windows, Linux, Mac) geben.

Die Arduinos haben eine Reihe subtiler Unterschiede zur Programmierung, die das Programmieren echter Arduinos zu einer Herausforderung machen, wenn Sie es direkt versuchen. Sie nehmen immer wieder diese subtilen Änderungen vor und heften ein weiteres Wenn-Dann-Sonst an ihren Lader. Aus welchem ​​Grund auch immer ist ihre Lösung nicht perfekt. Ein serieller Bootloader ist jedoch im Allgemeinen eine gute Idee. Die subtilen Unterschiede haben normalerweise mit der Baudrate und dem Zurücksetzen des Teils zu tun, damit es weiß, dass Sie versuchen, es zu laden, anstatt es die eingebrannte Anwendung ausführen zu lassen.

Atmel macht es auch nicht unbedingt einfacher, jeder Teil oder jede Familie hat oder kann subtile Unterschiede im Spi- oder anderen Bitbang-Protokoll haben, um zu wissen, wo und wie der Flash zu programmieren ist. avrdude ist eine gute Quelle, um Informationen für viele Teile an einem Ort zu finden (anstatt durch Dutzende von Handbüchern zu blättern, müssen Sie wahrscheinlich immer noch die Handbücher durchblättern).

Ein echtes Arduino oder einen der Minis oder ähnliches von Sparkfun oder wo auch immer zu bekommen, ist kein schlechter Ausgangspunkt, Sie können das Board komplett ohne Arduino-Software jeglicher Art betreiben, den Bootloader ersetzen, was immer Sie tun möchten. oder verwenden Sie einfach ihre Sandbox, Ihre Wahl.