PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Anfänger Frage



StephanG90
13.05.2014, 10:57
Hallo,
ich bin neu hier im Forum. Ich bin Stephan, 23 Jahre alt und habe KFZ Mechatroniker gelernt.
Ich habe bei Conrad den RP6 V2 gesehen und ich finde das ganze sehr interessant und habe auch im Internet einige Interessante aufbauten gefunden, allerdings habe ich noch nichts in der Richtung Programmierung gemacht und finde die Codes ziemlich Kompliziert. Jetzt meine Frage: kann man sich das Programmieren selbst beibringen? So das man auch irgendwann mal etwas mit Kompass und solchen Sachen bauen kann?
Danke im voraus.

dussel07
13.05.2014, 11:02
Wenn Du ein absoluter Anfänger bist beschäftige Dich mal mit Bascom. Hier hast Du den Vorteil das die Befehle / das Programm (englisch vorrausgesetzt) einigermassen lesbar sind.
Zum RP6 - der ist sicher auch in Bascom zu programmieren da der Hauptkontroller ein Atmega ist.
Willkommen!

Peter(TOO)
13.05.2014, 11:35
Hallo Stephan,

Klar kann man programmieren selbst beibringen. Da gibt es eine ganze Generation, welche das um 1980 nicht anders lernen konnte.
Ganz ohne Internet und VHS-Kurse, nur mit Büchern und fluchen ;-)

Die Grundlage beim Programmieren ist, dass man Abläufe in kleine Teile zerlegen kann. Dabei muss man aber auch daran denken, das etwas mal nicht stimmt und dafür auch wieder eine Lösung bereit gestellt werden muss.

Eine Möglichkeit der Darstellung ist das Flussdiagramm, welches du von Reparaturanleitungen kennen solltest.
Eigentlich ist dies schon ein Programm!

Die Programmiersprache hat damit noch gar nichts zu tun.

MfG Peter(TOO)

RolfD
13.05.2014, 12:06
Also Grundsätzlich arbeiten heute fast alle moderne, prozedurale Programmiersprachen wie (Visual)Basic und (Visual)C mit ihren Dialekten nach dem gleichen Muster.
Ebenso wie es in VB "Callbyvalue" und "callbyereference" gibt, gibts in C eben Werte und Zeiger. Das tut sich nix.
Abläufe werden auch überall gleich definiert, ob du nun if then else oder switch benutzt ist auch ziemlich egal. Da ist eher wichtig, wie gut man seine Entwicklungsumgebung kennt und was diese leistet.
Es gibt natürlich sprachspezifische Dinge und "Abkürzungen" wie z.B. eine if Abfrage in C durch ? zu kürzen aber das ist reine Gewöhnungssache und hat allermeist kein Einfluss auf den Code selbst.
Auch der Unterschied von C zu C++ ist nur marginal, die ersten Anläufe von C++ wurden rein durch Preprozessoren und einige 100 zusätzliche #defines erledigt. Allerdings wird vom Programmierer in C++ eine etwas andere Denke erwartet als in C, was sich auch in der Sprache letztlich nieder schlägt. Die Art & Weise ( also Kunst & Wissen !!!), ein Programmierproblem anzugehen und zu lösen ist bei allen Sprachen gleich und da helfen eben vor allem so Grundideen wie "Teile & herrsche" oder Ablaufdiagramme a la Nassi Shneider, Topdown-Bottomup usw. usw. usw. Das sind aber Dinge die man lernt in dem man damit umgeht.
Ich sag immer.. "kennst du eine Programmiersprache.. kennst du alle...".
Früher war so ein Tip wie Bascom sicherlich auch mal gut, - zu Zeiten als viele noch mit MSBASIC gearbeitet haben - aber heute würde ich jedem der sich interssiert, direkt C empfehlen.
Schon allein weil heute kein Mensch mehr die Zeit und Muße hat, sich gleich mit mehreren Programmiersprachen auseinander setzen zu wollen. Lieber eine Sprache richtig lernen und von da aus sich weiter entwickeln als erst mühsam irgendwelche Sprachsackgassen auszutesten. Aber man kommt auf dem Atmel Kern auch ohne Zweifel mit Bascom zum Ziel.
Die Frage ist nur... wenn man dann doch mal nicht nur auf dem ATMEGA was bauen will... sondern z.B. eine dazu passende Applikation auf dem PC ..in VC/VB.. wie weit kommt man da mit Bascom?

