To af mine yndlings-værktøjer har mødt hinanden.
Jeg har været fascineret af mulighederne i JavaScript med p5 biblioteket i et stykke tid. Det er et sprog og bibliotek bl.a. målrettet kreativ kodning på computer, hvorfor kunstnere og undervisere bruger det. Der er udvidelser til stemmestyring, databaser og sågar maskinlæring, alt sammen præsenteret af Dan Schiffman.
Robotter og lys, der reagerer på sensorer kan kodes i C++ via en Arduino controller. Det er nemt og billigt at smække en taktil prototype sammen, skønt Arduino også bruges i dyrt laboratorie-udstyr. Her er mange mentorer bl.a. TopTechBoy.com.
Men robotter, der virkelig kan noget, og evt. kan tænke lidt selv, kræver mere regnekraft end en Arduino tilbyder, hvorfor jeg længe havde overvejet at arbejde videre med Raspberry Pi.
Indtil nu..
Hvis Arduino er min gamle kærlighed, er JavaScript(JS) min forelskelse, og de to har lige mødt hinanden. For selvfølgelig findes der et bibliotek til at kode sin Arduino i JS. Det hedder Johnny Five, og kommunikerer mellem computer og Arduino via et USB serielt kabel. Johnny Five kan desværre ikke køre i en browser, men i Node, som er en udgave af JS til en server.
Orker man at lave sin egen server? Desuden kan jeg ikke bruge alle de dejlige p5-udvidelser (stemmestyring, databaser og maskinlæring) til JS, da server-programmering foregår i Node, som godt nok ligner JS, men ikke kan loade p5.
Og dog.
En Node-server, der kommunikerer med en Arduino, kan også kommunikere med en klient, som kører JS. Dvs. jeg kan sende en besked i JS fra en browser-klient til Node-(web)serveren og videre til Arduino. Alt sammen på sammen maskine. Problem solved.