Servus, Ich bin gerade dabei mit meinen Kumpels ein großes Projekt umzusetzen. Es ist vorgesehen viele verschiedene Messwerte zu speichern. Wir arbeiten zur Zeit mit einem Raspberry Pi und mich plagen bedenken dass wir mit den GPIO Pins nicht ausreichend versorgt sind. Ich nehme an, dass bei unserem größtem Objekt Messwerte von ca. 40 Modulen angenommen und gespeichert werden müssen. Da wir das recht professionell umsetzen möchten habe ich bedenken an die Umsetzung mit einem Raspberry Pi. Ich selbst bin (fast) ausgebildeter Softwareentwickler. Dafür ist der Pi natürlich wunderbar. Ich möchte aber trotzdem Alternativen kennen lernen. Ich persönlich würde auch nicht davor zurückschrecken etwas eigenes zu entwickeln (wenn mir jemand erklärt wo ich das nötige Fachwissen erhalte) ;) Gibt's irgendwelche Alternativen zum Raspberry Pi, die die Möglichkeit bieten viele Module anzuschließen? Die Module wären quasi die Lieferanten für die Messwerte. Vielen Dank schonmal für eure Hilfe :)
Also ich würde auf jeden Fall das STM32F4-Discovery-Board empfehlen, oder zum Selbstlöten einen Cortex M3 oder M4
Servus, Danke für die Antwort :) Das STM32F4-Discovery-Board sieht ja schonmal nicht so schlecht aus. Es würde uns bloß sehr helfen, wenn man darauf ein ubuntu zum laufen bekommen könnte. Ich selbst habe einen hohen Anspruch an die Hardware aber leider kein IT Studium abgeschlossen :( Ich habe halt im Bereich Mikrocontroller kaum Erfahrung. Wie viel Zeit müsste ich eigentlich aufwenden um mir so viel wissen anzueignen, dass ich eine eigene Platine mit Microcontroller bestücken und zum Laufen bringen könnte?
abc schrieb: > beagle bone black? Sieht auch eigentlich ganz gut aus. Muss ich mal checken in wie fern man da gut die messdaten reinstopfen kann ;)
Oliver Linde schrieb: > Das STM32F4-Discovery-Board sieht ja schonmal nicht so schlecht aus. Es > würde uns bloß sehr helfen, wenn man darauf ein ubuntu zum laufen > bekommen könnte. Linux darauf laufen zu lassen ist eher schwierig und suboptimal, und Ubuntu quasi augeschlossen. Man programmiert dort eher direkt mit der Hardware oder mit einem RTOS; hat dafür aber den Vorteil Echtzeit-Vorgaben umsetzen zu können, also präzises Timing der Ein/Ausgaben etc, und eine Menge Peripherie-Module zur Kommunikation (UART, CAN, I²C, SPI, USB...) und Steuerung (Timer, ADC, DAC, DMA, ...). Kommt halt drauf an ob ihr das braucht.
ein ARM Linux müsste man eigentlich zum Lufen bringen können, ob Ubuntu geht weiß ich nicht. Einfach mal googlen 'Ubuntu auf ARM Cortex M3 installieren' oder auch nur nach Linux statt Ubuntu suchen. Allerdings müsste man einkalkulieren, dass für die Sensoren uf dem Board Pins draufgehen(Gyro, Taster, Aux, USB-Micro, LED's, etc.) und dass man ohne weiteres KEINE Grafische Oberfläche hat, auf der man das Linux bedienen könnte, weil das STM keinen Videoausgang hat, wie das RasPi. Da könnte eventuell ein Artikel aus der C't hacks weiterhelfen, in dem das beschrieben wurde. Hier ist der Link: http://www.heise.de/hardware-hacks/inhalt/2013/3/132/ mfg 12V DC
12V DC schrieb: > ein ARM Linux müsste man eigentlich zum Lufen bringen können, uCLinux oder so ja, ein Linux was ohne virtuellen Speicher / MMU klarkommt. > ob Ubuntu geht weiß ich nicht. Hat wohl kaum genug Speicher. > Einfach mal googlen 'Ubuntu auf ARM Cortex M3 > installieren' oder auch nur nach Linux statt Ubuntu suchen. Das macht einfach keinen Sinn. Dafür sollte man schon einen Cortex-A nehmen. > Allerdings > müsste man einkalkulieren, dass für die Sensoren uf dem Board Pins > draufgehen(Gyro, Taster, Aux, USB-Micro, LED's, etc.) Gibt ja auch andere Boards mit STM32 ohne dieses Zeug. Außerdem sind noch ziemlich viele Pins frei. > und dass man ohne > weiteres KEINE Grafische Oberfläche hat, auf der man das Linux bedienen > könnte, weil das STM keinen Videoausgang hat, wie das RasPi. Der F429 hat, und auf dem F429-Discoveryboard ist der mit dem LCD verbunden. Aber kein HDMI oder so. Und obs dafür Linux-Treiber gibt ist fraglich.
Oliver Linde schrieb: > Ich bin gerade dabei mit meinen Kumpels ein großes Projekt umzusetzen. kommerziell oder Hobby? > Es ist vorgesehen viele verschiedene Messwerte zu speichern. welche? wie viele? wie schnell? Räumliche Ausdehnung des ganzen? > Da wir das recht professionell umsetzen möchten habe ich bedenken an die > Umsetzung mit einem Raspberry Pi. Ich selbst bin (fast) ausgebildeter > Softwareentwickler. Dafür ist der Pi natürlich wunderbar. Ich möchte > aber trotzdem Alternativen kennen lernen. Der Pi ist für die Lehre entwickelt worden, und zwar mit Fokus auf "billig". Für den industriellen Einsatz gibt es geeignetere Systeme. Beispiel für Embedded Linux: Wandboard. (wandboard.org) > Gibt's irgendwelche Alternativen zum Raspberry Pi, die die Möglichkeit > bieten viele Module anzuschließen? Die Module wären quasi die > Lieferanten für die Messwerte. Du nervst. Du willst was anschließen, sagt aber nicht was und wie viel. Das ist genauso, als würde ich nach einem Händler fragen, aber nicht sagen, was ich kaufen will. Wenn wir Dir helfen sollen, musst Du schon Fakten liefern. Und zwar ALLE. Vollständig und richtig! Mit Typennummern. Sonst können wir nur raten. Linux ist zwar ganz nett, aber im Embedded-Bereich erhöht es die Anforderungen. Und zwar so enorm, dass der durchschnittliche Bastler nicht den Hauch eine Chance hat, ein derartiges System selber von Null an auf die Beine zu stellen. Und das schon, weil er die Bausteine mit seinen Mitteln nicht gelötet bekommt. Wenn Du das willst, bist Du auf fertige Module angewiesen. Ohne Linux ist das kein Problem. Es gibt kleine Echtzeitkernels, die Du verwenden kannst, und die Prozessoren dafür kann man auch per Hand löten, wenn man darauf verzichtet, seine Platinen selber ätzen zu wollen. > Wie viel Zeit müsste ich eigentlich aufwenden um mir so viel wissen > anzueignen, dass ich eine eigene Platine mit Microcontroller bestücken > und zum Laufen bringen könnte? Auf dem Level eines STM32F4 Discovery: ein bis zwei Jahre vielleicht, je nachdem, wie intensiv Du dich damit beschäftigst, welche Vorkenntnisse Du hast und wie gut Du bist. Und um dann durch die EMV-Prüfungen mit Deiner Baugruppe zu kommen (wenn Du das kommerziell vermarkten willst, mit einem CE-Zeichen, das seinen Namen verdient), nochmal zwei. Fang klein an. fchk
Also mir stellt sich jetzt eigentlich folgende Frage: Ich habe ein Modul (Platine) die keinen anderen Zweck hat als eine kleine Gruppe von Messdaten (Druck, Temperatur, Entfernung) zu erfassen und an die Zentrale (derzeit Rasperry Pi) zu übermitteln. An diese Zentrale (Raspberry Pi) sollen viele (max. ca. 40) Module angeschlossen werden können. Wie bekomme ich so viele Module an den Pi? Wie spreche ich die Module auf dem Pi an bzw. reagiere wenn sie mir ein Signal geben. Laut meinem derzeitigen Wissenstand bräuchte ich für jedes Modul mindestens einen GPIO Pin auf dem ich lausche (und über den die Signale kommen). Ist das korrekt? Kann man diese Beschränkung durch einen eigens entwickelten Bus umgehen? Wenn ja wo finde ich das Wissen um so etwas zu entwickeln? Fragen über Fragen für einen unwissenden Softwareentwickler :D
> Wenn wir Dir helfen sollen, musst Du schon Fakten liefern. Und zwar > ALLE. Vollständig und richtig! Mit Typennummern. Sonst können wir nur > raten. Typennummern habe ich gar keine. Das System soll in ferner Zukunft kommerziell vertrieben werden. Wir stehen halt noch am Anfang und haben keinerlei Infos der zu verwendenden Hardware.
Oliver Linde schrieb: > Zentrale (Raspberry Pi) sollen viele (max. ca. 40) Dafür wäre das Pi eher ungeeignet, wegen zu vieler Zustzfunktionen, die ihr net braucht. Ich würde als 'Zentrale ein STM-Discovery o.ä. nehmen. Die verschiedenen Sensordaten, würde ich aber schon vorher auf 2-4 Atmega32 -oder so was- vorverarbeiten, und diese Daten dann mittels I2C(o.ä.) an die Zentrale senden, wobei ich auch noch eine Rückmeldung einbauen würde. Dann hätte man die 'Zentrale etwas entlastet und könnte sie für wichtigeres nutzen, als ständig Sensordaten zu verarbeiten... Am PC könnte man dann die Daten von der Zentrale mittels Processing, terminos.h (der so was ;)) ausgeben und verwalten/steuern.
Existiert das "Modul" schon? Ansonsten: Verwendet den CAN-Bus. ISO 11898 ist der zugehörige offizielle Standard. Kommt aus der Automobilindustrie, ist ursprünglich von Bosch und inzwischen weit verbreitet. Es gibt zwar Basteleien, die einen CAN-Controller an den PI anbinden, aber das ist höchst suboptimal, da der verwendete Controller (a) nicht sehr leistungsfähig ist und (b) die Anbindung an den PI langsam ist. Besser zB ein Beagle Bone Black nehmen. Der Prozessor, der da drauf ist, hat den passenden Controller schon eingebaut, da muss nur noch das Leitungsinterface (Transceiver) angeschlossen werden. Die einzelnen Messknoten bekommen einen kleinen PIC18F26K80 verpasst. Der sollte für so langsame Größen wie Temperatur völlig ausreichen, kostet nur zwei Euro in Stückzahlen, und hat auch CAN gleich eingebaut. Transceiver dran, und gut ists. fchk
Oliver Linde schrieb: > Ich habe ein Modul (Platine) die keinen anderen Zweck hat als eine > kleine Gruppe von Messdaten (Druck, Temperatur, Entfernung) zu erfassen > und an die Zentrale (derzeit Rasperry Pi) zu übermitteln. Und was für Schnittstellen besitzt dieses Modul? > Laut meinem derzeitigen Wissenstand bräuchte ich für jedes Modul > mindestens einen GPIO Pin auf dem ich lausche (und über den die Signale > kommen). Ist das korrekt? Nein, das kommt auf die Schnittstelle drauf an. Bei mir werkelt z.B. 6 Temperatursensoren munter an einem einzigen IO-Pin.
Mike schrieb: > Oliver Linde schrieb: >> Ich habe ein Modul (Platine) die keinen anderen Zweck hat als eine >> kleine Gruppe von Messdaten (Druck, Temperatur, Entfernung) zu erfassen >> und an die Zentrale (derzeit Rasperry Pi) zu übermitteln. > > Und was für Schnittstellen besitzt dieses Modul? Die Module existieren noch nicht, da sind wir ziemlich offen...
Dr. Sommer schrieb: > Hat wohl kaum genug Speicher. Kann man auf USB-Stick legen. Aber ich find es trotzdem fraglich ob es geht. Also vergessen wir es. Dr. Sommer schrieb: >> Allerdings >> müsste man einkalkulieren, dass für die Sensoren uf dem Board Pins >> draufgehen(Gyro, Taster, Aux, USB-Micro, LED's, etc.) > Gibt ja auch andere Boards mit STM32 ohne dieses Zeug. Außerdem sind > noch ziemlich viele Pins frei. Ich sprach vom STM32F4-Discovery. man kann natürlich auch andere nehmen. Dr. Sommer schrieb: >> und dass man ohne >> weiteres KEINE Grafische Oberfläche hat, auf der man das Linux bedienen >> könnte, weil das STM keinen Videoausgang hat, wie das RasPi. > Der F429 hat, und auf dem F429-Discoveryboard ist der mit dem LCD > verbunden. Aber kein HDMI oder so. Und obs dafür Linux-Treiber gibt ist > fraglich. Also für Linux kann ich mir das vorstellen. Aber ich denke für so ein Projekt da Linux draufzuspielen ist ein unnötiger Aufwand. Frank K. schrieb: > Beispiel für Embedded Linux: Wandboard. (wandboard.org) Klingt ziemlich gut. Gibt auch so eins bei ELV mit relativ großem Display. Art. Nr. 50-09 18 72 Heisst "Universal-embedded Linux-Plattform-Control-Unit LCU1" Das hat alles was man braucht(oder auch nicht). Allerdings würde ich für dieses Projekt so etwas wie das STM Board empfehlen. Oliver Linde schrieb: > Mike schrieb: >> Oliver Linde schrieb: >>> Ich habe ein Modul (Platine) die keinen anderen Zweck hat als eine >>> kleine Gruppe von Messdaten (Druck, Temperatur, Entfernung) zu erfassen >>> und an die Zentrale (derzeit Rasperry Pi) zu übermitteln. >> >> Und was für Schnittstellen besitzt dieses Modul? > > Die Module existieren noch nicht, da sind wir ziemlich offen... Ich würde als 'Module einen AtMega32 o.ä. nehmen und so verwenden, wie ich es oben beschrieben habe. Ich weiß allerdings nicht ob das deinen(Olivers) Vorstellungen entspricht. Was soll das Modul denn können. A/D- Wandler?
kopfkratz Ähm was für "Module" sind das ? Wenn die via Bus angesteuert werden können, SPI/I2C/OneWire o.ä. kann man die alle an einem betreiben. Wenn da "nur" An/Aus kommt geht auch Multiplexing, also einfach ein "Modul" nach dem anderen abfragen an einem Pin ...
12V DC schrieb: > Ich würde als 'Module einen AtMega32 o.ä. nehmen und so verwenden, wie > ich es oben beschrieben habe. Ich weiß allerdings nicht ob das > deinen(Olivers) Vorstellungen entspricht. Was soll das Modul denn > können. A/D- Wandler? Das Modul soll die Sensoren ansprechen. Zum Beispiel sammelt das Modul X die Messwerte Entfernung (Ultraschall), Druck und Temperatur. Diese sollen als Gruppen an die "Zentrale" weitergegeben werden. Das soll aufgrund des Vorschlags von Frank K. über nen CAN Bus erfolgen. Die Zentrale speichert die Daten der Module in einem Stack, der dann in bestimmten Zeitabständen an eine API gesendet wird, wo die Daten permanent gespeichert werden. Eine Zentrale soll beliebig viele Module unterstützen. In Kurzform: Ein Modul sammelt also immer eine Gruppe an einzelnen Messwerten. Die Anzahl und der Typ der Messwerte können stark variieren. Die Gruppe von Messwerten wird über CAN Bus an die Zentrale gesendet. Es geht um die Auswahl des Microcontroller Boards für die Zentrale.
Oliver Linde schrieb: > Ein Modul sammelt also immer eine Gruppe an einzelnen Messwerten. Die > Anzahl und der Typ der Messwerte können stark variieren. Die Gruppe von > Messwerten wird über CAN Bus an die Zentrale gesendet. Es geht um die > Auswahl des Microcontroller Boards für die Zentrale. Dann einfach den Worstcase nehmen und den µC danach auswählen.
Servus, Es gibt bei Can Bus ja zwei Möglichkeiten Daten zu übertragen (parallel/seriell). Wenn ich einen Transceiver mit acht Beinchen nehme (SN 65HVD251D), wie muss ich den bei einer parallelen Übertragung an die Datenleitungen bzw. an den PIC18F26K80 schalten? Ich versuch das grad mal mit Fritzing zu erarbeiten komm da gerade irgendwie nicht weiter :( Danke :)
Oliver Linde schrieb: > Servus, > > Es gibt bei Can Bus ja zwei Möglichkeiten Daten zu übertragen > (parallel/seriell). Wenn ich einen Transceiver mit acht Beinchen nehme > (SN 65HVD251D), wie muss ich den bei einer parallelen Übertragung an die > Datenleitungen bzw. an den PIC18F26K80 schalten? Ich versuch das grad > mal mit Fritzing zu erarbeiten komm da gerade irgendwie nicht weiter :( CAN ist immer seriell. Und die Transceiver haben fast immer 8 Pins. Beim PIC18F26K80 ist der CAN-Bus auf Pin 17 (CANTX) und PIN 18 (CANRX), oder alternativ auf Pin 23/24, je nachdem, wie Du das konfigurierst. Als Transceiver nehm ich jetzt einfach mal einen MCP2551, da muss ich nicht lange suchen. Das Pinout ist überall ähnlich, Pin 5 und 8 haben bei den einzelnen Bausteinen teils unterschiedliche Funktionen. Datenblatt lesen. CANTX vom PIC auf TX (Pin 1) vom Transceiver CANRX vom PIC auf RX (Pin 2) vom Transceiver CANH (7) und CANL (6) gehen auf den CAN-Bus. Am besten noch eine stromkompensierte Drossel gegen Gleichstaktstörungen und ggf ESD-Schutzdioden dran, und dann passt das. CAN ist wie eine Wurst. An die Wurstzipfel kommen 120Ω zwischen CANH und CANL, damit die Bits da nicht reflektiert werden. Die Netzknoten hängen direkt an der Wurst, und zwar ohne Stichleitungen! Für den Bus brauchst Ihr CANH, CANL, und GND. Ohne GND gehts nicht. fchk
Vielen Dank :) Das bringt mich schon mal um einiges weiter. Jetzt muss ich nur noch herausfinden wie ich einen Temperatursensor anschließe und das Senden/Empfangen von Daten via CAN Bus :)
Du hast gefühlt noch einiges an Lernkurve vor dir. Wenn ich den Thread richtig verstehe, willst du langfristig ein eigenes Linux-Board haben. Für die beschriebene Anwendung fände ich zwar bare-metal viel sinnvoller, aber wie du meinst. Um das selbst löten zu können, wäre es sinnvoll, einen Prozessor im TQFP zu nehmen. BGA im Hobbykeller wird teuer und frustrierend. Bei Linux auf ARM im TQFP wird die Auswahl ziemlich schnell ziemlich dünn. Schau dir mal den Olinuxino an, der könnte auf deine Bedürfnisse passen - vor allem, weil die Eagle-Dateien frei verfügbar sind. Da kannst du mit dem Board von Olimex anfangen und dann irgendwann dein eigenes Design machen. RPi ist keine gute Idee, weil du den SoC (d.h. Controller) nicht einzeln kaufen kannst und das Design nicht offen ist. Du wärst also für die Serie darauf angewiesen, RPi+Shield zu verkaufen. Das ist keine wirkliche Option. Das Design des Beagleboard/-bone ist offen, allerdings nur als Altium-Dateien. Ich unterstelle mal, dass du kein Altium hast. Außerdem ist der µC hier auch in BGA. Alternativ wäre vielleicht ein Arduino als Basis nicht verkehrt. Für die genannten Anforderungen sollte er locker ausreichen. Vergesst bei dem ganzen Thema nicht: sobald ihr etwas davon verkauft, braucht ihr zwingend ein CE-Kennzeichen und damit eine Konformitätserklärung. Das beinhaltet vorwiegend RoHS (unproblematisch), WEEE (Kosten, aber kein großer Aufwand) und EMV. Letzterer Punkt kann ziemlich ungemütlich werden. DIN61000-6-3 und die EMV-Richtlinie bei der Bundesnetzagentur sind ein brauchbarer Einstieg. Außerdem: welchen Markt wollt ihr bedienen? Kennt ihr die gängigen Vertriebsstrukturen? Wer kauft bei euch ein, die Großhändler, die Installateure oder die Endkunden? Wer installiert und programmiert den Kram? Sollen eure Teile in Neubau oder Bestand eingebaut werden? Wenn Neubau: warum sollte jemand euer proprietäres Protokoll kaufen? Tipp: der Preis ist nicht das treibende Argument, sondern der Vertriebskanal. Wenn Bestand: wo kommen die Leitungen für CAN und Versorgung her? Statt CAN könntet ihr noch anschauen: * KNX/EIB. Standardisierter Bus, eher im Hochpreissegment angesiedelt. * LON oder BACnet - ebenfalls existierende Standards. * Homematic. Ich weiß nicht, ob man das Protokoll lizenzfrei nutzen kann, aber ihr könntet auf eine existierende Basis aufsetzen. * Funk. Für Nachrüstlösungen die einzig praktikable Option. Bluetooth, KNX-RF, Zigbee, DECT, EnOcean wären Möglichkeiten. Viel Erfolg wünscht Max
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.