www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Bordcomputer


Autor: Lars (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
bin gerade dabei mir einen Bordcomputer zu bauen, leider bin ich ein
"Neuling" im Bereich AVR und programmieren.Ich habe auch fast alle
Beiträge zu diesem Thema gelesen aber meine Fragen,die sich mir
stellten, blieb immer unbeantwortet.
Da ich "noch" keine Anhnung habe vom programmieren habe lautet meine
Frage: Wie fange ich überhaupt an? Was muss ich alles beachten?
Gut einiges habe ich schon Erfahren, deshalb habe ich mir auch schon
einen, denke ich  passenden AVr besorgt, den Atmega8.
Als Programmiersprache dacht ich an Assembler, hat man mir übrigens
auch in diesem Forum empfohlen.
Weiterhin sind die Daten der Sensoren auch bekannt. Gibt es vielleicht
in diesem Forum Mitglieder die auch interesse daran hätten sich so
etwas zubauen?
Man könnte sich "zusammen" tun und gemeinsamm daran arbeiten.
Vielleichtist es auch möglich das die, die Ihr "Bordcomputerprojekt"
schon erfolgreich beendet haben mir/uns  Ratschläge, Tips und
Erfahrungen bezüglich Harwareanbindung und Programmierung geben
könnten?

By Lars

Autor: Mark de Jong (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Lars,

Ich kann Dir nur empfehlen: Programiere in C.

Assembler ist eigentlich nicht mehr notwendig, der compiler ist gut
genug.

Und für C gibt es viele lehrbücher.

Grüße Mark,

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das sehe ich anders.
Ich würde dir Assembler empfehlen.
Im Forum wimmelt es von Leuten
die in C oder Basic programmieren
und dann sofort scheitern, wenn es keine fertige Funktion
für irgend etwas gibt.
Um zu verstehen was dein MC macht, gibt nur Assembler.
C kannst du dann später mal lernen.

Schau dir mal das an : http://www.avr-asm-tutorial.net/

Bzgl. Bordcomputer:

Hängt vom Fahrzeugtyp ab.

Habe mal sowas für nen Käfer gebaut, alles analog, sehr einfach
zu realisieren. Brauchst dich nur ein wenig mit den AD Wandlern
im AVR zu beschäftigen.

Wenn du ein modernen Wagen hast und du die Daten vom CAN oder LIN -Bus
abnehmen willst, wirds schon sehr aufwändig.

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Lars

Einen "Bordcomputer" zum Anfang halte ich für übertrieben. Ist zwar
eine schöne Aufgabe, aber da kannst du schnell die Lust verlieren, wenn
man nicht weiter kommt. Da tuen sich dann "Probleme" auf, die du
wahrscheinlich als Anfänger nicht lösen kannst.

Fange langsam an und freue dich über Fortschritte.

Ich habe mit einem Lauflicht angefangen, ist glaube ich normal.

Hier ein paar Vorschläge zum beginnen:

Lauflicht, später wechselne Richtungen über Tasten, Geschwindigkeit
änderbar

Eine einfache "Ampelsteuerung", nachher mit Tasten für die Fußgänger

Ausgabe von Impulsen auf einem Pin, später dann verschiedene Bit
Muster

Ansprechen von I2C Bausteinen oder ein DS1820

Ansprechen der seriellen Schnittstellen

usw.

Mit Assembler und als Anfänger kannst du dir dabei schon die Zähne
ausbeissen. Will dich aber nicht schocken, fang einfach an und bleib
daran.

Programmieren ist meiner Meinung nach 80 % nachdenken über die Aufgabe,
10 % Code eintippen und 10 % ,oder auch mal mehr, Fehler suchen.

Assembler, Basic oder C ist halt Geschmackssache. Ich schreibe viel in
Basic und wenig in C. In Assembler gar nichts mehr.

MFG

Dieter

Autor: Vitali Tscheroun (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich schliesse mich Dieter an.
Klein anfangen, nur wenn du die Einfachen Aufgaben ervolgreich
abgeschlossen und auch alles verstanden hast,kannst du dich an grössere
Sachen heranwaagen. Was die Programmiersprache angeht ist
Geschmacksache,ich bevorzuge Assembler.
Gruss.
Vitali.

Autor: Lars (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
erstmal danke für eure Antworten.
Natürlich möchte ich Schritt für Schritt lernen wie man programmiert,
es ist mir auch bewusst das alles seine Zeit braucht. Doch kennt ihr
das nicht auch, ihr seht etwas und es lässt euch nicht mehr los!Tja,
das ist für mich das Projekt mit dem Bordcomputer.

@Michael,
also wie ich etwas machen möchte weis ich schon, nur fehlt mir das
programiertechnische Wissen und Erfahrung um zu beurteilen ob es
machbar ist und wie ich es umsetze. Die Signale liegen bei der Drehzahl
( konstante Pulsweite, somit veränderliche Pulspausenzeit) und
Geschwindigkeit ( feste Anzahl von Pulsen pro Ritzelumdrehung) in
digitaler Form vor, nur Wasser und Öltemp sind analoge Werte.
Wäre toll wenn du mir weiter helfen könntest. Nnatürlich gilt das auch
für alle anderen die mir dabei helfen wollen.
Lars

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Lars,

such dir erstmal die wichtigsten Daten zusammen.

1. Was für ein Display möchtest du verwenden.
   Besorg dir das passende Datenblatt.
   Beachte ( du hast wohl ein Motorad ? ) dass z.B.
   manche LCD Displays bei Temperaturen unter -5Grad
   nicht funktionieren und eventuell auch dauerhaft kaputt gehen.
2. Überlege dir, wo du die Zündsignale abnimmst, ich habe die
   damals mit einem Optokoppler von der Zündspule abgegriffen.
3. Für Wasser und Öltemperaturgeber musst du die Kennlinien
   beschaffen, d.h. Zusammenhang von Widerstand und Temperatur.

Wenn du all die Informationen hast, gehts ans programmieren.

Gruss Michael

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich täte an deiner Stelle, alle Funktionen die der BC haben soll,
einzeln erstellen und durchsimulieren. z.B. Wasser und Öl durch Potis
simulieren, Werte in Strings umwandeln und über die RS232 auf den PC
ausgeben. Man lernt irrsinnig viel und hat doch alles unter Kontrolle.
Dann kannst du dich mit Timern spielen....
Versuche alles ohne Druck zu erlernen, ansonsten verlierst du die
Freude. Solche Projekte, auch wenn sie anfangs nicht groß erscheinen,
mutieren meistens irgendwohin,vor allem wenn du noch nicht mal weisst
ob ASM oder C.(ich arbeite mit Codevision AVR >> sehr guter
C-Compiler)
Gut Ding braucht Weile und Wille.
Vertrau auf die Leute im Forum, da sind schon sehr erfahrene dabei!
Max

Autor: sebezahn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

was für ein Auto hast du denn? Ich baue gerade sowas für einen VW
Beetle Jahrgang 2001. Meine Daten erhalte ich vom OBD-Stecker, die
Kommunikation regelt ein ELM323 ( http://www.elmelectronics.com ). Alle
Autos, die diesen Standard unterstützen, sollten damit ebenfalls
funktionieren.

Zur Ansteuerung des Displays und der Tasten nehme ich einen MEGA128.
Das ist vielleicht ein wenig übertrieben, aber ich kann in dem Teil
dann die ganzen Fehlercodes im Klartext speichern. Wenn ich einen
externen eprom nehmen würde, wäre es im endeffekt ähnlich teuer und
einiges komplizierter.

Das Teil ist noch nicht fertig, funktioniert aber schon teilweise
(Display, Kommunikation mit ELM323-dank diesem Forum ;-),
Tastaturabfrage Matrixtastatur).

Das Projekt werde ich, wenn es fertig ist, als Open Source anbieten.
Wird aber sicherlich noch einen Monat dauern.

Gruß
Sebezahn

Autor: Lars (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
also wie Michael schon richtig tippte handelt es sich um mein Projekt
um einen Bordcomputer für mein Motorrad. Michael, kannst Du mir ein
Display empfehlen?
Die Idee mit dem einzeln simulieren von Max klingt gut, da kann man
noch alle Fehler finden und korigieren.
Tja, wie schon gesagt, die techn. Daten habe ich schon und als
Controller den Atmega8.
An welche Pins würdet ihr denn ein 4*20 LCD, eine Drehzlimpuls,
Geschwindigkeitsimpuls, Öldruckkontrolle, Wasser und Öltemp legen, Uhr,
Infrarot-Empänger?
Wenn der Controller von der Spannungsversorgung getrennt wird, verliert
er dann alle gesammelten Daten ( Kilomterstände etc.)oder etwa auch das
Programm?
wenn das so ist wie verhindere ich das?
Lars

Autor: Markus Kempf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
An deinen Fragen merkt mann das Du wirklich von 0 auf 100 möchtest. Und
sie gehören zu den Fragen auf die du selbst eine Antwort finden
solltest indem du dich etwas mit der Materie (z.B. Datenblatt, Bücher
usw.) befasst. Du kannst nicht erwarten das man Dir das ganze Projeckt
vorkaut.
Ich will Dich ja nicht entmutigen, aber weisst Du was du noch alles vor
Dir hast wenn Du noch nichtmal weist, das das Programm in einem
Flash-Speicher abgelegt wird und dieser seine daten nicht verliert und
das sich Variablen  zur bearbeitung im RAM befinden und in den EEPROM
gespeichert werden müssen um sie dauerhaft zu erhalten?

Gute Güte, bring erstmal eine LED zum leuchten bevor nen Bordcomputer
baust. Meine Meinung.

Gruss!

Autor: Lars (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Marcus Kempf,
klar kann und möchte ich auch nicht mir von anderen mein Projekt
erstellen lassen. Da könnte ich es auch gleich kaufen und mir eine
Menge Zeit und Arbeit sparen.Allerdings haben andere wesentlich mehr
Erfahrung gesammelt als ich und ich denke sie können mich mit ihren
Beiträgen davor bewahren mein Projekt zu umständlich oder falsch
anzufangen. Ist daran etwas falsch? Meiner Meinung nach nicht, aber es
gibt natürlich auch andere Meinungen dazu, die man auch akzeptieren
muss. Mir ist auch klar das man ohne Grundlagen (Led blinken etc.)
nicht weit kommt. Diese Grundlagen werde ich so bald mein ISP
funktioniert auch alle ab arbeiten. Dabei wird einiges etwas
transparenter für mich und einige Fragen hätte ich im nachhinein
betrachtet, vorher vielleicht garnicht stellen müssen....
Ich habe mir schon gem. Datenblatt einige Pins ausgesucht um bestimmte
Signal damit auszuwerten. Die Frage die ich oben stellte basiert also
auf der Grundlage zu "überprüfen" ob die von mir gewähleten Pins dazu
taugen oder ob es einen besseren Weg gibt.
Dennoch danke ich dir für deine Erklärung mit dem RAm und EEprom.
Lars

Autor: anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
geht das mit den variablen im eeprom speichern nur bei den megas, oder
könnte das auch ein 1200 oder 2313? wenn ja, wie geht sowas (in
bascom)?

Autor: Nik Bamert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi!

guck dir mal die bascom hilfe an. z.b. unter 'readeeprom'

dort ist das genau beschrieben. um eine bytevariable dauerhaft zu
erhalten, musst du sie z.b. so definieren:

dim b as eram byte


MFG Nik

Autor: anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke!

Autor: anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ist das interne eeprom eigentlich ein verschleissteil? also übersteht es
nur eine bestimmte anzahl von lese-schreib-zyklen, oder ist es ewig
haltbar?

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist ein Verschleissteil.

Siehe Datenblatt 1.Seite hier ein 4433

– 256 Bytes of In-System Programmable EEPROM
Endurance: 100,000 Write/Erase Cycles

Ist bei den anderen aber auch nicht viel anderes.

MFG Dieter

Autor: Heinrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Lars,

dieser Link dürfte für dich interessant sein.

http://wwwneu.dlr.de/~kunze/Bewerbung/abs.pdf

Autor: Lars (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Heinrich,
danke für den Link. Ist wie Du schon oben geschrieben hast ist er
interessant für mich. Wenn du noch was interessantes finden solltes sag
kurz bescheid.
Lars

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.