Danke, deine Videos bleiben auch langfristig aktuell und interessant! Ich habe gerade meine Kenntnisse über "State Machine" aufgefrischt und kann meine Arbeit fortsetzen.
... da habe ich heute wieder viel gelernt. Besonders: man kann es einfacher haben, wenn man strukturiert arbeitet. Vielen Dank für das kleine Lernprogramm.
Super, danke! Ich versuchte das Thema einfach genug anzugehen, dass auch weniger erfahrene Arduino - Benutzer damit zurechtkommen. Dabei besteht immer die Gefahr, dass erfahrenere Programmierer das Video langweilig finden. An den Videos auf Deinem Kanal sehe ich aber, dass Du schon recht viel Erfahrung mit dem Arduino hast. Deshalb freut es mich besonders, wenn auch Du davon profitieren konntest.
Anstatt das halbe Video mit dem Zusammenstecken von Bauteilen zu verschwenden, wie man es zu oft sieht, und irren Kamerafahrten mit Musik, wird hier gemütlich der Reihe nach alles erklärt, und zwar so, daß man es wirklich nachvollziehen kann und auch später noch erinnert. Ausgezeichnet!
Schließe mich Andreas an! Zum Thema Multitasking + Arduino u. State-Machine hilfreich sind auch die Adafruit Artikel "Mulit-Tasing the Arduino (Part 1-3)" z.B. learn.adafruit.com/multi-tasking-the-arduino-part-3/overview
Wie immer ein gutes Video. Hier mal noch einen kleinen Tipp von mir. Statt für jeden Zustand eine eigene "const int" Variable im Speicher zu erzeugen, könntest du auch mit nur einem Byte (unsigned char) 255 Zuständen für den Automaten erzeugen. Das ist bei größeren Projekten auf dem Atmega sehr wichtig, weil du den Speichplatz evtl. brauchst. Aslo ich mach das immer so: 1. eine Zustandsvariable (unsigned char Zustand=0;) zuweisen, in dem Falle 1Byte =255 Zustände. 2. Den Zuständen werden Zahlen mit den dazugehörigen lerserlichen Namen definiert. (#define rot = 1; #define gelb = 2, #define gruen = 3). Und 3. mit switch - case Anweisung arbeiten, also so (switch(Zustand){case(rot):....case(gelb):....case(gruen):... Du sparst dir da Zeit und Speicherplatz! :-) Trotzdem finde ich das Du für Anfänger sehr gute Videos machst und auch verständlich erklärst. Ich schauen dir jedenfalls gerne zu!
Da hast du selbstverständlich Recht. int ist sowieso in vielen Fällen ein verschwenderischer Datentyp. Da aber auch absolute Anfänger wissen, wozu er gut ist, verwende ich ihn gerne. Hautsächlich bei grossen Programmen kann eine optimale Wahl der Speichertypen das ganze Projekt retten. Besonders bei solch kleinen Zahlenwerten spart die Definition mit #define viel Speicherplatz. Bei solchen Gelegenheiten zeigt es immer wieder, dass meine 'Muttersprache' nicht C/C++ ist. Daher bevorzuge ich oft Konstrukte der Sprache und nicht des Präprozessors.
Klasse, vielen Dank für die Erklärung. Ich hatte es immer gescheut in der IDE Code einzutippen und habe Ardublock in verschiedenen Versionen dafür verwendet. Aber damit klappt nicht alles. Nun möchte ich mein neustes Projekt komplett ohne Ardublock und Co. erstellen, dazu eigne ich mir erstmal Grundlagen dazu an. Dieses Video zur "Statemachine" hat mir schon mal theoretisch etwas weiter geholfen. Ich habe gleich Mal ein Abo da gelassen und werde mir deine Playlist zum Erlernen des Arduino gemütlich anschauen. Vielen Dank und Daumen hoch, wünscht aus dem schönen Bautzen Micha
Hallo! Sehr gelungenes Video. Ich will eine Statemaschine für ein Motoren Modul nutzen. Dabei ist dieses über I2C mit einer Hauptsteuerung verbunden auf der eine Schrittkette läuft... Mit den Befehlen 'links' & 'rechts' sollen die beiden Motoren ihre Richtung ändern können mit dem Befehl 'stopp' soll das eigentliche dauerhafte drehen gestoppt werden. Ich denke mit deinem Video bin ich meinem Ziel deutlich näher gekommen, sodass ich mich heute Abend Mal Ran setzen werde Vielen Dank, tolle Arbeit!
Dieses Problem ist eher videotechnisch begründet. Der Bildschirm, meine Sprache und derArduino (mit Kamera) werden gleichzeitig aufgenommen und im Schnittprogramm synchronisiert. Da ich ohne Script arbeite, gibt es manchmal Hänger, wo ich mir zuerst überlegen muss, was als nächstes kommt. Manchmal labere ich auch einen Stuss und muss ihn wiederholen. Diese Fehler werden dann herausgeschnitten und führen dazu, dass im Kamerabild Teile fehlen. Normalerweise fällt das nicht auf, aber bei solchen festgelegten Blinksequenzen kann es schon bemerkt werden.
Cooles Video! Hier gibt es was Ähnliches, nur mit graphischen State Machines: www.hackster.io/robin-herrmann/traffic-lights-using-finite-state-machine-in-c-for-arduino-26169c
Ich möchte hierzu nur Sagen, dass das hier Programmierte nur im entferntesten mit einer State-Machine zu tun hat. Und nein ich bin nicht irgend ein Idiot der keine Ahnung hat, sondern ein Elektroniker der sehr wohl Programmieren kann und in der Lehre sehr viele State-Machines nach Definition umsetzen musste. Freue mich schon auf Kommentare von wegen ich hätte keine Ahnung...
Ich werde sicher nicht behaupten, dass du keine Ahnung hast. Aber vielleicht erwartest du zu viel. Das hier ist ein Hobbykanal und richtet sich an Leute, die keine entsprechende Ausbildung haben. Ein deterministisch endlicher Automat wechselt auf Grund einer Eingabe und seines Ausganszustands in einen definierten Folgezustand. Genau das habe ich versucht an einem einfachen Beispiel zu erklären. Es hätte keinen Sinn gemacht, den Automaten formal als Quintupel zu beschreiben. Das wäre nur von den Leuten verstanden worden, die es ohnehin schon kennen.
Danke, deine Videos bleiben auch langfristig aktuell und interessant! Ich habe gerade meine Kenntnisse über "State Machine" aufgefrischt und kann meine Arbeit fortsetzen.
... da habe ich heute wieder viel gelernt. Besonders: man kann es einfacher haben, wenn man strukturiert arbeitet. Vielen Dank für das kleine Lernprogramm.
Super, danke! Ich versuchte das Thema einfach genug anzugehen, dass auch weniger erfahrene Arduino - Benutzer damit zurechtkommen. Dabei besteht immer die Gefahr, dass erfahrenere Programmierer das Video langweilig finden. An den Videos auf Deinem Kanal sehe ich aber, dass Du schon recht viel Erfahrung mit dem Arduino hast. Deshalb freut es mich besonders, wenn auch Du davon profitieren konntest.
Anstatt das halbe Video mit dem Zusammenstecken von Bauteilen zu verschwenden, wie man es zu oft sieht, und irren Kamerafahrten mit Musik, wird hier gemütlich der Reihe nach alles erklärt, und zwar so, daß man es wirklich nachvollziehen kann und auch später noch erinnert. Ausgezeichnet!
Wie immer ein gutes und hilfreiches Video.
Freut mich, dass wieder etwas häufiger neue Videos erscheinen :)
Vielen Dank! Ich bin zuversichtlich, dass ich in Zukunft mindestens ein zusätzliches Video zwischen den 'Plaudereien' veröffentlichen kann.
Schließe mich Andreas an! Zum Thema Multitasking + Arduino u. State-Machine hilfreich sind auch die Adafruit Artikel "Mulit-Tasing the Arduino (Part 1-3)" z.B. learn.adafruit.com/multi-tasking-the-arduino-part-3/overview
Wie immer ein gutes Video. Hier mal noch einen kleinen Tipp von mir. Statt für jeden Zustand eine eigene "const int" Variable im Speicher zu erzeugen, könntest du auch mit nur einem Byte (unsigned char) 255 Zuständen für den Automaten erzeugen. Das ist bei größeren Projekten auf dem Atmega sehr wichtig, weil du den Speichplatz evtl. brauchst. Aslo ich mach das immer so: 1. eine Zustandsvariable (unsigned char Zustand=0;) zuweisen, in dem Falle 1Byte =255 Zustände. 2. Den Zuständen werden Zahlen mit den dazugehörigen lerserlichen Namen definiert. (#define rot = 1; #define gelb = 2, #define gruen = 3). Und 3. mit switch - case Anweisung arbeiten, also so (switch(Zustand){case(rot):....case(gelb):....case(gruen):... Du sparst dir da Zeit und Speicherplatz! :-) Trotzdem finde ich das Du für Anfänger sehr gute Videos machst und auch verständlich erklärst. Ich schauen dir jedenfalls gerne zu!
Da hast du selbstverständlich Recht. int ist sowieso in vielen Fällen ein verschwenderischer Datentyp. Da aber auch absolute Anfänger wissen, wozu er gut ist, verwende ich ihn gerne. Hautsächlich bei grossen Programmen kann eine optimale Wahl der Speichertypen das ganze Projekt retten. Besonders bei solch kleinen Zahlenwerten spart die Definition mit #define viel Speicherplatz. Bei solchen Gelegenheiten zeigt es immer wieder, dass meine 'Muttersprache' nicht C/C++ ist. Daher bevorzuge ich oft Konstrukte der Sprache und nicht des Präprozessors.
Klasse, vielen Dank für die Erklärung. Ich hatte es immer gescheut in der IDE Code einzutippen und habe Ardublock in verschiedenen Versionen dafür verwendet. Aber damit klappt nicht alles. Nun möchte ich mein neustes Projekt komplett ohne Ardublock und Co. erstellen, dazu eigne ich mir erstmal Grundlagen dazu an. Dieses Video zur "Statemachine" hat mir schon mal theoretisch etwas weiter geholfen. Ich habe gleich Mal ein Abo da gelassen und werde mir deine Playlist zum Erlernen des Arduino gemütlich anschauen. Vielen Dank und Daumen hoch, wünscht aus dem schönen Bautzen
Micha
Ich bin immer mal wieder über den Begriff State Machine gestolpert. Nun habe ich ihr Prinzip begriffen. Tolles Video!
Danke für das Video!!! Durch solche Leute wie dich, können sich Andere weiterbilden... Inkl. Mir;-)
Hallo! Sehr gelungenes Video. Ich will eine Statemaschine für ein Motoren Modul nutzen. Dabei ist dieses über I2C mit einer Hauptsteuerung verbunden auf der eine Schrittkette läuft... Mit den Befehlen 'links' & 'rechts' sollen die beiden Motoren ihre Richtung ändern können mit dem Befehl 'stopp' soll das eigentliche dauerhafte drehen gestoppt werden.
Ich denke mit deinem Video bin ich meinem Ziel deutlich näher gekommen, sodass ich mich heute Abend Mal Ran setzen werde
Vielen Dank, tolle Arbeit!
Da muss ein Fehler drin sein.
Manchmal wird direkt von grün nach rot gesprungen!
Trotzdem Danke für diese ausführliche Erklärung.
Dieses Problem ist eher videotechnisch begründet. Der Bildschirm, meine Sprache und derArduino (mit Kamera) werden gleichzeitig aufgenommen und im Schnittprogramm synchronisiert. Da ich ohne Script arbeite, gibt es manchmal Hänger, wo ich mir zuerst überlegen muss, was als nächstes kommt. Manchmal labere ich auch einen Stuss und muss ihn wiederholen. Diese Fehler werden dann herausgeschnitten und führen dazu, dass im Kamerabild Teile fehlen. Normalerweise fällt das nicht auf, aber bei solchen festgelegten Blinksequenzen kann es schon bemerkt werden.
Cooles Video!
Hier gibt es was Ähnliches, nur mit graphischen State Machines:
www.hackster.io/robin-herrmann/traffic-lights-using-finite-state-machine-in-c-for-arduino-26169c
Ich möchte hierzu nur Sagen, dass das hier Programmierte nur im entferntesten mit einer State-Machine zu tun hat. Und nein ich bin nicht irgend ein Idiot der keine Ahnung hat, sondern ein Elektroniker der sehr wohl Programmieren kann und in der Lehre sehr viele State-Machines nach Definition umsetzen musste. Freue mich schon auf Kommentare von wegen ich hätte keine Ahnung...
Ich werde sicher nicht behaupten, dass du keine Ahnung hast. Aber vielleicht erwartest du zu viel. Das hier ist ein Hobbykanal und richtet sich an Leute, die keine entsprechende Ausbildung haben. Ein deterministisch endlicher Automat wechselt auf Grund einer Eingabe und seines Ausganszustands in einen definierten Folgezustand. Genau das habe ich versucht an einem einfachen Beispiel zu erklären. Es hätte keinen Sinn gemacht, den Automaten formal als Quintupel zu beschreiben. Das wäre nur von den Leuten verstanden worden, die es ohnehin schon kennen.
>ganz einfach
>27 Minuten
SCHNAAAARCH, nach zwei Minuten eingepennt.......
Schlafen ist ja gesund. Es freut mich, dass ich etwas für deine Gesundheit tun konnte.
aber es noch schaffen, hier einen dummen Kommentar zu schreiben...zeigt was du für ein Tiefflieger bist;-) Nun Schlaf weiter
@@HobbyelektronikerCh 🤣 Souverän pariert 👍