#Ultraschallabstandssensor
Explore tagged Tumblr posts
draegerit · 1 year ago
Text
Calliope Mini 3 Tutorial: 2WD Chassis selbst steuern – Einsteigerfreundliches Tutorial
Tumblr media
Im letzten Beitrag habe ich dir gezeigt, wie man am Calliope Mini DC-Motoren anschließt und steuern kann, hier soll es nun darum gehen, wie du ein 2WD Chassis vom Calliope Mini selbst steuern lassen kannst. https://youtu.be/zNinK-GcHq0
Benötigte Ressourcen
Für diesen Beitrag verwende ich: - einen Calliope Mini 3, - ein USB-C Datenkabel, - einen Ultraschallabstandssensor HC-SR04 mit Grove-Schnittstelle, - ein Grove Anschlusskabel, - ein LiPo Batteriemodul 18650 (mit passendem LiPo Akku), - ein kurzes USB-C-Kabel, - ein 2WD Chassis Zusätzlich verwende ich noch ein kleines Anschlusspaneel für die Motoren. Mit diesem Paneel ist es einfacher möglich, die Litzen von den Motoren mit Breadboardkabel zu verbinden (alternativ kannst du auch kleine Lüsterklemmen verwenden). Unterschiede zwischen den Ultraschallabstandssensoren HC-SR04 Auf dem Markt gibt es diverse Arten von Ultraschallabstandssensoren, zum einen mit Grove-Schnittstelle und mit Stiftleisten.
Tumblr media
Ultraschallabstandssensor HC-SR04 mit Grove-Schnittstelle
Tumblr media
Ultraschallabstandssensor HC-SR04 mit Stiftleiste Es gibt bei diesen Sensoren zwei Unterschiede, zum einen hat der Sensor mit Grove-Schnittstelle nur einen Daten Pin und zum anderen arbeitet dieser Sensor mit einer Spannungsversorgung von 3,2 V bis 5,2 V. Der andere Sensor mit Stiftleisten hat eine Betriebsspannung von 5 V. Da der Calliope Mini lediglich 3V liefert, müssen wir auf den Sensor mit Grove-Schnittstelle zurückgreifen!
Wie funktioniert ein Ultraschallabstandssensor?
Ein Ultraschallabstandssensor besteht aus einer Sendeeinheit (Trigger) und einer Empfangseinheit (Echo). Der Sensor sendet ein Ultraschallsignal als Triggersignal aus, und wenn dieses Signal auf einen Gegenstand trifft, wird es reflektiert und als Echo zurückgesendet.
Tumblr media
Funktionsweise eines Ultraschallabstandssensors Durch die Messung der Zeit, die das Signal benötigt, um zum Objekt und zurück zur Empfangseinheit zu gelangen, kann der Sensor den Abstand zum Gegenstand präzise berechnen. Diese Abstandsmessung erfolgt in Zentimetern und ermöglicht dem Ultraschallabstandssensor, in Echtzeit genaue Informationen über die Entfernung zu einem Objekt zu liefern.
Anschluss des Ultraschallabstandssensors via Grove-Schnittstelle an den Calliope Mini 3
Der Ultraschallabstandssensor verfügt wie bereits mehrfach erwähnt über eine Grove-Schnittstelle, diese hat den Vorteil, dass man mit einem vorkonfektioniertem Kabel diesen an den Calliope Mini anschließt und somit wenig Fehler beim Verkabeln machen kann. Dieser Stecker passt auch nur in eine Richtung gewallt frei in die Buchse!
Tumblr media
Grove-Schnittstelle A1 am Calliope Mini 3 Schauen wir uns kurz das Pinout des Mikrocontrollers an, dort sehen wir, dass die zwei Grove-Buchsen an den Pins "A0" C20, & C19, sowie "A1" C16 & C17 angeschlossen sind.
Tumblr media
Pinout des Calliope Mini 3
Stromversorgung für das 2WD Chassis mit Calliope Mini 3 und Ultraschallabstandssensor
Dem Calliope Mini 3 liegt ein Batteriefach für 2 AA-Batterien bei und damit kann man diesen unabhängig vom USB-Kabel (Verbindung zum PC) betreiben. Jedoch reicht die Leistung für das 2WD Chassis nicht aus und das Gefährt hat keine Leistung. Hier habe ich als externe Stromquelle eine LiPo Batterie vom Typ 18650 mit 8800mAh und ein entsprechendes Expansionsmodul genommen.
Tumblr media
LiPo Batterie 18650 mit Expansionboard für 5V und 3V Es gibt die Expansionboards für 1,2 und 4 LiPo Batterien und auch haben diese zusätzlich eine Micro-USB oder USB-C Schnittstelle um gleich auch die LiPO-Batterie zu laden. Vorsicht beim Umgang und der Lagerung von LiPo Batterien Umgang mit LiPo-Batterien: - Vorsicht vor Überladung: Verwende nur passende Ladegeräte und halte dich an empfohlene Ladespannungen. - Überhitzung vermeiden: Achte darauf, dass die Batterien nicht überhitzen, sowohl während des Ladens als auch bei der Verwendung. - Korrekte Verbindung: Stelle sicher, dass die Batterien korrekt mit dem Gerät verbunden sind, um Kurzschlüsse zu verhindern. Lagerung von LiPo-Batterien: - Kühler, trockener Ort: Bewahre die Batterien an einem kühlen, trockenen Ort auf, um ihre Lebensdauer zu erhalten. - Teilentladung vor Lagerung: Lagere die Batterien bei etwa 50 - 60 % ihrer Kapazität, um Selbstentladungseffekte zu minimieren. - Schutz vor Beschädigung: Vermeide physische Schäden, indem du die Batterien sicher aufbewahrst und nicht lose in Taschen oder Schubladen lagerst. - Regelmäßige Überprüfung: Untersuche die Batterien regelmäßig auf äußere Schäden. Bei Rissen oder Schwellungen sollte die Batterie nicht mehr verwendet werden. Diese Tipps helfen, LiPo-Batterien sicher zu verwenden und ihre Lebensdauer zu maximieren. Beachte immer die Herstelleranweisungen und handle im Zweifelsfall sicherheitsbewusst.
Aufbau des 2WD Chassis, damit der Calliope Mini 3 es selbst steuern kann
Nachdem ich dir einige Grundlagen vermittelt habe, möchte ich in das eigentliche Thema einsteigen und dir erläutern, wie du den Calliope Mini 3 so programmierst, dass dieser ein 2WD Chassis selbst steuern kann. Für das selbstständige steuern haben wir einen Ultraschallabstandssensor angeschlossen, so kann dieser seine Umgebung wahrnehmen und auf Objekte reagieren. Das ist auch die einfachste Form, um solch ein Gefährt fahren zu lassen. Anschluss der Stromversorgung Die Stromversorgung erfolgt hier nun via USB-C Schnittstelle und der zuvor gezeigten LiPo-Batterie, du klemmst also nicht mehr das Batteriefach an den Calliope an. Auch entfällt bei dieser Art der Stromversorgung der Anschluss für die Motoren!
Tumblr media
DC-Motoren mit dem Calliope Mini verbinden Wie im letzten Beitrag bereits gezeigt, habe ich mir eine kleine Anschlusspaneele gelötet, mit welcher ich die Litzen, welche von den DC-Motoren kommen, einfach auf Buchsenleisten via Schraubklemmen umleiten kann. Das macht das Anschließen deutlich einfacher, da so die Kabel besser und sicherer mit dem Mikrocontroller verbunden werden.
Tumblr media
Programmieren in MakeCode
Jetzt ist die kleine Schaltung aufgebaut und wir können mit der Programmierung starten. Aber Achtung, denn sobald wir den Code auf den Mikrocontroller hochladen, fährt dieser los! Wir müssen also entweder unser 2WD Chassis so positionieren, dass die Räder frei drehen können oder es einfach beim Hochladen des Codes mit der Hand anheben. Alternativ kannst du auch einen der beiden Taster als EIN/AUS Signal für die Schaltung nutzen und so die Motoren deaktivieren.
Tumblr media
MakeCode Programm - 2WD Chassis autonom fahren Geschwindigkeit vs. Reaktionszeit Im Code (sieh Bild) habe ich die Motoren auf 35 % laufen lassen. Dieses ist, wie ich finde, ein sehr guter Wert, sodass der Mikrocontroller genug Zeit hat auch auf Objekte zu reagieren. Solltest du die Geschwindigkeit erhöhen, so musst du auch den Wert für den Abstand erhöhen! Download des Codes als HEX-Datei Damit du den Code nicht nachbauen musst, kannst du dir diesen nachfolgend einfach als HEX-Datei herunterladen und danach importieren. Programm - Calliope Mini 3 - 2WD Chassis autonom fahren lassenHerunterladen
Fazit & Ausblick
Mit einem Ultraschallabstandssensor kannst du recht einfach ein 2WD Chassis mit dem Calliope Mini 3 selbst steuern lassen. Im nächsten Beitrag möchte ich dir dann gerne zeigen wie du eine Linie folgen kannst, dazu benötigen wir dann einen anderen Sensor, welcher auf Licht bzw. Helligkeitsunterschiede reagiert. Hast du noch weitere Ideen oder Fragen? Dann schreibe mir diese in die Kommentare oder per Mail an [email protected]. Read the full article
0 notes
draegerit · 1 year ago
Text
DIY-Projekt: Ein Blick auf das Tinysuperlab MotionKit2 für autonomes Fahrvergnügen
Tumblr media
Ich hatte kürzlich die Gelegenheit, das MotionKit2 von Tinysuperlab auszuprobieren und möchte meine Erfahrungen mit euch teilen. In meinem neuen Beitrag zeige ich euch, wie ihr euer eigenes autonomes Fahrzeug zusammenbaut und programmiert. Freut euch auf einen Blick hinter die Kulissen und spannende Einblicke in die Möglichkeiten des MotionKit2. Wenn ihr Interesse an DIY-Technik und Gadgets habt, bleibt dran! Tinysuperlab hat hier wirklich etwas Beeindruckendes entwickelt. Wir sehen uns im Beitrag!
Tumblr media
Tinysuperlab MotionKit2 Disclaimer: Bevor wir in die Welt des MotionKit2 eintauchen, möchte ich darauf hinweisen, dass ich das Produkt kostenlos von Tinysuperlab erhalten habe, um es zu testen und darüber zu berichten. Auch wenn ich enthusiastisch über meine Erfahrungen berichte, bleibt meine Meinung dabei unabhängig und ehrlich. Es ist wichtig zu betonen, dass die Tatsache, dass mir das MotionKit2 kostenfrei zur Verfügung gestellt wurde, keinen Einfluss auf meine Bewertung und Darstellung des Produkts hat. Mein Ziel ist es, euch eine transparente und informative Perspektive auf dieses Technikgadget zu bieten. Ich hoffe, ihr könnt ebenso viel Freude an diesem Einblick in das MotionKit2 finden wie ich es hatte. Jetzt lasst uns gemeinsam in die Welt der Technik eintauchen!
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
Was enthält das MotionKit2 und was kann dieses?
Mit diesem Kit kannst du ein kleines Fahrzeug aufbauen, welches autonom fahren kann. Der Aufbau selber ist in wenigen Minuten selbst für ungeübte erledigt, da die meiste Elektronik auf der Hauptplatine aufgebracht ist. Das MotionKit2 enthält einen Ultraschallabstandssensor sowie zwei lichtempfindliche Sensoren (auf der Unterseite) und diverse normale & RGB LEDs für coole Effekte. Was ich besonders cool finde, ist das dies alles über I2C gelöst ist und mit nur einem Kabel vom Calliope Mini an das Chassis gelöst ist!
Bezug des MotionKit2 für den Calliope Mini 3 von Tinysuperlab
Wie erwähnt ist dieses Kit von Tinysuperlab und derzeit exklusiv im Onlineshop für 39,90 € zzgl. Versandkosten erhältlich. Im Lieferumfang ist kein Calliope Mini enthalten! Du musst dir diesen also noch separat besorgen. Diesen bekommst du über diverse Onlineshops, aber auch wieder über den offiziellen Shop von Calliope.
Aufbau des MotionKit2 mit dem Calliope Mini 3
Bauen wir nun das MotionKit2 auf und laden danach ein erstes Programm via MakeCode hoch. Die Aufbauanleitung dafür findest du online unter https://tinysuperlab.com/anleitungen/motionkit2/motionkit2/zusammenbauen/ https://youtu.be/qDrzzQ-exTQ Für den Aufbau benötigst du kein Werkzeug, die Schrauben werden lediglich handfest angezogen! Programmieren des MotionKit2 über MakeCode Der Calliope Mini3 lässt sich besonders leicht über MakeCode programmieren. Der Hersteller des hat hier sehr viele Beispiele unter https://tinysuperlab.com/anleitungen/motionkit2/motionkit2/programmieren/ bereitgestellt, welche einfach online bearbeitet und heruntergeladen werden können. Hinweis Das kleine Fahrzeug ist gemessen an seiner Größe sehr schnell und du musst aufpassen, dass dieses dir nicht nach dem Upload des Programmes nicht flink vom Schreibtisch fährt!
Fazit zum MotionKit2 von Tinysuperlab
Das MotionKit2 enthält alles, was man benötigt, um ein autonomes Fahrzeug zu bauen und damit zu experimentieren. Besonders gut gelungen finde ich den wirklich einfachen Aufbau und das Programmieren via MakeCode. Ich werde dir noch weitere Beiträge zu diesem coolen Kit auf meinem Blog präsentieren, bleib also dabei.... Read the full article
0 notes
draegerit · 2 years ago
Text
Basteln und Lernen mit dem Raspberry Pi Pico Inventors Kit
Tumblr media
Im ersten Beitrag zum Raspberry Pi Pico Inventors Kit habe ich die das Modul WuKong2040 genauer vorgestellt. Hier soll es nun darum gehen, wie du die verschiedenen Sensoren & Aktoren anschließen und programmieren kannst. Dazu werde ich dir zeigen wie diese in MicroBlocks angesteuert werden, somit ist dieser Beitrag besonders für Anfänger geeignet, aber auch erfahrene Programmierer werden hier bestimmt, die ein oder andere neue Information finden.
Tumblr media
Disclaimer: Dieser Artikel über das "Raspberry Pi Pico Inventors Kit" entstand, nachdem ich auf das Produkt aufmerksam wurde. Es ist wichtig zu erwähnen, dass ich das Set von der Firma Elecfreaks erhalten habe, die mich nach meiner Kontaktaufnahme auf TikTok unterstützt hat. Dennoch möchte ich betonen, dass meine Bewertung und der Inhalt dieses Artikels unabhängig und auf meinen persönlichen Erfahrungen basieren. Mein Ziel ist es, meine ehrliche Meinung und Erkenntnisse über das Raspberry Pi Pico Inventors Kit zu teilen, ohne jegliche Beeinflussung durch das Sponsoring.
Überblick über die Sensoren & Aktoren des Raspberry Pi Pico Inventor's Kit
Schauen wir uns einmal kurz die Sensoren & Aktoren im Detail an. Was fast allen Modulen gleich ist, ist die 3-Pin-Buchse. Diese ist immer gleich belegt und somit kann man hier fast nichts falsch machen.
Tumblr media
LED Module Dem Kit liegen zwei Module mit jeweils einer 5 mm LED bei. Diese Module haben eine 3-Pin-Buchse, von welcher wir jedoch lediglich die Pins S (Signal) und G (Ground) benötigen.
Tumblr media
Mikrofon / Geräuschdetektor Modul Mit dem Mikrofon oder auch als Geräuschdetektor Modul kannst du auf unterschiedliche Lautstärken reagieren.
Tumblr media
Lichtsensor Mit dem Lichtsensor kannst du über einen analogen Wert die Lichtintensität feststellen und damit in der Schaltung auf zum Beispiel auf den Wechsel des Tageslichts oder anderes reagieren.
Tumblr media
DHT11 Sensor Der einfache DHT11 Sensor liefert dir die Temperatur sowie die relative Luftfeuchtigkeit in einem Intervall von min. 1,5 Sekunden.
Tumblr media
Drehpotentiometer Modul Über den Drehpotentiometer kannst du via analogen Signal einen anderen Aktor steuern. Und so zum Beispiel einen Servomotor bewegen.
Tumblr media
OLED Display
Tumblr media
Ultraschallabstandssensor Mit dem Ultraschallabstandssensor kannst du Entfernungen von bis zu 4 m messen und so Durchgänge überwachen.
Tumblr media
DC-Motor / Fan Mit dem kleinen DC-Motor kannst du einfache Roboter steuern oder auch mit dem Lüfteraufsatz für frischen Wind sorgen.
Tumblr media
Regensensor Der Regensensor liefert dir ein digitales Signal wenn Regen / Feuchtigkeit auf die Kontaktflächen trifft.
Tumblr media
180° Servomotor Den 180° Servomotor kannst du ebenso wie den DC-Motor für deine Roboter nutzen.
Anschluss der Sensoren & Aktoren
Die Sensoren & Aktoren (ausgenommen das OLED-Display & der Ultraschallabstandssensor) haben eine 3polige Buchse, welche über spezielle Kabel mit dem WuKong2040 verbunden werden.
Tumblr media Tumblr media Tumblr media Tumblr media
Das OLED-Display sowie der Ultraschallabstandssensor hat eine 4 polige Stiftleiste, welche per I2C angeschlossen wird. Hier hast du eine 4polige Buchsenleiste auf dem WuKong2040 in welche du diese Komponenten steckst.
Tumblr media Tumblr media Tumblr media
Die Module sind mit speziellen Steckern verbunden, an welche sich eine kleine Nase befindet, welche in der Buchse einrastet. Diese kleine Nase kannst du in der Regel durch das Hinunterdrücken einer ebenso kleinen Lasche lösen, jedoch klappt dieses nicht immer so einfach und da hilft auch mal ein kleiner Schlitzschraubendreher.
Tumblr media Tumblr media Tumblr media
Beispiele zum Nachbauen
Kommen wir nun dazu und verbinden die Sensoren & Aktoren mit dem WuKong2040 Modul. Dazu möchte ich dir im nachfolgenden jetzt ein paar Beispiele zum Nachbauen zeigen. Wechsel blinken zweier LEDs Fangen wir mit einem ersten kleinen Beispiel an und lassen die beiden 5 mm LEDs im Wechsel blinken. https://youtu.be/KiSBU4Ze-qY MicroBlocks Programm - Wechselblinken zweier LEDsDownload Blinkintervall mit dem Drehpotentiometer steuern Mit dem ebenso im Kit enthaltenen Drehpotentiometer kannst du das Intervall des Blinkens ändern. Damit wir diesen Drehpotentiometer auslesen können, benötigen wir das Modul "Octopus". Zusätzlich müssen wir dann auch die Stromversorgung am WuKong2040 aktivieren! https://youtu.be/EqZ_GO4F70g MicroBlocks Programm - Wechselblinken zweier LEDs mit DrehpotentiometerDownload steuern der Helligkeit einer LED mit dem Lichtintensitätssensor Der Lichtsensor liefert ein analoges Signal zwischen 0 und 1350 und wenn wir dieses in Prozent ausrechnen, können wir recht einfach die Helligkeit einer LED steuern. https://youtu.be/hIAYXGamt7I MicroBlocks Programm - Helligkeit einer LED via Lichtintensitätssensor steuernDownload Temperatur & rel. Luftfeuchtigkeit auf dem OLED Display anzeigen Dem Kit liegt ebenso noch ein DHT11 Sensor sowie ein kleines OLED-Display bei. Auf diesem kleinen Display kannst du maximal 7x11 Zeichen anzeigen (11 Zeichen pro Zeile und 7 Zeilen).
Tumblr media
Der DHT11 Sensor ist ein günstiger Sensor zum Messen von Temperatur und rel. Luftfeuchtigkeit. https://youtu.be/9VM1A1TIkBY MicroBlocks Programm - Temperatur und rel. Luftfeuchtigkeit vom DHT11 Sensor anzeigenDownload Servomotor mit Drehpotentiometer steuern Der Drehpotentiometer kann über sein Kabel direkt mit dem WuKong2040 verbunden werden. Wie du ein Drehpotentiometer anschließt und ausliest, hatte ich dir ja bereits im Abschnitt mit den LEDs gezeigt. Diesen Drehpoti musst du an einen der drei analogen Pins (26, 27, 28) anschließen. Zusätzlich musst du auch hier wieder den Strom vom WuKong2040 aktivieren! https://youtu.be/9-RW_TeOa9I Read the full article
0 notes
draegerit · 2 years ago
Text
Kreative Experimente mit dem Raspberry Pi Pico Inventors Kit
Tumblr media
In diesem Beitrag möchte ich dir das Inventors Kit für den Raspberry Pi Pico von der Firma Elecfreaks vorstellen. Das Set beinhaltet fast alles (leider nicht den Mikrocontroller), was du zum sofortigen Starten deiner Entwicklung mit dem Raspberry Pi Pico benötigst.
Tumblr media
Disclaimer: Dieser Beitrag über das "Raspberry Pi Pico Inventors Kit" wurde von mir verfasst, nachdem ich auf das Set aufmerksam wurde. Ich möchte darauf hinweisen, dass ich das Set von der Firma Elecfreaks gesponsert erhalten habe. Diese Entscheidung beruhte auf meiner eigenen Initiative, nachdem ich auf das Produkt durch TikTok aufmerksam geworden bin. Mein Ziel ist es, meine ehrliche Meinung und meine Erfahrungen mit dem Set in diesem Artikel zu teilen. Die Tatsache, dass das Produkt gesponsert wurde, beeinflusst jedoch nicht meine Bewertung oder den Inhalt des Artikels. Meine Rezension basiert auf meinen eigenen Erfahrungen und Beobachtungen während der Nutzung des Raspberry Pi Pico Inventors Kit.
Tumblr media Tumblr media Tumblr media Tumblr media
Das Inventors Kit im Überblick
Schauen wir uns zunächst einmal an, was in diesem Kit enthalten ist. - eine Anleitung auf Englisch für MicroBlocks & CircuitPython, - ein Modul mit 5 mm, grüner LED, - ein Modul mit 5 mm, roter LED, - ein Mikrofonmodul, - ein Lichtsensor, - ein DHT11, - ein Drehpotentiometermodul, - ein OLED Display, - ein Ultraschallabstandssensor, - ein DC Motor, - ein Regensensormodul, - ein Servomotor Typ SG90, und natürlich - das Modul WuKong2040
Tumblr media
Raspberry Pi Pico Inventors Kit von Elecfreaks
Tumblr media
Anschlusskabel für den WuKong2040 Zusätzlich bekommst du noch passende Kabel für den Anschluss an das WuKong2040 Modul und ein Micro-USB Datenkabel.
WuKong2040 für den Raspberry Pi Pico
Der Hauptakteur des Kits ist das Modul WuKong2040. Auf dieses Modul wird der Mikrocontroller Raspberry Pi Pico oder Pico W gesteckt und du kannst dann über Stiftleisten die Pins abgreifen.
Tumblr media Tumblr media
Zusätzlich ist auf diesem noch: - zwei RGB LEDs, - zwei Taster, - ein Piezo Buzzer, sowie - ein Sockel für eine LiPo 18650 (nicht enthalten)
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
Die LiPo Batterie kannst du bequem über das Modul laden, dazu leuchtet dann die kleine SMD LED neben dem USB-Anschluss in Rot zusätzlich ändert sich die Farbe der POWER LED in orange / rot.
Tumblr media Tumblr media
Das Modul WuKong2040 ist auf einem Techniksockel montiert, so dass du diesen theoretisch auf Sets von Klemmbausteinhersteller wie Lego integrieren kannst.
Aufstecken des Raspberry Pi Pico auf den WuKong2040
Bevor du deinen Mikrocontroller auf die Buchsenleiste des WuKong2040 steckst, solltest du ein leeres Programm auf diesen spielen. Denn solltest du diesen bereits für andere Projekte verwendet haben und ggf. GPIOs definiert haben, kann es passieren, dass dein Mikrocontroller zerstört wird.
Programmieren und Stromversorgung
Das Modul WuKong2040 verfügt über eine Micro-USB Schnittstelle, über diese wird lediglich das Modul und der Pico mit Strom versorgt. Zum Programmieren des Pi Pico musst du den Mikrocontroller direkt mit dem PC verbinden. Damit du nicht ständig das Kabel tauschen musst, empfehle ich dir den Einsatz einer LiPo Batterie Typ 18650.
Programmieren des Raspberry Pi Pico Inventors Kits
Das Kit lässt sich in MicroBlocks, CircuitPython & MicroPython programmieren. Du kannst dieses auch in der Arduino IDE programmieren, dafür musst du lediglich deinen Mikrocontroller (den Raspberry Pi Pico) etwas vorbereiten, siehe Raspberry PI Pico in der Arduino IDE programmieren.
Tumblr media
Da sich das Set an Anfänger richtet, möchte ich dir hier die Programmierung in MicroBlocks zeigen. Mit dieses Onlinetool kannst du deinen Code mit Blöcken aufbauen und so kommst du schnell zu einem Ergebnis, ohne dass du dich erst in eine Programmiersprache einarbeiten musst. Ein weiterer Vorteil von MicroBlocks ist, dass du eine komplette Bibliothek erhältst, um die Sensoren & Aktoren anzusteuern, aber dazu später mehr. Erste Schritte in MicroBlocks mit dem WuKong2040 Bevor wir mit komplexen Schaltungen und Programmen starten, verschaffen wir uns zunächst einen kleinen Überblick über MicroBlocks mit dem WuKong2040. Dieses kannst du entweder herunterladen, oder du nutzt dieses wie ich im Browser Google Chrome. https://youtu.be/8ieqfCKzUOs
Aufblick & Zwischenfazit
Wir haben uns zunächst das Inventors Kit von Elecfreaks angeschaut und den WuKong2040 mit dem Raspberry Pi Pico verbunden. Im nächsten Beitrag werde ich dir zu den jeweiligen Sensoren & Aktoren kleine Beispiele zeigen. Diese werde ich in MicroBlocks erstellen, damit du diese sehr einfach nachbauen kannst. Read the full article
0 notes
draegerit · 2 years ago
Text
ROBO PICO von Cytron Technologies: Perfekt für deine Roboterideen
Tumblr media
In diesem Beitrag möchte ich dir den ROBO PICO von der Firma Cytron Technologies vorstellen und aufzeigen, wie dieser dir bei deinen Roboterideen behilflich sein kann.
Tumblr media
Disclaimer: Dieser Beitrag wurde in Zusammenarbeit mit Cytron Technologies erstellt, und ich habe das Produkt ROBO PICO sowie den Raspberry Pi Pico WH kostenfrei erhalten. Die Meinungen und Ansichten in diesem Beitrag sind jedoch meine eigenen und wurden nicht von Cytron Technologies beeinflusst. Ich empfehle nur Produkte und Dienstleistungen, von denen ich überzeugt bin und die für meine Leser von Interesse sein könnten. Den Raspberry Pi Pico WH habe ich dir bereits in einigen Beiträgen auf meinem Blog vorgestellt: - Raspberry Pi Pico W – programmieren einer Wetterstation mit ChatGPT - Raspberry Pi Pico: Programmierung und Entwicklung mit der Arduino IDE auf Linux - Raspberry Pi Pico BASIC #1 – Überblick
Tumblr media Tumblr media Tumblr media Tumblr media
Aufbau des ROBO PICO von Cytron Technologies
Die Platine des ROBO PICO verfügt über diverse Schnittstellen an welche die Motoren sowie Sensoren & Aktoren angeschlossen werden können. Hier findest du die derzeit sehr weit verbreiteten Grove Schnittstellen, welche den Vorteil bieten, dass die zum einen nur in eine Richtung gewaltfrei eingesteckt werden können und zum anderen eine fehlerhafte Verkabelung minimiert wird. Du musst hier lediglich drauf achten, dass du einen analogen Sensor auch an analoge Pins anschließt.
Tumblr media
Schnittstellen und Klemmen - sieben Grove Schnittstellen, - zwei Schraubklemmen für Motoren, - eine Schraubklemme für eine externe Stromversorgung (3.6V bis 6V), - eine 4 x 3fach Stiftleiste für Servomotoren, - einen Maker Port, kompatibel mit QWIIC, Stemma QT Module (I2C) An den Schraubklemmen für die Motoren findest du jeweils auch Taster um diese auch ohne Code auf dem Raspberry Pi Pico zu testen. Zusätzliche Features - zwei NeoPixel, - zwei frei programmierbare Taster, - einen Piezo Buzzer, - ein Anschluss für eine LiPo Batterie (inkl. laden) mit LED Anzeige,
Lieferumfang zum ROBO PICO
Zum Lieferumfang des ROBO PICO gehört neben der Platine noch eine kleine Tüte mit Anschlusskabel und für die Schraubklemmen ein passender Schraubendreher.
Tumblr media
Bezugsquellen
Wenn du dir diese nützliche Platine für deine Roboterideen zulegen möchtest, dann bekommst du dieses entweder im Onlineshop von Cytron Technologies für derzeit 14,9 $ (ca. 13,98 €, stand 14.09.2023) zzgl. Versandkosten. Etwas günstiger bekommst du diesen im Raspishop für derzeit 13,98 € zzgl. Versandkosten.
Aufbauen und programmieren des Hungry Robot mit dem ROBO PICO und Raspberry Pi Pico
Auf der Seite https://www.cytron.io/p-robo-pico findest du einige lustige Projekte zum Nachbauen. Hier habe ich mir den Hungry Robot ausgesucht, der klingt recht lustig. https://youtu.be/zFmcF2K_FcY Zum Aufbau des Hungry Robot benötigst du einen 3D-Drucker. In meinem Fall nutze ich einen Anycubic Pro Mega und das Drucken aller Teile hat dabei 22h Stunden in normaler Qualität gedauert.
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
Auf Thingiverse bekommst du die benötigten Dateien kostenfrei zum Download: - REKA:BIT Hungry Robot, - Maker Pi RP2040 to REKA:BIT Mounting Holes Ansonsten benötigst du zum Zusammenbauen noch: - sechs 3,0 x 12 mm Schrauben, - vier 3,5 x 12 mm Schrauben, - einen Servomotor Typ SG90, - einen Ultraschallabstandssensor Typ HC-SR04, sowie - kleine Kabelbinder Die Schrauben wähle ich von der Firma Spax und habe ich aus dem örtlichen Toom Baumarkt erworben. Sicherlich sind diese deutlich teurer als die günstigen Noname Schrauben. Jedoch haben die Schrauben von Spax ein scharfes Gewinde, welches besonders für 3D gedruckte Teile super funktionieren und nichts kaputt machen. Zusätzlich benötigst du noch etwas Werkzeug: - einen mittleren Kreuzschraubendreher, - einen kleinen Krezuschraubendreher, - einen kleinen Seitenschneider, - ein Cuttermesser, sowie - einen Satz kleine Schlüsselfeilen Das Cuttermesser sowie die Schlüsselfeilen benötigen wir für die gedruckten Teile. In meinem Fall musste ich das Supportmaterial mit dem Cuttermesser herausbrechen und mit den Feilen ein paar Überstände abfeilen. Hinweis - Verbindungen mit Kabelbinder Die meisten Verbindungen an diesem Roboter werden mit zwei Kabelbinder gelöst. Diese Art eine Verbindung aufzubauen ist wirklich cool und reicht für solche Verbindungen locker aus. https://youtu.be/Ra7Eipm9mgo Du darfst diese jedoch nicht zu stramm anziehen, da diese sich noch etwas bewegen müssen! Schritt 1 - verbinden des ROBO PICO mit dem Gehäuse Verbinden wir zunächst die Platine des ROBO PICO mit der Mounting Plate, dazu nutzen wir vier Schrauben 3,0 x 12 mm. Um diese Platte wiederum mit dem Gehäuse zu verbinden, nutzen wir die vier 3,5 x 12 mm Schrauben.
Tumblr media Tumblr media
Schritt 2 - Servomotor einsetzen Der Servomotor wird rechts in die große Öffnung gesteckt, sodass die Aufnahme des Ruderhorns nach oben zeigt und wird ebenso mit zwei Schrauben 3,0 x 12 mm montiert. An diesen Servomotor wird die Schaufel und diese wiederum die Verbindung zum Kopf montiert.
Tumblr media Tumblr media
Für die Montage des Ruderhorns benötigst du zwei Schrauben, welche beim Servomotor beiliegen. Den Servomotor verbinde ich am Ende mit dem GPIO12 (unten rechts). Schritt 3 - Montage des Ultraschallabstandssensors Ich habe dir oben in der Liste der benötigten Bauteile auch einen Ultraschallabstandssensor mit Grove Schnittstelle verlinkt. Es gibt auf dem Markt auch welche mit einfacher Stiftleiste, jedoch passen diese nicht in das Loch. (Der Abstand zwischen Sender & Empfänger ist zu weit.)
Tumblr media
Ein weiterer Vorteil ist beim Modell mit der Grove Schnittstelle die einfache Verkabelung mit einem vorkonfektioniertem Kabel, welches eine fehlerhafte Verkabelung quasi schon fast ausschließt.
Tumblr media Tumblr media
Das Grove Kabel führe ich durch das Loch vom Servomotor und schließe dieses an den GPIO3 an. Schritt 4 - Montage der Schaufel Die Schaufel wird links mit einem Kabelbinder verbunden und rechts an den Servomotor mit zwei Schrauben über ein Ruderhorn angeschraubt.
Tumblr media Tumblr media
Das Ruderhorn ist jetzt noch nicht final mit dem Servomotor festgeschraubt, da wir unsere Schaufel mit Pythoncode noch ausrichten müssen. Schritt 5 - Montage des Kopfes und der Verbindung zur Schaufel Der Kopf wird wiederum mit einem Kabelbinder mit dem Körper verbunden und über den Link mit der Schaufel verbunden.
Tumblr media Tumblr media
Mit diesem letzten Schritt haben wir nun den Hungry Robot fertig aufgebaut, nun können wir mit der Programmierung beginnen. Programmieren des Hungry Robot in Micropython Den hier verwendeten Raspberry Pi Pico WH kannst du in Circuitpython oder Micropython programmieren und natürlich auch in der Arduino IDE. Nachfolgend zeige ich dir, wie du diesen in Micropython in der Thonny IDE programmierst. Die Thonny IDE kannst du dir kostenfrei unter https://thonny.org/ für Window, macOS und Linux herunterladen. Ggf. musst du deinen Pi Pico noch für Micropython flashen, wie du das machst, habe ich dir im Beitrag Raspberry PI Pico #1 – Vorstellung ausführlich erläutert. Schritt 1 - Programmieren des Servomotors und Ausrichten der Schaufel Im ersten Schritt wollen wir jetzt die Schaufel ausrichten, dazu müssen wir zunächst den Servomotor in die Position 0° bringen. Ich empfehle dir hier den Hungry Robot auf etwas zu stellen, sodass sich ggf. die Schaufel auch ohne Kraft nach unten bewegen kann. # Bibliotheken laden from machine import Pin, PWM from time import sleep #Servomotor am GPIO12 angeschlossen servoPin = 12 #konfigurieren der PWM Kanäle für den Servomotor pwm = PWM(Pin(servoPin)) #der Servomotor Typ SG90 arbeitet mit 50Hz pwm.freq(50) #ermittelte Positionen für die Schaufel valUnten = 1580000 valOben = 500000 #Konstante für die Pause zwischen den Aktionen PAUSE = 2 #Funktion zum öffnen des Mundes def oeffneMund(): global valOben print("oeffneMund") pwm.duty_ns(valOben) sleep(PAUSE) #Funktion zum öffnen des Mundes def schliesseMund(): global valUnten print("schliesseMund") pwm.duty_ns(valUnten) sleep(PAUSE) #Funktion zum deinitialisieren der PWM Kanäle def ende(): pwm.deinit() #Damit das Programm sauber über das STOPP Symbol aus der Toolbar #beendet werden kann und die Funktion ende ausgeführt wird, #bauen wir um die Schleife ein Try/Except try: #initial soll der Mund geschlossen sein schliesseMund() #Schleife von 1..5 for i in range(1,5): #Mund öffnen oeffneMund() #Mund schließen schliesseMund() #Programm beenden ende() #Wenn ein Fehler aufgetreten ist, dann.... except: print("Programm beendet!") ende() Schritt 2 - Erkennen eines Signals vom Ultraschallabstandssensors Im nächsten Schritt müssen wir jetzt ein Signal vom Ultraschallabstandssensor empfangen und auswerten. Die Funktionsweise des Hungry Robot ist ja, dass wir einen kleinen Gegenstand auf die Schaufel legen und dann dieser Gegenstand im Körper des Robots mithilfe eben dieser Schaufel befördert wird. Dazu nehmen wir den Abstand des Ultraschallabstandssensors und reagieren, wenn dieser kleiner als 8 cm ist.
Tumblr media
Wie du einen Ultraschallabstandssensor in Micropython programmierst habe ich dir bereits im Beitrag Programmieren mit MicroPython #8: Ultraschall Abstandssensor HC-SR04 am ESP32 betreiben am ESP32 erläutert, dieses funktioniert auch fast 1:1 mit dem Raspberry Pi Pico WH. Der hier verwendete Ultraschallabstandssensor von Seeed Studio hat nur einen digitalen Pin. Wir müssen also im Code jeweils immer umschalten. ##Import der benötigten Bibliotheken import machine from utime import sleep_us, ticks_us from time import sleep #Starten der Endlosschleife while True: #definieren das der Pin als Ausgang dient pin=machine.Pin(3, machine.Pin.OUT) #Pin aktivieren pin.on() #zwei Microsekunden warten sleep_us(2) #Pin deaktivieren pin.off() #zehn Microsekunden warten sleep_us(10) #Pin aktivieren pin.on() #definieren das der Pin als Eingang pin=machine.Pin(3, machine.Pin.IN) #Endlosschleife solange der Pin LOW/0 ist while pin.value() == 0: pass #zwischenspeichern der vergangenen Microsekunden ticks1 = ticks_us() #Endlosschleife solange der Pin HIGH/1 ist while pin.value() == 1: pass #zwischenspeichern der vergangenen Microsekunden ticks2 = ticks_us() #die differenz zwischen den beiden Werten geteilt durch 58 sind #die Zentimer zum Objekt cm = (ticks2 - ticks1) / 58.0 #Ausgeben des berechenenten Wertes print(cm, " cm") #einlegen einer Pause von 0.5 Sekunden sleep(0.5) Wenn wir uns nun die Werte anschauen, dann sehen wir, dass der Ultraschallabstandssensor die vordere Spitze der Schaufel erfasst, somit haben wir den maximalen Abstand ermittelt und müssen später nur prüfen, ob dieser um x Zentimeter unterschritten wurde.
Tumblr media
Zusammenfassen der Codes Nun haben wir beide Codefragmente fertiggestellt und können diese zu einem zusammenfassen. Zusätzlich habe ich hier noch eine kleine Funktion eingebaut, sodass eine Tonfolge auf dem Piezo Buzzer wiedergeben wird, wenn eine Aktion ausgeführt werden soll. ##Import der benötigten Bibliotheken from utime import sleep_us, ticks_us from machine import Pin, PWM from time import sleep #Servomotor am GPIO12 angeschlossen servoPin = 12 #konfigurieren der PWM Kanäle für den Servomotor pwm = PWM(Pin(servoPin)) #der Servomotor Typ SG90 arbeitet mit 50Hz pwm.freq(50) #ermittelte Positionen für die Schaufel valUnten = 1580000 valOben = 500000 buzzer = PWM(Pin(22)) def makeBeep(): buzzer.freq(350) buzzer.duty_u16(1000) sleep(0.1) buzzer.duty_u16(0) sleep(0.1) buzzer.freq(750) buzzer.duty_u16(1000) sleep(0.1) buzzer.duty_u16(0) sleep(0.1) buzzer.freq(350) buzzer.duty_u16(1000) sleep(0.1) buzzer.duty_u16(0) sleep(0.1) def readUltrasonicSensor(): #definieren das der Pin als Ausgang dient pin=machine.Pin(3, machine.Pin.OUT) #Pin aktivieren pin.on() #zwei Microsekunden warten sleep_us(2) #Pin deaktivieren pin.off() #zeh Read the full article
0 notes
draegerit · 2 years ago
Text
Füllstandsanzeige mit ESP8266, Ultraschall Abstandssensor & ESPEasy
Tumblr media
In diesem Beitrag möchte ich dir gerne zeigen, wie du mit einem Ultraschall Abstandssensor und einem ESP8266 eine Füllstandsanzeige in ESPEasy programmierst bzw. konfigurierst.
Tumblr media
Füllstandsanzeige mit ESP8266, Ultraschall Abstandssensor & ESPEasy Das Projekt ESPeasy habe ich bereits im Beitrag Installieren von ESPEasy auf dem ESP8266 vorgestellt und ein erstes Projekt in ESPeasy – versenden von Sensordaten im Intervall an einen E-Mail Empfänger realisiert. Hier möchte ich nun anknüpfen und dir eine weitere Anwendungsmöglichkeit zeigen, wie du ohne Kenntnisse in der Programmierung eine Füllstandsanzeige am ESP8266 realisieren kannst.
Benötigte Ressourcen für dieses Projekt
Wenn du dieses Projekt nachbauen möchtest, dann benötigt du: - einen ESP8266 Bsp Wemos D1 Mini, - ein Micro-USB-Datenkabel, - einen Ultraschall Abstandssensor Typ HC-SR04, - vier Breadboardkabel, männlich - weiblich, 20 cm, - ein 0,91" OLED Display, - vier Breadboardkabel, männlich - weiblich, 20 cm
Installieren von ESPEasy auf dem ESP8266
Zunächst müssen wir die Firmware ESP-Easy auf den Mikrocontroller überspielen. Wenn du dieses bereits gemacht hast, dann kannst du dieses Kapitel überspringen und gleich zum Punkt "Aufbau der Schaltung" springen. Im nachfolgenden kurzen YouTube-Video zeige ich dir im Detail, wie du innerhalb weniger Minuten ESP-Easy auf deinen ESP8266 installieren kannst. Die hier verwendete ZIP-Datei kannst du vom GitHub Repository https://github.com/letscontrolit/ESPEasy/releases kostenfrei herunterladen. https://youtu.be/x3JxeQL31iU Pinout des ESP8266 Für den Aufbau der Schaltung benötigen wir zunächst das Pinout des Mikrocontrollers.
Tumblr media
Pinout des Microcontrollers Wemos D1 mini
Aufbau der Schaltung
Der ESP8266 verfügt über wenige Pins, diese reichen jedoch für dieses kleine Projekt aus. Schließen wir den Ultraschall Abstandssensor & das OLED Display wie folgt an den Mikrocontroller an. BauteilESP8266Ultraschall AbstandssensorVCC5 VTRIGGERD8ECHOD7GNDGNDOLED DisplayGNDGNDVCC5 VSCLD1SDAD2Anschluss der Bauteile an den ESP8266 für eine Füllstandsanzeige mit ESP-Easy Hier die Schaltung im Detail.
Tumblr media
Schaltung - ESP8266 mit Ultraschall Abstandssensor & OLED Display
Tumblr media
Schaltung - ESP8266 mit Ultraschall Abstandssensor & OLED Display
Einrichten des Ultraschall-Abstandssensors & OLED Displays in ESPEasy
Für die Einrichtung des Ultraschall Abstandssensors und des OLED Displays musst du keine Kenntnisse in einer Programmiersprache haben, das ist ein sehr großer Vorteil von ESPEasy. Die offizielle Dokumentation zu den verwendeten Sensoren & Aktoren findest du unter: - https://espeasy.readthedocs.io/en/latest/Plugin/P013_HC-SR04.html - https://www.letscontrolit.com/wiki/index.php/OLEDDisplay https://youtu.be/cM70GOmBghA Rule - Code für das OLED Display Das Script für die Anzeige auf dem Display schreiben wir im Reiter "Rules" wie nachfolgend gezeigt. Du kannst beliebige Stufen hinzufügen! On Sensor#Distance Do OLEDCMD, clear OLED, 1, 2, Fuellstand OLED, 2, 2, ---------- OLED, 3, 2, Hoehe: cm If < 5 And > 0 LogEntry,'full' OLED, 4,2, Behaelter: voll Elseif < 50 And > 5 LogEntry,'half' OLED, 4,2, Behaelter: halb Elseif > 50 LogEntry,'empty' OLED, 4,2, Behaelter: leer Endon Read the full article
0 notes
draegerit · 2 years ago
Text
Calliope Mini mit Ultraschall Abstandssensor
Tumblr media
In diesem Beitrag möchte ich dir zeigen, wie du den Ultraschall Abstandssensor HC-SR04 am Calliope Mini mit Microsoft MakeCode programmierst.
Tumblr media
Calliope Mini mit Ultraschall Abstandssensor Den Calliope Mini und ein paar Sensoren / Aktoren habe ich dir bereits in nachfolgenden Beiträgen auf diesem Blog gezeigt. - Vorstellung des Calliope Mini - Calliope Mini mit DHT11 & LCD-Display - Calliope Mini mit Grove Relaisshield - Programmieren der RGB LED am Calliope Mini
Benötigte Ressourcen für dieses Projekt
Wenn du das Projekt nachbauen möchtest, dann benötigst du: - einen Calliope Mini, - ein Micro-USB-Datenkabel, - einen Ultraschall Abstandssensor mit Grove Interface
Tumblr media Tumblr media
Pinout des Calliope Mini
Hier das Pinout des Calliope Mini.
Tumblr media
Pinout der Grove Schnittstellen am Calliope Mini 1.3
Anschluss des Ultraschallabstandssensors an den Calliope Mini
In dem Onlinetool MakeCode verwenden wir fest definierte Elemente, diese sind vorkonfiguriert und daher ist unsere Schaltung eigentlich von vorneherein definiert. Den Ultraschall Abstandssensor schließen wir an das Grove Interface beim Taster B an.
Tumblr media Tumblr media
Programmieren in Microsoft MakeCode
Die grafische Entwicklungsumgebung MakeCode von Microsoft findest du für den Calliope unter https://makecode.calliope.cc/. Anzeigen der Werte in einem Diagramm Fangen wir mit einem einfachen, kleinen Beispiel an und stellen den Abstand grafisch auf der 5x5 LED Matrix an.
Tumblr media
Im nachfolgenden YouTube-Video zeige ich dir, wie du den Ultraschall Abstandssensor an den Calliope Mini anschließt und das Programm in MakeCode erstellst. https://youtu.be/G_S1cv_gQdE Anzeigen der Werte auf einem Grove LCD Display Im nächsten Schritt möchte ich dir gerne zeigen, wie du die Werte auch auf einem LCD-Display anzeigen lassen kannst. Auf dem Display lasse ich die Werte mathematisch gerundet anzeigen, damit entfallen alle Nachkommastellen.
Tumblr media
Das LCD-Display habe ich dir bereits im Beitrag Calliope Mini mit DHT11 & LCD-Display gezeigt. Im nachfolgenden YouTube-Video zeige ich dir, wie du das kleine Programm in Microsoft MakeCode erstellst. https://youtu.be/-E85-nD0AP0 Read the full article
0 notes
draegerit · 3 years ago
Text
OPEN SMART Rich Shield TWO für den Arduino UNO
Tumblr media
In diesem Beitrag möchte ich dir Shield OPEN SMART Rich Shield TWO für den Arduino UNO vorstellen und zeigen, wie du die verschiedenen Sensoren & Aktoren in der Arduino IDE programmieren kannst.
Tumblr media
OPEN SMART Rich Shield TWO für den Arduino UNO Auf diesem Blog habe ich dir bereits einige solcher Module vorgestellt. Ich finde diese Shields besonders für Anfänger geeignet, da ein teils fehleranfälliges verkabeln der Sensoren & Aktoren entfällt. Du brauchst quasi nur einen Arduino UNO, ein Shield und ein USB Datenkabel und natürlich deinen Computer.
Tumblr media
Multifunktionales Shield
Tumblr media Tumblr media Tumblr media
Multi Purpose Shield V2 von Keyestudio
Tumblr media
Multifunktionales Shield von YwRobot
Tumblr media
Der Preis dieser Shields ist gemessen an den verbauten Sensoren & Aktoren recht gut und somit kommt man meist damit günstiger weg als, wenn man alles einzeln kaufen würde.
Bezug
Das hier vorgestellte OPEN SMART Rich Shield TWO bekommst du auf zbsp. aliexpress.com für derzeit knapp 8 € zzgl. Versandkosten.
Aufbau des OPEN SMART Rich Shield TWO
Auf diesem Shield sind verbaut: - eine 16x8 LED Matrix, - ein Battery Display, - ein Rotary Decoder, - ein digitaler Temperatursensor DS18B20, - ein Geräuschdetektor, - ein analoger 2 Achsen Joystick, - ein Bewegungssensor / PIR, - ein Sockel für einen Ultraschallabstandssensor vom Typ HC-SR04
Tumblr media Tumblr media Tumblr media Tumblr media
Anschluss der Sensoren & Aktoren
Auf dem Rich Shield TWO von OPEN SMART sind einige Sensoren & Aktoren verbaut, auf der Platine sind die Pins beschriftet und man kann ablesen wie diese mit dem Arduino UNO verbunden sind. Für del Ultraschallabstandssensor vom Typ HC-SR04 ist ein Sockel verbaut, der Sensor liegt jedoch nicht dabei! Sensor / AktorPinArduino UNOUltraschallabstandssensor HC-SR04GNDECHOD8TRIGGERD75V8x16 LED Matrix (I²C)SDAanalog A4SCLanalog A5Battery Display (SPI)CLKD10DIOD114fach RGB LEDsA3analoger 2 Achsen JoystickXA0YA1Temperatursensor DS18B20D5Bewegungssensor / PIRD6GeräuschdetektorA2Rotary EncoderSAD2SBD3SWD4
Hinweis
Dieses Shield ist für den Arduino UNO konzipiert, es passt auch auf einen Arduino Leonardo, jedoch hat dieser Mikrocontroller die I²C Pins SDA & SCL nicht an den analogen Pins A4 & A5. Somit wird die 8x16 LED Matrix nicht funktionieren.
Programmieren des OPEN SMART Richt Shield TWO in der Arduino IDE
Für einige der Sensoren / Aktoren benötigst du eine Bibliothek, wie man eine solche in der Arduino IDE installiert, habe ich dir bereits im Beitrag Arduino IDE, Einbinden einer Bibliothek ausführlich erläutert. An den entsprechenden Stellen werde ich dir einen Link zur ZIP-Datei liefern. Vorbereiten des Arduino UNO zum Programmieren Wenn du deinen Arduino UNO bereits für andere Projekte verwendet hast, ist es gut, wenn dieser auf eine Art "default" Sketch gesetzt wird. Dieses hat den Vorteil, dass ggf. Pins welche zuvor auf HIGH gesetzt sind nicht aktiviert sind und somit dein Shield keinen Schaden nehmen kann. In meinem Fall schreibe ich mir immer ein kleines Programm mit einer seriellen Ausgabe. void setup() { Serial.begin(9600); } void loop() { Serial.println("Test"); delay(500); } Den Rotary Decoder können wir nutzen, um die Segmente des Battery Display zu steuern. Den Rotrary Decoder habe ich dir bereits im Beitrag Arduino Lektion 40: Drehregler KY-040 vorgestellt und gezeigt, wie dieser programmiert wird. Für das Battery Display benötigen wir zusätzlich die Bibliothek TM1651, du findest diese zbsp. auf dem GitHub Repository von mworkfun / TM1651 als ZIP-Datei zum download. Da jedoch der Rotary Decoder keinen fixen End- / Startpunkt hat, müssen wir hier die Schritte hinauf oder nach unten zählen und so die Segmente aktivieren / deaktivieren. //Bibliothek zum ansteuern des Battery Displays #include "TM1651.h" //Pins des Displays definieren #define BATTERY_DISPLAY_CLK 10 #define BATTERY_DISPLAY_DIO 11 //Instanz eines Objektes erzeugen TM1651 batteryDisplay(BATTERY_DISPLAY_CLK, BATTERY_DISPLAY_DIO); //Pins des Rotary Decoders definieren #define ROTARY_DECODER_CLK 2 #define ROTARY_DECODER_DT 3 //Variablen zum merken der Positionen int posCount = 0; int lastPosition; int currentPosition; void setup() { pinMode (ROTARY_DECODER_CLK, INPUT); pinMode (ROTARY_DECODER_DT, INPUT); //initiales befüllen der Variable lastPosition lastPosition = digitalRead(ROTARY_DECODER_CLK); } void loop() { //lesen des aktuellen Wertes currentPosition = digitalRead(ROTARY_DECODER_CLK); //Wenn der aktuelle Wert ungleich des letzen ist dann mache... if (currentPosition != lastPosition) { //Wenn der Wert höher ist dann die Variable posCount um eines erhöhen, //andernfalls um eins verringern (digitalRead(ROTARY_DECODER_DT) != currentPosition) ? posCount ++ : posCount--; //Wenn der Wert in der Variable posCount sich zwischen 0 und 8 befindet //dann soll dieser auf dem Battery Display angezeigt werden. if (posCount >= 0 && posCount < 8) { batteryDisplay.displayLevel(posCount); } } //Überschreiben der letzen Position mit der aktuellen lastPosition = currentPosition; } analoger Joystick Auf der Platine ist ein kleiner, analoger 2 Achsen Joystick verbaut. Wie du einen analogen Joystick programmierst habe ich dir im Beitrag Arduino Lektion 38: Joystick gezeigt, jedoch hat dieser verbaute Joystick keinen zusätzlichen Taster. Lesen wir zunächst die X & Y Position des Joysticks aus. #define joystickX A0 //X Achse des Joysticks am analogen PIN A0. #define joystickY A1 //Y Achse des Joysticks am analogen PIN A1. void setup() { //begin der seriellen Kommunikation mit 9600 baud Serial.begin(9600); } void loop() { //auslesen der X Koordinate int x = analogRead(joystickX); //auslesen der Y Koordinate int y = analogRead(joystickY); //Ausgeben der Daten auf der seriellen Schnittstelle Serial.print("aktuelle Koordinaten des Joysticks (x,y): "); Serial.print(x); Serial.print(", "); Serial.println(y); } 16x8 LED Matrix Die 16x8 LED Matrix wird per I²C und dem Chip VK16K33 betrieben. Ein Datenblatt zu diesem Chip findest du unter https://cdn.sparkfun.com/assets/c/8/7/2/5/VK16K33Datasheet.pdf.
Tumblr media
Zum Programmieren dieser Matrix nutze ich die Bibliothek LED Backpack, welche man als ZIP-Datei vom GitHub Repository adafruit / Adafruit_LED_Backpack laden kann. Auf dem Display kannst du Smileys, Text und einfache geometrische Figuren zeichnen, dafür bietet dir die genannte Bibliothek jeweils Funktionen, somit musst du lediglich die einzelnen Funktionen aufrufen, ohne viel zu programmieren. Die I²C Adresse der 16x8 LED Matrix ist 0x70! Ausgeben von "Hello World!" auf der LED Matrix Geben wir zunächst die Zeile "Hello World!" auf der LED Matrix aus. //einbinden der benötigten Bibliotheken #include #include #include "Adafruit_LEDBackpack.h" //initialisieren eines Objektes //vom Typ Adafruit_8x16matrix Adafruit_8x16matrix matrix = Adafruit_8x16matrix(); void setup() { //begin der Kommunikation mit der LED Matrix //über die I²C Adresse 0x70 matrix.begin(0x70); } void loop() { //setzen der Textgröße matrix.setTextSize(1); //deaktivieren des automatischen Umbruchs von langen Texten matrix.setTextWrap(false); //aktivieren der LEDs matrix.setTextColor(LED_ON); //drehen der LED Matrix matrix.setRotation(1); //eine Schleife von 7 bis -60 for (int8_t x = 7; x >= -60; x--) { //leeren des Displays matrix.clear(); //setzen des Cursors an die Position matrix.setCursor(x, 0); //schreiben der Textzeile "Hello World!" matrix.print("Hello World!"); //ausgeben der Daten matrix.writeDisplay(); //eine kleine Pause von 100 ms. delay(100); } } Ausgeben von Smileys auf der LED Matrix Wie erwähnt kannst du neben Text auch Punkte, Linien etc. ausgeben, mit dieser Funktion kannst du dann auch Smileys ausgeben.
Tumblr media Tumblr media Tumblr media
Für die Programmierung nutze ich wie erwähnt die Bibliothek von Adafruit, bei dieser liegen einige Beispiele für eine 16x8 LED Matrix bei. Aus einem dieser Beispiele habe ich mir die Smileys entnommen. //einbinden der benötigten Bibliotheken #include #include #include "Adafruit_LEDBackpack.h" //initialisieren eines Objektes //vom Typ Adafruit_8x16matrix Adafruit_8x16matrix matrix = Adafruit_8x16matrix(); //definieren der Smileys static const uint8_t PROGMEM smile_bmp = { B00111100, B01000010, B10100101, B10000001, B10100101, B10011001, B01000010, B00111100}, neutral_bmp = { B00111100, B01000010, B10100101, B10000001, B10111101, B10000001, B01000010, B00111100}, frown_bmp = { B00111100, B01000010, B10100101, B10000001, B10011001, B10100101, B01000010, B00111100}; void setup() { //begin der Kommunikation mit der LED Matrix //über die I²C Adresse 0x70 matrix.begin(0x70); } void loop() { //leeren der LED Matrix matrix.clear(); //drehen der LED Matrix matrix.setRotation(1); //zeichnen eines Bitmaps in den zwischenspeicher matrix.drawBitmap(0, 0, smile_bmp, 8, 8, LED_ON); //schreiben der zwischenspeichers auf das Display matrix.writeDisplay(); //eine kleine Pause von 500 ms. delay(500); matrix.clear(); matrix.setRotation(1); matrix.drawBitmap(0, 0, neutral_bmp, 8, 8, LED_ON); matrix.writeDisplay(); delay(500); matrix.clear(); matrix.setRotation(1); matrix.drawBitmap(0, 0, frown_bmp, 8, 8, LED_ON); matrix.writeDisplay(); delay(500); } Mit dem analogen Joystick und der 8x16 LED Matrix können wir einen kleinen Punkt auf der selbigen bewegen. Wenn man das ganze ausbauen würde, könnte man sogar das Spiel Snake nachprogrammieren. Digitaler Temperatursensor DS18B20 Den Temperatursensor DS18B20 habe ich dir bereits in diversen Beiträgen auf meinem Blog vorgestellt. - Arduino Lektion 48: Temperatursensor DS18B20 - Arduino UNO R3 mit DS18B20 Sensor & Relais - Arduino Lektion 81: ESP-01S Temperatursensorshield DS18B20 Nachfolgend möchte ich dir zeigen, wie du die Temperatur auslesen und auf der zuvor gezeigten 16x8 LED Matrix anzeigen lassen kannst. Zum Auslesen der Temperatur nutze ich die Bibliothek //einbinden der benötigten Bibliotheken #include #include #include "Adafruit_LEDBackpack.h" #include #include #define ONE_WIRE_BUS 5 OneWire oneWire(ONE_WIRE_BUS); DS18B20 sensor(&oneWire); //initialisieren eines Objektes //vom Typ Adafruit_8x16matrix Adafruit_8x16matrix matrix = Adafruit_8x16matrix(); //Pins des Rotary Decoders definieren #define ROTARY_DECODER_CLK 2 #define ROTARY_DECODER_DT 3 //Variablen zum merken der Positionen int posCount = 0; int lastPosition; int currentPosition; void setup() { //begin der Kommunikation mit der LED Matrix //über die I²C Adresse 0x70 matrix.begin(0x70); sensor.begin(); pinMode (ROTARY_DECODER_CLK, INPUT); pinMode (ROTARY_DECODER_DT, INPUT); //initiales befüllen der Variable lastPosition lastPosition = digitalRead(ROTARY_DECODER_CLK); } void loop() { sensor.requestTemperatures(); while (!sensor.isConversionComplete()); String temp = "Temp:"; temp += String(sensor.getTempC(), 2); temp += " C"; //setzen der Textgröße matrix.setTextSize(1); //deaktivieren des automatischen Umbruchs von langen Texten matrix.setTextWrap(false); //aktivieren der LEDs matrix.setTextColor(LED_ON); //drehen der LED Matrix matrix.setRotation(1); //eine Schleife von 7 bis -60 for (int8_t x = 7; x >= -60; x--) { //leeren des Displays matrix.clear(); //setzen des Cursors an die Position matrix.setCursor(x, 0); //schreiben der Textzeile matrix.print(temp); //ausgeben der Daten matrix.writeDisplay(); int pause = lastposition * 15; delay(pause); readRotaryDecoder(); } } void readRotaryDecoder() { //lesen des aktuellen Wertes currentPosition = digitalRead(ROTARY_DECODER_CLK); //Wenn der aktuelle Wert ungleich des letzen ist dann mache... if (currentPosition != lastPosition) { //Wenn der Wert höher ist dann die Variable posCount um eines erhöhen, //andernfalls um eins verringern (digitalRead(ROTARY_DECODER_DT) != currentPosition) ? posCount ++ : posCount--; //Wenn der Wert in der Variable posCount sich zwischen 0 und 8 befindet //dann soll dieser auf dem Battery Display angezeigt werden. if (posCount >= 0 && posCount < 8) { batteryDisplay.displayLevel(posCount); } } //Überschreiben der letzen Position mit der aktuellen lastPosition = currentPosition; Serial.println(lastPosition); } Geräuschdetektor & 4fach NeoPixel Einen Geräuschdetektor habe ich dir bereits in den nachfolgenden Beiträgen vorgestellt. - Arduino Projekt: Relais mit Geräuschdetektor schalten - Arduino Lektion 19 – Teil 1: Hochempfindlicher Geräuschdetektor „Klatschdetektor“ Der Sensor wird per analogen Anschluss ausgelesen und liefert Werte zwischen 0 und 1023. Diese Werte können wir recht einfach mit der Funktion map aus der Arduino Bibliothek auf die 4 vorhandenen NeoPixel anwenden. In dem kleinen Beispiel aktiviere ich jeweils die NeoPixel nach Wert des Geräuschdetektors. D.h. Read the full article
0 notes
draegerit · 4 years ago
Video
instagram
Raspberry Pi Pico mit Ultraschallabstandssensor RCW-001 und 0,91 " OLED Display #raspberrypi #pico #Ultraschallsensor #ultrasonic #oled #diy #maker #tech #techy #technology #electronic #components #draegerit (hier: Stefan Draeger Software) https://www.instagram.com/p/CPyciHbq_II/?utm_medium=tumblr
0 notes
draegerit · 4 years ago
Photo
Tumblr media
Raspberry Pi Pico mit Ultraschallabstandssensor RCW-001 und 0,91" OLED Display #raspberrypi #pico #Ultraschallsensor #ultrasonic #oled #diy #maker #tech #techy #technology #electronic #components #draegerit (hier: Stefan Draeger Software) https://www.instagram.com/p/CPyTxREr0Qd/?utm_medium=tumblr
0 notes