Hallo und einen schönen Abend!
Ich arbeite gerade an einem Projekt mit einem Arduino. Im Grunde misst
der Arduino einen Widerstand, verarbeitet ddas Signal weiter und gibt
ein Bild über die serielle Schnittstelle an einen kleinen
monochromatischen Bildschirm aus.
Längerfristig möchte ich gerne auf Mikrocontroller umsteigen, daher
meine Frage. Kann der Arduinocode direkt auf einen Mikrocontroller
übertragen werden, oder muss die Software neu geschrieben werden?
Wäre es generell besser direkt den Mikrocontroller zu verwenden oder
macht es Sinn zum probieren am Arduino zu bleiben?
Vielen Dank für dei Antworten!
Arduino ist die Kapselung komplexer Vorgänge in ein sehr einfach
verständliches Format, welches aber dem Nutzer alle internen Vorgänge
der CPU verbirgt. Und es ist nicht kompatibel zu irgendetwas anderem
außer Arduino.
2017 sind 8 Bitter fast schon obsolet, daher direkt zum Martführer ARM
wechseln auf 32 Bit.
Nur zur Sicherheit: (hobel) verarscht Dich ;-)
Natürlich kannst Du ein mit der Arduino-UI und Arduino-Bibliotheken
erstelltes Programm auf einen nackten AVR flashen, entweder mit einem
Programmer, oder per Bootloader.
Du kannst Arduino-Projekte in Atmel Studio importieren, wenn Du von der
Arduino-UI die Nase voll hast oder Debuggen willst.
Du kannst Dein Arduino-Projekt auf andere AVR portieren (3rd party board
definitions), auf diverse ARM portieren, z.B. STM32 (Plugin für
Arduino), diverse TI-ARMs (Energia), oder auf ESP8266 und ESP32
(letzterer unfertig).
Hi
Aber NICHT Alles auf JEDEN µC.
Klingt aber auch logisch, da der neue/nackte µC ja den Arduino ersetzen
können muß und somit wenigstens die dort benutzten Funktionen enthalten
muß.
Mit einem 8-Beiner wird man kein 16-fach Lauflicht direkt am µC
herstellen können (jaha, der Arduino hat mehr als 8 Beine, schon
gesehen)
MfG
Wenn ichs richtig verstehe is der Arduino nur ein Hardwarepaket um den
ATmega328P. Prinzipiell wäre es doch sogar möglich den programmierten µC
aus dem Arduino zu nehmen und ihn in ein Board zu löten?
Die Frage die sich mir stellt ist ob der ATmega328P oversized ist für
meine Anwendung, oder macht die Bildschirmausgabe einen µC dieser Art
nötig?
Klaus W. schrieb:> Wenn ichs richtig verstehe is der Arduino nur ein Hardwarepaket um den> ATmega328P.
Oder ein ATmega168 bei früheren Arduino UNO/NANO, ein ARM Cortex-M3 beim
Arduino Due, eine ESP8266 beim ESP-12E oder ein ...
Dauergast schrieb:> Du kannst Dein Arduino-Projekt auf ...Klaus W. schrieb:> Die Frage die sich mir stellt ist ob der ATmega328P oversized ist für> meine Anwendung, oder macht die Bildschirmausgabe einen µC dieser Art> nötig?
Das kommt drauf an, wie und was du als Bild über deine serielle
Schnittstelle schicken möchtest. Der SRAM eines ATmega328P ist auch nur
2kByte groß. Damit füllst du keinen 4k-Bildschirm ;-)
Klaus W. schrieb:> Prinzipiell wäre es doch sogar möglich den programmierten µC> aus dem Arduino zu nehmen und ihn in ein Board zu löten?
Dann kannst du einfacher einen Arduino Pro mini nehmen und den als Modul
aufs Board setzen.
Wolfgang schrieb:> Der SRAM eines ATmega328P ist auch nur> 2kByte groß. Damit füllst du keinen 4k-Bildschirm ;-)
Der geplante Bildschirm ist nur 128x64 Pixel groß, aber 2kByte sind doch
etwas wenig. Ich möchte ne Sequenz aus fünf Bildern ausgeben, da muss es
doch mehr sein, oder wie funktioniert das mit den SRAM?
Ein einzelnes Bild hat bei dieser Größe bereits 7kByte, oder vertue ich
mich da?
Was ich nicht ganz verstehe, wie schafft es der Arduino Uno Bilder
darzustellen die größer als sein RAM sind?
Ich bin dieser Anleitung gefolgt:
www.instructables.com/id/How-to-use-OLED-display-arduino-module/
und es hat super funktioniert. Ich glaub ich seth etwas auf dem
Schlauch...
Klaus W. schrieb:> Der geplante Bildschirm ist nur 128x64 Pixel groß,> Ein einzelnes Bild hat bei dieser Größe bereits 7kByte, oder vertue ich> mich da?
Nö, genau 1kByte. Oben stand was von monochromatisch, d.h. du kannst 8
Pixel in ein Byte speichern.
Alternativ könntest du das Bild vor der Ausgabe neu berechnen/zeichnen.
Der Code dazu steht dann halt im meist ausreichend vorhandenen Flash.
Wenn du aber tatsächlich viel SRAM brauchst, suche mal nach seriellen
SRAMs mit SPI- oder I²C-Schnittstelle.
Klaus W. schrieb:> Was ich nicht ganz verstehe, wie schafft es der Arduino Uno Bilder> darzustellen die größer als sein RAM sind?
Das darstellen ist nicht das Problem, es geht um den Bildinhalt. Gerade
bei der Anzeige von Messwerten oder Texten muss das Bild ja nicht
pixelweise gespeichert werden sondern kann vor der Ausgabe neu berechnet
werden.
> Wenn ichs richtig verstehe is der Arduino nur ein Hardwarepaket um den> ATmega328P.
Es gibt nicht "den Arduino".
Es gibt zahlreiche Arduino Module. Die meisten bestehen aus einem AVR
Mikrocontroller und einem USB-UART Interface.
Dann gibt es noch die Arduino Entwicklungsumgebung, welche im
Wesentlichen aus einem sehr primitiven Texteditor, dem GNU C Compiler
und einem Framework (Libraries) besteht. Herausragendes Merkmal der
Arduino Software ist die kinderleichte Installation.
Beides kann man unabhängig voneinander nutzen. Ich nutze zum Beispiel
das Arduino Framework um meine ESP8266 Module (das sind keine Arduino
Module) zu programmieren. Aber als Editor nutze ich stattdessen
NetBeans.
Ich benutze auch Arduino Nano Module (die billigen aus China), aber die
programmiere ich nicht mit der Arduino Software, sondern mit der
avr-libc und mit NetBeans oder QT Creator als IDE.
Du kannst die ganze Arduino Software durchaus auch zum Programmieren
einzelner AVR Mikrocontroller verwenden. Dann brauchst du allerdings
entweder einen ISP Programmieradapter, oder du kauft die Chips bei einem
Händler, der Dir den Arduino Bootloader vorinstalliert.
> Was ich nicht ganz verstehe, wie schafft es der Arduino Uno Bilder> darzustellen die größer als sein RAM sind?
Viele Displays enthalten einen eigenen Bildspeicher mit seriellem
Interface. Bei diesen kannst du das Bild ganz in Ruhe berechnen und
Stück für Stück an das Display senden.
Bei Displays ohne Bildspeicher, muss dein Programm das ganze Bild
erzeugen/berechnen während es angezeigt wird - und zwar fortlaufend. Das
ist schon deutlich schwieriger, dahert würde ich diese Variante
vermeiden.
Stefan Us (stefanus) schrieb:
> Beitrag "Re: Vom Arduino zum Mikrocontroller"
Stefan, das war jetzt mal einer der besten Beiträge hier im MC-Netz zur
Nutzung von Arduinos und deren Frameworks.
Ein Lob und vielen Dank dafür.