Davon ab steht bei Dir ja die Entscheidung an, ob du grundsätzlich programmieren lernen willst. Das kann Dir keiner beantworten aber mit dem RP6 als Basis und Anreiz über learning by doing fällt es sicher leichter. Allerdings sollte man seine Erwartungen grade zu Anfang nicht zu hoch schrauben. Wenn ich hier lese, das Anfänger mal eben per WLAN den RP6 fernsteuern wollen aber nicht mal über ein selbstgeschriebenes "Hallo Welt" hinaus kommen... hab ich so manches mal meine Zweifel ob das Geld für den RP6 + WLAN Board nicht besser einfach in 5 bis 10 Kästen gutes Bier für die nächste Party und ein ordentlichen Brummschädel umgesetzt worden wäre.

Als Programmierer ist man geduldiger Überzeugungstäter mit Neigung und Talent für mathematisch/logische Zusamenhänge und hat im allgemeinen keine Motivationsprobleme wenn es um Bits und Bytes geht. Empfindet man nicht so, oder sieht sein Aufgabengebiet nur in blinkenden LEDs, wird man das früher oder später eh sein lassen. Ob man diese Eigenschaften hat, findet man aber nur raus indem man es probiert... step by step - wie im Debugger :).
Gruß


nur mit Büchern und fluchen
das triffts.. jop

inka
13.05.2014, 16:45
hallo Stephan,

ich habe seit ca. 4 jahren den RP6, vorher hatte ich den asuro...

Den asuro fand ich für meine damaligen kenntnisse: bischen elektronik, noch weniger programmieren (hatte mal in den 80ern den Sinclair ZX81 - vielleicht kennt das hier einer noch?) völlig ausreichend, war dann 2010 mit dem RP6 schon ein wenig an meine grenzen gestoßen. Komme wie Du aus der "mechanischen" ecke, konnte mich dann auch bzw. hauptsächlich mit lesen im forum, probieren von codeschnipseln - und fluchen, weil nix ging - und dann im forum fragen stellen ein wenig reinfinden :-)

Den umstieg auf den RP6 würde ich auch heute noch damit begründen, dass der asuro ziemlich empfindlich auf ungeschickte lötversuche reagierte und nachdem ich den zweiten geschrottet habe wollte etwas, wo man auch mal eine experimentierplatine dranhängen kann und nicht ständig an der hauptplatine rumlöten muss. Und das habe mit dem RP6 definitiv gefunden...

Es kommt halt drauf an was Du willst. Übrigens - ich habe jetzt am RP6 eine erweiterungsplatine mit einem kompas, nach 4 jahren RP6 mache ich die ersten gehversuche. Du solltest also außer der begeisterung fürs programmieren schon auch ein bischen geduld und zeit mitbringen bis die realisierung Deiner träume wahr wird...

Sisor
13.05.2014, 20:38
Ich würde jedem Programmieranfänger raten sich mal die Sprache C anzuschauen. Die Sprache gibt es schon seit 1970, ist immer noch sehr verbreitet und viele gängige Programmiersprachen wie C++, C#, Objective-C, Java, Arduino sind im Prinzip Erweiterungen dieser Sprache. Wenn du C programmieren kannst, hast du also ein gesundes Basiswissen für andere Programmiersprachen. Arduino-Mikrokontroller z.B. benuzten eine Programmiersprache, die sehr an C angelehnt ist. Es gibt zu C SEHR viele Tutorials im Netz. Such am besten mal nach 'Hello World'.
Wenn du ein Windows Betriebssystem benutzt, kannst du von Microsoft kostenlos Microsoft Visual Studio Express bekommen, womit du die Programme schreiben, kompilieren und testen kannst.
Buchempfehlung: 'C Programmieren von Anfang an' von Helmut Erlenkötter im rororo-Verlag.

P.S: Ich hab mir das Programmieren vor 20 Jahren am C64 selbst beigebracht. Nur mit dem Handbuch. Und einer großen Portion Neugier.

StephanG90
14.05.2014, 08:00
Erst mal danke für eure Antworten.
Programmieren würde ich auf jeden fall schon gerne mal Lernen und ich finde den RP6 mit seinen Funktionen und Erweiterungen sehr Interessant. Meine Erwartungen für den Anfang sind sowieso noch nicht so hoch da ich damit noch nie was zu tun hatte, aber ich denke mal das kommt dann nach und nach von und Geduld habe ich ;).