Hallo, ich studiere derzeit Software Engineering, und habe seit diesem Semester einen Kurs, der sich mit Mikrocontrollerprogrammierung, und Sensoren etc. auseinander setzt. Bei der erstem Vorlesung hat uns der Prof am Ende ein AVR STK600 (Atmega 2560) und ein 2x16 LCD Display in die Hand gedrückt, und gemeint wir sollen bis nächste Woche ein kleines Programm mit LCD - Ausgabe (in C) schreiben. Da ich kompletter Neuling auf diesem Gebiet bin (bis auf 2 Veranstaltungen zu Signalverarbeitung) wollte ich mich im Netz schlau machen, jedoch finde ich nicht die Infos die ich brauche, oder kann damit nicht umgehen (zu komplex, oder unverständlich für Leihen) und werde von Schaltbildern etc. erschlagen. Meine Frage ist nun: Kennt ihr ein paar gute Quellen (Internetseiten, Bücher etc.) die Einsteigerfreundlich sind, und einen Schritt für Schritt an dieses Thema heran führen? Das fängt schon damit an, dass ich nicht weiß wie ich den LCD Display überhaupt an das Board anschließen muss, ohne irgendwas zu beschädigen. Ein Einsteigertutorial für C (ausgelegt für Mikrocontroller) wäre auch sehr hilfreich, falls jemand ein gutes kennt. Ich würde mich über schnelle Antworten sehr freuen :)
Lukas schrieb: > Hallo, > > ich studiere derzeit Software Engineering, und habe seit diesem Semester > einen Kurs, der sich mit Mikrocontrollerprogrammierung, und Sensoren > etc. auseinander setzt. > > Bei der erstem Vorlesung hat uns der Prof am Ende ein AVR STK600 (Atmega > 2560) und ein 2x16 LCD Display in die Hand gedrückt, und gemeint wir > sollen bis nächste Woche ein kleines Programm mit LCD - Ausgabe (in C) > schreiben. Unrealistisch. Nach der 1. Vorlesung soll binnen einer Woche ein µC Programm entwickelt werden? Ohne dass dazu irgendwas vorher beigebracht wurde? Erzähl doch nichts! Außerdem weiß ich ja nicht wie Vorlesungen so im neuen Bologna Zeitalter ablaufen, aber bei uns waren Vorlesungen rein theoretischer Natur. Praktische Dinge gab es, oh Wunder, in Praktikas und sog. "Laboren". Und dass ein prof. in einer Vorlesung Hardware austeilt (wie viele hundert Stück waren das?) hab ich auch noch nicht gesehen. O tempora, o mores.
Hi, die besten Tutorials die ich kenne sind hier: https://newbiehack.com/MicrocontrollerTutorial.aspx Dann fängst du am besten mit "MCU First Program" an und machst ein paar weitere Tutorials. Irgendwann landest du bei "First LCD Program". Vermutlich kannst du auch ein paar zwischendurch überspringen. Wenn du die Tutorials abarbeitest, bist du fit. Je nach Vorbildung solltest du aber in einer Woche mit diesen Tutorials ziemlich weit kommen. Das ist alles bestens mit Videos erklärt. Englisch solltest du aber verstehen. Gruß, thoern
:
Bearbeitet durch User
hier gibts auch noch das hauseigene Tutorial: https://www.mikrocontroller.net/articles/AVR-Tutorial incl. LCD Ansteuerung. Für solche Komponenten sollte man einen Blick in das zugehörige Datenblatt werfen.
Wenn du den LCD treiber in der Zeit auch noch selbst programmieren sollst, tust du mir Leid. Im meinem Einsteiger Buch (http://stefanfrings.de/mikrocontroller_buch/index.html) ist das eins der letzten Kapitel. Allerdings kannst du vermutlich die Hälfte der Grundlagen von Band 1 überspringen und bei Band 2 die Vorstellung von coolen IC's und Grundschaltungen auslassen. Dann schaffst du es vielleicht, das ganze innerhalb von 4 Tagen durchzuarbeiten. In meinem Buch verwende ich hauptsächlich inen ATtiny13 und einen Arduino Nano, Du kannst das alles aber auch mit dem STK nachvollziehen. Im grunde genommen sind die Unterschiede nur eine Frage von mehr oder weniger I/O Pins. Das von Johannes genannte Tutorial solltest du auf jeden Fall lesen. Da stehen viele wissenswerte Details drin, die ich in meinem Buch gar nicht erwähne.
Hallo Lukas, ich finde es ebenfalls sehr unwahrscheinlich, dass man einem Studenten ein Controller-Board vor die Füße schmeißt ohne vorher ausreichend Grundlagenwissen vermittelt und Literatur an die Hand gegeben zu haben. Für viel wahrscheinlicher halte ich es, dass man bereits genug an die Hand bekommen und einfach dieses Grundlagenwissen noch nicht verinnerlicht hat. Ich studiere selber technische Informatik und hatte erst im 4. Semester eine Projektarbeit mit zwei anderen Kommilitonen und einer trivialen Aufgabenstellung, für die wir 8 Wochen (!) Zeit hatten. Vorangegangen waren ausreichend Vorlesungen zu Mathematik, Rechnernetzen, Digitalen Schaltungen, Algorithmen und Datenstrukturen u.v.m. Wenn du also tatsächlich so unter Zeitdruck stehst und etwas abliefern musst, so kommt für dich wahrscheinlich nur die Copy & Paste-Lösung infrage. Denn mit den Voraussetzungen, wie du sie beschreibst, wirst du in einer Woche wohl kaum was lernen und am Ende mit nichts dastehen. Schnapp dir also irgendein Tutorial, wo ein LCD - höchstwahrscheinlich einer mit einem H44780-Controller drauf (schreib dir die Bezeichnung besser auf ;) ) - und schau, wie der an dein STK600 geklemmt wird. Häufig findest du ein Tutorial, wo du keinen Schaltplan lesen musst, sondern mit einer einfachen Tabelle beschrieben ist, welcher LCD-Pin an welchen Controller-Pin kommt. Dann nimmst du den Code von diesem Tutorial, flashst ihn und freust dich, dass es läuft. Dann kannst du anfagen, die ausgegebenen Texte in dem Code zu verändern, bis im Display das steht, was dein Prof/Tutor sehen will. Zum Schluss sorgst du am besten noch dafür, dass dein Prof nicht erfährt, dass du diesen Code einfach nur kopiert hast. Wenn du danach noch was lernen möchtest, fängst du am besten mit dem AVR C-Tutorial hier bei Mikrocontroller.net an. Damit habe ich selber vor Jahren, damals genauso ein Laie wie du jetzt, angefangen zu lernen und kam schnell voran (also eigentlich habe ich mit dem ASM-Tutorial angefangen, um zu verstehen, was in einem Controller überhaupt passiert). Und ich möchte dabei hervorheben, dass ich damals wirklich noch blutiger Anfänger war, d.h. mein Studium lag noch in weiter Zukunft, Assembler war ein völliges Fremdwort für mich und ich hatte bis dahin noch keine einzige Zeile C geschrieben und hatte nicht die leiseste Ahnung, wie der Code überhaupt auf einen Controller kommt. Ich hatte nur etwas Programmiererfahrung in Delphi. Damit will ich sagen, dass die Ausrede, du hättest nichts geeignetes für einen Laien gefunden, nicht gilt. Es gibt zigtausend gute Anleitungen und einige Hundert sehr gute Anleitungen im Netz, die beschreiben, wie man deine Aufgabe löst. Die Sucharbeit musst du schon selber machen, denn von nichts kommt nichts, und darüber hinaus wissen wir nicht, was du für ein Lerntyp bist (lernst du besser durch langen Fließtext und Quellcode-Studium oder eher durch Bilder und Video-Tutorials?) Das musst du schon selber für dich wissen :) Freundlichen Gruß
:
Bearbeitet durch User
Ansonsten gibts noch Arduino "für Doofe"* mit super Tutorials bezüglich dem Anschluss der Hardware und den Grundprinzipien der Displayansteuerung. An diesen kann man sich durchaus orientieren, aus Funktionen der Libs kann man sich ein nettes Strukturgramm basteln und es dann nachprogrammieren. Da ändert sich ja physikalisch nix und C bleibt C. Man muss da halt "nur noch" eine Ebene tiefer gehen und ein paar Register beglücken. Vorallem hat ein blutiger Anfänger vermutlich keinen Durchblick, wie die Programme ablaufen müssen, damit sie wie gewünscht funktionieren. Deswegen ist es durchaus sinvoll sich an eine funktionierende Vorlage anzulehnen. Zumindest so lange, bis man sich die Art zu denken angewöhnt hat, die es braucht um gut strukturierte Programme schreiben zu können. *Für Doofe ist keine Beleidigung gegenüber Aruinonutzer. Es soll halt nur verdeutlichen, dass viele der Tutorials ziemlich anfängerfreundlich, nahezu idiotensicher, sind. Der Beginner ist immer, mangels Wissen und Erfahrung doof, da müssen wir alle durch, wenn wir uns mit Neuem beschäftigen.
:
Bearbeitet durch User
Könnte es sein, dass der Herr Professor ein paar angeberische Softwerker in ihre Schranken verweisen wollte?
Lukas schrieb: > Bei der erstem Vorlesung hat uns der Prof am Ende ein AVR STK600 (Atmega > 2560) und ein 2x16 LCD Display in die Hand gedrückt, und gemeint wir > sollen bis nächste Woche ein kleines Programm mit LCD - Ausgabe (in C) > schreiben. https://www.youtube.com/watch?v=MqbUQFLsZgE https://www.youtube.com/watch?v=Jwx6_k0rvOQ usw.
Also erstmal vielen Dank für die schnelle, und umfassende Hilfe. Das mit der Aufgabe wurde evtl falsch verstanden. Ich hatte 2 Veranstaltungen, in denen es aber hauptsächlich um logische Schaltungen, Automaten etc. geht, aber ich denke dass der Prof es so gemeint hat, dass wir uns da mal einarbeiten sollen, und uns das anschauen sollen, jedoch nicht dass die Aufgabe sehr komplex sein muss (ein hello world oder ein einfaches Programm / Ausgabe auf dem Display würde wahrscheinlich reichen). Trotzdem danke nochmal, ihr habt mir schon viel geholfen
:
Bearbeitet durch User
Lukas schrieb: > Bei der erstem Vorlesung hat uns der Prof am Ende ein AVR STK600 (Atmega > 2560) und ein 2x16 LCD Display in die Hand gedrückt, und gemeint wir > sollen bis nächste Woche ein kleines Programm mit LCD - Ausgabe (in C) > schreiben. ..und hat vermutlich ein einem Nebensatz erwäht wo ihr Beispielcode von der Uni Webseite laden könnt. Korrekt funktionierende LCD Treiber schreibt ein Anfänger nicht mal eben so einfach. Ansonsten fängt man mit einer blinkenden LED an: Das ist eins der einfachst möglichen Programme und soll zeigen dass die Toolchain (IDE, Compiler etc.) inklusive flashen des Controllers funktioniert. Das alles sollte in den Unterlagen des Kurses haarklein beschrieben sein...
Soll das heißen der Prof. hat für jeden der 30+ Studenten so ein Kit? Und wenn eines kaputt geht wird nachgekauft? Da muss ja Geld vorhanden sein. Zumal es wesentlich billigere Kits - sogar mit Debugger - für 8051 oder ARM gibt. Es gibt sogar das Arduino Zero mit Debugger drauf.
Hallo da frage ich mich als jemand der nie studiert hat - warum gibt es eigentlich Universitäten? Ja ist natürlich etwas ketzerisch gemeint, aber eine Aufgabe ist es doch Menschen etwas bei zu bringen, zu erklären, und bei Problemen zu helfen. Wenn solch ein Vorgehen wie es der TO beschreibt, und wie man es immer wieder auch wo anders lesen und in Videos sehen kann, aber der Wahrheit entspricht, könnte man doch, zumindest am Anfang, auf die Universität verzichten da man sowieso alles selbst herausfinden und sich erarbeiten muss - teure (für den einzelnen Studenten) könnte ja direkt auf Leihbasis, wie es rudimentär sogar schon in manchen öffentlichen Bibliotheken gemacht wird, den Studenten mitgegeben werden. Ganz generell und natürlich nur von Außen betrachtet kommt es mir vor als wenn bei (technischen?) Universitäten und artverwandten Bildungseinrichtungen nur Druck ausgeübt wird und Nettigkeit und echte Hilfe Fremdworte sind. Das es auch anders geht zeigen die Allgemeinbildenden Schulen bis etwa zur 9 oder 10 Klasse und die Beruflich Fortbildung, innerbetriebliche und externe Schulungen und ähnliche Veranstaltungen. Jemand
Jack schrieb: > Könnte es sein, dass der Herr Professor ein paar angeberische Softwerker > in ihre Schranken verweisen wollte? Und diesen Angebern auch noch ein STK600 an die Hand gibt? Eher unwahrscheinlich. Lukas A. schrieb: > wir sind nur 7 Leute im Kurs, da geht das schon ;D Der Prof hat also kein Problem damit an 7 beliebige Stundenten 7 STK600 (> 200 Euro/Stück) auszugeben, die besten Chancen haben, die Teile zu schrotten? Das ist kaum zu glauben. Dazu dann noch die Aufgabe, die recht komplex ist, in einer Woche zu schaffen? Bei uns war es so, dass wir zuerst im Labor ein Programm schreiben sollten, dass schlicht eine LED ein- und ausschalten sollte, das beliebte "Hello Word" für Mikrocontroller: Der Blinker. Euer Prof scheint da ein ziemlich fieser Kerl zu sein. Tutorial gibts hier auf der Seite: https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung Das findet man ganz leicht indem man bei Google "AVR LCD Tutorial" eingibt, es ist dann der erste Treffer, den Google findet. Da du schon diese Aufgabe offenbar nicht meistern konntest wäre ich fast geneigt dir ein anderes Studium zu empfehlen.
Jemand schrieb: > Ja ist natürlich etwas ketzerisch gemeint, aber eine Aufgabe ist es doch > Menschen etwas bei zu bringen, zu erklären, und bei Problemen zu helfen. Studium bedeutet sich selbst etwas beizubringen, das Lernen zu lernen. Der Prof zeigt nur in welche Richtung man gehen soll, den Weg muss man dann selbst beschreiten und am Ende wird man darüber quasi ausgefragt als Kontrolle, ob man den Weg auch wirklich gegangen ist und sich nicht nur die Wegbeschreibung dazu durchgelesen hat. Zu meiner Zeit jedoch, so vor 15-20 Jahren, konnte man mit Problemen aber auch durchaus den Prof fragen und er erklärte dann...sofern er auch gemerkt hatte, dass man sich wirklich mit dem Thema beschäftigt hatte (und das merkt man sehr schnell ob sich jemand mit einem Thema beschäftigt hat oder nicht).
Jemand schrieb: > da frage ich mich als jemand der nie studiert hat - warum gibt es > eigentlich Universitäten? Eine Uni ist keine Schule. Wenn du auf eine Uni gehst solltest du in der Lage und Willens sein dir Wissen selbst beizubringen. Deshalb heisst es auch "VORLESUNG" und nicht "Unterricht". Jemand schrieb: > Das es auch anders geht zeigen die Allgemeinbildenden Schulen bis etwa > zur 9 oder 10 Klasse In dem Stil würde ein E-Technik oder Informatik Studium 20 Jahre dauern!
Jim M. schrieb: > Korrekt funktionierende LCD Treiber > schreibt ein Anfänger nicht mal eben so einfach. Völlig überzogen. Hier geht es um a) Wie funktioniert das Display (8 bit parallel, /WE, /CS, Dotmatrix). b) Welche Initialisierung muss ich machen (Delayschleife 1ms, eine Hand voll Werte) c) Wie wackle ich mit den Ports um ein /WE und ein /CS zu erzeugen (Bitoperationen) d) Wie schreibe ich ein Unterprogramm das ein Zeichen auf das Display schiebt e) Wie kann ich das ganze in ein Programm für ein "Hello!" bringen. Und: Wie bin ich organisiert um diese Tasks einigermaßen vernünftig abzuarbeiten um nächste Woche im Praktikum tatsächlich mit einem eingermaßen vernünftigen Programm aufzuschlagen und dort mir in 90min nicht alles von Praktikumsbetreuer vorkauen lassen zu müssen bis ich es verstanden habe (und das x Anzahl der Praktikanten). rgds
Als Arduino Jünger, mit fundiertem Halbwissen, würde ich natürlich zur Arduino IDE greifen. In ca 1/2 Stunde ist eine Board Definition für den ATMega2560 am STK600 angepasst/geschrieben. Wenn der Sensor nicht zu exotisch ist, dann hat man die Sensorwerte nach ca einer weiteren Stunde auf dem Display. Gut, das geht nur mit etwas Vorwissen, und unter Nutzung der übliche Arduino Libs. Zeitaufwand insgesamt nicht über 2 Stunden. ---- Fängt man allerdings bei Null an... 1. C lernen 2. Umgang mit IDE/Toolchain lernen 3. Datenblatt von ATMEGA2560, STK600, Display und Sensor lesen UND verstehen. 4. Programm vollständig selber schreiben Dann ist 1 Woche, nicht zu schaffen. Das geht in die Monate. Ich behaupte: Das Problem ist also nicht die Anwendung selber, sondern die da rund rum nötigen Grundlagen.
Die Aufgabe hat vermutlich nur einen erzieherischen Wert. Da spazieren die Sprösslinge in die Vorlesung, meinen sie seien die Kings weil sie das Abitur bestanden haben und meinen sie könnten alles. Mit so einer Aufgabe möchte der Prof erzielen dass die Leute realisieren "ich bin doof". Aber ganz ehrlich: So schwer ist das nicht. Das sollte man sich locker in einer Woche erarbeiten können, es gibt hervorragende Anleitungen und zudem spricht nichts dagegen ein fertiges Grundgerüst zu nehmen. Für Sensoren und Display gibt es garantiert fertige Bibliotheken.
Nogler schrieb: > Aber ganz ehrlich: So schwer ist das nicht. Das sollte man sich locker > in einer Woche erarbeiten können Das meine ich auch! Zumal von Sensoren oder einem "echten" Treiber für's Display ja gar nicht die Rede ist! Es würde nach seiner Beschreibung ja schon reichen, da irgendwie ein paar Zeichen auf's Display zu bringen. Ich wüsste gar nicht, womit man sich dafür eine Woche lang beschäftigen sollte! 6a66 hat das oben in seinem Post ja ganz gut beschrieben, was zu machen ist.
:
Bearbeitet durch User
Nogler schrieb: > Die Aufgabe hat vermutlich nur einen erzieherischen Wert. > Yep > Da spazieren die Sprösslinge in die Vorlesung, meinen sie seien die > Kings weil sie das Abitur bestanden haben und meinen sie könnten alles. > Nicht Alle > Mit so einer Aufgabe möchte der Prof erzielen dass die Leute realisieren > "ich bin doof". Keineswegs. Normalerweise geht das Semster nicht damit an, dass der Prof Evalboards verteilt. Sondern da kommt schon mal eine Bemerkung wie "Wir werden das und das machen, und da braucht Ihr ... Kenntnisse". Wer zuhört und nicht nur ins Skript schaut, der hat hat schon mal die IDE runtergeladen und mal damit gespielt bevor es in das erste Praktikum geht. Und - oh - da gibt es ja SOOO viele Praktika. Wer aber meint er sitzt das Praktikum ab der muss schnell realisieren dass das nicht so geht. Ob er dann den Schluss zieht "Mann, war ich doof" oder das ganze dem Prof zuschiebt ist eben auch Lerneffekt. rgds
Jemand schrieb: > da frage ich mich als jemand der nie studiert hat - warum gibt es > eigentlich Universitäten? Wie bereits einige Vorredner gesagt haben: um das Lernen zu lernen! Das es bei einer solchen vermeintlich banalen Angelegenheit eklatante Defizite gibt, merke ich jeden Tag an nicht wenigen Kommilitonen, die sich die einfachsten Informationen nicht besorgen können - selbst wenn diese in fetter roter Schrift auf einem Info-Bildschirm vor ihnen blinken. Nach meinem Empfinden ist dies besonders bei den frischen Schulabgängern der Fall, weniger bei bereits berufserfahrenen Menschen. Die "Frischlinge" (so bezeichne ich die Schulabgänger jetzt mal) sind es gewohnt, dass ihnen der Lehrer (was der Professor ja nun keinesfalls ist) ständig den Hintern hinterher trägt und eben alles vorkaut und zur Not zusieht, dass alle auf dem gleichen Stand bleiben. Dem Prof ist das relativ egal und ihn kümmert es wenig, wie schnell man mit dem Stoff persönlich voran kommt und ob man es denn nun begriffen hat. Dafür hat man das nötige Werkzeug, die Unterlagen und Hilfsformate, wie z.B. Tutorien, an die Hand bekommen. Wer das nicht für sich zu nutzen weiß, hat wahrscheinlich das Konzept dieser gesamten Institution Hochschule nicht verstanden. Daher darf eine Hochschule/Uni nicht einfach als Fortsetzung der Schule verstanden werden mit gesteigertem Schwierigkeitsgrad und ansonsten gleichem Vorgehen. Die Aufgabe der Hochschule ist es, dem Menschen beizubringen, wie er sich in seinem gewählten Studiengang die nötigen Informationen selbst besorgt, um später neues Wissen daraus zu schaffen (daher ja auch "Wissenschaft"). Und das eben unter Verwendung wissenschaftlicher Standards. Dafür stellt einem die Hochschule die entsprechenden Einrichtungen und Netzwerke zur Verfügung, die man für ebendieses Selbstlernen benötigt. Selbstlernen besteht schließlich nicht nur, wie du vielleicht meinst, aus dem bloßen Selbststudium zuhause durch das Lesen von Texten, sondern eben auch durch das praktische Lernen an (technischen) Einrichtungen, die sich eben kaum eine Privatperson leisten könnte. Oder möchtest du von einem Menschen am Hirn operiert werden, der seine medizinischen "Kenntisse" nur durch das Sezieren von Fröschen zuhause erlernt hat? Und auch was das theoretische Wissen in Form von Texten oder Vorlesungen angeht, so gibt es auch da gravierende Unterschieden zu dem, was man aus dem Internet herausfindet. Ich habe schon oft erfahren, dass es bestimmte Informationen in der Form einfach nicht im Netz zu finden gibt. Da war ich froh, dass ich einen Professor oder Tutor hatte, der mir diese nützliche Information vermittelt hat. Natürlich lässt sich über Themen, wie die Betrueuungsdichte von Studenten im deutschen Hochschulsystem oder dass Hochschulen gefühlt immer mehr dazu tendieren über wirtschaftliche Faktoren, wie hochdotierte Forschungsaufträge, statt über Wissen miteinander zu konkurieren, streiten. Das lässt Meiner Meinung nach aber immer noch nicht das Argument zu, Hochschulen seien überflüssig, weil man schließlich ja auch zuhause lernen könnte, statt sich von jemandem "da vorne berieseln" zu lassen. Hochschule ist eben doch noch mehr, als nur das. Gruß
:
Bearbeitet durch User
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.