Hvordan kople en Microbit mot Processing.
Eksperimentet krever følgende utstyr:
MicroBiten er programmert slik:
input.onButtonPressed(Button.A, function () { led.toggle(0, 0) serial.redirectToUSB() serial.writeLine("Hallo") }) input.onButtonPressed(Button.B, function () { led.toggle(4, 4) serial.redirectToUSB() serial.writeLine("By") })
Altså når vi trykker på en av de to knappene, A eller B, så skrives det en tekst til serieporten. Samtidig setter vi på/av to led-lys for å vise at Microbiten er i live.
Programmet (skissen) som tar imot signaler fra Microbiten over en USB-inngang. Dette er en minimalistisk versjon som ikke gjør annet enn å bekrefte hva som mottas i konsollet under kodeeditoren.
import processing.serial.*; Serial port; void setup(){ size(60,80); // skriv ut tilgjengelige porter printArray(Serial.list()); // velger en av dem. Her må du kanskje endre port = new Serial(this, Serial.list()[0], 115200); port.bufferUntil(10); } void draw(){ background(255,0,0); } void serialEvent(Serial port) { String inData = port.readString(); // skriver ut teksten som har kommet inn print(inData); }
Vi laster inn serieport biblioteket, printer tilgjengelige porter, kopler oss til en av dem plukker opp alle begivenheter på porten.
Dette kan gjøres enklere enn det som vises nedenfor, men hvis du tar deg bryet med å gjøre det systematisk så har du samtidig en backup som gjør det lettere å finne igjen koden
Det kan oppstå problemer med at Processingkoden ikke kan lese serieporten. Dette er litt avhengig av hvordan maskinen din er konfigurert. Enten kan du få en melding om at porten du har valgt ikke eksisterer eller at den er opptatt (busy). Du kan gjøre følgende forsøk på å løse problemet:
Hvis ikke noe av dette hjelper så send meg en mail [ på denne adressen ] om hvordan du til slutt løste problemet så jeg kan tipse andre(🤞).
Hvis alt går bra kan det se slik ut. Her ser du at det skrives ut en list med kun en port:[0]"com4".