Forum: Mikrocontroller und Digitale Elektronik Welcher Einplatinen-Computer eignet sich?


von MS (Gast)


Lesenswert?

Hallo,

ich möchte gerne eine Steuerung aufbauen, bei der ein Master 
(Einplatinen-Computer) mit mehreren (entfernten) ATmega's kommuniziert 
und diese "Steuert". Ebenfalls soll ein kleiner "Webserver" auf dem 
Einplatinen-PC zur Visualisierung laufen.

Nun bin ich aber noch ein "Anfänger". Welcher Einplatinen-Computer ist 
am besten für mich geeignet, und was für Lektüre gibt es zur 
PC-Programmierung? Ich kann Visual Basic & Assembler falls mir das 
hilft.

Welcher (Günstige) Einplatinen-Computer (Raspberry PI, Beaglebone-Black 
und was es nicht alles gibt) eignet sich hier am besten?

MFG

von MS (Gast)


Lesenswert?

Zusatz:

Ich benötige keine Gute Grafikleistung. Die größe sollte so sein das man 
es eventuell noch in ein Hutschienengehäuse bekommt.

von fonsana (Gast)


Lesenswert?

MS schrieb:
> Visual Basic

Bedeutet Window$. Dafuer ist mir keine Loesung bekannt, die die anderen 
Bedingungen erfuellen wuerde.

MS schrieb:
> Assembler

Assembler fuer einen Webserver? Das tut sich niemand freiwillig an.

Alle mir bekannten Boards laufen unter Linux (oder das Pollin-Netio z.B. 
unter ethersex, das ist aber einige Klassen tiefer)

fonsana

von Moritz S. (moritz_derbastler)


Lesenswert?

Moin,

mit Visual Basic und Assembler wollte ich nur sagen, das ich schon ein 
bisschen was kann un d die µC programmieren könnte, mir fehlt halt nur 
der Einplatinen-Computer, für dessen Visualisierung ich auch gerne was 
dazu lernen würde. Ebenfalls kann ich auch PHP, HTML usw. Weshalb Linux 
also überhaupt kein Problem wäre.

Anforderungen:

- Klein (Ideal wäre passend in ein Hutschienengehäuse, sonst egal)
- Stromsparend (Deshalb keinen "normalen PC")
- Leicht verwendbar mit µC (I²C oder ähnliches)
- Netzwerk/Ethernet
- Günstig

MFG

von Sesk K. (zeborok)


Lesenswert?

Da würde ich so spontan vorschlagen:

- Beagle Bone (Black? oder das alte...)
- Raspberry Pi

Sind klein, günstig und haben Ethernet sowie die gängigen Schnittstellen 
(I2C, SPI, UART).

von Alex S. (thor368)


Lesenswert?

Tach Moritz,

die funktionalität eines webservers bekommst du auch auf einem mega hin. 
Was gibt es sonst noch für Anforderungen? Soll es ien grafisches front 
end geben?

Neben dem ganzen neuen ARM geraffel gibt es auch noch die gute alte x86 
Schiene. Erwähnt sei da Vortex86 und VIA EDEN. Das sind ebenfalls SOCs 
und werden in winzigen Bauformen angeboten. Wenn es ein bischen 
moderner/leistungsstärker sein soll könnte man sich auch komakte Atom 
boards finden.

Es gibt also eine endlose Liste und das du hier fragst und nicht einfach 
einen Rasp kaufst führt mich zu der Frage:

Was ist die Frage?

Thor

von Sesk K. (zeborok)


Lesenswert?

Nachtrag: Bei Verwendung eines der von mir genannten Boards in 
Verbindung mit einer Linux-Distribution könntest du dort auch in 
Verbindung mit dem Mono-Framework VB.NET verwenden.

Gibt noch ein paar andere Linux-Basics, würde sich sicherlich was finden 
lassen.

Wenn dir Basic "gut reinläuft" könntest du die ATMegas dann mit BASCOM 
programmieren.

von hp-freund (Gast)


Lesenswert?


von Moritz S. (moritz_derbastler)


Lesenswert?

Also es geht mir eigentlich nur darum, das der Einplatinen-Computer 
einfach mit µC kommunizieren kann, und man darauf einen kleinen 
Webserver (Visualisierung) und eventuell eine kleine Datenbank laufen 
lassen kann. Da mit die Programmierung mit Visual Basic aber so gut 
Gefällt und ich in Assembler nur ein "Anfänger" bin, wollt ich mir 
keinen eigenen Webserver basteln.

Eventuell wird das ganze zwischen dem Beaglebone Black und dem Raspberry 
PI tendieren.

