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
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
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
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).
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
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.
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
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
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
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...
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
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
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.
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.
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
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.
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.
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.