In diesem Beitrag möchte ich dir den Lolin S2 mini V1 vorstellen und zeigen wie du diesen programmieren kannst.
- Bezug
- Lieferumfang
- Technische Daten
- Pinleiste(n) anlöten
- Programmieren
- Programmieren in MicroPython mit der Thonny IDE
- Interne LED mit MicroPython zum Blinken bringen
- Programmieren in MicroPython mit der Thonny IDE
- Wemos Shields / Module im Test
- 1fach NeoPixel Wemos Shield
- 1 Button Shield von Wemos
Bezug
Den Mikrocontroller habe ich über aliexpress.com für 6,4 € inkl. Versandkosten erstanden. Du findest diesen aber auch auf ebay.de* finden, jedoch zu einem deutlich höheren Preis.
Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!
Zum Zeitpunkt der Erstellung dieses Beitrages war der Mikrocontroller auf aliexpress.com nicht verfügbar. Jedoch wird dieser garantiert wieder lieferbar sein und somit kann man bei etwas Wartezeit bares Geld sparen.
Lieferumfang
Zum Lieferumfang des Mikrocontrollers gehört neben der Platine noch 4 8polige Pinleisten ein kleiner Aufkleber mit den Pinbeschriftungen.
Technische Daten
Hier nun zunächst die technischen Daten des Mikrocontrollers.
Mikrochip | ESP32-S2FN4R2 |
CPU | Xtensa® single-core 32-bit LX7 |
Taktgeschwindigkeit | 240 MHz |
Speicher | 4 MB Flash 2 MB PSRAM |
GPIOs | 27x IOs |
Schnittstellen | I²C, SPI, UART, USB OTG |
Betriebsspannung | 3,3 V |
Abmaße (L x B) | 34,5 mm x 25,4 mm |
Gewicht | 2,4 g |
Aufbau & Pinout
Der Mikrocontroller verfügt über eine USB-Typ-C Schnittstelle, über welche man diesen mit Strom versorgen kann (zbsp. über eine Powerbank) und auch Programmieren kann.
Des Weiteren verfügt dieser über eine interne Buildin LED am Pin 15 sowie einen Reset Taster links und einen Taster “0” rechts.
Das Bild vom Pinout wurde mir freundlicherweise von der Firma Wemos bereitgestellt. Du findest auf der Seite https://www.wemos.cc/en/latest/s2/s2_mini.html weitere Informationen zu diesem Mikrocontroller.
Pinleiste(n) anlöten
Wie bereits erwähnt liegen dem Mikrocontroller 4 8polige Pinleisten bei. Von diesen möchte ich jedoch nur 2 verwenden. Der Mikrocontroller ist voll kompatibel mit den bereits bekannten Wemos D1 Mini Shields und daher benötige ich für weitere Projekte eine Buchsenleiste statt einer Pinleiste.
Die Buchsenleisten für die Shields werden jeweils außen an den Mikrocontroller gelötet und die Stiftleisten auf die inneren Lötaugen.
Programmieren
Der Mikrocontroller lässt sich über C/C++ mit der Arduino IDE und mit MicroPython über der Thonny IDE programmieren. Beide IDEs habe ich bereits in einigen Beiträgen auf diesem Blog vorgestellt und verwendet.
In meinem Fall verwende ich einen Microsoft Windows 10 PC und dort wird der Mikrocontroller sofort eingerichtet, wenn dieser per USB angeschlossen wird.
Programmieren in MicroPython mit der Thonny IDE
Auf dem mir vorliegenden Mikrocontroller ist eine Firmware vorinstalliert mit welcher man diesen in MicroPython programmieren kann. Zum Programmieren nutze ich wie erwähnt die Thonny IDE welche kostenfrei unter thonny.org heruntergeladen werden kann.
Wenn die IDE gestartet ist, dann muss man unten rechts bei “Python 3.7.9” den korrekten Interpreter & den COM Port wählen.
Ist dieses geschehen, so kann man ein erstes kleines “Hello World!” Programm schreiben (siehe Video).
import timewhile True: print("Hello World!") time.sleep(0.250)
Interne LED mit MicroPython zum Blinken bringen
Wie man eine LED in MicroPython am ESP32 programmiert, habe ich bereits im Beitrag Programmieren mit MicroPython #2: steuern von Leuchtdioden (LED) ausführlich erläutert.
Ich habe in dem Code lediglich den Pin auf 15 für die interne LED umstellen müssen, dann lief das Programm auch sogleich.
from machine import Pinimport timeled = Pin(15, Pin.OUT) while(1): led.on() print("AN") time.sleep(0.5) led.off() print("AUS") time.sleep(0.5)
Wemos Shields / Module im Test
Der Mikrocontroller ist laut Hersteller voll kompatibel mit den bereits erhältlichen Wemos Shields.
Mit weiteren verlauf möchte ich dir nun zeigen wie du einige dieser Shields mit MicroPython programmierst.
1fach NeoPixel Wemos Shield
Das 1fach NeoPixel Wemos Shield habe ich bereits im Beitrag Wemos D1 mini Shield: RGB LED vorgestellt und ein kleines Programm in der Arduino IDE gezeigt. Hier möchte ich dir jetzt ein kleines Programm zeigen, welches die RGB LED in rot, grün und blau aufleuchten lässt.
import neopixelimport timefrom machine import Pin rgbLeds = neopixel.NeoPixel(Pin(33, Pin.OUT), 1, bpp=4)while True: rgbLeds[0] = (64, 0, 0, 8) rgbLeds.write() time.sleep(0.250) rgbLeds[0] = (0, 64, 0, 8) rgbLeds.write() time.sleep(0.250) rgbLeds[0] = (0, 0, 64, 8) rgbLeds.write() time.sleep(0.250)
1 Button Shield von Wemos
Das 1 Button Shield von Wemos verfügt über einen 12 mm x 12 mm Taster welcher über den Pin 18 am Mikrocontroller angesteuert werden kann.
from machine import Pinfrom time import sleep# Taster am GPIO18 angeschlossenbutton = Pin(18, Pin.IN)#Endlosschleifewhile True: # Wenn der Taster gedrückt ist dann... if not button.value(): # Ausgabe der Zeichenkette auf # der seriellen Schnittstelle print("Taster gedrückt!") sleep(0.1)
In dem Video erkennt man gut, dass der Taster prellt, d.h. dass bei einem einmaligen drücken 2 Signale ausgegeben werden.
Um dieses Prellen des Tasters zu verhindern, muss man lediglich beim Drücken des Tasters eine kleine Pause von 0,05 ms einlegen.
#Endlosschleifewhile True: # Wenn der Taster gedrückt ist dann... if not button.value(): # Ausgabe der Zeichenkette auf # der seriellen Schnittstelle print("Taster gedrückt!") # eine kleine Pause um den Taster zu entprellen sleep(0.05) sleep(0.1)
Fazit & Ausblick
Der kleine Mikrocontroller hat durch seine Vielzahl an verfügbaren Pins einen deutlichen Vorteil gegenüber vom Wemos D1 Mini. Aus diesem Grund möchte ich ein paar bestehende Projekte mit dem Wemos D1 Mini auf den Lolin S2 mini umstellen und schauen ob sich diese noch etwas erweitern lassen würden.
Jedoch werde ich mir erst einmal die Arduino IoT Cloud anschauen und diesen Mikrocontroller mit mit dem Service verbinden.