Claus: Das ist ein Punkt, der mir an einigen Stellen bei MicroPython-Beschreibungen gefehlt hat.
Claus: Deshalb ist das aufgenommen. Ich halte das für wichtig, vor allen Dingen,
Claus: wenn man die ersten Grundlagen verinnerlicht hat, dann will man natürlich solche Features nutzen, weil,
Claus: die sind einfach zu implementieren und bieten ungeheuer viel,
Claus: gerade bei solchen nebenläufigen Prozessen, dass nicht ein Prozess den anderen
Claus: blockiert und man sich wundert, dass hier sich nichts weiter dreht.
Ali: Klüger als gestern mit Rheinwerk. Hallo und herzlich willkommen zu Klüger als
Ali: gestern, einem Podcast des Rheinwerk Verlags.
Ali: Mein Name ist Ali Hackalife und heute sprechen wir über MicroPython,
Ali: ein Buch erschienen von Claus Kühnel über die Programmiersprache und über MicroPython
Ali: als Konzept. Das Ganze ist erschienen als MicroPython, das Handbuch für Maker und IoT-Development.
Ali: Und heute ist er mir zugeschaltet. Hallo Claus.
Claus: Hallo Ali.
Ali: Bevor man so ein Buch schreibt, wirst du vermutlich auch viel Zeit als Hobbyist
Ali: mit Mikrocontrollern verbracht haben?
Claus: Ja, aber nicht nur als Hobbyist. Mikrocontroller haben mich eigentlich fast
Claus: mein ganzes Berufsleben begleitet.
Claus: Das ging los mit dem legendären Z80 und hat sich dann weiter fortgesetzt über,
Claus: Mikrocontroller von Atmel.
Claus: Das ist ein ganz wesentlicher Punkt gewesen, diese AVR-Mikrocontroller,
Claus: die heute immer noch die Basis sind für die Arduino-Familie.
Claus: Anfangs habe ich dann in Basic programmiert. Es gab da einen interessanten Basic-Compiler.
Claus: Später kam dann C hinzu, C-Programmierumgebung. Damit habe ich sehr viel gemacht.
Claus: Auch beruflich habe ich damit gearbeitet.
Claus: Wir haben in meinem Job Mikrocontroller eingesetzt zur Steuerung von Laborautomaten.
Claus: Das heißt also, im Wesentlichen sind das Dinge gewesen, die in einem Laborautomaten
Claus: Bewegungen gesteuert haben, Sensorik ausgelesen haben etc.
Claus: Und bei dieser Arbeit, die sehr stark interdisziplinär geprägt war,
Claus: bin ich mit Biologen zusammengekommen, mit Chemikern, die praktisch den Prozesshintergrund
Claus: für das Ganze geliefert haben und natürlich mit Ingenieuren, Softwareentwicklern,
Claus: Hardwareentwicklern, die das Ganze dann in Mechatroniksysteme umgesetzt haben.
Ali: Das kommt mir sehr vertraut vor. Ich habe genau das auch schon mal gemacht für
Ali: eine Frau, die ihre Bio-Doktorarbeit entwickelt hat. Sie hat ein Experiment
Ali: gehabt und ich habe dann bei der Programmierung geholfen, dass entsprechend
Ali: ein Konditionierungsversuch gemacht werden konnte.
Ali: Das ist mir ein sehr vertrauter Bereich, dass jemand eine Idee hat,
Ali: aber nicht das Technik-Know-how und dann die Frage an die Techniker,
Ali: Macher, Bastler, Elektroingenieure kommt, wie setze ich das jetzt um?
Claus: Richtig, genau das ist eigentlich der Punkt.
Claus: Ich bin also mit einer breiten Wissensbasis dort konfrontiert worden.
Claus: Wir haben manchmal Prototypen von Biologen oder Biochemikern gesehen,
Claus: wo wir gesagt haben, ja, über die Umsetzung haben wir ehrlich gesagt manchmal geschmunzelt.
Claus: Aber die Idee war gut und wir haben dann in der Regel diese ganze Idee industrialisiert.
Claus: Das wäre aber uns ohne dieses biologische Hintergrundwissen nie möglich gewesen.
Claus: Also das heißt, für mich war wichtig, diese breite Basis.
Claus: Und damit schließt sich eigentlich ein Stück zu dem, was mich beruflich immer
Claus: wieder begleitet hat, das ist diese Maker-Szene.
Claus: Aus diesem anfänglichen manchmal Schmunzeln ist eigentlich eher eine gewisse
Claus: Bewunderung entstanden,
Claus: dass man sich mit nicht immer den geeigneten Mitteln an eine solche Sache herangetraut
Claus: hat, die dann vorangetrieben hat und dann mithilfe anderer.
Claus: Wie es in der Community üblich ist, mithilfe anderer in wirklich ernstzunehmende
Claus: Produkte umgesetzt hat.
Claus: Diese Breite, also diese Maker-Bewegung in dem Sinne, die hat mich eigentlich
Claus: die ganze Zeit begleitet.
Claus: Und das ist auch ein Stück, was für dieses MicroPython-Buch den Hintergrund geliefert hat.
Claus: Die C-Programmierung, die natürlich heute immer noch für die Mikrocontroller
Claus: oder überhaupt für industrielle Anwendungen im Vordergrund steht,
Claus: weitgehend im Vordergrund steht,
Claus: immer noch ziemlich unangefochten, wird ergänzt durch MicroPython beispielsweise.
Claus: Was schon stellenweise in der Ausbildung gelehrt wird.
Claus: Und meine Enkeltochter studiert Biologie an der Universität Zürich.
Claus: Die hatte eine Python-Vorlesung.
Claus: Also das heißt, selbst elektronikferne Leute lernen heute Programmieren in einer
Claus: Hochsprache. Und das ist eben heute in der Regel Python.
Claus: Die ist am verbreitetsten, setzt auf einer riesigen Menge von Bibliotheken auf.
Claus: Und das ist mit MicroPython zugänglich gemacht worden, eben auch für Mikrocontroller.
Claus: Und das hat mich gereizt, diese Mikrocontroller-Ebene in dem eben gezeigten
Claus: Kontext so zu verbreitern, dass auch andere Nicht-Elektroniker, Nicht-Softwerker,
Claus: mit diesen Controllern arbeiten können und ihre Ideen umsetzen können.
Ali: Das, was du vorhin erwähnt hast mit der Community, das ist ja bei MicroPython schon in der Grund-DNA.
Ali: Das ist aus einer Kickstarter-Kampagne heraus entstanden, weil Leute gesehen
Ali: haben, es gibt da diesen Bedarf.
Ali: Und auch das, was du sagst, ich habe MicroPython kennengelernt als Hobbybastler.
Ali: Ich war genau in dem Alter, als man als Teenager mit Elektronik rumfrickelt
Ali: und ich war, als es Kickstarter war, gerade 14.
Ali: Dementsprechend hat mich das eigentlich immer begleitet, wenn ich an IoT gedacht
Ali: habe und an so Breadboard- und Microcontroller-Programmierung.
Ali: Aber dann zu sehen, wie aus die Maker-Szene und Hobby-Bastler hin zu jetzt echten
Ali: Industrieanwendungen, wie sich das so nach und nach daraus professionalisiert hat
Ali: und jetzt eben die Schnittstelle ist aus einer sehr zugänglichen Programmiersprache
Ali: mit einer Syntax, die Python weitestgehend ähnlich ist und eben
Ali: der Community, die für quasi alles mittlerweile Libraries gebaut hat.
Ali: Das ist schon wirklich sehr besonders und das macht diese Sprache auch aus.
Claus: Beziehungsweise ich habe dann mehr mit CircuitPython gemacht.
Ali: Das ist ja eine auf MicroPython basierende Erweiterung der Sprache,
Ali: die sich konkret auf den ganzen Kosmos der Adafruit-Controller konzentriert.
Ali: Aber wir können vielleicht mal größer einsteigen und sagen, was sind denn Mikrocontroller?
Claus: Ja, Mikrocontroller sind kleine Chips, die einen Rechnerkern tragen und dieser
Claus: Rechnerkern wird ergänzt durch heute recht umfangreiche Peripherie.
Claus: Das heißt, ich habe digitale und analoge Ein-/Ausgänge, sodass ich direkt in einen,
Claus: Prozess hinein lauschen oder steuern kann.
Claus: Ich habe umfangreiche Timer, um zeitbasierte Anwendungen zu bringen.
Claus: Ich habe ein Interrupt-System, um auf Echtzeitereignisse reagieren zu können.
Claus: Ich habe Speicher, den Programmspeicher und RAM, also Speicher für Variablen
Claus: etc., direkt auf dem Chip.
Claus: Und sodass ich eigentlich sagen kann, ich habe einen kompletten Computer mit
Claus: peripheren Einrichtungen auf einem Chip.
Claus: Das unterscheidet einen Mikrocontroller von einem Mikroprozessor,
Claus: der nur den Kern eigentlich beinhaltet und das andere durch zusätzliche Schaltungsteile ergänzen muss.
Claus: Und bei einem Mikrocontroller ist das alles auf einem Chip vereint, weil die Zielrichtung,
Claus: ist, diesen Mikrocontroller in ein Gerät einzubetten, wo er im Grunde genommen
Claus: eigentlich nicht mehr sichtbar ist, wo er verschwindet.
Claus: Deshalb auch der Begriff Embedded Systems.
Claus: Wir sehen den Mikrocontroller im Kühlschrank nicht, wir sehen den in der Waschmaschine nicht.
Claus: Im Auto sehen wir ihn eigentlich nur durch das GUI, also durch das Bedienteil.
Claus: Dann können wir erahnen, dass dahinter Mikrocontroller stehen.
Claus: Aber es ist ja auch vom Auto nicht nur einer, sondern es ist im Grunde genommen
Claus: ein Netzwerk von Kontrollern, was sich dort befindet.
Claus: Alles das erahnen wir nicht. Deshalb der Begriff des Embedded Systems,
Claus: des eingebauten, verborgenen Systems. Ja.
Ali: Und das macht es für die Hobby-Szene bei den Mikrocontrollern so interessant,
Ali: dass wenn man jetzt zum Beispiel mit einem ESP32
Ali: sich selbst ein smartes Gerät bauen möchte, ein IoT, ein Internet-of-Things-Gerät
Ali: und sei es sowas wie, ich möchte eine Lampe an- oder ausmachen oder ein Freund
Ali: hatte mir letztens gezeigt, er hat ein altes
Ali: Tastentelefon mit Hörer und so weiter umgebaut, sodass, wenn er jetzt die verschiedenen
Ali: Tasten drückt, er die Lichter in seinem Wohnzimmer heller und dunkler steuern kann.
Ali: Und da hat er dann den Mikrocontroller in dem Telefon versteckt,
Ali: das optisch erstmal aussieht wie einfache Deko und steht rum,
Ali: aber damit kann er dann die Lampen heller und dunkler machen oder bestimmte Szenarios auswählen.
Ali: Und da reden wir ja mittlerweile auch von Technik, so ein ESP32,
Ali: der kostet so viel wie ein Coffee to go am Bahnhof zu trinken.
Ali: Also die sind wirklich erschwinglich geworden und haben mit sich gebracht,
Ali: dass viele Leute dem mal einen Versuch geben und mit MicroPython
Ali: da dann auch eine Anlaufstelle haben, die sehr viel einfacher ist,
Ali: als es zum Beispiel C oder andere hardwarenahe Programmiersprachen früher gewesen wären.
Ali: Und da ist auch, würde ich sagen, eine der wichtigsten technischen Unterscheidungen
Ali: mit MicroPython, nämlich wie es funktioniert, dass es Bytecode ist,
Ali: der in seiner eigenen virtuellen Maschine läuft und extrem darauf optimiert
Ali: ist, wenig Speicher zu verbrauchen und deswegen auf diesen sehr kleinen,
Ali: wenig Energie verbrauchenden Controllern auch gut funktioniert.
Ali: Also natürlich alles jetzt idealisiert. Es gibt auch Mikrocontroller,
Ali: die sind extrem teuer, weil sie sehr spezifisch sind. Es gibt Mikrocontroller
Ali: mit deutlich mehr Speicher für die Anwendung, aber das Gros der Mikrocontroller
Ali: sind relativ preiswerte kleine Chipsätze.
Claus: Ja, das wird natürlich auch dadurch möglich, dass diese Mikrocontroller in Geräten,
Claus: wie ich es gerade erläutert habe, verschwinden und damit in riesigen Stückzahlen produziert werden.
Claus: Und diese riesigen Stückzahlen lassen es natürlich zu, dass die Preise reduziert werden.
Claus: Und davon kann unsere Community profitieren, dass die Controller in so großen
Claus: Stückzahlen da sind, preiswert sind und mit dieser großen Stückzahl sich auch
Claus: eine entsprechend große Community dann ausbildet.
Claus: Also das ist so ein Kreislauf, der sich eigentlich, ich sage mal,
Claus: ein Stück weit selbst befruchtet.
Ali: Und dann hast du in deinem Buch, das ich in der Vorbereitung gelesen habe,
Ali: sehr detailreich erklärt, was so Sachen wie Best Practice sind,
Ali: wie man optimiert, denn Natur der Sache ist, wenn ich mit wenig Speicher operiere, dann muss ich
Ali: darüber nachdenken, wie ich Ressourcen verwende.
Ali: Das war früher noch ein größeres Problem als heute, wenn man sich anschaut,
Ali: was Leute an komplexer Software in Disketten reingepresst bekommen haben.
Ali: Und wenn ich mir anschaue, wie oft es mir noch passiert, dass ich eine Library
Ali: im Projekt habe, die ich gar nicht mehr benutze, weil das noch irgendwo aus
Ali: der Testphase drin liegt, was halt früher undenkbar gewesen wäre und heute mit
Ali: verfügbarem RAM und verfügbarem Speicher etwas ist, wo man nicht so groß drüber nachdenkt.
Ali: Bei Mikrocontrollern ist das wieder anders. Da geht es dann wieder mehr um Optimierung
Ali: und da gibt es dann ja bei MicroPython auch so Sachen wie die
Ali: .mpy, die Module in MicroPython, die schon bereits vorkompilierter Bytecode
Ali: sind, die man einbinden kann, damit sie speichereffizienter sind.
Claus: Ja, das ist ein ganz wesentlicher Punkt. Ich hätte ja grundsätzlich die Möglichkeit,
Claus: mit MicroPython das noch alles
Claus: selbst zu installieren. Bloß das geht dann sehr stark ins Eingemachte.
Claus: Diesen Weg will man eigentlich nicht gehen und man möchte vorgefertigte Komponenten verwenden,
Claus: die diesen Anspruch bereits haben, den du genannt hast, die optimiert sind hinsichtlich
Claus: eines Embedded Systems, also einer Anwendung in einem kleinen System.
Claus: Ich kann also Funktionen, die relativ komplex sind, in Libraries auslagern,
Claus: entweder vorkompiliert oder als .py, also,
Claus: als reines Python-Skript, kann diese ins System einbinden und kann es so ähnlich
Claus: wie es bei C ist, wo ich bestimmte Libraries verwenden kann, kann ich,
Claus: mein ganzes Projekt auf einer sicheren Schiene aufsetzen, die schon praktisch voroptimiert ist.
Claus: Ich sollte dann einfach darauf achten, dass ich in meinem eigenen Stück Code,
Claus: der in der Regel dann das Ganze organisieren soll, orchestrieren soll,
Claus: dass ich dann nicht diese Vorteile wieder zunichte mache, indem ich das.
Claus: Unmöglich programmiere.
Claus: Aber auch dazu sind Dinge im Buch angegeben, wie ich dort vorgehen kann,
Claus: eben in diesem von dir eben genannten Kapitel Best Practice.
Claus: Das ist übrigens ein Punkt, der mich dazu geführt hat, dieses Buch zu schreiben.
Claus: Ich habe eine ganze Reihe von MicroPython-Büchern gesehen, gelesen,
Claus: überflogen und die sind oftmals an Anfänger für Anwender gedacht,
Claus: aber dort, wo es interessant wird, hört das oftmals auf.
Claus: Und das hat mich bewogen, mich dort eingehender damit zu befassen.
Claus: Wir haben heute Mikrocontroller, die mehrere Kerne haben. Die versprechen natürlich
Claus: dann, Sachen zu implementieren, die auf unterschiedlichen Kernen laufen.
Claus: Wenn man dann die konkreten Implementierungen anschaut, merkt man,
Claus: dass es auf einmal doch gar nicht so ohne weiteres möglich ist oder nur unter
Claus: bestimmten Bedingungen.
Claus: Auf solche Dinge gehe ich ein. Oder auf Multitasking und Interrupts,
Claus: die für meine Begriffe gerade im Embedded-Bereich sehr wichtig sind.
Claus: Dann hatten wir gesagt, dass wir versuchen wollen, für einen kleinen Controller
Claus: möglichst optimierten Code zu schreiben.
Claus: Dafür gibt es Tools, wo ich meinen Code, bevor er überhaupt auf den Controller
Claus: kommt, kontrollieren kann.
Claus: Also ich zeige, wie man mit Ruff einen sehr einfach anzuwendenden Tool Code optimieren kann.
Claus: Oder Code erstmal lesbar gestalten kann, syntaktisch so auslegen kann,
Claus: dass es ein pflegbarer Code ist.
Claus: Denn man muss ja bedenken, es wird in der Regel eine bestimmte Version erzeugt,
Claus: die erfüllt mehr oder weniger, ich hoffe mehr, die Anforderungen,
Claus: die gestellt worden sind.
Claus: Und dabei bleibt es aber in der Regel nicht. Man kommt zu neuen Erkenntnissen,
Claus: man möchte Funktionen erweitern, also der Code wird weiterentwickelt,
Claus: er muss gepflegt werden, er wird weiterentwickelt etc.
Claus: Und dazu dienen solche Tools, die verwendet werden, um den Code eben in einer
Claus: lesbaren und weiterverarbeitbaren Form zu halten.
Claus: Auf solche Dinge gehe ich ein und nicht zuletzt sind ein großer Anteil,
Claus: ich glaube etwa 100 Seiten, Anwendungen gewidmet,
Claus: wo dem IoT-Gedanken sehr stark Rechnung getragen wird.
Claus: Für mich ist heute, ich komme noch mal auf den Kühlschrank oder die Waschmaschine,
Claus: das sind heute in der Regel noch isolierte Geräte.
Claus: Also der Kühlschrank könnte zwar theoretisch, solche Beispiele hat es gegeben,
Claus: Internetverbindungen haben und dann bevor die Milch alle wird,
Claus: wird Neues bestellt, aber das ist ja in der Regel Wunschdenken geblieben bis heute.
Claus: Vielleicht gibt es einige Exemplare, ich weiß das nicht genau,
Claus: aber viel interessanter für Embedded Systems ist ja der Kontakt zum Internet.
Claus: Dort habe ich versucht, Beispiele zu zeigen, wie einfach es sein kann, dass man mit,
Claus: geeigneten Tools, also in dem Fall ist es der MicroDot-Webserver,
Claus: den ich dort eingesetzt habe, wie ich dort.
Claus: Mit wenig Aufwand eine ansprechende Oberfläche, zum Beispiel auf dem Smartphone,
Claus: erzeugen kann, um einen Embedded System zu steuern.
Claus: Ich habe das dort anhand von einer Raumüberwachung gemacht, wo Daten ausgegeben
Claus: wurden und so ein Klimaindex ausgegeben wird, rot, grün, gelb.
Claus: Der die Luftqualität kennzeichnet oder einen Schlafmonitor, der die Bedingungen
Claus: im Schlafraum überwacht, die dann ausgewertet werden und bewertet werden.
Claus: Ich habe dort Anwendungen hineingebracht, wo die künstliche Intelligenz eine Rolle spielt.
Claus: Ich frage also einen KI-Agenten über eine API-Schnittstelle ab,
Claus: wie die Wetterbedingungen sind, ob Regen zu erwarten ist, zum Beispiel durch
Claus: so ein Forecast oder besser gesagt ein Now-Cast.
Claus: Das musste ich erst lernen, dass es sowas auch gibt.
Claus: Also ein Kurzzeit-Forecast wird als Now-Cast bezeichnet.
Claus: Und diese Daten sind im Internet abrufbar, eben über so eine KI-Schnittstelle
Claus: abrufbar und können dann zeigen, ob ich in der nächsten halben Stunde mit einem
Claus: Starkregen zu rechnen habe oder nicht.
Claus: In so Gewitterumgebungen ist das mitunter eine ganz interessante Mitteilung.
Ali: Generell, Wetter ist ja für das optimierte Smart Home eine Sache,
Ali: da habe ich letztens noch mit einem Freund drüber nachgedacht,
Ali: weil wir für sein Smart Home was programmiert haben.
Ali: Er hat eine Solaranlage auf dem Dach und jetzt, wo es im Moment ja immer mal
Ali: wieder sehr heiße Wochen hat,
Claus: Möchte er das optimal nutzen.
Ali: Dass wenn die Solaranlage sagt, es ist gerade so und so hell,
Ali: dass sich die Blenden vor seinen Fenstern einfach zuziehen, damit es in der
Ali: Wohnung nicht so sehr aufheizt und das miteinander zu verbinden.
Ali: Also die im Prinzip Now-Cast aktuelle Messung von wie hell ist es gerade auf
Ali: dem Dach zu verwenden, um zu sagen, jetzt mach die Blenden mal zu,
Ali: damit das Haus nicht so sehr aufheizt
Ali: und dann kontrolliere mit dem Sensor innen, ob es was gebracht hat.
Ali: Das sind so kleine Spielereien, für die macht es einfach auch
Ali: Spaß, sich die Umgebung intelligenter und vernetzter zu machen und dann vor
Ali: allem das Ganze mit Tools, die man selbst gekauft und selbst gebaut hat,
Ali: sodass man nicht abhängig ist von irgendeinem
Ali: Aboservice oder irgendeinem Drittanbieter aus China oder den USA.
Ali: Also halt die Autonomie über das eigene Smart Home zu gewinnen,
Ali: dafür ist diese ganze IoT-Entwicklung großartig.
Claus: Absolut. Solche Beispiele habe ich also auch verwendet.
Claus: Und ich hatte mir jetzt gerade selbst das Stichwort KI gegeben.
Claus: Das ist auch so ein Punkt, den man beim Programmieren heute mit berücksichtigen sollte.
Claus: Die Programmerstellung könnte ich ja theoretisch komplett der KI überlassen.
Claus: Ich schreibe mir ein Programm und dann gibt es eine Liste von Anforderungen,
Claus: die ich abgebe und dann spuckt die KI irgendetwas aus. Im Falle von MicroPython,
Claus: sind diese Ergebnisse recht interessant.
Claus: Der Hintergrund ist,
Claus: zu den Trainingsdaten, die für die KI verwendet wurden, sind unendlich viele
Claus: MicroPython-Programme mitverwendet worden.
Claus: Demzufolge ist auch das Ergebnis stellenweise interessant, aber man sollte mit
Claus: einem klugen Blick dieses Ergebnis bewerten.
Claus: Es gilt also nicht nur, Bilder auf Fakes hin zu untersuchen,
Claus: ob jemand fünf Finger hat oder solche Dinge, die wir alle schon gesehen haben,
Claus: sondern man sollte sich auch den Code genau anschauen.
Claus: Und den Code, den die KI liefert, den sollte man verstehen.
Claus: Und wenn man den nicht versteht, dann sollte man daran zweifeln, dass er richtig ist.
Ali: Also auch das ist ja eben bei MicroPython für so einfache Sachen wie,
Ali: ich möchte diesen Sensor auslesen und in diese Variable schreiben.
Ali: Da habe ich gar keine Bedenken, dass die KI das 100 Prozent oder 99,9 Prozent akkurat machen wird.
Ali: Aber wenn ich dann ein größeres Projekt habe, wo ich mehrere Dinge auch nebenläufig
Ali: zueinander habe, da bin ich dann doch oft da reingelaufen, dass dem,
Ali: was das LLM im Moment produziert, wie gesagt, wir nehmen 2026 auf,
Ali: wenn das hier jemand in zehn Jahren hört und nicht versteht, wovon wir reden.
Ali: Im Moment ist es so, dass bei größeren Projekten so Sachen wie Speicheroptimierung
Ali: sehr mittelmäßig sind. Das liegt halt daran, dass es gelernt hat aus allen verfügbaren
Ali: Projekten und die sind halt im Schnitt mittelmäßig.
Ali: Und ich merke dann aber auch wieder, dass wenn man in die Debugging-Phase und
Ali: ins Evaluieren des Code kommt, also du hast ja auch REPL als Methode in deinem
Ali: Buch erwähnt, also dass ich read, evaluate, print, was war das L?
Ali: Loop, genau. Genau, also dass ich in die Schleife komme, dass ich alles,
Ali: was ich mache, debugge, indem ich es lese, evaluiere, ausgebe und das dann wieder von vorne.
Ali: Und bei solchen Bewertungen von eben diesem REPL, da finde ich es KI dann
Ali: auch wieder sehr gut, um mir zu helfen, zu verstehen, was ich vor mir habe.
Ali: Aber dafür muss ich halt auch schon was mitbringen, um überhaupt einsteigen
Ali: zu können in das, was da rausgekommen ist.
Claus: Richtig. Deshalb kommt man nicht umhin, auch diesen,
Claus: einführenden Abschnitt zu lesen und zu verstehen, wo ich eben über Listen,
Claus: Tuples und Variablen und so weiter, also über die Grundlagen spreche.
Claus: Das ist wichtig, dass ich den KI-Vorschlag, so möchte ich es mal nennen,
Claus: den KI-Vorschlag bewerten kann.
Claus: Wenn ich ihn verstanden habe, kann ich ihn ausprobieren.
Claus: Und dann wird es oft Fehlerausschriften geben und die kann ich wieder der KI
Claus: zurückschicken, kann sagen, das ist das Resultat und es kann eine Verbesserung geben.
Claus: Ich habe es aber auch erlebt, dass die KI sich dann im Kreis dreht.
Claus: Also das heißt, sie halluziniert und baut das nächste Ergebnis auf dem vorher
Claus: falschen auf und damit kommt sie nie zum Schluss.
Claus: Also es hat Dinge gegeben, wo ich dann abends geschlossen habe und meine letzte
Claus: Meldung an die KI war, ich gehe jetzt ins Bett.
Claus: Also es gibt Punkte, dort versagt es komplett.
Claus: Eben, es befindet sich dann in so einem Endlos-Loop.
Claus: Deshalb sollte man für meine Begriffe KI nutzen, unbedingt, aber kritisch nutzen.
Ali: KI sehe ich da auch hilfreich im Bereich des allgemeinen Rapid Prototyping und
Ali: das ist ja, wo Mikrocontroller ihre große Stärke haben, dass ich von
Ali: der Idee etwas zu machen hin zu, ich stecke mal ein paar Sensoren auf das Breadboard
Ali: und ich habe, also immer wenn ich mit Jumperkabeln arbeite, fühle ich mich,
Ali: als würde ich gerade etwas wirklich Hochtechnisches bauen.
Ali: Dabei sind das ja mittlerweile alles sehr genormte Steckverbindungen.
Ali: Leute, die davon keine Ahnung haben, haben dann auch immer großen Respekt,
Ali: wenn man auf dem Tisch vor sich jede Menge Kabel von hier nach da gesteckt hat und so weiter.
Ali: Und das ist ja der Weg, dass man, also jetzt wieder meine Referenz aus den Biologie-Projekten,
Ali: man entwirft einmal so ein Board mit Sensoren und schreibt den Code dafür.
Ali: Und wenn das dann funktioniert, dann kann man es nochmal in schön machen,
Ali: dass man das Board dann entsprechend auch ätzen lässt und die Sensoren fest
Ali: verlötet und nicht steckt, sodass es dann in der Anwendung auch sehr viel robuster
Ali: ist, wenn es irgendwo montiert wird oder überhaupt kleiner.
Ali: Und um diese Prototypen herzustellen, bevor man dann die fertigen Systeme,
Ali: die fertigen elektrischen Scan-Einheiten und so weiter gebaut hat,
Ali: dafür sind Mikrocontroller einfach mittlerweile nicht wegzudenken.
Ali: Und dieses Rapid Prototyping ist jetzt um ein weiteres Tool,
Ali: Provisorium, durch KI erweitert worden. Und wir alle wissen,
Ali: es gilt die alte Weisheit, nichts hält so lange wie das Provisorium,
Ali: aber man sollte schon auch am Ende des Tages wissen, wie es richtig geht.
Claus: Ja, das ist richtig. Ich nutze, um diese Provisorien ein bisschen zu umgehen,
Claus: versuche ich oft Komponenten zu nutzen, die schon ein Gehäuse haben,
Claus: die standardisierte Stecker haben.
Claus: Ich habe also im Buch da auch einiges erwähnt, die vielleicht ein Display haben.
Claus: Das Display steht bei solchen Embedded Systems nicht immer ganz im Vordergrund,
Claus: aber es gibt eben Dinge, wo ich eine gewisse Bedienfunktion habe und wo ich es gerne vor Ort habe.
Claus: Zum Beispiel ein Außensensor, der im Grunde genommen in einem Netzwerk arbeitet,
Claus: dort bräuchte ich kein Display.
Claus: Aber diese kleinen OLEDs, die heute an vielen Stellen eingesetzt werden und,
Claus: von der Software-Seite her keinen Aufwand bedeuten, wenn man das noch anschließt und ansteuert,
Claus: die sind im Grunde genommen hilfreich, wenn ich dann mal,
Claus: im Außenbereich meinen Sensor anschaue und er zeigt mir vernünftige Daten an
Claus: diesem Display an, dann kann ich davon ausgehen, dass auch die drahtlose Funkstrecke
Claus: dann funktioniert und meine Daten ankommen.
Claus: Also das heißt, die Vor-Ort-Batterie ist noch entsprechend geladen und das Ding arbeitet zuverlässig.
Claus: In solchen Fällen kann ein Display wirklich hilfreich sein.
Ali: Ich kann dir aus eigener Erfahrung sagen, es gibt nichts Ärgerlicheres,
Ali: als wenn deine Status-LED einen Kurzschluss hat und du dich die ganze Zeit fragst,
Ali: was in diesem Board kaputt gegangen ist, bis du rausfindest,
Ali: ah, die LED, die ich benutze, um den Status zu überprüfen, die hat den Hau.
Ali: Also ja, das ist etwas, man möchte mehr als einen Weg haben,
Ali: um zu sehen, was gerade in diesem Sensor passiert.
Ali: Aber da sind wir auch wieder bei etwas, dass MicroPython bzw.
Ali: Diese Entwicklung mit Mikrocontrollern sehr eigen ist, dass sie sehr darauf
Ali: optimiert sind, sie live zu debuggen, sie angeschlossen zu haben und direkt
Ali: Werte auszulesen, die da rein und raus gehen.
Ali: Also dass ich sehr viel, ich möchte jetzt nicht sagen am offenen Herzen,
Ali: das klingt so drastisch, aber ich kann sehr viel in meiner Entwicklung live
Ali: nachvollziehen und mein Code kompiliert live vor mir,
Ali: während ich hingegen bei Hochsprachen wie C, wenn ich da hardwarenah entwickle,
Ali: da brauche ich viel mehr als das, was schon bei MicroPython mitgebracht wird,
Ali: um nachvollziehen zu können, was die Maschine vor mir macht.
Claus: Das ist absolut richtig. Ich muss beim C-Programm dafür sorgen,
Claus: dass an der Konsole das ausgegeben wird, was ich als Debug-Mitteilung sehen möchte.
Claus: Und im Grunde genommen bringt MicroPython mit einem einfachen Ausgabebefehl das
Claus: bereits mit. Also das ist für die Fehlersuche ganz essentiell.
Claus: Das kann man ja anfangs über die Serialschnittstelle gut machen,
Claus: so wie es ursprünglich auch gedacht ist.
Claus: Aber die meisten, du hattest vorhin ESP32 erwähnt, die meisten Controller bringen
Claus: auch Bluetooth mit, sodass ich am Anfang das drahtgebunden machen kann und später über Bluetooth,
Claus: also vor allen Dingen über BLE, Bluetooth Low Energy, dann Mitteilungen ausgeben kann.
Claus: Und dann praktisch über das Handy die Debug-Mitteilungen sehe.
Claus: Also solche Dinge habe ich hier im Buch auch betrachtet.
Claus: Unter anderem ein ganzes BLE-Netzwerk. Ich habe verschiedene Temperatursensoren,
Claus: im Internet zusammengekauft.
Claus: Dort muss man bloß schauen, nicht alle haben offengelegte Protokolle.
Claus: Gerade in China gibt es interessante Sensoren, aber dort wird im Grunde genommen
Claus: das Protokoll verschlüsselt. Damit habe ich danach keinen Zugang.
Claus: Aber es gibt Sensoren, die das sehr gut ermöglichen, wo die Protokolle offengelegt sind.
Claus: Und dort zeige ich, wie ich solche Sensoren in dem Netzwerk zusammenfügen kann.
Claus: Und das könnte ich natürlich auch für einen Einzelsensor nutzen über so eine
Claus: BLE-Kontaktkommunikationsstrecke.
Ali: Und auch das BLE, also Bluetooth Low Energy, als Standard bringt schon sehr,
Ali: sehr viele vorkonfigurierte Sachen mit, auch so Sachen wie mögliche Gesundheitsdaten
Ali: dann geschickt werden können und so weiter.
Ali: Das ist wirklich hochkomplex und dass ich das als Library in MicroPython einbinden
Ali: kann, Bluetooth Low Energy, das ist wirklich beeindruckend.
Ali: Und da gibt es die modifizierten Versionen, wie zum Beispiel,
Ali: wir hatten ja jetzt hier schon mehrfach Nebenläufigkeit und Multitasking,
Ali: so Sachen wie uasyncio.
Ali: Das war mir vertraut, aber dein Buch hat da doch nochmal einen ziemlichen Grundlagen
Ali: tiefen Einstieg gegeben, dass ich jetzt deutlich mehr verstanden habe von dem,
Ali: was man da macht, weil man es sonst einfach nur aus Repositories übernommen
Ali: hat, ohne wirklich mal durchzusteigen.
Ali: Warum setze ich das so und so an? Denn wir befinden uns ja immer noch in Umgebungen,
Ali: wo Speicher ein limitierender Faktor sein kann.
Ali: Und besonders dann, wenn ich mehrere Dinge parallel habe, wie das Display ansteuern,
Ali: eine GUI ausgeben, einen Sensor auslesen und so weiter, dann sind so Sachen
Ali: wie Zeiten und das asynchrone Zeitmanagement halt wirklich relevant.
Claus: Das ist ein Punkt, der mir an einigen Stellen bei MicroPython-Beschreibungen gefehlt hat.
Claus: Deshalb ist das aufgenommen. Ich halte das für wichtig, vor allen Dingen,
Claus: wenn man die ersten Grundlagen verinnerlicht hat, dann will man natürlich solche Features nutzen.
Claus: Weil die sind einfach zu implementieren,
Claus: wenn man mal das Grundprinzip verstanden hat und bieten ungeheuer viel,
Claus: gerade bei solchen nebenläufigen Prozessen, dass nicht ein Prozess den anderen
Claus: blockiert und man sich wundert, dass hier sich nichts weiter dreht.
Claus: Gerade bei IoT-Sachen, wo ich nach außen eine Anfrage stelle,
Claus: die Antwort kann kommen, die wird in der Regel kommen, aber sie muss nicht kommen.
Claus: Und wenn dann mein ganzes Programm blockiert, dann ist das wenig wert.
Ali: Und da kommen wir dann auch bei so Sachen wie Abtastraten an den Punkt.
Ali: Eigentlich für die meisten Sensoren, die man so im Alltag verwendet,
Ali: ist MicroPython schnell genug.
Ali: Aber dann gibt es ja auch den Bereich, der sich jetzt mehr und mehr entwickelt.
Ali: Also als ich mit MicroPython selbst angefangen habe, würde ich sagen,
Ali: war IoT generell und Sensoren in Netzwerke hängen das, was das Aushängeschild war.
Ali: Mittlerweile erlebe ich, dass es sich mehr und mehr zum Edge-Computing entwickelt,
Ali: also dass ich bereits Sensoren und Sensorik mit an Bord habe,
Ali: die selbstständig Prozesse
Ali: durchlaufen kann, sodass das, was dann der Mikrocontroller verarbeitet,
Ali: für ihn einfacher zu interpretieren ist und nicht mehr große Ressourcen im Mikrocontroller
Ali: geblockt werden, weil ein Sensor gerade sehr hochfrequent misst.
Ali: Und das sind dann so Sachen, da hat sich mittlerweile einfach die Community
Ali: hin entwickelt, da hat sich die ganze Szenen entwickelt und das zeigt ja auch
Ali: die Professionalisierung, dass es jetzt immer besser auch Richtung Industrieanwendung funktioniert.
Claus: Absolut, absolut. Mir fällt gerade noch ein, weil du das mit dem Edge Computing sagst.
Claus: Ich habe ja parallel dazu viel im Arduino-Umfeld gearbeitet.
Claus: Beim Arduino ist jetzt durch die Übernahme von Qualcomm,
Claus: Es sind ja Hochleistungs-Linux-Devices hinzugekommen.
Claus: Also der Arduino Uno Q ist ein Device mit einem Mikrocontroller und einem,
Claus: ich kann es gar nicht aus dem Stegreif sagen, irgendeine Nummer, kann ich nicht sagen.
Ali: Und so ein mobilen Handychip, der da mit drauf ist.
Claus: Ja, ja. Und die beiden bilden praktisch ein Duo.
Claus: Der Mikrocontroller ist für die Sachen zuständig, die wir gerade besprochen haben.
Claus: Wird dort ganz normal in C++ im Arduino-Umfeld programmiert.
Claus: Und die andere Seite, die Linux-Seite, die wird in Standard-Python programmiert.
Claus: Also dort ist wieder so genau der Punkt mit dem Edge Computing zu sehen.
Claus: Der eine Teil macht die Echtzeitverarbeitung, also eben das Sampling von irgendwelchen Sensoren.
Claus: Es gibt eine Bridge, die zwischen beiden Systemen liegt, die für die Datenübergabe zuständig ist.
Claus: Und dann habe ich ein Linux-System, wie gesagt, in Python programmierbar oder,
Claus: generell programmierbar in jeder Hochsprache, aber dort wird hauptsächlich Python eingesetzt.
Claus: Das kann die ganze Verbindung dann ins Netz machen und aber auch bereits die
Claus: Vorverarbeitung im Edge für leistungsstärkere.
Claus: Programme, also die entsprechende Ressourcen anfordern.
Claus: Das ist ein Punkt, der sich dann weiter erschließt.
Claus: Es ist also die eine Schiene MicroPython auf kleinen Controllern selbst,
Claus: oder aber die Verbindung von Controller bis hin zum Linux-Device,
Claus: wo ich mit Python 3 dann konkret auf dem Linux-Device arbeiten kann.
Claus: Dieser letzte Punkt ist im Buch nicht ausgeführt, es geht ja hier um MicroPython, aber,
Claus: ich will nur sagen, wenn man sich mit MicroPython auf dem kleinen Controller,
Claus: in einer abgegrenzten Umgebung erstmal auskennt, die Wege,
Claus: hin zum umfangreicheren System, die bleiben natürlich offen.
Ali: Und das sind dann so Sachen, da könnte man zum Beispiel lokale Bildauswertung
Ali: von Kameras über den entsprechend leistungsstärkeren Prozessor machen und so.
Claus: Ich habe ja hier im Buch auch Kamerabeispiele mit einem.
Claus: OpenMV und mit einem RISC-Prozessor noch mit dem MaixPy.
Claus: Also zwei relativ ähnliche Systeme.
Claus: Die können schon eine ganze Menge. Aber dort bin ich natürlich wirklich an der
Claus: Grenze dieser recht leistungsfähigen Controller, die dort eingesetzt werden.
Claus: Dort würde sich das, was du gerade genannt hast, anbieten, dann die Bildverarbeitung,
Claus: komplexere Bildverarbeitung in so ein Linux-System hinaus auszulagern.
Claus: Aber viele Dinge kann ich heute schon mit leistungsfähigen Controllern machen.
Claus: Da ist ein STM32 dahinter, hinter den OpenMV-Controllern und die ermöglichen
Claus: schon eine ganze Menge. Ich habe dort ein ganz einfaches Beispiel gemacht.
Claus: Ich habe eine Wetterkamera, die das Umgebungsbild aufnimmt und zusätzlich werden
Claus: dort Messwerte eingeblendet ins Bild.
Claus: Also das ist sowas relativ Einfaches, da bedarf es keiner
Claus: großartigen Bildverarbeitung, da bedarf es nur dem Einblenden der Messdaten in den Bildspeicher.
Claus: Das ist recht einfach zu lösen. Aber sobald es eben anspruchsvoll wird,
Claus: Kantendetektionen oder Gesichtserkennung,
Claus: dann bin ich dort natürlich auch relativ schnell am Ende.
Ali: Ja, jetzt hattest du vorhin zu Beginn unseres Gesprächs schon mal gesagt,
Ali: dass du Wert darauf gelegt hast, aus anderen Büchern hier Dinge zusammenzutragen,
Ali: die dir zu kurz gekommen sind oder die du nicht so in dem Umfang gefunden hast.
Ali: Das ist eine der Sachen, die bei dir sehr im Detail beschrieben wird,
Ali: wo ich erst gedacht habe, das weiß ich doch und dann nochmal wirklich ein paar Aha-Momente hatte.
Ali: Das war zum ganzen Thema der Kontrollstrukturen.
Ali: Also vor allem bei Break, Continue und Pass.
Ali: Ich habe natürlich mit try und Go to Fail und so weiter schon rumgespielt.
Ali: Also try und except ist das ja bei MicroPython. Aber das war so etwas,
Ali: wo ich, also das hat man halt reingeschrieben, damit es sich nicht endlos an
Ali: einem Prozess auffängt.
Ali: Aber dass man auch das so sehr benutzen kann, um bewusst Prozesse zu optimieren
Ali: und effizienter zu machen, das habe ich, sind wir ehrlich, das habe ich bisher
Ali: schmerzlich vernachlässigt, weil es nie so kritisch war.
Ali: Und da gibt dein Buch wirklich nochmal einen tiefen Einblick,
Ali: warum das so relevant ist. Kannst du das in wenigen Worten für die Leute zusammenfassen,
Ali: was das an Effizienzgewinn bringt?
Claus: Ja, der normale Weg ist ja der, dass ich Ausnahmen benenne in diesem Konstrukt
Claus: und auf diese dann reagiere. Also das Standardbeispiel ist immer die Division durch Null.
Claus: Dass mir die nicht passiert, das fange ich mit so einem Konzept ab.
Claus: Ich kann aber andersherum das auch nutzen, indem ich sage, ich schreibe einen
Claus: Konstrukt, gerade bei solchen Brute-Force-Attacken ist das ja so, dann,
Claus: erzwinge ich eine Ausnahme.
Claus: Also das heißt, im Umkehrschluss, ich ziele darauf, dass ein Fehler geworfen wird.
Claus: Und den kann ich dann separat auswerten. Das ist eigentlich,
Claus: ich sage mal, der umgekehrte Prozess.
Claus: Und wenn ich diesen gehe, kann ich Dinge abfangen, die nicht einfach vordefiniert
Claus: sind, sondern, wie soll ich das sagen, die nicht definiert sind.
Claus: Das klingt blöd, aber ich habe praktisch eine zusätzliche Ebene,
Claus: um nicht Fehler abzufangen, sondern um bestimmte Situationen abzufangen,
Claus: die im Programm entstehen können.
Ali: Beim Katastrophenschutz spricht man von den Known-Unknowns, also dass ich weiß,
Ali: dass hier etwas kommen kann, von dem ich nicht weiß, wie es aussieht und dass
Ali: ich das dann mit in meine Entwicklung einbeziehe.
Claus: Das habe ich jetzt umständlich mit ‚nicht nicht‘ gemacht.
Claus: Dein Begriff gefällt mir besser.
Ali: Es gibt auch die Unknowns, aber da wissen wir noch nicht genau, was sie sind.
Claus: Ja, ja, ja.
Ali: Auf jeden Fall, genau dafür möchte ich meinen Code ja optimieren,
Ali: dass ich einerseits keine Attacken habe und andererseits keine Fehler,
Ali: die passieren, wenn zum Beispiel ein Sensor keinen Wert mehr liefert,
Ali: aber ich mich auf den Sensor verlassen habe,
Ali: dass ich dann eine sichere Konstruktion habe, die sagt, das Programm muss jetzt
Ali: hier einen Fehler werfen und kann nicht die ganze Zeit einen Sensor messen,
Ali: der nicht mehr antwortet.
Claus: Richtig, richtig. Ich könnte ja dann einen Ausweichzweig definieren,
Claus: der entweder den Sensor als Out-of-Order kennzeichnet oder aber wahrscheinliche Werte annimmt.
Claus: Das könnte man ja jetzt wieder aus der Vergangenheit dann sagen,
Claus: mein Sensor ist defekt, aber ein gültiger Wert wäre der und der,
Claus: sodass praktisch mein Algorithmus weiterläuft.
Claus: Aber ich könnte das Ergebnis als unsicher markieren.
Ali: Und ich merke, dass generell, wenn ich mich mit Mikroelektronik befasse...
Ali: Das mache ich jetzt als größeren Bogen raus, weg von den Kontrollkonstrukten.
Ali: Es verändert meine Art, über Probleme nachzudenken, wenn ich Sensorik kenne.
Ali: Und da finde ich sehr gut, dass du in deinem Buch auch viele Sensoren aufzählst.
Ali: Ich brauche dann meistens auch noch eine praktische Anwendung,
Ali: aber dann fängt man an darin zu denken, wie kann ich diesem Problem mit den Sensoren begegnen.
Ali: Und um nochmal zum Anfang von unserem Gespräch zu kommen, ich hatte mit einer
Ali: Biologin eine Unterhaltung darüber, dass sie einen Lernversuch haben,
Ali: wo Fische auf einen Reiz reagieren sollen, also ein Lichtsignal reagieren sollen.
Ali: Und wenn der Fisch sich falsch verhält, dann soll es einen Negativreiz geben.
Ali: Also wir reden jetzt nicht davon, dass der Fisch gequält wird,
Ali: sondern der Professor hatte damals vorgeschlagen, ja dann klopfen sie doch einfach
Ali: mit einem Lineal von außen ans Aquarium, dass es halt einen Reiz gibt,
Ali: auf den der Fisch reagiert.
Ali: Und da meinte sie, aber da muss ich ja für jedes Training und der Fisch sollte
Ali: viermal täglich trainieren, viermal täglich in die Uni kommen.
Ali: Dann hat sie mir das ganz traurig erzählt und ich meinte, ja,
Ali: wir können ja mal gucken, einfach einen Vibrationsmotor, der dann leicht gegen
Ali: die Scheibe klopft, ob es das auch tut und stellt sich raus,
Ali: ja, mit einer Kamera kann man sehen, wie sich der Fisch verhält und man kann
Ali: das jetzt aus der Ferne machen. Aber genau das sind halt so Szenarien.
Ali: Der Professor, der denkt in, wie entwickeln sich diese neuronalen Zellen in
Ali: dem Fisch. Der denkt jetzt nicht konkret darüber nach.
Ali: Und wie baue ich das Experiment dafür? Sagt ihr, ja, also zu meiner Zeit,
Ali: da sind wir noch viermal am Tag in die Uni gekommen, um unseren Versuch zu betreuen.
Ali: Ab dem Moment, wo man über die Möglichkeiten von Sensoren weiß,
Ali: fängt man an, anders zu denken, wie man sich einem Problem nähern kann.
Ali: Dementsprechend mag ich solche Beispielkataloge, wie du sie auch gemacht hast
Ali: in deinem Buch immer sehr.
Claus: Ja, das ist absolut richtig. Ich kenne das aus meiner eigenen Ausbildung.
Claus: Ich habe also auch nicht-lineare Gleichung mit einem Tischrechner vor 100 Jahren
Claus: gemacht und der brauchte für die Berechnung des Gleichungssystems anderthalb Stunden.
Claus: Und da, ich bin dann alle anderthalb Stunden nach Hause gefahren,
Claus: habe das Ergebnis notiert, den nächsten Job angestoßen und bin wieder weg.
Claus: Also ich kenne das sehr gut.
Ali: Ja, und wie gesagt, da gibt Technik einem einfach Möglichkeiten,
Ali: Dinge anders zu denken und Dinge auch weiterzudenken.
Ali: Und vielleicht das mal als Schlussakkord. Du hast jetzt dieses Buch geschrieben
Ali: darüber, was es für die Maker-Szene und IoT-Development bedeutet.
Ali: Welche Trends zeichnen sich gerade ab? Du hast schon erwähnt,
Ali: dass du einen KI-Request über die API machst.
Ali: Das würde ich sagen, ist gerade das große Thema, das ganz viel im Bereich Mikrocontroller
Ali: dominiert. Aber siehst du etwas, wo gerade der Trend hingeht oder was dich neu interessiert?
Claus: Was mich neu interessiert, sind vernetzte Systeme, also so Mesh-Netzwerke.
Claus: Das Stichwort ist dazu Meshtastic. Ich weiß nicht, ob du das kennst.
Ali: Kurz erklärt, das ist ein Funknetzwerk, das dadurch, dass man mit vielen Sendern
Ali: und Empfängern verbunden ist, zum Beispiel Nachrichtenübermittlung ermöglicht.
Ali: Und Leute bauen sich so kleine Walkie-Talkie-artige Geräte, um Nachrichten in
Ali: SMS-Größe über dieses Netzwerk zu verschicken. Aber halt nicht über GSM,
Ali: nicht über WLAN, sondern eben über diesen Funkstandard.
Claus: Ja, das ist absolut richtig.
Claus: Der Funkstandard ist LoRa. Es braucht keine Infrastruktur. Die Nachrichten springen
Claus: praktisch von Knoten zu Knoten.
Claus: Und das Netzwerk ist ein Mesh-Netzwerk. Das heißt, wenn ein Knoten ausfällt,
Claus: heilt sich das selber. Es gibt andere Kommunikationswege.
Claus: Eine Nachricht wird nicht nur
Claus: über einen Weg verschickt, sodass es also ein redundantes System ist. Gerade.
Claus: Für den Katastrophenschutz ist es sehr interessant, weil es dort leicht passieren
Claus: kann, dass die kommerziellen Systeme ausfallen.
Claus: Das heißt, ein reiner Stromausfall reicht schon zu, dann ist alles andere vorbei.
Claus: Und dieses System arbeitet im Wesentlichen mit batteriegestützten Knoten,
Claus: gepuffert durch Solar und solche Dinge. Das kann ich mir vorstellen.
Claus: Das ist in der Anfangsphase noch, das wird sich entwickeln.
Claus: Es gibt also nicht nur das Meshtastic, es gibt MeshCore, es gibt einige Systeme,
Claus: die da parallel entstehen.
Claus: Was sich dann durchsetzen wird oder ob alles so bleiben wird, das steht noch aus.
Claus: Das ist eine Sache. Bei der Sensorik wird es natürlich auch Entwicklungen geben,
Claus: die batteriebetrieben sein können.
Claus: Also es gibt teilweise Sensorik heute, die kann ich nicht mit der Batterie betreiben,
Claus: weil sie selber noch zu viel Strom verbrauchen. Also dort wird es auch Änderungen geben.
Claus: Bei der Aktorik, also du hattest das mit dem Vibrationsmotor genannt,
Claus: gibt es schon solche Entwicklungen, die vor allen Dingen durch die Wearables,
Claus: also durch Uhren und so weiter getragen werden.
Claus: Dieser Mikromotor ist ja so ein Beispiel. Wir haben alle einen Vibrationsalarm,
Claus: in der Armbanduhr, wenn man so eine Smartwatch hat.
Claus: Und dort wird es also Dinge hingeben, die in Richtung Verkleinerung sind.
Claus: Bei Mikrofonen, die MEMS-Entwicklung.
Claus: Elektromechanische Systeme auf dem Chip, das sind Dinge.
Claus: Und wo ich denke, wo wir jetzt noch am Anfang stehen, das ist,
Claus: der Punkt dieser kombinierten Rechner, was ich vorhin mit dem Uno Q genannt
Claus: hatte, das wird auch zunehmen.
Claus: Es ist von Qualcomm oder von Arduino ist schon der nächste angekündigt,
Claus: der, ich denke mal, eher in die professionelle Ecke schielt,
Claus: weil der Linux-Teil sehr komplex ist und sehr leistungsfähig ist.
Claus: Das wird wahrscheinlich so das Arduino-Umfeld
Claus: nur noch bedingt tangieren, aber das wird die Zeit zeigen.
Claus: Und natürlich Mikrocontroller, auch dort wird es Änderungen geben.
Claus: Der Raspberry Pi Pico ist auch schon so ein Beispiel, habe ich im Buch auch beschrieben.
Claus: Der hat erstens mal zwei Kerne.
Claus: Das ist der einzige Controller, wo ich wirklich den zweiten Kern für Parallel,
Claus: also für Nebenläufigkeit nutzen kann.
Claus: Und er hat zusätzlich noch State-Machines, State-Machine-Ausgänge,
Claus: die separat programmiert werden können,
Claus: die dann Kommunikation zum Beispiel.
Claus: Über ein serielles Interface zu einem Sensor übernehmen können,
Claus: wo ich wirklich taktgenau,
Claus: oder mikrosekundengenau die Takte programmieren kann und so für bestimmte,
Claus: proprietäre Interfaces gut vorbereitet bin. Aber,
Claus: Es werden auch für die Standard-Interfaces bereits Libraries oder Code-Segmente,
Claus: bereitgestellt, wo ich das also ohne tiefes Eindringen dann diese State-Machines nutzen kann.
Claus: Also eine komplexer werdende Mikrocontroller-Struktur, du hattest das vorhin
Claus: mal genannt, wo durch die intelligente Peripherie der Core selbst entlastet wird.
Claus: Also ich könnte zum Beispiel dieses ganze Bitbanging oder sowas,
Claus: was ich stellenweise für ein SPI-less Interface brauche, lagere ich aus in so
Claus: eine State-Machine und die CPU ist komplett frei davon.
Ali: Das ist, was auch so meine Beobachtung ist. Wie gesagt, ich habe das als Teenager
Ali: im Hobby-Bastel-Bereich entdeckt, wie Mikrocontroller aufgekommen sind.
Ali: Und wir erleben, dass sie einerseits so günstig sind wie noch nie,
Ali: so zugänglich wie noch nie. Es gibt jetzt mit deinem Buch noch ein Buch mehr.
Ali: Also es gibt viel Wissen darüber, wie man mit auch wirklich Grundlagen einsteigen kann.
Ali: Und es wird immer professioneller. Also das ist weit weg von dem verrückten
Ali: Bastelprojekt, mit dem man nur die eigene Modelleisenbahn steuert, hin zu,
Ali: du lernst da Dinge, die dann auch an echten Industrieanlagen oder,
Ali: also bei LoRa muss ich immer daran denken, ich kenne das ganz viel aus Uniprojekten
Ali: zum Thema Umweltmessung, wo man dann Wetterstationen
Ali: in der Natur verteilt, die mittlerweile auch, also wenn ich mich daran erinnere,
Ali: als ich angefangen habe, hatte ich, so 2014 wird es gewesen sein,
Ali: mal einen Gasspektrometer gesehen.
Ali: Das stand auf dem Tisch, das war fast so groß wie ein Schuhkarton und es war
Ali: einfach sehr, sehr teuer.
Ali: Und mittlerweile gibt es vergleichbare Messgeräte, die passen zusammen mit dem
Ali: Mikrocontroller und der Antenne in eine leere Cola-Dose und können im Wald platziert
Ali: werden. Also da ist einfach wirklich viel passiert.
Claus: Ja, ich habe so eine Wetterstation seit mehreren Jahren autonom laufen.
Claus: Die wird solar gepuffert, also mit Batterie betrieben, mit einem Solarschirm dran.
Claus: Und das zeigt jetzt schon zuverlässig seit,
Claus: vier oder fünf Jahren bei mir über LoRa die Wetterdaten an. Also ganz genau
Claus: das, was du gerade gesagt hast.
Ali: Und das ist eigentlich ein sehr schönes Einsteigerprojekt, dem du dich ja auch
Ali: in deinem Buch unter anderem widmest.
Ali: Ich glaube, wir haben relativ gut besprochen, warum man in dieses Buch reinschauen
Ali: sollte und warum man MicroPython für die eigenen Bastelprojekte,
Ali: aber auch für die professionellen Projekte in Angriff nehmen sollte.
Ali: Danke, Claus, für deine Zeit. Claus Kühnels Buch heißt MicroPython und ist bei
Ali: Rheinwerk erschienen. Danke und bis bald.