Habe ich verstanden, was Arduino richtig ist?

7

Kann jemand bestätigen, dass ich verstehe, was es ist, bevor ich ein Arduino-Starter-Kit kaufe?

So wie ich es verstehe, kann ich einen Simulator verwenden, um das gewünschte Verhalten zu erstellen. Wenn ich mit dem Code, den ich kompiliere, zufrieden bin, schließe ich den Arduino Uno an meinen Computer an (mit einem "leeren Chip) und flashe den Chip. Dann kann ich den Chip entfernen und auf ein Steckbrett oder einen Matrixstreifen legen oder solche und arbeiten es in ein Projekt.

Ist das richtig?

Ben
quelle
1
Was Sie beschrieben haben, ist im Wesentlichen ein Geräteprogrammierer wie der STK-500
JustJeff

Antworten:

10

Nein, du hast es falsch verstanden. Der Chip ist nicht leer (auch Sie setzen den Chip nicht in Arduino ein. Er wird mit dem Arduino geliefert). Es verfügt über einen speziellen Bootloader, der eigentlich den Kern der Arduino-Plattform bildet und es Arduino ermöglicht, keinen speziellen Programmierer zum Programmieren der Chips zu haben. Es wird also überhaupt nicht mit leeren Chips funktionieren. Außerdem sind Sie nur auf Chips beschränkt, die vom Bootloader unterstützt werden oder sehr ähnlich sind.

Soweit ich sehen kann, hat die Arduino IDE keinen Simulator, daher haben Sie in diesem Punkt kein Glück.

Der Hauptpunkt von Arduino ist, dass es den physischen Betrieb des Chips selbst vor dem Programmierer verbirgt, was es für diejenigen einfacher macht, die es zu kompliziert finden, den Chip direkt zu programmieren. Es bietet eine vereinfachte C-ähnliche Programmiersprache und eine große Funktionsbibliothek, mit der verschiedene Peripheriegeräte einfach angeschlossen werden können. Die Leiterplatte selbst ist nützlich, da sie Benutzern eine qualitativ hochwertige Basis für die Herstellung ihrer eigenen Geräte bietet und ihnen die Mühe erspart, eine Leiterplatte herzustellen, die den AVR selbst antreibt oder eine Art Prototyping-Karte verwendet.

Grundsätzlich möchten Sie die reguläre ATMEL-IDE AVR Studio mit einem Simulator (Sie können sie kostenlos herunterladen und prüfen, ob sie Ihren Anforderungen entspricht). Auf der Hardwareseite benötigen Sie entweder einen Programmierer , wenn der Simulator der IDE in Ordnung ist, oder einen In-Circuit-Emulator, mit dem Sie den Code direkt auf dem Chip debuggen können. Der Emulator selbst ist ziemlich teuer, aber es gibt einige andere Produkte, mit denen Sie auch den Code durchgehen können.

Beachten Sie, dass es möglich ist, einen AVR-Programmierer mit Arduino zu erstellen, dies ist jedoch kein großer Vorteil gegenüber anderen im Internet verfügbaren Programmierern oder dem offiziellen Programmierer.

AndrejaKo
quelle
Danke dafür. Gibt es eine Alternative, die das tut, woran ich denke? Sagen Sie PIC oder AVR? Ich möchte in der Lage sein, meinen eigenen Chip zu "schreiben" und diesen dann auf einer separaten Schaltung zu verwenden.
Ben
@ Ben Ich habe bereits in meiner Antwort über Alternativen geschrieben. Wenn dies nicht angezeigt wird, aktualisieren Sie die Seite. Arduino verwendet AVR-Chips und Sie können mit ihnen alle Standard-AVR-Tools verwenden. Ich bin (noch) kein PIC-Benutzer, daher kann ich Ihnen keine gute Empfehlung dazu geben, aber nach dem, was ich gesehen habe, enthält das Standard-PICkit 3-Tool einen ICE und scheint billiger zu sein als AVR ICE mkII.
AndrejaKo
1
Auch wenn Sie eine Karte möchten, können Sie sich beispielsweise diese für PIC oder diese für AVR ansehen . Sie arbeiten mit nackten Chips und benötigen keinen Bootloader. Es gibt viele weitere Alternativen, aber diese beiden kamen mir als erste in den Sinn.
AndrejaKo
@AndejaKo - Danke für den Rat! Schätze es wirklich!
Ben
1
@Ben icarpt.files.wordpress.com/2010/03/minimal_arduino.jpg So einfach ist es, den ATMega-Chip aus dem Arduino zu nehmen und in Ihre eigene Schaltung zu legen. Tatsächlich werden der Reset-Schalter und das DTR-Zeug nicht einmal benötigt. Wenn Sie einfache ATMega168- oder ATMega328-Chips in größeren Mengen bei Mouser oder Digikey billiger kaufen möchten, können Sie einen USBTinyISP ( adafruit.com/products/46 ) erstellen und damit einen Arduino-Bootloader programmieren und Ihre Skizze brennen oder sogar brennen nur die Skizze ohne den Bootloader.
Nemik
5

Nicht ganz, nein.

Das Arduino ist ein ganzes System für sich.

Es ist zwar möglich, den Chip von der Platine zu entfernen und in Ihren eigenen Systemen zu verwenden, dies ist jedoch selten der Fall.

Mit dem Arduino programmieren Sie Ihre "Skizze" (wie sie es nennen) in einer Teilmenge von C ++, die auf einem System namens "Wiring" basiert. Sie laden dies dann auf das Arduino-Board hoch. Auf dem Board befindet sich bereits der Chip, und Sie lassen ihn dort. Auf der Karte befinden sich Verbindungen, um sie mit Ihren anderen Systemen zu verbinden.

Sie können Ihre "Skizze" so oft ändern, wie Sie möchten, und sie erneut auf das Arduino hochladen, bis Sie es richtig verstanden haben.

Es gibt zwar Simulatoren, diese werden jedoch nur selten verwendet, da es am einfachsten ist, sie direkt auf das Arduino hochzuladen und es ordnungsgemäß mit Ihrer externen Hardware interagieren zu lassen.

Majenko
quelle
Die Verwendung des Arduino zum Klonen in einen bloßen Chip ist wahrscheinlich weitaus häufiger als das Abziehen der Chips von Brettern.
Chris Stratton
2

Sie können den Chip definitiv vom Arduino entfernen und ihn auf einem bloßen Brett oder in einem anderen Projekt verwenden. Der Chip auf dem Arduino Uno und älteren Versionen des Arduino Duemilanove ist ein atmega328 (einige Versionen haben einen atmega168). Den tatsächlichen Verweis auf den Chip finden Sie auf der atmel-Website (Links können nicht gepostet werden, da nicht genügend Karma vorhanden ist). Die Sache, auf die man achten muss, ist, dass sich die Pin-Nummern tatsächlich stark von denen auf dem Arduino-Board unterscheiden. Hier ist eine Seite mit der tatsächlichen Pinbelegung, falls Sie sie in einem anderen Projekt verwenden oder im Datenblatt nachlesen möchten: http://www.arduino.cc/en/Hacking/PinMapping168Achten Sie beim Entfernen des Chips darauf, die Beine des Chips nicht zu verbiegen. Normalerweise benutze ich einen flachen Schraubendreher, den ich auf einer Seite unter den Chip stecke, und bewege mich vorsichtig zur Hälfte. Dann wiederholen Sie auf der anderen Seite, et voila, sauberes Ziehen des Chips. Seien Sie vorsichtig, wenn Sie es wieder einstecken, da manchmal ein Bein etwas außerhalb des Empfangsschlitzes liegt und sich biegt, wenn Sie es wieder nach unten drücken.

Was Arduino als Entwicklungsboard "besonders" macht, ist die Umgebung, in der es programmiert wird. Ähnlich wie bei der Verarbeitung (es wird dieselbe Codebasis verwendet) handelt es sich um eine Art vereinfachtes Frontend für die C ++ - Sprache. Der Code, den Sie im Arduino-Editor schreiben, wird vorne und hinten mit einigen Dingen versehen und mit avr-g ++ zu einer funktionierenden ausführbaren Datei kompiliert. Es wird auch mit dem sogenannten "Kern" verknüpft, der sich im Ordner hardware / cores / arduino im Ordner Arduino befindet. Es initialisiert einige Dinge (wie Timer und serielle Schnittstelle) und implementiert die Hilfsfunktionen, die wir alle kennen und lieben: digitalWrite, analogRead usw. Falls Sie mehr über die avr-gcc-Programmierung im Allgemeinen erfahren möchten, gibt es eine viele Tutorials herum. Ich kann die Website http://www.avrfreaks.net/ empfehlen., die viele Links und Tutorials hat.

Diese Binärdatei wird dann mit einem Programm namens avrdude auf den Chip auf dem Arduino hochgeladen, das wiederum von der Verarbeitung wie der GUI automatisch aufgerufen wird. Dieses Programm lädt die Binärdatei über die serielle Schnittstelle in einen sogenannten Bootloader auf dem atmega328 hoch. Ein Bootloader ist ein kleines Programm (normalerweise 2 KB oder 4 KB), das permanent auf dem Chip gespeichert ist. Wenn Sie es entfernen, in einer anderen Karte verwenden und wieder einstecken, können Sie die Arduino-Software wieder verwenden. Der Arduino-Chip verwendet eine leicht modifizierte Version des stk500-Protokolls und benötigt einen Patch zum Avrduden. Es braucht ein wenig Willen, um den Bootloader tatsächlich zu überschreiben, aber das ist durchaus möglich. Sie können dann entweder einen Standardprogrammierer verwenden, um das Arduino erneut zu flashen. Sie können tatsächlich ein anderes Arduino als Flash-Programmierer verwenden: Google for Arduino ISP

wesen
quelle
1

Sie können das Arduino tatsächlich verwenden, um sich mithilfe der ArduinoISP-Skizze in einen bloßen ATMEGA-Chip zu klonen. Einige halten dies möglicherweise für eine obskure Fähigkeit, andere verwenden sie routinemäßig.

Die Arduino-Idee bringt Ihnen in erster Linie zwei Dinge: einen Bootloader im Chip, mit dem Sie Funktionsprogramme über eine serielle Schnittstelle anstatt über ein spezielles Programmierwerkzeug laden können (die meisten aktuellen Karten verfügen über einen integrierten USB-Seriell-Konverter). Zweitens gibt es eine IDE und eine Reihe von Bibliotheken, die Neulingen die eingebettete Entwicklung erleichtern sollen. Es ist erwähnenswert, dass nicht jeder, der die Hardware und den Bootloader verwendet, die IDE und die Bibliotheken verwendet. Einige bevorzugen es, direkt für den AVR-Chip zu codieren.

Darüber hinaus gibt es ein physikalisch-elektrisches Schnittstellendesign für Zubehör- "Abschirmungen", die auf der Hauptplatine gestapelt sind und eine breite Palette von Add-Ons bieten (obwohl diese im Allgemeinen nicht kostengünstig mit anderen Mikrocontrollern / Platinen sind, auf denen solche Peripheriegeräte gebaut sind -im)

Sie können Arduino-kompatible Boards aus vielen Quellen kaufen und in vielen Formfaktoren, entweder zusammengebaut oder als Kits, können Sie auch Atmega-Chips kaufen, die mit einem Arduino oder einem ähnlichen Bootloader vorinstalliert sind.

Chris Stratton
quelle
1

Der Propeller-Mikrocontroller von parallax.com passt zu Ihrer Beschreibung. Das "Propeller Educational Kit" besteht aus dem Propeller-Chip, einem EEPROM, einem USB-zu-Seriell-Stecker, einem Steckbrett und anderen wenigen diskreten Komponenten sowie einem gut geschriebenen und leicht lesbaren Handbuch. Es dauert einige Minuten, um die Schaltung auf dem Steckbrett aufzubauen, und Sie können Programme schreiben und in das EEPROM herunterladen. Sie programmieren es in einer leicht zu erlernenden Sprache namens SPIN sowie in PASM (Propeller Assembly).

Der Propeller ist der allererste Mikrocontroller, mit dem ich "gespielt" habe. Ich benutze das Kit, um ein EEPROM zu programmieren, und setze das EEPROM dann in eine andere "eigenständige" Propeller-basierte Schaltung ein, die ich auf einem Stripboard aufgebaut habe. Stand Alone bedeutet, dass der USB-zu-Seriell-Stecker nicht vorhanden ist.

Lyassa
quelle