Läuft auf dem Beaglebone eigentlich auch Linux, und wie spricht man bei 
beiden die GPIO's mit Linux an (Gibts da genügend Tutorials?) ?

MFG

von Erlang E. (erlang)


Lesenswert?

Nimm nen rPi, meiner Meinung nach der beste Kompromiss aus Preis und 
Leistung für deine Anwendung. Programmieren in Python wirst du mit 
deinen Vorkenntnissen sicher schnell hinbekommen.

Viele Grüße

von Tony (Gast)


Lesenswert?

Philipp E. schrieb:
> Nimm nen rPi, meiner Meinung nach der beste Kompromiss aus Preis und
> Leistung für deine Anwendung. Programmieren in Python wirst du mit
> deinen Vorkenntnissen sicher schnell hinbekommen.

Ich empfehle ebenfalls des Raspberry Pi. Eventuell ist auch der relativ 
neue BananaPi nicht verkehrt.

http://www.einplatinencomputer.com

von MarcusW (Gast)


Lesenswert?

Vergleicht der Kerl in dem Link wirklich einen RasPi mit einem Arduino? 
Das ist wie wenn man einen Mähdrescher mit einem Formel 1 Wagen 
vergleicht...

von Seppi (Gast)


Lesenswert?

Raperry mit Windows CE drauf. Da laufen die .Net Anwendungen.
UND JA ES GEHT:
http://developer-blog.net/hardware/windows-ce-raspberry-pi/

von operator (Gast)


Lesenswert?

Mir gefällt der Olinuxino A10 Lime von Olimex.
Würde dir aber definitiv zum RPi raten, um die ersten Erfahrungen 
sammeln zu können. So wie es aussieht, hast du noch keine erfahrungen 
mit Linux. Und da ist es schon nützlich, wenn es zu jedem Trivialproblem 
eine Lösung gibt. Und das hast du vermutlich nur beim Pi...

von Frank K. (fchk)


Lesenswert?

Moritz S. schrieb:

> - Leicht verwendbar mit µC (I²C oder ähnliches)

I2C ist nicht für die Verwendung in Rechnernetzen über längere Distanzen 
etc gedacht und geeignet. Dafür ist es nicht robust genug. Verwende CAN 
oder RS485 dafür!

CAN mit dem RPi ist ein Trauerspiel, während der BeagleBone das direkt 
im Prozessor drin hat. Auf der anderen Seite brauchst Du bei AVRs meist 
auch einen externen CAN-Controller, während es bei PIC18/PIC24 zB eine 
viel größere Auswahl an Chips gibt.

CAN macht mehr in Hardware, was du bei RS485 selber in Software 
programmieren musst.

fchk

von Frank (Gast)


Lesenswert?

Nimm einen Raspberry Pi, für den gibts billige Hutschienen-Gehäuse und 
da darauf ein Linux läuft, solltest du beinahe alle Programmiersprachen 
zur Verfügung haben, die es gibt.

Speziell Visual Basic gibts nun gerade nicht, aber z.B. RealBasic bzw. 
Xojo - das enthält einen Crosscompiler für Windows, Mac und Linux. 
Desweiteren gibts diverse Visual-Basic-Clone:

http://linuxmafia.com/faq/Devtools/visual-basic.html#gnuliberty

von der chef (Gast)


Lesenswert?

bei den ganzen antworten geht nur eine auf die komunikation mit anderen 
controllern ein. daher empfehle ich aufgrund der can unterstützung auch 
das beaglebone black. hat auch mehr io als der rpi.

von greg (Gast)


Lesenswert?

Alex S. schrieb:
> die funktionalität eines webservers bekommst du auch auf einem mega hin.
> Was gibt es sonst noch für Anforderungen? Soll es ien grafisches front
> end geben?

Naja, du kannst auch mit einem Bobbycar zur Arbeit kommen, das hat ja 
auch die Funktionalität des Fahrens.

Ein kleiner ARM-Rechner ist für so was schon die sinnvolle Lösung.

Frank K. schrieb:
> CAN mit dem RPi ist ein Trauerspiel

Warum? Ist halt nicht eingebaut. Braucht man eben ein kleines Modul für. 
Dann geht's aber gut.


Wenn es reicht, dass der ARM-Rechner als Master die MCUs steuert, 
empfehle ich RS485. Da sind Aufwand und Kosten minimal und es geht mit 
jedem Microcontroller ohne besondere Peripherie.

von Frank K. (fchk)


Lesenswert?

