Skip to content

Infos und Beispiele zum Meowbit von kittenbot.cn

Notifications You must be signed in to change notification settings

tinkerthon/meowbit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Meowbit

Ich habe Ende 2021 ein Update geschrieben.

Infos und Beispiele zum Meowbit von https://kittenbot.cn

Das Meowbit ist eine kleine Spielekonsole des chinesischen Herstellers Kittenbot. Du kannst es auf Amazon kaufen. Auch Adafruit vertreibt es seit August 2019.

Meowbit, bbc:microbit, Calliope Mini

Das Meowbit nutzt als Rechenkern einen STM32F401RET6, das ist ein 32-Bit-ARM-Cortex-M4-Prozessor (Datenblatt). Darüber hinaus ist eine beeindruckende Menge an Hardware eingebaut:

  • LED für Lade- / Arbeitsanzeige
  • Lichtsensor
  • Schiebeschalter zum Ein-/Ausschalten
  • zwei programmierbare LED
  • Reset-Taste
  • DFU-Modus-Taste (auch zum Aufrufen des Menüs durch die Makecode-Firmware)
  • 160 x 128 tft Farbbildschirm
  • Temperaturfühler
  • vier programmierbare Richtungstasten
  • programmierbarer Summer
  • zwei programmierbare Tasten A und B
  • 40-Pin-Goldkontaktleiste, kompatibel zum micro:bit
  • USB-Port zum Laden und Programmieren
  • SD-Kartenslot (zum Speichern von Programmen und nachträglichen Erweitern um ein Bluetooth- oder WLAN-Modul)
  • Klinkenbuchse zum Verbinden mehrerer Geräte (JacDac)
  • 6-Achsen-Gyroskop und Beschleunigungsmesser
  • 3,7 V Lithium-Batterie-Schnittstelle

Standardmäßig sind 2 MByte des SPI-Flash-Speichers mit einer Unicode-Zeichentabelle belegt.

Hier ist die Pinbelegung der 40-poligen Steckerleiste (Stand: 2020-01-18. Original):

Pinbelegung

Das Meowbit kann auf drei Arten programmiert werden:

  • https://arcade.makecode.com/ von Microsoft. Das Meowbit ist eine der offiziell unterstützten Spielekonsolen

    Microsoft Arcade

  • https://www.kittenbot.cc/pages/software von Kittenbot. Es gibt eine Variante namens Kittenblock von MIT Scratch mit MicroPython-Integration für Windows und macOS und eine angepasste Version des Mu-Editors, diesen leider nur für Windows.

  • https://codewith.mu/en/download von Mu-Editor. Ich habe hiermit allerdings noch nicht geschafft, die REPL (Befehlszeile) auf dem Meowbit aufzurufen.

Python mit Kittenblock

Das Meowbit ist eigentlich sehr gut dokumentiert, leider allerdings nur in Chinesisch. Hier hilft der Chrome-Browser mit seiner automatischen Übersetzungsfunktion.

Meowbit Dokumentation

Um die Hardware des Meowbit in MicroPython nutzen zu können, müssen einige Bibliotheken auf ddas PYBFLASH-Laufwerk gezogen werden. Diese Bibliotheken liegen im Ordner Applications/Kittenblock.app/Contents/extensions/s3ext-meowbit:

  • buzz.py - für den Summer
  • mpu6050.py - für das sechsachsige Gyroskop
  • tft.py - für den Farbbildschirm
  • turtle.py - für Zeichnungen mit Turtle-Grafik

Bildschirm und Tasten

Der Bildschirm hat eine Auflösung von 160 (horizontal) und 128 (vertikal). Der Ursprung (Punkt 0,0) ist oben links. Die Bildschirmmitte liegt demnach bei (80, 64).

Der Code für die folgenden Beispiele liegt im code/-Unterverzeichnis.

01 Erster Test: 01 Blinkende LED

Hier ist ein erstes Programm zum Blinken der LED

Blinkende LED

02 Befehle für Leuchtdioden (LEDs)

Dies sind die Befehle für die eine, grüne LED am Gerät oben rechts:

  • led1.on() # LED an
  • led1.off() # LED aus
  • led1.toggle() # LED umschalten
  • led1.intensity(x) # Helligkeit der LED

Hier ein weiteres Beispiel:

LED-Helligkeit

03 Atmende LED

Wie die Statusleuchte an Macs:

Atmende LED

04 Tasten per Interrupt

