{"id":76,"date":"2021-01-02T20:28:29","date_gmt":"2021-01-02T20:28:29","guid":{"rendered":"http:\/\/www.vanmeel.at\/?p=76"},"modified":"2021-01-02T20:37:53","modified_gmt":"2021-01-02T20:37:53","slug":"arduino-mit-scratch-programmieren","status":"publish","type":"post","link":"https:\/\/www.vanmeel.at\/?p=76","title":{"rendered":"Arduino mit Scratch programmieren"},"content":{"rendered":"\n<p>Eigentlich wollten mein Sohn und ich etwas mit dem <a href=\"https:\/\/calliope.cc\/\" target=\"_blank\" rel=\"noreferrer noopener\">Calliope mini<\/a>  auf <a href=\"https:\/\/lab.open-roberta.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Open Roberta Lab<\/a> experimentieren. Aber leider stand der Calliope nicht zur Verf\u00fcgung.<\/p>\n\n\n\n<p>Daher haben wir uns dazu entschieden auszuprobieren, ob wir einen Arduino mit Scratch programmieren k\u00f6nnen. Dazu gibt es die besondere <a href=\"http:\/\/s4a.cat\/\" target=\"_blank\" rel=\"noreferrer noopener\">Scratch 4 Arduino<\/a> (S4A) Variante samt einer zugeh\u00f6rigen Firmware f\u00fcr den Arduino. Die genaue Anleitung welche Software man daf\u00fcr braucht und wie man den Arduino mit der speziellen S4A Firmware bespielt findet man auf der Scratch 4 Arduino Download Seite.<\/p>\n\n\n\n<p>Nachdem wir die Anleitung zur Einrichtung des Arduino f\u00fcr S4A durchgef\u00fchrt haben, k\u00f6nnen wir mit unserem ersten Experiment beginnen: eine LED per Scratch ein- und ausschalten. Den Schaltplan dazu sieht wie folgt aus.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-1 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<figure class=\"wp-block-image size-medium\"><img loading=\"lazy\" decoding=\"async\" width=\"225\" height=\"300\" src=\"https:\/\/www.vanmeel.at\/wp-content\/uploads\/2021\/01\/20210102_203447-225x300.jpg\" alt=\"Schaltbild 1\" class=\"wp-image-77\" srcset=\"https:\/\/www.vanmeel.at\/wp-content\/uploads\/2021\/01\/20210102_203447-225x300.jpg 225w, https:\/\/www.vanmeel.at\/wp-content\/uploads\/2021\/01\/20210102_203447-768x1024.jpg 768w, https:\/\/www.vanmeel.at\/wp-content\/uploads\/2021\/01\/20210102_203447-1152x1536.jpg 1152w, https:\/\/www.vanmeel.at\/wp-content\/uploads\/2021\/01\/20210102_203447-788x1051.jpg 788w, https:\/\/www.vanmeel.at\/wp-content\/uploads\/2021\/01\/20210102_203447.jpg 1536w\" sizes=\"auto, (max-width: 225px) 100vw, 225px\" \/><figcaption>Schaltbild 1 &#8211; eine LED per Arduino ein- und ausschalten<\/figcaption><\/figure>\n\n\n\n<p> Genau genommen wollen wir die LED blinken lassen. Dazu verwenden wir eine einfache Endlosschleife, die die D13 Pin abwechseln ein- und ausschalten und dazwischen jeweils 1 Sekunde wartet.<\/p>\n<\/div>\n<\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"288\" height=\"260\" src=\"https:\/\/www.vanmeel.at\/wp-content\/uploads\/2021\/01\/S4A_Experiment1.png\" alt=\"\" class=\"wp-image-78\"\/><figcaption>S4A Programmcode zu Experiment 1 &#8211; Blinkende LED<\/figcaption><\/figure>\n\n\n\n<p>Das hat auf Anhieb geklappt. Also haben wir uns gedacht: bohren wir das Ganze noch etwas auf und machen die Blinkfrequenz mit einem Potenziometer einstellbar. Dazu erweitern wir die Schaltung um einen Potenziometer mit nachgeschalteten Widerstand und schlie\u00dfen das Ganze an den Analogeingang A0 an.<\/p>\n\n\n\n<figure class=\"wp-block-image size-medium\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"297\" src=\"https:\/\/www.vanmeel.at\/wp-content\/uploads\/2021\/01\/20210102_203540-300x297.jpg\" alt=\"\" class=\"wp-image-79\" srcset=\"https:\/\/www.vanmeel.at\/wp-content\/uploads\/2021\/01\/20210102_203540-300x297.jpg 300w, https:\/\/www.vanmeel.at\/wp-content\/uploads\/2021\/01\/20210102_203540-1024x1013.jpg 1024w, https:\/\/www.vanmeel.at\/wp-content\/uploads\/2021\/01\/20210102_203540-150x150.jpg 150w, https:\/\/www.vanmeel.at\/wp-content\/uploads\/2021\/01\/20210102_203540-768x759.jpg 768w, https:\/\/www.vanmeel.at\/wp-content\/uploads\/2021\/01\/20210102_203540-1536x1519.jpg 1536w, https:\/\/www.vanmeel.at\/wp-content\/uploads\/2021\/01\/20210102_203540-788x779.jpg 788w, https:\/\/www.vanmeel.at\/wp-content\/uploads\/2021\/01\/20210102_203540.jpg 2048w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><figcaption>Schaltung 2 &#8211; Blinkfrequenz per Potentiometer \u00fcber A0 einstellbar<\/figcaption><\/figure>\n\n\n\n<p>Entsprechend m\u00fcssen wir auch den Programmcode anpassen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"540\" height=\"333\" src=\"https:\/\/www.vanmeel.at\/wp-content\/uploads\/2021\/01\/S4A_Experiment2.png\" alt=\"\" class=\"wp-image-80\" srcset=\"https:\/\/www.vanmeel.at\/wp-content\/uploads\/2021\/01\/S4A_Experiment2.png 540w, https:\/\/www.vanmeel.at\/wp-content\/uploads\/2021\/01\/S4A_Experiment2-300x185.png 300w\" sizes=\"auto, (max-width: 540px) 100vw, 540px\" \/><figcaption>S4A Programmcode zu Experiment 2 &#8211; Variable Blinkfrequenz<\/figcaption><\/figure>\n\n\n\n<p>In der Theorie liefert der analoge Eingang A0 Werte zwischen 0 (bei 0 Volt) und 1024 (bei 5 Volt). Falls wir den Potenziometer also auf Maximum (= 5 Volt) stellen, dann sollte die LED zwischen jedem An-Aus-Wechsel ca. 1 Sekunde warten. Drehen wir das Potenziometer auf Minimum (= 0 Volt) stellen, sollte keine Wartezeit zwischen dem Ein-Aus-Wechsel verstreichen, die LED als unendlich schnell blinken.<\/p>\n\n\n\n<p>Wir beobachten aber ein anderes Verhalten. Stellen wir das Potenziometer auf Maximum, blinkt die LED wie erwartet mit ca. 0,5 Hz (ein Ein-Aus-Zyklus dauert 2 Sekunden). Drehen wir das Potenziometer langsam zur\u00fcck, nimmt die Blinkfrequenz stetig zu. Soweit noch alles in Ordnung. Drehen wir aber weiter, verh\u00e4lt sich die LED ab einem gewissen Punkt sehr komisch, ist manchmal l\u00e4ngere Zeit an oder aus und die Zeiten dazwischen ver\u00e4ndern sich st\u00e4ndig.<\/p>\n\n\n\n<p>Was geht da vor sich? Kann der Arduino nicht schneller? Nein, der Arduino kann noch sehr viel schneller &#8211; er ist immerhin mit 16 MHz getaktet. Liest man aber in der technischen Beschreibung der S4A Applikation nach, so stellt man fest: die S4A Applikation schickt alle 75 ms neue Befehle an den Arduino bzw. liest den Wert der analogen und digitalen Pins aus. Ist die Wartezweit zwischen dem Ein- und Ausschalten der LED k\u00fcrzer als diese 75 ms, so kommt es zu einem Durcheinander &#8211; zumindest nehmen wir dies so wahr.<\/p>\n\n\n\n<p>Eine Wartezeit von 75 ms entspricht einer Frequenz von ca. 13 Hz. M\u00f6chte man die LED schneller blinken lassen, so muss man sich etwas anderes einfallen lassen. Aber das werden wir uns heute nicht mehr anschauen.<\/p>\n\n\n\n<p>Abschlie\u00dfend sind wir sehr zufrieden mit dem heutigen Experiment. Es war erstaunlich einfach, den Arduino \u00fcber S4A anzusteuern und das wird sicher nicht das letzte Mal sein, dass wir hiermit experimentieren.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Eigentlich wollten mein Sohn und ich etwas mit dem Calliope mini auf Open Roberta Lab experimentieren. Aber leider stand der Calliope nicht zur Verf\u00fcgung. Daher haben wir uns dazu entschieden auszuprobieren, ob wir einen Arduino mit Scratch programmieren k\u00f6nnen. Dazu gibt es die besondere Scratch 4 Arduino (S4A) Variante samt einer zugeh\u00f6rigen Firmware f\u00fcr den [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,11,1],"tags":[7,8,9],"class_list":["post-76","post","type-post","status-publish","format-standard","hentry","category-arduino","category-scratch","category-uncategorized","tag-arduino","tag-s4a","tag-scratch"],"_links":{"self":[{"href":"https:\/\/www.vanmeel.at\/index.php?rest_route=\/wp\/v2\/posts\/76","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vanmeel.at\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vanmeel.at\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vanmeel.at\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vanmeel.at\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=76"}],"version-history":[{"count":2,"href":"https:\/\/www.vanmeel.at\/index.php?rest_route=\/wp\/v2\/posts\/76\/revisions"}],"predecessor-version":[{"id":82,"href":"https:\/\/www.vanmeel.at\/index.php?rest_route=\/wp\/v2\/posts\/76\/revisions\/82"}],"wp:attachment":[{"href":"https:\/\/www.vanmeel.at\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=76"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vanmeel.at\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=76"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vanmeel.at\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=76"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}