Mit viel Begeisterung, aber auch in mühevoller Kleinarbeit, konnte das von MMISCOOL erschaffene, innovative ESP8266Basic für den Raspberry Pi Pico W angepasst werden. Erste Versuche starteten im März und April. Den Durchbruch brachte eine aktualisierte WebSocket-Bibliothek für den RP2040-Radio-Baustein vom 1. Mai 2023, just in time :-).
Ohne WebSockets konnten alle Eigenschaften der Originalversionen 1 und 2 einer Funktion zugeführt werden. Damit war die NeoPixel-Rheinturmuhr kompatibel und lauffähig. Die Web-Stabilität und die Router-Funktionen wurden mit der neuen Funktion wgets und dem ARD-Text-Ticker getestet. Nachdem die Dinge sich stabilisierten, begann die Suche nach kompatiblen Bibliotheken für die verschiedenen Erweiterungen. Bisher konnte keine adäquate TFT-Bibliothek mit entsprechender Performance auf dem RP2040 getestet werden, wodurch diese Aufrufe in diesem Port komplett fehlen, ganz abgesehen von möglichen Speicherplatzproblemen.
Seit Juli gilt nun überwiegende Kompatibilität zu der Version 3 des Originals mit WebSockets. Damit beschleunigt sich die Datenübertragung zwischen Pico W und Browser am PC, Tablet oder Phone gewaltig. Mit JavaScript kommen so nahezu Echtzeit-Diagramme in das Browserfenster, oder auch per HTTP zu externen Programmen mit als Messdaten-Lieferant espBASIC aus dem 133 MHz-Maschinenraum.
Anhand des existierenden Buches aus eigener Feder MSR mit WiFi und ESP-BASIC entsteht dann ein Manuskript, welches die Anpassungen, aber auch die neuen Möglichkeiten mit dem RP2040 beschreibt. Während diese Möglichkeiten und Highlights des Port immer mehr faszinieren, entsteht ein MSR mit RP2040 espBASIC, was diese und andere Kommandos und Funktionen in Einführung, Beispielen und Anwendungen zeigt und diese Faszination weitergeben möchte. Ultraschall-Messungen im Zweikanal-Scope bilden den bisherigen Höhepunkt.
Aus dem Bereich Browser-Anwendungen: Pico W-Messungen bei 40 kHz in espBASIC
Befehle und Kommandos aka Commands
In alphabetischer Reihenfolge, entnommen aus dem neuen Quelltext Commands.ino:
ap baudrate btbaudrate button buttonfocus circle clear cls connect css cssclass cssid dds ddsstart debugbreak debugoff debugon del delay dim dir do dout dropdown ellipse else email endif endif for gcls gosub goto graphics guioff guion if image immagebutton input interrupt irbranch javascript jscall kbde kbes kbse keyboardpress keyboardprint keyboardprintln keyboardrelease keyboardreleaseall keyboardwrite lcdbegin lcdbl lcdblink lcdcls lcdcursor lcdcursoroff lcdon lcdprint lcdright lcdsend lcdsetcursor ldcoff let line list listbox load loop memclear meter mid mouseclick mousemove mousepress mouserelease mqttbranch msgbox msgbranch msgreturn next note notone oledprint oledsend onload passwordbox print programname pwmfreq pwmrange reboot rect rem returngui returngui run samplerate sendmail serial2begin serial2branch serial2end serial2input serial2println serialbranch serialBTbegin serialBTbranch serialBTflush serialBTinput serialBTprint serialBTprintln serialBTtimeout serialdir serialflush serialinput serialprint serialtimeout setupmail slider slow/fast telegram telegramsend telnetbranch text textbox then timer timercb tone udpbegin udpbeginmulticast udpbranch udpreply udpstop udpwrite udpwritemulticast undim vars wait watchdog webobj websocketchangebranch websocketeventbranch websockprint wifiapsta wifioff wprint
Funktionen und Aufrufe aka Functions
In alphabetischer Reihenfolge, entnommen aus dem neuen Quelltext Eval.ino:
adcResolution ads.gain ads.range ads.read ain asc awg.set awg.setup basic bin bintoint bootsel capture capture.begin capture.dual capture.end capture.level capture.max capture.min capture.rate cet chr clk counter cs dac.set dac.setup debug.getchange debug.getevent debug.getvar debug.log debug.object debug.setvar del.dat dht.heatindex dht.hum dht.setup dht.temp din diskfree dout eval fcpu flashfree format free gen.set gen.setup hex hextoint htmlid htmlvar i2c.available i2c.begin i2c.end i2c.read i2c.requestfrom i2c.setup i2c.write id instr instrrev int io io.freq io.res ip ir.codes ir.dump ir.full ir.get ir.send json left len lower matrix.brightness matrix.cls matrix.fill matrix.plot matrix.print matrix.setup matrix.unplot mem32 mid millis miso mosi mouseble.begin mouse.move mouseble.battery mouseble.click mouseble.end mouseble.move mouseble.press mouseble.release mqtt.msg mqtt.publish mqtt.setup mqtt.subscribe msgget neo neo.cls neo.hex neo.setup neo.stripcolor note oct oled.circle oled.circle.fill oled.cls oled.contrast oled.inverse oled.line oled.plot oled.print oled.rect oled.rect.fill oled.show oled.showoff oled.showon oled.tty oled.xytext pi ping pot.set pot.setup pulsein pulseti pulsetp ramfree read read.val readopenweather readts regexp reglin reglog regpot replace right rnd scl sd.read sd.write sda sendts serial.available serial.read.chr serial.read.int serialbt.available serialbt.read.chr serialbt.read.int settime spi.byte spi.hex spi.info spi.setmode spi.setup spi.string status stepper.setup stepper.speed stepper.step str telnet.client.available telnet.client.connect telnet.client.read.chr telnet.client.read.str telnet.client.stop telnet.client.write temp tg.available tg.begin tg.id tg.name tg.read tg.send time timesetup timestamp tone trim udpread udpremote unixtime upper val version watchnet wget wgets wifi.ap wifi.bssid wifi.connect wifi.mode wifi.rssi wifi.scan wifi.ssid wifi.status word write
Es gibt keine Gewähr, dass die aufgeführten Aufrufe tatsächlich funktionieren. Diese Liste dient lediglich dem Zweck, den Überblick selber zu behalten, was allerdings nur teilweise gelingt. Auch aus diesem Grund wird am 1. September 2023 eine α-Testversion online gestellt, auf die sich das Buch bezieht, die aber unabhängig vom Buch frei kopierbar ist.
|
Mittels dieser uf2-Datei kann ein RP Pico W fast alles das, was mit ESP8266-Basic von mmiscool möglich ist und mehr. Dies wird auf ca. 400 Seiten in diesem Buch beschrieben, wie z. B. Untersuchungen mit Ultraschall aus dem technisch-physikalischen Bereich mittels einer weiteren sehr preiswerten Hardware mit kleiner Modifikation. Als weiteres Highlight zur Auswertung von Messdaten kann die Integration von Regressionen im mathematischen Bereich bezeichnet werden.
Das 2023/24 erschienene Messen, Steuern und Regeln mit RP2040 espBASIC zeigt in Einführung, Beispiel und Anwendung was mit der freien Software espBASIC on RP2040 alles möglich ist.
|