Lolin S2 mini V1 im Test

In diesem Beitrag möchte ich dir den Lolin S2 mini V1 vorstellen und zeigen wie du diesen programmieren kannst.

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.

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.

MicrochipESP32-S2FN4R2
CPUXtensa® single-core 32-bit LX7
Taktgeschwindigkeit240 MHz
Speicher4 MB Flash
2 MB PSRAM
GPIOs27x IOs
SchnittstellenI²C, SPI, UART, USB OTG
Betriebsspannung3,3 V
Abmaße (L x B)34,5 mm x 25,4 mm
Gewicht2,4 g
Technische Daten des Lolin S2 mini V1

Aufbau & Pinout des Lolin S2 mini

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.

Pinout des Lolin S2 mini von Wemos

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.

Ausgabe von „Hello World!“ in MicroPython mitdem Lolin S2 mini

Ist dieses geschehen, so kann man ein erstes kleines „Hello World!“ Programm schreiben (siehe Video).

import time

while 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 Pin

import time

led = Pin(15, Pin.OUT) 
while(1):  
  led.on() 
  print("AN")
  time.sleep(0.5)
  led.off() 
  print("AUS")
  time.sleep(0.5)
blinkende Buildin LED am Lolin S2 mini

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 nun ein kleines Programm zeigen welches die RGB LED in rot, grün und blau aufleuchten lässt.

import neopixel
import time
from 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)
1fach RGB LED Shield von Wemos am Lolin S2 mini

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 Pin
from time import sleep

# Taster am GPIO18 angeschlossen
button = Pin(18, Pin.IN)
#Endlosschleife
while 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.

#Endlosschleife
while 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.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.