Für gute Responsivität können die Tasten per Interrupt abgefragt werden. Einen passenden, blauen Block habe ich nicht gefunden (obwohl er in der Originaldokumentation abgebildet ist), aber hier ist der Python-Code.

Ich habe in der Anleitung ein komplexeres Beispiel inklusive der Blöcke gefunden:

mehr Tasten

Die komplette Dokumentation zum Abfragen der Tasten liegt hier.

05 Töne & Melodien

Für Töne gibt es zwei Blöcke:

Töne

Der erste Block kann einen Ton einer bestimmten Tonhöhe erzeugen. Mit dem zweitren Block lassen sich ganze Melodien abspielen. Die Melodie im Beispiel besteht aus 5 Noten.

Das folgende Beispiel nutzt die Fähigkeit von Scratch 3, Listen zu verwalten, um darin eine Melodie zu speichern:

Zwei Tiger

Hier sind die Listen auf der Bühne:

Listen

Hier ist der erzeugte Python-Code.

Das Lied wird in drei Listen verwaltet:

  • note enthält eine Tonleiter
  • song speichert die Noten des Liedes als Index der Tonleiter (von 1 an gezählt)
  • beat gibt für jede Note die Länge in Millisekunden

Die Dokumentation der Musikfunktionen liegt hier.

08 Bildschirm

Hier sind die Blocke zur Anzeige auf dem Bildschirm:

Bildschirm

Dies sind die Python-Funktionen dazu:

import pyb
import framebuf

tft = pyb.SCREEN()
fbuf = bytearray(160*128*2)
fb = framebuf.FrameBuffer(fbuf, 160, 128, framebuf.RGB565)

# Fülle den Bildschirm mit einer Farbe (Hex-Code)
fb.fill(color)

# Zeige einen Bildpunkt bei X und Y kn einer bestimmten Farbe (ein Hex-Wert)
fb.pixel(x, y, color)

# Zeichne eine Linie zwischen dem Startpunkt x1,y1 und x2,y2 in einer bestimmten Farbe (Hex-Code) 
fb.line(x1, y1, x2, y2, color)

# Zeichne ein Rechteck von der Ecke x,y mit Breite w, Höhe h und Farbe color (Hex-Code)
fb.rect(x, y, w, h, color)

# Schreibe den Text "content" ab x,y mit Farbe color
fb.text("content", x, y, color)

# Frische den Bildschirminhalt auf
tft.show(fb)

Hier ist ein kleines "Hallo Welt"-Programm:

Hallo

Jetzt noch ein größeres Programm:

Das ist das Ergebnis:

Ergebnis

Die komplette Dokumentation der Framebuffer-Klasse findet sich hier. Hier ist eine Zusammenfassung:

  • Klasse FrameBuffer (Puffer, Breite, Höhe, Höhe, Format, Schrittweite = Breite)

Methoden auf der FrameBuffer-Klasse:

  • fill (Farbe)
  • pixel (x, y, Farbe)
  • hline (x, y, w, c)
  • vline (x, y, h, c)
  • line (x1, y1, x2, y2, c)
  • rect (x, y, b, h, c)
  • fill_rect (x, y, w, h, c)
  • text (s, x, y, c)
  • loadbmp ('x')
  • loadgif ('x', f)
  • scroll (xstep, ystep)
  • blit (fbuf, x, y, key)

Kurzdokumentation

Ich habe oben bereits einige Einstiegspunkte in die Kurzdokumentation für die Pythonprogrammierung des Meowbits genannt. Diese Links führen auf eine chinesische Seite. Es gibt die Dokumentation des Meowbits leider im Augenblick nur so. Die chinesischen Seiten lassen sich allerdings ganz ordentlich über die Übersetzungsfunkton des Chrome-Browsers übersetzen. Hier sind die Abschnitte:

Grundlagen

  • Schnellstart
  • LED
  • Farbdisplay
  • Summer
  • Tastenerkennung
  • Temperatur- / Lichtsensor
  • Gyroskop

Kurzreferenz

  • Universelle Tastenabfrage
  • Timing-Sleep verzögern
  • Lichtsteuerung-LED
  • Pin Control-Pin
  • Externer Interrupt-ExtInt
  • Zeitsteuerung-Timer
  • Pulsweitenmodulation-PWM
  • Analog-Digital-Wandler
  • Serieller Bus-UART
  • Zweidraht-Bus-I2C
  • Vierleiter-Bus-SPI
  • Framebuf

Fortgeschritten

  • Zeige mehrere Sprachen
  • Kreiselwert anzeigen

About

Infos und Beispiele zum Meowbit von kittenbot.cn

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages