Guten Abend,
Ich stehe momentan vor der Frage ob ich für ein neues Projekt, welches
später durchaus kommerziell werden soll, ein Embedded Linux System
benutzen soll oder doch lieber ein Atmel AVR/ARM.
Ich beschreibe mal die Anforderungen:
- Großes (>=24 Zoll) Display
- Internet Anbindung (Datenabfrage)
- Tasten, Sensoren
- evtl. Kamera für Geschichtserkennung
- evtl. Datenbank auf dem System gespeichert
Die meisten werden sich jetzt denken bis zu den "evtl." Punkten reicht
ein normaler ATmega, natürlich der Meinung bin ich auch. Doch stellt
sich mir hier nicht die Frage ob ein Embedded System nicht zu
übertrieben ist.
Punkte die für eine Embedded Lösung sprechen sind vor allem, das nicht
von 0 Angefangen werden muss. Ich habe mir mit Spannung den
Beitrag "Embedded Systems - Die nächsten zehn Jahre" durchgelesen. Und ich
verstehe das man gegen die Lösung mit Embedded System ist, wenn diese
wie in meinem Fall übertrieben scheint. Doch bei vielen Projekten bei
denen ich schon von wirklich Null angefangen habe, und dabei auch nicht
von Fehlern gelernt habe die andere schon gemacht haben, bekam ich
gesagt das dies völliger Schwachsinn wäre. Jemand sagte mir mal "Lieber
auf die Schultern des Riesen klettern. Das ist einfacher, als selber zum
Riesen zu werden.".
Ich müsste ja viele Netzwerk Protokolle erst selber implementieren, und
und und. Und das ist am Ende auch eine Frage der Entwicklungszeit, man
denke daran – Zeit ist Geld. Ich denke das ist ein Punkt der in dieser
Diskussion noch nicht betrachtet wurde.
Auch sehe ich das wie W.S.
W.S. schrieb:> nicht kapiert und ziemlich große Scheuklappen auf. Braucht meine Nichte> einen Prozessor oder ein Gigabyte RAM? Nö, braucht sie nicht. Aber ein> Mobiltelefon und ne Flatrate braucht sie, wo sie mit ihren Freundinnen> sinnloses Geschwätz führen kann, DAS BRAUCHT SIE. Natürlich könnte sie> sich ja mit denen zum Tee treffen, aber das ist ja nicht Mode. Aber ob> in ihrem Telefon ein Prozessor oder ein grünes Marsmännchen werkelt, ist> ihr und dem Rest der Welt völlig schnurz.>> Versteht ihr jetzt, warum das Innenleben all der tollen Geräte nur> zweitrangig ist?
Den Leuten ist es am Ende egal was in der Kiste steckt.
Eine Kostenfrage stellt sich ja heute auch nichtmehr, beide Lösungen
werden wahrscheinlich am Ende auf die gleiche Summe kommen.
Einzig was mich beunruhigt ist, das ich mich und mein Projekt natürlich
von Linux Abhängig mache, mein Projekt erbt ja quasi alle Bugs und
Sicherheitslücken von Linux, und was mache ich wenn ein Kunde anruft
weil Linux abgeschmiert ist.
Wahrscheinlich gibt es auch noch viele Punkte die mir noch gar nicht in
den Sinne gekommen sind um eine Entscheidung zu treffen. Daher bitte ich
um euren Rat.
Hotspott schrieb:> mein Projekt erbt ja quasi alle Bugs und> Sicherheitslücken von Linux, und was mache ich wenn ein Kunde anruft> weil Linux abgeschmiert ist.
Auch bei von Dir selbst geschrieben Programmen werden sicherlich Bugs
und Sicherheitslücken vorhanden sein. Linux und die dafür existierenden
Programme werden von zigtausenden Leuten geschrieben und überwacht.
Hotspott schrieb:> Ich beschreibe mal die Anforderungen:> - Großes (>=24 Zoll) Display> - Internet Anbindung (Datenabfrage)> - Tasten, Sensoren> - evtl. Kamera für Geschichtserkennung> - evtl. Datenbank auf dem System gespeichert>> Die meisten werden sich jetzt denken bis zu den "evtl." Punkten reicht> ein normaler ATmega, natürlich der Meinung bin ich auch.
Wie genau wird denn das große 24 Zoll Display an den ATMega
angeschlossen?
Reicht die Rechenleistung einer 8 Bit CPU für Gesichtserkennung?
Natürlich schreibt man auch selber Fehler in sein Programm, das stimmt.
Doch auch hier dauert es wieder bis Fehler im Kernel angepasst sind, und
dann noch mal bis diese auf ein Embedded System gebracht werden.
Die Grafik müsste natürlich auf andere Leistungsstärkere Chips
exportiert werden, welche man per z.B. SPI anspricht. Aber in der Phase,
dass ich dafür schon konkrete Pläne habe bin ich noch gar nicht.
Über eine Gesichtserkennung habe ich mir noch keine Gedanken gemacht,
wenn müsste auch dieser natürlich ausgelagert werden, für Linux gibt es
eine OpenSource Library. Aber das ist ja auch noch ein eventuell Punkt,
ich denke der kann erst ein mal ausgelassen werden.
Das alles ist gar nicht böse gemeint, sondern nur Ideen meinerseits.
Erstmal Danke für die weiteren Ideen über die ich mir selber noch keine
Gedanken gemacht habe.
Hotspott schrieb:> Einzig was mich beunruhigt ist, das ich mich und mein Projekt natürlich> von Linux Abhängig mache, mein Projekt erbt ja quasi alle Bugs und> Sicherheitslücken von Linux, und was mache ich wenn ein Kunde anruft> weil Linux abgeschmiert ist.
Ist das ein getarnter Trollversuch?
Bei Deinen Anforderungen würde ich mindestens mit einem "Raspberry Pi 2
mit Quad-Core ARM Cortex A7, 1 GB RAM" starten, mid Display und
Gesichtserkennung kommst mit dem 8 Bit AVR nirgens hin. (auch nicht für
ernsthafte Ethernet-Anwendungen)
Für was soll der AVR dann noch gut sein, wenn Du eh alles auslagern
musst? Kannst ihn höchstens noch zum ein- und ausschalten der Speisungen
und als Tastatur-Interface brauchen.
Hotspott schrieb:> Ich beschreibe mal die Anforderungen:> - Großes (>=24 Zoll) Display> - Internet Anbindung (Datenabfrage)> - Tasten, Sensoren> - evtl. Kamera für Geschichtserkennung> - evtl. Datenbank auf dem System gespeichert
und
Hotspott schrieb:> Die meisten werden sich jetzt denken bis zu den "evtl." Punkten reicht> ein normaler ATmega, natürlich der Meinung bin ich auch.
Ah ja. Erinnert mich an's Krümelmonster: Willst du jetzt nun alle
Schätze der Welt oder nen Keks?... "KEKS!"
Und nochwas: Ein großer Bildschirm ist nicht alles, man sollte ihn auch
füllen können und da erhebt sich erstens die Frage "wer?" und zweitens
"wie?". Einen ATmega kanst du für sowas knicken und für ein Linux und
dessen relative Lahmarschigkeit in grafischen Sachen brauchst du eher
eine MALI Gpu und den doppelten Systemtakt im Vergleich zu einem System
mit nem WinCe.
Naja, ob nun Tauben füttern im Park oder Trolle füttern im Forum, kommt
wohl auf's Gleiche raus.
W.S.
Ich denke nicht, das es unmöglich ist das Projekt auf AVR Basis zu
basteln. Der ATmega würde natürlich nur die Datenströme der
ausgelagerten Chips steuern. Per VGA kann auch relativ einfach ein
Display angesprochen werden, da ich keine Videos abspielen muss, sondern
nur ab und zu mal ein paar Pixel änder, hauptsächlich Schrift, kann auch
ein kleiner zweiter ATmega mit 20Mhz herhalten.
Die Gesichtserkennung wird auf der Basis sehr wahrscheinlich nicht
möglich sein, das ist mir klar.
Der Internetdatenstrom ist auch kein Problem mit einem ENC28J60, es
werden nur ein paar mal am Tag ein paar HTML Requests los geschickt. Die
Response steigt dabei nicht über ein parr kb.
Ich versteh nicht wieso das ein getarnter Trollversuch sein soll, finde
ich schade das man das so sieht. Sollte wohl mal lieber wieder auf hören
im Internet nach Rat zu suchen.
Anders gefragt: Was für einen Vorteil bietet dir eine Lösung aus
AVR+AVR+ENC+XXX?
Zum halben Preis kriegst du einen ARM, der all das ersetzt, und
ebenfalls mit dem GCC programmiert werden kann, aber viel viel mehr
Reserven hat.
Muss ja nicht gleich ein Quad-Core mit Linux drauf sein.
Hotspott schrieb:> Per VGA kann auch relativ einfach ein> Display angesprochen werden
Aber nur für kleine Auflösungen! (VGA-Auflösung 640x480 oder noch
kleiner)
Ein 24 Zoll Display steuert man sinnvollerweise mit seiner nativen
Auflösung an (in dem Fall wahrscheinlich Full HD oder größer). Das kann
der ATMega nicht!
>Ich versteh nicht wieso das ein getarnter Trollversuch sein soll,
Hotspott?
Endweder Rechtschreibschwäche und kein Trollversuch oder keine
Rechtschreinschwäche, aber dann ist es garantiert ein Trollversuch.
Keiner der eine ernsthafte Antwort erwartet wird das Wort Spott in
seinen Namen einfügen.
Seit wann müssen denn Benutzernamen der deutschen oder hier englischen
Rechtschreibung entsprechen. Hotspott ist ein Synonym das ich schon
lange im Internet benutze. Über das Spott werde ich mir allerdings jetzt
erst klar. Das ist natürlich blöd.
Wie dem auch sei, ich denke ich werde dann doch auf ARM bzw. Embedded
setzen. Das war von Anfang an auch meine Wahl, dachte nur nach dem ich
den anderen Beitrag gelesen habe, das vlt doch mehr für AVR spricht.
AVRs halte ich auch für zu schwachbrüstig für die geforderten
Leistungen.
Es muss aber nicht immer Linux sein.
Wir setzen bspw. NuttX als RTOS ein. Das hat alles an Bord, was man
benötigt, ist POSIX-konform, bleibt aber trotzdem sehr schlank und steht
unter einer BSD-Lizenz!
Je nach geforderter Bildschirmauflösung könntest Du mit einem STM32F429
und dessen internem LTDC auskommen.
Vielleicht schaust Du Dir das mal an: www.nuttx.org
Hallo Chris D.
Kennst du ein gutes Tutorial zum Nuttx? Vor allem die POSIX konformität
gefällt mir, doch ist ein Einstieg bisweilen noch schwierig. Oder muss
man sich nunmal durch die READMEs durchhangeln?
operator schrieb:> Hallo Chris D.> Kennst du ein gutes Tutorial zum Nuttx? Vor allem die POSIX konformität> gefällt mir, doch ist ein Einstieg bisweilen noch schwierig. Oder muss> man sich nunmal durch die READMEs durchhangeln?
Leider gibt es kein wirkliches Tutorial dazu - allerdings sind die
Beispiele reichhaltig und gut dokumentiert (unter apps/examples).
Gregory ist übrigens sehr hilfsbereit und übernimmt bspw. auch das
Einpflegen neuer Boards in den Baum, wenn man ihm ein Muster schickt.
Ansonsten ist der Aufwand bis zur ersten NuttShell, über die man dann
auf dem System arbeiten kann, überschaubar: man wählt das passende Board
aus (bspw. ein STM32F4 Discovery) mit den gewünschten Optionen aus (das
geht zum Beispiel über menuconfig ähnlich wie beim Linux-Kernel) und
compiliert. Dann noch rüberschieben und schon meldet sich die Shell im
Terminal :-)
Schön ist an NuttX auch, dass man es auch direkt für einen Linux-PC
compilieren kann und über ein X11-Fenster die Grafikausgabe sieht. Das
gestattet (bis auf die Echtzeitgeschichten natürlich) zumindest die
Entwicklung der kompletten grafischen Oberfläche direkt auf dem PC ganz
ohne Zielsystem. Die Maus emuliert dann quasi den Touchscreen etc.
P.S.: Vielleicht für andere: NuttX läuft auch recht gut auf AVRs.