lehrkraefte:blc:informatik:glf19:oxocard:oxohack

OxoCards mit den Schüler-Accounts

Die OxoCard wird zwar vom System korrekt erkannt und TigerJython kann auch mit der OxoCard kommunizieren. Was nicht funktioniert ist das Auflisten der COM-Ports (Serielle Kommunikation), warum der Upload direkt zur OxoCard schief geht.

Es ist aber möglich Programme direkt auf die OxoCard via das ESP32-Modul zu laden (wobei dort der korrekte COM-Port eingetragen werden muss). Allerdings überschreibt man dort das main.py, was erst die eigenen Programme startet. Mit ein bisschen Zusatz-Code funktioniert es aber trotzdem.

Erst ist die Nummer vom COM-Port zu ermitteln. Diese ist nicht immer gleich, meist aber COM4 oder COM5 (aber offenbar nie COM3). Ist die Karte eingesteckt, kann folgendes Skript Auskunft geben. Es kann aber auch einfach ausprobiert werden.

comports.ps1
[System.IO.Ports.SerialPort]::getportnames()
Write-Host -NoNewLine 'Press any key to continue...';
$null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown');

In TigerJython, im Menü (oben links) wählen Sie Datei → Einstellungen → Bibliotheken und dann unten den Punkt “ESP32” auswählen und den COM-Port eintragen (z.B. COM4).

oxohack.py
# Nur weil wir mit verrammelter Hard- und Software
# arbeiten müssen, heisst das noch nicht, dass wir
# uns nicht amüsieren können ;-)
#
# Initialisierung der Oxocard
try:
    from machine import Pin, deepsleep, ADC, reset
    from globals import __np
    import time
 
    Pin(2, Pin.OUT).value(1) # audio ampli on
    Pin(15, Pin.OUT).value(0) # neopix on
    __np.set(37, 0xffff00, update = True)
    # Möglichkeit zum Ausschalten...
    for i in range(50):
        if Pin(13, Pin.IN, Pin.PULL_DOWN).value() == 1 and Pin(27, Pin.IN, Pin.PULL_DOWN).value() == 1:
            print("Power off")
            for k in [250, 100, 50, 20, 10, 5, 1, 0]:
                for i in range(8):
                    __np.set(9*i+1, k << 16, update = False)
                    __np.set(7*i+8, k << 16, update = False)
                __np.show()
                time.sleep(0.5)
            Pin(2, Pin.OUT).value(0) # audio ampli off
            Pin(15, Pin.OUT).value(1) # neopix off    
            deepsleep()
        time.sleep(0.02)
except ImportError:
    pass
###################################
# Start vom eigentlichen Programm #
###################################
 
from oxocard import *
 
bigTextScroll("Hello Hack!", BLUE)

Laden Sie dazu folgenden Code mit TigerJython auf die OxoCard: mainorig.py

  • lehrkraefte/blc/informatik/glf19/oxocard/oxohack.txt
  • Last modified: 2019/11/07 07:39
  • by Ivo Blöchliger