greg schrieb:
> Frank K. schrieb:
>> CAN mit dem RPi ist ein Trauerspiel
>
> Warum? Ist halt nicht eingebaut. Braucht man eben ein kleines Modul für.
> Dann geht's aber gut.

... solange Du keine hohen Busgeschwindigkeiten und Buslasten hast. Das 
SPI des MCP2515 ist der Flaschenhals, den es bei anderen Plattformen mit 
eingebautem CAN-Controller nicht gibt.

fchk

von greg (Gast)


Lesenswert?

AFAIR war CAN bei hohen Bitraten auf dem Raspberry Pi früher mal ein 
Problem, weil der SPI-Treiber nicht optimal lief. Sollte aber schon 
länger behoben sein.

von Sheeva P. (sheevaplug)


Lesenswert?

Moritz S. schrieb:
> Also es geht mir eigentlich nur darum, das der Einplatinen-Computer
> einfach mit µC kommunizieren kann, und man darauf einen kleinen
> Webserver (Visualisierung) und eventuell eine kleine Datenbank laufen
> lassen kann.

Naja, das kommt darauf an, wie Du kommunizieren willst. Immerhin gibt es 
ja sogar AtMegas mit USB-Schnittstelle, die Du direkt an die USB-Ports 
der SBC anschließen könntest (vermutlich ist die maximale Reichweite von 
USB mit 5 Metern dabei das größte Problem, es sei denn, Du wohntest in 
einer Hundehütte :-)). Ansonsten wirst Du ein oder mehrere Bussysteme 
auswählen wollen, nach Kriterien wie:

 - welche Datenmenge pro Zeiteinheit, soll
 - über welche Entfernung, und
 - über welches Medium (Draht, Funk, (Infrarot, ...))

übertragen werden? Bei den Drahtgebundenen wurden bereits CAN und RS-485 
genannt, OneWire könnte für eher einfache Kommunikation eine Lösung 
sein, Ethernet für umfangreiche Daten. Funkkommunikation kann über 
ZigBee, WLAN, und mit etlichen anderen mehr oder weniger gebräuchlichen 
Modulen gemacht werden. Für alle diese Systeme bekommst Du aber sowohl 
für den RasPi wie auch für den Beaglebone und so ziemlich alle anderen 
SBCs fertige Module, die über USB oder GPIOs angeschlossen werden 
können.

> Eventuell wird das ganze zwischen dem Beaglebone Black und dem Raspberry
> PI tendieren.
>
> Läuft auf dem Beaglebone eigentlich auch Linux, und wie spricht man bei
> beiden die GPIO's mit Linux an (Gibts da genügend Tutorials?) ?

Die IMHO wichtigsten Gründe, die für RasPi sprechen: größere Verbreitung 
und Community, mehr Dokumentation und Erweiterungen, deshalb gibt es da 
wahrscheinlich auch die größte Zukunftssicherheit. Auf diese würde ich 
persönlich ein ganz besonderes Augenmerk legen -- nichts ist blöder, als 
wenn dein SBC in zehn Jahren kaputt geht und Du keinen Ersatz bekommst, 
oder wenn die gewählte Software (Linuxdistribution, Programmiersprache, 
...) irgendwann nicht mehr weiter entwickelt und gepflegt wird.

Linux läuft auf beiden, aber während für das Beaglebone vornehmlich eher 
exotische Linux-Distributionen wie Aengström und Maemo benutzt werden, 
basiert die Standarddistribution Raspbian des RasPi auf dem bekannten, 
weitverbreiteten und sehr gut dokumentierten Debian GNU/Linux.

Auf einem SBC kannst Du übrigens auch eine richtige Datenbank wie 
Postgres laufen lassen, und wenn Du möchtest auch einen richtigen großen 
Webserver wie den Apache -- dabei geht es ja nicht um hunderte oder gar 
tausende von parallelen Zugriffen oder um maximale Performanz. Ich 
persönlich benutze Postgres und Redis für das Datenbank-Backend sowie 
den Webserver aus dem Flask-Framework für Python -- weil ich das schon 
kann und es viele nette, extrem leistungsfähige und performante 
Erweiterungen für die Datenanalyse und -Visualisierung gibt --, aber 
ebenso würde ein klassischer LAMP-Stack (MySQL mit Apache und Perl oder 
PHP) oder auch Ruby on Rails gehen.

von Stefan F. (Gast)


Lesenswert?

Nimm für den zentralen Rechner irgend was mit Linux oder Windows. Die 
Kommunikation zu den anderen kleineren µC Boards machst du dann über die 
üblichen Schnittstellen, z.B. USB/UART oder RS485.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.