PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Programmieren jeder hats anders gelernt



Wergenter
22.08.2011, 23:01
Guten Abend.
Ich kann noch keine Roboter programmieren.
Erstmals ist das schwer?
Und da muss man ja zb nur ein paar Sachen aus zb C. Können oda?
Und wie habt ihr gelernt Internet Bücher(Buch bzw Link dazu schreiben)
Mfg Wergi

5Volt-Junkie
23.08.2011, 00:49
Hi,

also man kann nicht so pauschal sagen ob das schwer oder leicht ist. Es kommt immer drauf an was dein Roboter können muss. Ist das ein relativ einfacher Linienfolger oder ein Hexapod... Es kommt halt auf die Komplexität des Roboters an.

Die Programmiersprache sucht sich jeder selber aus. Dabei schwören die einen auf C, Basic oder Assembler (oder auch was anderes) je nachdem womit der jenige am besten klar kommt.

Ich persönlich habe am Anfang mit Arduino angefangen. C und Assembler den jenigen überlassen die öfters was programmieren oder es beruflich gelernt haben. Ich würd Arduino jedem Anfänger empfehlen. Die Programmiersprache ist C ähnlich, man hat kostenlose Programmierumgebung und Compiler, alles schön übersichtlich benutzerfreundlich. Jedoch ist man dabei zu sehr an die Mikrocontroller von Arduino gebunden. Zum Arduino gibt es auch einige Bücher (auch auf deutsch) und relativ viele Beispielprogramme, sodass man schnell den Aufbau des Programms begriffen hat und schnelle Erfolge sehen kann.
Später habe ich mit Basic angefangen. Dafür habe ich mir das myAVR MK2 USB Board (hätt ich mir lieber ein RN-Board geholt :)) gekauft und ein gutes Buch von Roland Walter "AVR Mikrocontroller Lehrbuch" was mir so ziemlich weiter geholfen hat. Hier hat man eine Bascom Demo Version, die auf 4kb Flasch-Speicher begenzt ist.
Irgendwann MUSSTE ich mich mit Assembler auseinandersetzen, was ich nicht bereut habe. Aber das habe ich dann wie gesagt den anderen leuten überlassen, die damit jeden Tag oder ziemlich oft zu tun haben ;)

C++ ist so die gängiste... Wird auch in der Industrie eingesetzt

Viele steigen in die Welt der Programmierung und Robotik mit den vorgefertigten Robotern wie Asuro, ProBot, RP5/RP6 ein. Bei den muss man nicht weiter als RN gehen :) hier kriegt man mehr als ausreichend Support dafür.
Eigenen Roboter zu bauen hat mich persönlich mehr gereizt als einen fertigen zu kaufen.

Schau ruhig im RN-Wissen nach, was da so über C, Assembler, Bascom, Mikrocontroller etc. steht. ;)

Thegon
23.08.2011, 10:39
Hallo,
Ich habe mit visual Basic.net angefangen (hier Download (http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-basic-express)), da gibt es eine gute Hilfe und anleitung (Gewusst wie) und man kommt schnell zu ersten Brauchbaren ergebnissen (für hello world nur ein paar klicks und eine zeile Code ;-)) , was schnell motiviert, weiterzumachen.
Ich habe erst später mit den uC´s angefangen, als ich mich schon mit Basic angefreundet habe.
Mittlerweile kann ich auch ein bisschen C, aber irgentwie sagt mir Basic mehr zu.
Aber man wächst mit seinen aufgaben, und so werde auch ich mich noch intensiv mit C bzw. C++ auseinandersetzen müssen.

Es gibt auch haufenweise Programmer und Experimentierboards, ich habe das von Pollin, baue sonst aber auch ganz gern alles mögliche auf dem Steckbrett auf, weil man sich da an nichts vorgegebenes halten muss und schnell einmal etwas ausprobieren kann.
Das beste AVR Einstiegstutorial das ich kenne (und auch mir den Einstieg erleichtert hat) ist das aus dem RN - wissen:
http://www.rn-wissen.de/index.php/AVR-Einstieg_leicht_gemacht
Mfg Thegon

