-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: Sensorwerte speichern und auslesen

  1. #1

    Sensorwerte speichern und auslesen

    Anzeige

    Hi there

    Bin neu hier also seid pls nett zu mir
    also, als erstes möcht ich was loswerden: ich finde es schade das das Anmeldeformular bei der Mensch oder Roboterfrage "Cyborg" nicht akzeptiert^^

    aber nun ernst:
    Ich habe in der Schule seit 3 Jahren programmieren, das standertzeugs halt wie textverarbeitungen und Adressverwaltungen und so zeugss (Delphi)

    eine Zeit lang hatte ich auch C++ (und ich denke, dass mir das für mein neuestes Projekt helfen wird)

    Und auf meinem Ti 83+ programmiere ich ausführlich TI-Basic

    Ach ja: Basic hab ich auch ma gemacht

    und Pascal (wobei das ja ähnlich ist wie Delphi!)

    Ich möchte gerne für das Rennmofa ein Sensornetz aufbauen
    es soll das messen:

    Umdrehungszahl
    Gasgriffstellung
    Abgastemperatur (eventuell)
    Geschwindigkeit

    Alle diese Parameter sollen während der Fahrt aufgezeichnet werden (aber nicht angezeigt, also ist kein Display oder ähnliches nötig!) aber nach der Fahrt sollen sie z.B. mit einem Notebook ausgelesen werden.
    Die Desktopsoftware werd ich wohl in Delphi sachreiben.

    Nun fragt ihr euch sicherlich wieso ich soviel für nichts schreibe und was genau meine Frage ist.

    Nun: ich habe keine Ahnung von Mikroprozessoren und so... (weis aber das man für die Programmierung ASM und C braucht)
    Könnt ihr mir sagen wie (also mit welchen sensoren, Programmiersprache usw.) das Projekt realisierbar wird.
    Ach ja: ICh habe zugang zu jemandem der mal auf nem Zlog80 ASM programmiert hat.

    Als CPU dachte ich an einen Atmel AVR mit 150 Mhz, zu wenig? Gibt es bessere?

    Danke im Voraus

    Greez

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    03.11.2004
    Ort
    Süderlügum
    Alter
    36
    Beiträge
    86
    150MHz??

    Soll das Mofa unterwegs noch Bilderkennung machen?

    Nimm am Besten einen normalen AVR Microcontroller (z.B. ATmega32) und arbeite Dich da bitte in die Grundlagen ein. Die Programmiersprache ist recht variabel, Basic, Pascal, Assembler und C sind die Regel.
    Mach dann damit am Besten das Übliche für Anfänger. z.B. wie flashe ich das Biest, wie bring ich eine dran angeschlossene LED zum blinken, wie lese ich Tastendrücke aus usw.

    Dann überlege, was Du an Sensoren brauchst. Beachte dabei auch die Betriebsparameter. Für Abgastemperatur lässt sich nicht jeder Temperatursensor benutzen.
    Für den Gasgriff bräuchte es sicherlich einen Absolut-Drehgeber, denn sonst lässt sich nicht ohne weiteres feststellen, wann das Ding am Anschlag ist, sondern nur wie weit er gedreht wurde. Auch die Befestigung stelle ich mir da am Lenker relativ problematisch vor.
    Was die Geschwindigkeitsmessung anbelangt, überlege auch dort was am besten funzen würde, vielleicht nen Impulsgeber von nem Fahrradtacho.
    Der Part ist wahrscheinlich der problemloseste.
    Und genau damit solltest Du dann anfangen und dich danach an die schwieriegen Parts heranarbeiten.

  3. #3
    Nun, ich liess mich von den Taktraten von Desktop-Pc's verwirren und verunsichern (auch wenn ich weiss das 150Mhz bei einem EFFIZIENTEN Programmcode rel. Viel sein können)

    gut, kann man auch z.B. Pascal und Basic kombinieren? (soweit ich weiss kann man ja auch c und ASM kombinieren?!)

    gut, werde wohl meine Zeit dafür brauchen, kennst du irgendwelche brauchbaren Tutorials für diese CPU?

    Nun, das ist klar...
    Gut, thx, werde ich so machen!

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.11.2007
    Alter
    33
    Beiträge
    140
    Servus,

    da hast du dir aber ein ganz schön großes Projekt für den Anfang ausgedacht.
    Ich kann meinem Vorredner nur recht geben, versuch es erstmal mit den Basis-Sachen, damit du ein Gefühl für den Mikrocontroller entwickelst. Besorg dir erstmal ein Demoboard und mach dich dann dran kleinere Aufgaben zu realisieren und dich Stück für Stück vor zu arbeiten.


    Als Kontroller kann ich dir nur einen PIC empfehlen, aber das ist Geschmackssache. Mach zumindest mal das ein oder andere in Assembler! Damit lernt man den internen Aufbau des Kontrollers meiner Meinung auch am Besten kennen!
    In diesem Sinne.

    Viel Erfolg

  5. #5
    Gut danke, werd ich beherzigen!
    Ne andere Frage, wie is das mim "Flashen".
    Muss ich da extra http://www.myavr.de/download/techb_mysmartusb.pdf so ein Teil kaufen? Und wie häng ich da dann die CPU an?

    Also mit Experimentierboard meinst du so eines Einfach mid ner CPU und n'paar leuchtdioden auf ner Platine und dann diese zum Blinken bringen usw?

    Danke

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.08.2006
    Ort
    Budapest
    Alter
    30
    Beiträge
    563
    Geh mal auf www.mikrocontroller.net. Da gibts Basic-Tutorials für ASM, Bauanleitung für Testplatine, und ISP-Adapter für den LPT-Port, und weiterführend auch einen super AVR-GCC Tutorial.

    Das ganze ist zwar für einen Atmega8, aber für den Anfang wirds reichen, mit dem kann man ja auch einige Temp-Sensoren, Drehgeber usw. auslesen. Später kann man eh auf eine größere Variante umsteigen.

    Das Problem bei dieser Aufgabe sehe ich nicht bei der Taktrate, da Drehgeber und Temperatursensoren auch mit 1Mhz eingelesen und verarbeitet werden können, da sie im Vergleich zum Prozessor ziemlich lahm sind (ist aber von der Menge der Sensoren abhängig, aber mehr als 16MHz wirst da sicher nicht brauchen). Du wirst eher mit dem Speicher Probleme bekommen, denn die Dinger haben davon nicht besonders viel (1K SRAM, 8K Flash). Abhilfe kann man mit einer angehängten SD-Karte schaffen, das ist aber dann nicht mehr trivial, und dazu benötigt man meines Wissens nach mindestens einen Atmega32.

    Noch zu bedenken ist die Stromversorgung, an einem MoFa sind massig Störungen vorhanden, die sowohl den Prozessor selber, als auch die (hauptsächlich analogen) Messergebnisse beträchtlich beeinflussen können.

    MfG

    pongi

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    1.892
    Mit nem ATMEL AVR ist die Aufgabe auf jeden Fall auch zu lösen.
    150MHz Taktfrequenz ist allerdings Quatsch.
    Die ATMEL AVR Reihe arbeitet mit einer RISC Architektur und führt die meisten Kommandos mit nur einem Prozessortakt aus.
    Wenn Du nicht gerade Hoch Mathematische Berechnungen vorhast und auch keine Portreaktionen im µs Bereich willst, reichen bereits 2MHz für so eine Anwendung aus.
    Ich verwende gerne 8MHz, weil damit auch die L Varianten der AVR ( niedrigere Versorgungsspannung ) noch funktionieren.
    Was Du eigentlich willst ist ein Datenlogger.
    Das Problem aller dieser kleinen Controller ist der begrenzte Speicherplatz für so eine Logger Aufgabe.
    Du solltest Dir also schon mal Überlegen wo die Daten abgespeichert werden sollen. Ich würde ein I²C EEPROM empfehlen, oder eine SD - Speicherkarte - auch wenn die schwieriger anzusteuern ist.
    Die meisten AVR haben einen USART = serielle Schnittstelle, an Bord.
    Wenn Du einen USB Schnittstelentreiber z.B. einen FT232RL einbaust, hast Du auch gleich eine passende ( USB ) Schnittstelle zu deinem Laptop.

    Üblicherweise kann eine Programmiersprache nur mit Assembler gekoppelt werden. Also "C" und Assembler geht, Basic und Assembler geht auch, "C" und Basic geht nicht.
    Meine Empfehlung ist sich in die Grundlagen von Assembler bei dem entsprechenden Microcontroller einzuarbeiten, weil man dabei am meisten über die Hardware lernt. Und dann auf eine Hochsprache umzusteigen.

    Die AVR Controller sind fast alle In System Programmable. Das heisst die Chips können in der Zielschaltung geproggt werden ohne den Chip auszubauen, wenn man eine entsprechende Buchse vorsieht. Die ISP Programmer sind meistens einfach aufgebaut und schon ab ca 10,-€ im Handel fertig erhältlich.

    Es gibt aber auch eine ganze Menge Schaltungsvorschläge im Internet dafür zu finden.
    Den einfachsten den ich bis jetzt gefunden habe ist ein Druckerportstecker mit 2 Widerständen und ein paar Drahtbrücken.
    Allerdings ist bei dieser Lösung der Druckerport des PC in keinster Weise geschützt.

    Aber wie meine Vorposter schon geschrieben haben - Erstmal langsam anfangen und mal LED's zum blinken bringen, sich schön langsam mal über eine Tasterabfrage zu den integrierten A/D Wandlern vorarbeiten und dann erst mit der Komunikation mit peripheren Bausteinen weitermachen.
    Dann hat dein Projekt auch Aussicht auf Erfolg.

  8. #8
    @pongi
    Danke für den Link!
    Noch zum thema Stromstörungen:
    Da das ganze ein Rennmofa ist ist eine veränderte Lichtspule drinne, aslo hab ich gar keine Stromleitung für andere Verbraucher -> Batteriepack! (is aber kein Problem)

    was heisst trivial?

    Gut, dann halt weniger Mhz (besser wie mehr, oder)
    was wäre der Vorteil eines EEPROM's? (das sind die EPROMS die elektronisch gespeichert und gelöscht werden, oder?)
    hab das mit dem Schnittstellentreiber nich ganz kapiert, wie muss ich mir dann das Vorstellen auf der fertigen Platine?
    Hab ich da dann die Leitungen für die Sensoren, denn Prozessor, speicher und noch ein Bauteil für die Schnittstelle?
    Wär natürlich am G**en wenn cih gerade das Laptop anhängen könnte, wie du das gerade geschildert hast!

    Noch zum thema vom Ungeschützten Druckerport: Sowas gibts leider an meinem neuen (zwar superg**en) PC nich mehr.

    Gut, werd ich so machen!
    (hab eh auch noch ne verwendung für blinkende LED's)

    ach noch ne Frage zu EEPROMS

    sind die Flüchtig?? (also verlieren sie die Daten wenn sie keinen Strom bekommen?

    Greez

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.08.2006
    Ort
    Budapest
    Alter
    30
    Beiträge
    563
    EEPROMs sind nicht flüchtig. Dafür aber langsam.

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    1.892
    EEPROMs sind nicht flüchtig. Dafür aber langsam.
    Das stimmt so, aber für die paar Datensätze pro Sekunde, die so ein Logging System ausspuckt ist es mehr als schnell genug.
    Da er nicht flüchtig ist kann man das System ohne Probleme stromlos machen, den Controllerteil abstecken und die Daten in der warmen Stube am heimischen PC auslesen.

    Zum Thema SD Speicherkarten:
    Um diese SD Karten auch vernünftig ausnutzen zu können, muss der Controller eine Art kleines DOS mit drin haben und das geht erst ab nem ATMEGA32, soweit ich weiß.
    Hab ich da dann die Leitungen für die Sensoren, denn Prozessor, speicher und noch ein Bauteil für die Schnittstelle?
    Sicher auch noch ein paar passive Bauteile wie Widerstände und Kondensatoren, sowie mit ziemlicher Sicherheit einen Operationsverstärker.
    Das Protokoll für die serielle Schnittstelle kann dein Controller selber erzeugen z.B. 38400 Bit/s, 8 Datenbits, 1Stoppbit, keine Parität.
    Der USART ( = serielle Schnittstelle ) auf dem Controller wird durch ein paar Register eingestellt und die gewünschten Daten Byteweise nacheinander in ein Register geschrieben.
    Die Wandlung in das gewünschte serielle Format macht dann der Controller von alleine.
    Die Daten kommen dann am Pin TxD seriell raus.
    Allerdings hat dieser Datenstrom Pegel mit 0 - 5V und damit kann die serielle Schnittstelle eines PC's schon mal nichts anfangen.
    Der übliche Weg ist, diesem Datenstrom einen Pegelwandler wie den MAX232 nachzuschalten der dann + / - 12V Signale aus den 0 / 5V macht - und damit kann die serielle Schnittstelle des PC was anfangen.
    Da aber moderne Laptops u.U. keine serielle Schnittstelle mehr haben, wohl aber einen USB Anschluß, müsste man einen USB -> Seriell Wandler an das Laptop anschließen.
    Hier kommt nun des FT232RL Chip ins Spiel.
    Er kommt auf der Seite zum Microcontroller mit 0 / 5V Pegeln zurecht und stellt in Richtung PC eine vollwertige USB Schnittstelle bereit.
    Da man auf der Controller Seite sowieso einen Chip benötigt hätte ist diese Lösung im Endeffekt sogar preiswerter als die Lösung mit MAX 232 und USB - Seriell Wandler.
    Wenn Du ein EEPROM benutzen willst wird Dir ohnehin kein anderer Weg bleiben, als diesen Speicherchip über die serielle Schnittstelle auszulesen.

    Sowas gibts leider an meinem neuen (zwar superg**en) PC nich mehr.
    Dann wäre ein AVR ISP MK II von Atmel, oder ein Nachbau davon für Dich geeignet. Das Teil hat eine USB Schnittstelle zum programmieren, geht sauschnell, kostet aber auch ein paar Euros mehr. Aber das ist ja Pipifax im Vergleich zu einem neuen PC .

    Als Auswerteprogramm wäre eventuell Logview http://www.logview.info geeignet.
    Die Jungs basteln da an einem Datenformat rum, das sich Open Format nennt. Wenn man sich bei den ausgegebenen seriellen Daten an bestimmte Konventionen hält und eine kleine .ini Datei umschreibt kann man damit Super Auswertungen fahren.
    Das Open Format ist aber auch so angelegt, das man auch mit EXCEL und ein paar Mausklicks schöne Grafiken produzieren kann.
    Ebenfalls auf der Logview Seite wird ein Mini Datenlogger vorgestellt, der auch die meisten von Dir geforderten Anforderungen erfüllt.
    Der größere Bruder der MiDi Datenlogger ist für Deine Anwendung schon Oversized.
    Ich persönlich hätte aber da anstatt des ATTINY 26 lieber einen ATMEGA 8 verwendet.

    Aber trotzdem mal alles schön langsam angehen.
    Du kaufst Dir ja auch nicht nur neue Wanderschuhe und willst dann sofort das Matterhorn besteigen.

    Ich bastel zur Zeit an einem Funk Telemetriesystem rum, das die Daten dann mit Logview auswertet. Mit der neuen 2.0 BETA 2 von Logview läuft das Spielchen schon sehr schön.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •