Icon: Tutorial 24: Hardware-Basteleien, Vervollständigen der GPIO-Kommandozentrale

  • Hallo Linux-Freaks, Forenbewohner und Himbeerfreunde,


    hier kommt der 24. Teil meines Icon-Tutorials.


    Diejenigen Interessierten, die schon länger Mitglieder im Forum sind, warten sicherlich schon seit dem 4. Oktober 2014 auf diesen Teil.


    Diejenigen, die erst danach zu diesem Forum gestoßen sind, werden überrascht sein, dass es offensichtlich schon 23 Teile gegeben haben muss.


    Ich war in den letzten Monaten beruflich extremst angespannt. In einem Beratungsprojekt mit 1200 Beratern war ich standortübergreifend für die Computersystem-Validierung (CSV) zuständig. In meinem Hauptstandort habe ich eine eigene Abteilung geleitet, zusammen mit 4 Kollegen die CSV-Aktivitäten innerhalb Europas koordiniert und zusammen mit 12 Kollegen das Ganze auf globaler Ebene.


    Das gesamte Projekt war zum Schluss nur noch mit mehr als 70 Arbeitsstunden pro Woche zu erledigen. Was meine Abteilung und die von mir betreuten Standorte betraf, haben wir alles fristgerecht abgeschlossen.


    Meine regelmäßigen Icon-Tutorials, die im Abstand von 1 bis 2 Wochen herauskamen, konnten in der Zeit nicht fortgesetzt werden. Leider!


    Jetzt habe ich wieder etwas mehr Zeit und werde dort weitermachen, wo ich vor rund drei Monaten aufgehört habe.


    Wer die Icon-Tutorials regelmäßig verfolgt hat, wird sich daran erinnern, dass wir uns so allmählich an die Entwicklung graphischer Benutzeroberflächen herangewagt haben. Die Übungsaufgabe von Teil 23 bestand darin, die graphische Benutzeroberfläche eines GPIO-Kontrollzentrums zu entwerfen. Hierfür sollte das Programm VIB genutzt werden, das sinnigerweise Quellcode in der Programmiersprache Icon erzeugt.


    Ihr erinnert Euch? Wer diese Übungsaufgabe mitgemacht hat, hat jetzt zwar einen Quellcode eines Programmgerüstes - aber was geschieht jetzt damit? Genau hier setzt dieses Tutorial an.


    Ich zeige, wie
    - eine graphische Benutzeroberfläche zu einer vollfunktionsfähigen Anwendung vervollständigt wird. Dabei erläutere ich jede einzelne Callback-Funktion, warum sie so aussieht, wie sie jetzt aussehen soll - und was dadurch bewirkt wird.


    Da es auch um das Thema GPIO geht, zeige ich außerdem,
    - wie Steckbretter funktionieren,
    - wie gelötet wird,
    - wie Jumperkabel hergestellt werden,
    - wie GPIO-Kabel hergestellt werden,
    - wie eigene GPIO-Boards (Break-Out-Boards) hergestellt werden,
    - wie letztlich die Schaltung aufgebaut wird, mit der das GPIO-Kontrollzentrum seine Leistungsfähigkeit demonstrieren kann


    Alles weitere wie immer im angehängten PDF. Wie auch beim letzten Tutorial musste ich auch dieses Tutorial in mehrere Teile aufspalten, um sie hier hochladen zu können:
    - Icon_Teil24_Part1.pdf: Abgeschlossen
    - Icon_Teil24_Part1.pdf: Abgeschlossen
    - Icon_Teil24_Part1.pdf: Ein paar Abbildungen werden noch eingebaut.


    Viel Spaß beim Lesen und Mitmachen!



    Einen kleinen Ausblick auf die kommenden fünf Teile.


    #25: Ereignisbehandlung bei Anwendungen mit mehr als einem Fenster & Individuelle Dialoge mit VIB erstellen


    #26 - 29: Mastermind
    Vor etwas über einem Jahr schlenderte ich durch die Spieleabteilung eines Supermarktes. Dabei fiel mir Mastermind ein, was ich in meiner Jugendzeit hin und wieder mal gern gespielt habe. Mir kam so der Gedanke, dass etwas wie Mastermind eine gute Idee sein könnte, an einem abschließenden Projekt den gesamten Ablauf einer Software-Entwicklung zu zeigen. Das Programm war an einem Abend programmiert - und wird die kommenden vier Tutorial-Teile füllen.
    #26: Mastermind: Entwurf
    #27: Mastermind: GUI-Layout & Ereignisbehandlung
    #28: Mastermind: Auswertelogik
    #29: Mastermind: Der Quellcode


    Damit endet dann diese Tutorial-Reihe im eigentlichen Sinn. Alle Befehle, Konstrukte und Besonderheiten wurden vorgestellt und in zahlreichen Programm-Beispielen vertieft. In zahlreichen mehr oder weniger sinnigen Übungsaufgaben konnte sich jeder Interessierte beliebig tief mit der Programmiersprache Icon beschäftigen.


    Da ich seit Mai 2013 nicht nur am Icon-Tutorial gearbeitet habe, sondern einige interessante Anwendungen programmiert habe und mich zwischenzeitlich einige interessante Dinge beschäftigt haben, gibt es eine ganze Reihe an weiteren Ideen zu Icon und was man damit alles anstellen kann:


    #30-32: Von Icon auf C-/C++-/Prolog-Bibliotheken zugreifen: Tüfteln :denker:


    #33: Sprachsynthese / Sprachsteuerung auf dem RPi in Icon: Funktioniert


    #34 GUI-Gestaltung mit Event-Multiplexor (EVMUX) inkl. Programmierung der Ereignisbehandlung: Funktioniert - erste Ergebnisse sind in #35 und #36 enthalten.


    #35+36: Programm zur Symboldarstellung (Bilevel, Farbpaletten)
    Die Idee zu dieser Anwendung entstand nach Abschluss eines Icon-Tutorials, in dem diese Themen angeschnitten wurden. Mit diesen beiden Anwendungen können GUI-Symbole erzeugt werden - und peppen jedes Programm auf!


    #37: Pseudo-Code-Compiler: Funktioniert - kann aber noch verfeinert werden


    #38: DiaShower: Funktioniert inkl. Graphik-Konverter


    #39: AD-Wandler: Grundlagen für eine Hardware-Entwicklung


    Dann gab es da noch so einen merkwürdigen :thumbs1: Thread, in dem ich auch zwei spontan erstellte Icon-Programme eingestreut habe. Es ging da um die Ermittlung der CPU-Usage und des freien RAM. Mein Programm hat die CPU weniger belastet als Systemprogramme wie das Linux-Kommando "top". Vielleicht gelangt dieses Wissen in ein weiteres Tutorial Teil, in dem es um "ressourcenschonende Programmierung auf Systemebene" gehen könnte. :s


    Was mir auch schon länger vorschwebt, ist ein Tutorial zur Pipe-Programmierung. Ich nutze innerhalb der Icon-Programmierung recht häufig Pipes - erscheint mir die Laufzeit aber irgendwie ungewöhnlich lange oder bemerke ich eine deutliche Systemauslastung, dann programmiere ich die Pipe in klassischer Weise und systemschonend.



    Beste Grüße


    Andreas


    [hr]
    06.01.2015: Die Dateien habe ich überarbeitet und mit akuellen Abbildungen ergänzt. Die Dateien xxxRev2.pdf sind die aktuellen Versionen.
    07.06.2015: Link auf die aktuellste Version der GPIO-Library
    [hr]

    Files

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    • Icon-Tutorials (IDE: Geany) - GPIO-Library - µController-Programmierung in Icon! - ser. Devices - kein Support per PM / Konversation

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Edited once, last by Andreas ().

  • Hallo zusammen,


    die Dateien in #1 habe ich überarbeitet:
    - eine Seite ist komplett untergegangen - war für den Zusammenhang und das Verständnis sicherlich nicht vorteilhaft :blush:
    - einige Abbildungen hatten ja noch gefehlt
    - einige Dinge ließen sich mangels Platinen nicht so realisieren wie ursprünglich angedacht
    - die jetzt eingeschlagenen Wege führen aber auch zum Ziel! :cool:


    Aus diesem Grund liegen die aktuellen Dateien jetzt in Revision 2 vor und sind in #1 angehängt.


    Somit ist dieses Tutorial abgeschlossen.


    Für Rückfragen stehe ich gern zur Verfügung - denn dieses Tutorial und das von Teil 23 haben zusammen über 80 Seiten Inhalt. Ich kann mir vorstellen, das so Mancher, der die Sachen nachvollziehen will, so einige Hürden zu erklimmen haben könnte.


    Beste Grüße


    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    • Icon-Tutorials (IDE: Geany) - GPIO-Library - µController-Programmierung in Icon! - ser. Devices - kein Support per PM / Konversation

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Edited once, last by Andreas ().

  • Hallo Andreas,


    da hast Du aber gute Arbeit geleistet...
    Den Teil 24 habe ich regelrecht "verschlungen".


    Wo finde ich denn die anderen 23 Teile ?

  • Hallo DerChefkoch,



    Hallo Andreas,


    da hast Du aber gute Arbeit geleistet...


    :blush::blush::danke_ATDE:



    Den Teil 24 habe ich regelrecht "verschlungen".


    Wo finde ich denn die anderen 23 Teile ?


    Ja, das Icon-Tutorial Teil 24 hat schon was. Hat sich im Nachhinein als Türöffner zu richtig gut bezahlten Aufträgen entwickelt.


    Welche anderen 23 Teile von den anderen 30 Teilen meinst Du ;) ?


    Na, ob ich Dir das verraten will... :no_sad:



    Beantworte mir ersteinmal eine Frage: Bist Du DerChefkoch vom Apparatspott? Die drei Teile davon habe ich auch verschlungen.


    :s :daumendreh2:
    OK ... Ich will mal nicht so sein. ;)



    Nutze mal die Suchfunktion dieses Forums und suche nach

    Code
    1. Icon Tutorial Teil 1


    Im ersten Teil ist ein Link auf alle anderen bislang 31 (von 50) veröffentlichen Icon-Tutorials, der nach und nach in die anderen Icon-Tutorial-Teile aufgenomen werden wird. Das erleichtert das Finden der anderen Teile ungemein.


    Viel Spaß beim Lesen, Nachmachen und Mitmachen. Icon ist schon eine recht beeindruckende Programmiersprache!


    Beste Grüße


    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    • Icon-Tutorials (IDE: Geany) - GPIO-Library - µController-Programmierung in Icon! - ser. Devices - kein Support per PM / Konversation

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Edited once, last by Andreas ().