Besserwessi
23.08.2011, 18:33
So schwer ist die Porgrammierung eigentlich nicht. Wenn man erst mal eine Programmiersprache kann, geht es bei der 2. , 3. und 4. dann deutlich einfacher. Der Anfang ist vermutlich am PC einfacher, weil man da eine bessere Rückmeldung und Ausgabe hat. Bei einem µC oder Model-Bot fehlt einem die einfache Möglichkeit Zwischenergebnisse auszugeben. Der Schritt vom PC zum µC ist danach relativ klein. Ab man nun mit Basic oder C anfängt ist Geschmackssache, man kann sich an beides gewöhnen. Man kann auch immer noch mit PASCAL anfangen - das ist nicht so kryptisch wie C, aber etwas geordneter als Basic. Nur am µC ist Pascal eher ein Ausnahme.

Ich habe mit Basic begonnen, am C64, so wie es damals üblich war mit dem Handbuch. Danach Pascal in der Schule und ASM für den 6502. Zwischen durch kam noch etwas Fortran, aber nur soweit um Programme zu verstehen. Später kam C dazu mit einem Buch das eigentlich für den umstieg von C&R C auf ANSI C gedacht war. Nicht unbedingt die beste Lösung, aber relativ kurz, und man musste auch noch etwas selber denken, so das das lesen nicht so langweilig wird.

SlyD
23.08.2011, 20:35
Bei einem µC oder Model-Bot fehlt einem die einfache Möglichkeit Zwischenergebnisse auszugeben.

Das stimmt so natürlich nicht. Man hat ja (meistens) eine serielle Schnittstelle zur Verfügung über die man alles mögliche ausgeben und empfangen kann.
Mehr als ein printf() braucht man für einfache Programme nicht.
Zum Programmieren üben muss der Roboter auch zunächst nicht unbedingt umherfahren - später dann erstmal zum debuggen per langem Kabel an der Leine halten und erst wenn alles klappt ganz freilassen ;)
(oder die Daten per Funk / Infrarot übertragen... )


MfG,
SlyD

PICture
24.08.2011, 00:33
Hallo!

