Die andere Art, microcontroller zu programmieren !

  • Es gibt eine Software mit Namen Flowcode , die es ermöglicht, einen microcontroller ( PICmicro, AVR ) über eine reine Grafik zu programmieren, indem man ein Flußdiagramm zusammenklickt.


    Ideal also für Leute, die KEINE oder wenig Programmier-Kentnisse haben. Hat jemand aus dem Forum bereits Erfahrung mit dieser Art der Programmierung ??


    73, Werner, DH3RW


    .

    Einmal editiert, zuletzt von DH3RW ()

  • Hallo Werner,


    ich habe mir die Seite mal angesehen. Kenntnisse mit dieser SW habe ich nicht aber ich glaube nicht, daß diese SW unbedingt die Controllerprogrammierung erleichtert. Meiner Meinung nach besteht die Schwierigkeit beim Programmieren in erster Linie nicht im Werkzeug welches man benutzt.
    Wie man mit Variablen arbeitet, wie und wo man Schleifen setzt, unter welchen Bedingungen man verzweigt,..... Das macht Programmierung aus. Ob nun BASIC, C, Assembler oder Flowcode. Das sind nur die Werkzeuge um diese Routinen umzusetzen. Das das mit Flowcode eventuell schneller geht als mit anderen Compilern kann sein würde ich aber bezweifeln. Gerade bei umfangreicheren Anwendungen könnte Flowcode unübersichtlich werden. Aber das ist reine Geschmacksache.
    Ich sehe das vereinfacht immer so: Wer noch nie einen Nagel in die Wand gehauen hat wird es auch nicht gleich können wenn man ihm einen hochqualitativen Nagel und Hammer in die Hand gibt. Erst mal muß man lernen wie man einen Nagel hält und wie man draufhaut. Wer das kann, der haut den Nagel auch mit der Beißzange rein :D.


    Gruß
    Holger

  • Hallo Holger,


    Danke für Deine Meinung. Ich möchte hier keine Diskussion losbrechen wie man arbeiten sollte, gebe Dir aber recht, dass man bei "umfangreichen Anwendungen" nicht darum herumkommt, z.Bsp. in C zu programmieren. ( Flowcode übersetzt das Flußdiagramm in C )


    Aber nachdem wir ja hier im Hobby-Bereich sind, könnte das Programm durchaus als Einstiegs-Droge Sinn machen, da es offensichtlich zu schnelleren Erfolgen führt ..... und dann vielleicht Lust auf mehr macht. ( C, Basic, Assembler ? )

    73, Werner, DH3RW


    .

  • Hallo Reiner,


    sicher, aber ich glaube, daß man als Anfänger mehr davon hätte mit z.B. BASIC einzusteigen. Aber wie gesagt, daß liegt am Empfinden jedes einzelnen.


    Gruß
    Holger

    Einmal editiert, zuletzt von DL5UP ()

  • Hallo Werner,
    mir wäre das für einen Einstieg einfach zu teuer. Mir ist nicht so ganz klar, ob man andere Einheiten problemlos anbinden kann.
    Ich habe mir einfach bei Pollin ein paar Boards bestellt, die waren günstig.
    Ein AVR-Basic gibt es frei im Netz, einen C-Compiler auch und Assembler auch. Wenn du klein anfängst, dann kommst du so mit 30..50 EUR aus und hast dann ein Entwicklungsboard mit Display und diveresen Ports. Für 1,80 EUR gibt es dann noch ein Thermometerelement. Du hast dann den Vorteil, dass du ein wenig über Mikrocontroller lernst. Flußdiagramme kannst du dir auch erstellen und die dann in Programmcode umsetzen. Wenn du dann feststellst, "das ist nichts für mich", ist der Verlust nicht ganz so groß im Vergleich zu deiner Variante. Außerdem findest du im Net jede Menge Beispiele und Lösungen für fast alle Probleme.

    vy73 Jürgen

  • Hallo,


    für einfache Aufgaben und schnelle Ergebnisse sind die PicAXE immer eine Beachtung wert. Da ist auch flowcode zu finden- würde ich aber weniger empfehlen....


    Gruß


    Manfred

  • ich glaube, die billigste und schnellste Art, um mit ATMEGAs ein Erfolgserlebnis zu haben, erreicht man mit einem Parallelbrenner (für alte Rechner), BASCOM (freeware), und Software Ponyprog.


    73 de Gerd

  • Hallo,


    kann für den Einstieg auch BAscom sehr empfehlen. Ich verwende den simplen seriellen Brenner (war mal in einer FA-Einstiegsserie mit vorgestellt, Verfasser-synonym war wohl "rowalt"),
    Bascom enthält die Brennersoftware gleich mit, sogar ein Simulator ist drin, mit dem man ein Programm völlig ohne Hardware (mit gewissen Einschränkungen, z.B. keine Echtzeit) Schritt für Schritt oder auch in Blöcken abarbeiten kann und sieht dazu die Inhalte von Register, Speicher, I/O usw auf dem Bildschirm. Schön, wenn man mal irgendwo hängt.
    73 Reiner

  • Besten Dank für die wertvollen Anregungen. Es scheint also sinnvoll zu sein, mit BASCOM anzufangen.


    Einen kleinen BASCOM-AVR-Kurs findet man hier:
    Beispielprogramme mit BASCOM gibt es u.a. hier:


    73, Werner, DH3RW


    .

  • BASCOM ist für kleinere Projekte sicherlich nicht verkehrt. Bei komplexen oder zeitkritischen Programmen stößt es meiner Meinung nach aber auch schnell an seine Grenzen. Da man sich im Anfang erst einmal auch in BASCOM einarbeiten muss, sollte man sich vielleicht überlegen, die Zeit gleich in Assembler oder C zu investieren. Ich kann für den Einstieg die folgenden beiden Tutorials empfehlen:


    Assembler
    http://www.mikrocontroller.net/articles/AVR-Tutorial


    C
    http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial



    Im Forum der Seite bekommt man in der Regel auch sinnvolle Antworten auf seine Fragen (natürlich auch zu BASCOM).



    Mit diesem Beitrag möchte ich BASCOM übrigens nicht schlecht reden, sondern nur auf mögliche Alternativen hinweisen. ;)



    vy 72/73 de Stefan, DJ2SEA

    Stefan, DJ2SEA / AB1RE - JO30BU - DARC OV G01 Aachen

  • Hallo zusammen
    eine gute Möglichkeit für den Einstieg sind auch Arduino Board's (www.arduino.cc) in den
    verschiedenen Varianten. Vor allem ist kein Programmiergerät nötig. Ein USB-Kabel genügt. Die Entwicklungsumgebung gibt es für MAC, Linux und Windows kostenlos.
    Die Boards sind z. B. bei Sander Elektronic oder bei Sparkfun erhältlich. Dazu gibt es alles was das Herz begehrt an Sensoren und Zubehör.
    Die Scriptsprache von Arduino basiert auf dem GNU C-Compiler. Es existieren auch Library's für alle möglichen und vorallem unmöglichen Anwendungen. Und wer sich ernsthaft mit der Programmierung befassen will kommt um C und C++ nicht herum.
    Das ganze ist alles andere als ein Spielzeug. Wir brauchen die Dinger z. B. als Messknoten bei der Entwicklung von Gleitschirmen.


    73 HB9DKW Robert

    Der Strom hat immer recht!!!!!

    Einmal editiert, zuletzt von HB9DKW ()

  • Zitat

    Original von HB9DKW
    Hallo zusammen
    eine gute Möglichkeit für den Einstieg sind auch Arduino Board's (www.arduino.cc) in den
    verschiedenen Varianten.
    73 HB9DKW Robert


    Es gibt sicherlich eine ganze Reihe Boards, die sich für den Einstieg gut eignen. Dazu gehören das ausgereifte Arduino genauso wie die weiter oben erwähnten Boards von Pollin (sehr gutes Preis/Leistungsverhältnis).


    Ich habe vor ein paar Jahren mit einem [URL=http://shop.myavr.de/Systemboards/myAVR%20Board%20MK1%20LPT,%20best%C3%BCckt.htm?sp=article.sp.php&artID=4]myAVR[/URL] Bausatz begonnen. Das Board gibt es mittlerweile auch fertig bestückt für knapp € 25,-. Mit dabei sind alle für die ersten Schritte notwendigen Komponenten wie ATmega8, ein paar LEDs, Taster, Summer, Potis, etc.


    Die Programmierung erfolgt über die parallele Schnittstelle. Zur Programmierung braucht man nicht unbedingt die myAVR Software, sondern kann problemlos auch freie Software wie YAAP oder avrdude verwenden. Zur Programmentwicklung eignet sich beispielsweise die kostenlose Software AVR Studio von Atmel, die auch einen Simulator beinhaltet.


    Wenn man die Grenzen des Boards erreicht hat, lässt es sich sehr leicht durch eigene Schaltungen oder fertige Komponenten (LC-Display etc.) erweitern.


    vy 72/73 de Stefan, DJ2SEA

    Stefan, DJ2SEA / AB1RE - JO30BU - DARC OV G01 Aachen

  • Hallo,


    noch eine kleine Meinung von mir: Evulationsboard oder incircuit-Programmierung, welches Programmiergerät usw. sind im Prinzip nicht das wichtigste. Wenn ich einsteige, will ich ja oft nur kleinere Geräte für den Hausgebrauch unter Hobbybedingungen bauen, seltener auf diesem Weg professionellen Programmieren etwas vormachen ;) Es ist schon eine Menge Arbeit, sich in den AVR einzuarbeiten, und ich würde das nehmen, wo Vorkenntnisse vorhanden sind. Die meisten haben mal irgendwann in Basic reingerochen, also fällt das leichter. Dasselbe in Assembler zu programmieren, ist für den Anfänger ein gewaltiger Knochen. Für C habe ich auch noch keinen brauchbaren Einstieg gefunden als Nichtinformatiker. In Bascom bin ich schnell reingekommen, da es kein völliges Neuland war, und der compilierte Code hat auch nichts mit der langatmigen Programmabarbeitung der althergebrachten Basicinterpreter gemeinsam. Programmbeispiele für kleine, verständliche, hobbynahe Anwendungen gibt es ohne ende.
    Also, am besten das verwenden, womit man vielleicht schon früher etwas programmiert hat und wo es auch Foren gibt, wo man mal nachlesen/nachfragen kann. Das ganze ist kein Wochenendprojekt ;)
    73 Reiner

    2 Mal editiert, zuletzt von DL8LRZ ()

  • Hallo,


    Ich kann Reiner, DL8RZ voll zustimmen. Das Geld für ein Programmierboard kann man sich schenken, obwohl es natürlich für die allerersten Schritte nützlich sein kann. Aber meist hat man irgend ein Projekt vor Augen.


    Also:
    1. Datenblatt des Prozessors lesen und die Möglichkeiten des Chips verstehen . Ja das können auch mal 150 Seiten sein und die Notwendigkeit des Lesens ist unabhängig von der späteren Programmiersprache.

    2. Grobkonzept der Hard/Software Kombination entwerfen.


    2. Hardware für das Projekt entwerfen. Der Prozessor ist dabei meist nur einer von vielen anderen Chips.


    3. Programmieren.
    Ob das nun BASIC, C oder Assembler ist spielt eigentlich keine grosse Rolle. Auch C, das von vielen als so kompliziert angesehen wird, ist leicht zu erlernen.
    Kompliziert wird C nur von den "smart asses" gemacht, die meinen, dass alles, was in anderen Sprachen verpönt ist, in eine C Zeile hinein packen zu müssen, sodass die Zeile eigentlich kaum mehr lesbar ist.
    In der Welt der uC wird C sehr einfach, da die komplizierteren Funktionen wie printf, scanf, malloc und Konsorten eigentlich nicht verwendbar sind, da die Controller meist nicht genug RAM dafür haben.
    Bibliotheken für serielle Kommunikation, LCD handling, Drehgeber, Tasterabfrage etc. sind auf dem Netz frei erhältlich und brauchen eigentlich nur noch mit ein "bisschen" Code zusammengebunden zu werden.


    Aber nochmals Zustimmung zu DL8RZ: "Das ganze ist kein Wochenendprojekt",
    macht aber viel Spass.


    Gruss
    Reiner

  • Hallo Reiner, hallo Reiner,


    Zitat

    Original von DK2IW
    Ich kann Reiner, DL8RZ voll zustimmen. Das Geld für ein Programmierboard kann man sich schenken, obwohl es natürlich für die allerersten Schritte nützlich sein kann.


    gerade bei den ersten Gehversuchen mit einem AVR halte ich die Verwendung eines Eval-Boards für ausgesprochen sinnvoll. Auf der Strecke zwischen kompiliertem Hex-File und dem Speicher des Mikrocontrollers kann derart viel schief gehen, dass man versuchen sollte, die Anzahl potentieller Fehlerquellen so gering wie möglich zu halten. Gerade die Fehlersuche, warum sich eine Datei nicht auf den µC übertragen lässt, stellt den Newcomer häufig vor eine unüberwindbare Herausforderung.


    Zitat


    Also:
    1. Datenblatt des Prozessors lesen und die Möglichkeiten des Chips verstehen . Ja das können auch mal 150 Seiten sein und die Notwendigkeit des Lesens ist unabhängig von der späteren Programmiersprache.


    Das sehe ich genau wie Du. Selbst wenn man später einmal in einer Hochsprache programmieren will, sollte man immer zunächst einmal verstehen, was "im Keller passiert". Die Datenblätter sind sehr gut aufbereitet und enthalten für alle Funktionen des µC wertvolle Hinweise und Beispiele in Assembler und C, die sich direkt in eigene Programme übernehmen lassen. Beispiele in BASIC gibt es übrigens nicht. Wer in BASCOM programmiert, muss sich seinen Quellcode selber aus den Informationen erarbeiten, oder aus dem Assembler bzw. C Beispiel ableiten.



    Zitat


    3. Programmieren.
    Ob das nun BASIC, C oder Assembler ist spielt eigentlich keine grosse Rolle. Auch C, das von vielen als so kompliziert angesehen wird, ist leicht zu erlernen.


    Stimmt. Wer sich das Tutorial einmal angesehen hat, wird feststellen, dass in C auch nur mit Wasser gekocht wird.


    Zitat

    Original von DL8LRZ
    Die meisten haben mal irgendwann in Basic reingerochen, also fällt das leichter.


    Bei diesem Satz musste ich etwas schmunzeln, da er sehr schön zum Ausdruck bringt, dass die meisten hier wohl Ihre ersten Programmiererfahrungen in den Zeiten der Heimcomputer-Ära mit Commodore C-64, VC-20, Sinclair ZX-81, Spectrum, Schneider, usw. gesammelt haben. Wenn man sich heute einmal bei Schülern und Studenten umhört, spielt BASIC in der Regel keine nennenswerte Rolle mehr.


    vy 72/73 de Stefan, DJ2SEA

    Stefan, DJ2SEA / AB1RE - JO30BU - DARC OV G01 Aachen