Mein ausprobiertes Vorschlag wäre ein kleines LCD Zeichendisplay (z.B. http://www.pollin.de/shop/dt/NDU0OTc...MC16223SG.html ) der an 2 freie Pins vom µC angeschlossen ist und Werte aus 16 im Programm gewählten Register ständig zeigt (siehe dazu: https://www.roboternetz.de/phpBB2/viewtopic.php?t=13685 ).

Bei z.B. 2,4 V Versorgungsspannung sind noch Spannungsverdoppler mit ICL7660 und zwei 10 µF Elkos notwendig (siehe dazu: https://www.roboternetz.de/community/...p-Tricks/page3 ).

Übrigens, momentan überlege ich Verwendung von s/w Handy-Displays, die schon seriell und mit ca. 2,5 V arbeiten, benötigen aber wegen fehlenden Zeichengenerator mehr Software.

Vitis
24.08.2011, 10:17
Das A und O bei der Programmierung ist vorausgehend die Analyse der Aufgabenstellung, Zerlegung in Einzelschritte und Strukturierung. Es ist da auch keine Schande ein Blatt Papier zu Hilfe zu nehmen (geht eh schneller als diese Mindmap-Programme etc.).
Hat man die Aufgabenstellung verstanden und strukturiert braucht man praktisch nur die Struktur in die jeweilige Programmiersprache übersetzen, welche das ist, ist im Prinzip Wurst. Habe ebenfalls mit C64 Basic 2.0 und Handbuch angefangen ... POKE 53280,0 :)
Heute Bascom, PHP, Java-Script, VB6, Java ...

PICture
02.10.2011, 17:09
Hallo!

Genau ! :D

Ich gebe zu, dass ich ohne Programablaufdiagramm (PAD) ("flow chart") kein effizientes Programm erstellen kann (hoffentlich nicht nur wegen Alterschwäche).

danimath
02.10.2011, 18:06
Ich gebe zu, dass ich ohne Programablaufdiagramm (PAD) kein effizientes Programm erstellen kann (hoffentlich nicht nur wegen Alterschwäche).


Geht mir auch so - selbst im Beruf. Die Sachen, die ich "mal eben so" zusammenstokele, verstehe ich oft nach einem halben Jahr nicht mehr, selbst wenn ich ein paar Kommentare dazuschreibe; aber mit 'nem PAP im Ordner ist das dann viel einfacher. Angefangen zu programmieren habe ich mit FORTRAN (kennt das noch jemand? :) ) C habe ich mir im Job mal reinprügeln müssen, und dabei habe ich viel über Computer gelernt. Deshalb ist meine Empfehlung: so schnell wie möglich in C einsteigen (oder Assembler, wenn man es härter mag :))

viele Grüße
Andreas

PICture
02.10.2011, 18:13
Der PAD ist für mich von Programmiersprachen unabhängig. Früher habe ich oft geplannte zeitaufwendige bei Erstellung ASM Programme für PC's auf die schnelle auf Funktionsfehler mit QBASIC getestet. Am liebsten waren für mich immer Hochsprachen mit implementierten Funktionen in ASM, weil ich beruflich nur Hardware entwickelt habe, ;)

Ausserdem, ausser wenigen Namen von Unterprogrammen, schreibe ich im Quellcode keine Kommentare mehr und trotzdem weiss ich, dank PAD's, soger nach Jahren, was das Programm macht und kann ich es immer nach Wunsch beliebig ändern.

danimath
02.10.2011, 18:48
Ausserdem, ausser wenigen Namen von Unterprogrammen, schreibe ich im Quellcode keine Kommentare mehr und trotzdem weiss ich soger nach Jahren, was das Programm macht und kann ich es immer nach Wunsch beliebig ändern.

Neid! Liegt das am Altersvorsprung? Mal sehen wie es in acht Jahren ist ;)

viele Grüße
Andreas

PICture
02.10.2011, 18:53
Hm, so alt wie jetzt war ich bisher noch nie. Im schlimmsten Fall ("worst case") würde ich meine frühere PAD's sicher nicht mehr richtig interpretieren können. :lol:

Sorry, ich musste mein vorherigen Beitrag editieren, weil ich "dank PAD's" vergessen habe, was deine von mir unbeantwortete Frage hoffentlich beantwortet.

Neutro
02.10.2011, 19:55
Meine ersten Programme habe ich im Rahmen meiner Ausbildung in ASM für den Mikroprozessor 8085 gemacht. Das wart ganz schön hart, schon für einfachste Sachen wie eine Zeitverzögerung war eine mehrfach geschachtelte Schleife von nöten...und alle Daten mussten erst aus dem externen Speicher in den Akku und dan in entsprechende Register geladen und dann wieder abgespeichert werden, da lobe ich mir heute doch den Controller der alles on board hat.
Aber da mich weiterhin mit Mikrocontrollern beschäftigen wollte bin ich dann irgendwann zu den AVR´s und dann hier gelandet.
Bascom sagte mir da sofort zu und nach kurzer Zeit liefen die ersten Programme. Da mein Steckenpferd aber die steuerung von externer Hardware mit dem PC ist, habe ich mich dann auch noch in VB. net eingearbeitet. Das ging zum Glück relativ zügig und ich lerne immer mehr dazu, Fehlschläge und solange rumfummeln bis es geht inklusive :-)

Richard
03.10.2011, 15:58
Der PAD ist für mich von Programmiersprachen unabhängig.

Das ist für die Vorbereitung eines Programms auch nicht nötig, dort reicht http://de.wikipedia.org/w/index.php?title=Datei:Flussdiagramm_(Programmablau fplan).png&filetimestamp=20050601154534 voll aus. Mit welchem Programm(e) das letztendlich realisiert wird entscheidet letztendlich (auch) die vorhandene Hartware b.z.w. dessen Leistungsfähigkeit.

Gruß Richard