25 jaar geleden besloot een klein bedrijf in het Verenigd Koninkrijk een programma te ontwikkelen om studenten te helpen microcontrollers te leren programmeren. Flowcode werd voor het eerst uitgebracht in het jaar 2000. Aanvankelijk verkocht het goed in het onderwijs, en omdat het gemakkelijk te gebruiken was begonnen veel hobbyisten en industriële bedrijven het te gebruiken. Tegenwoordig is Flowcode zeer functioneel en heeft het duizenden gebruikers.
 
Flowcode tijdlijn
Tijdlijn Flowcode

Wie waren de ontwikkelaars?

In 1998 stond Matrix Multimedia Limited, opgericht in 1993, aan de voorhoede van de ontwikkeling van educatieve multimedia in het Verenigd Koninkrijk en was een van de eerste uitgevers van multimedia-content in het land. Na meer dan 20 educatieve cd-roms voor aardrijkskunde, wiskunde en elektronica te hebben ontwikkeld, wist het bedrijf dat de opkomende internettechnologie hun activiteiten op het gebied van educatieve inhoud teniet zou doen en moest het zijn activiteiten verleggen. Matrix had baanbrekende cd-roms gemaakt voor het onderwijs in elektronica met uitgebreide simulaties van schakelingen in de vorm van SPICE-modellen en het bedrijf besloot zijn expertise op het gebied van elektronica te gebruiken om de opkomende markt voor microcontrollers in het onderwijs te betreden.

Gemaakt om te leren

Het doel van het bedrijf was onderwijs en opleiding. Matrix wist dat sommige technische studenten moeite hadden met het programmeren in C-code en dat het ontwikkelen van geheel nieuwe complexe programma's eenvoudigweg te veel tijd kostte. Daarom besloot Matrix het programmeren te vereenvoudigen door stroomschema's te gebruiken als methode om programma's in te voeren en een grote bibliotheek samen te stellen van kant-en-klare routines voor allerlei sensoren, beeldschermen en elektronische componenten. Iedereen kan flowcharts begrijpen, dus dit maakte het programmeren gemakkelijker en het systeem van opdrachtinvoer betekende dat leerlingen geen syntactische fouten konden maken. De grote bibliotheek van componenten: stelde leerlingen in staat verder te gaan, en sneller interessante projecten te maken, het verhoogde de motivatie, en was veel gemakkelijker dan C of assembler.

Daarnaast is Flowcode ontwikkeld met volledige simulatiemogelijkheden: Simulatie is een echt effectief leermiddel dat een andere kijk geeft op wat er in een programma gebeurt, en heeft als bijkomend voordeel dat het proces van het ontwikkelen van programma's wordt verkort. In de software kunnen leerlingen een microcontroller kiezen, er schakelaars, sensoren, displays en actuators op aansluiten, en de schakeling op het scherm simuleren en ermee experimenteren voordat ze het programma naar echte hardware compileren. 

De eerste versie van Flowcode werd uitgebracht in 2000 - toen microcontrollers nog in de kinderschoenen stonden, waaronder de populaire PIC16F84 en ATMEGA8 8-bit systemen - en was een groot succes met verkoop in vele landen. Het gebruiksgemak van Flowcode leidde er ook toe dat een groot aantal hobbyisten en industriële technici Flowcode gebruikten voor het ontwikkelen van echte elektronische projecten en het aantal gebruikers groeide.
 
Flowcode
Begin stadium van Flowcode 5 scherm afbeelding

Meerdere code-paradigma's

Toen microcontrollers in het begin van de jaren 2000 diverser en algemener werden, werd Flowcode uitgebreid om programma's te kunnen maken voor AVR, Arduino, ARM dsPIC en dergelijke. Flowcode was een geweldig programmeerhulpmiddel, maar veel technici en studenten hadden nog steeds de behoefte om C-code te leren, en sommigen vonden de overgang van intuïtief flowchart programmeren moeilijk. Om deze overgang te vergemakkelijken voegde Matrix pseudocode en C-code interfaces toe aan Flowcode en studenten kunnen naadloos tussen deze unieke paradigma's schakelen en het gedrag van schakelingen in elk ervan simuleren. 

E-blocks

Flowcode had met succes modulaire programmeerconcepten geïntroduceerd waarbij functionaliteit voor specifieke hardwaremodules werd samengebracht in 'componenten', maar fysieke hardware bestond vrijwel uitsluitend uit multifunctionele ontwikkelboards. Matrix wilde deze modulaire aanpak ook toepassen op hardware, en zo ontstond E-Blocks rond 2006. Het E-blocks assortiment omvatte een aantal 'upstream' boards - PIC, AVR, ARM, FPGA - en veel 'downstream' boards - LEDs, schakelaars, sensoren, displays en actuators. De E-blocks klikten in elkaar met behulp van 9-voudige D-types (robuust voor educatief gebruik) en de voeding werd apart aangesloten. De boards bevatten standaardfuncties als In Circuit Debug, maar ook ingebouwde instrumentatie met een volwaardige tweekanaals oscilloscoop en een meerkanaals logic analyser die signalen op elke pin van het systeem kan weergeven. Hierdoor kon Matrix innovatieve onderwijsprojecten ontwikkelen, zoals volledig werkende mobiele telefoons of GPS-ontvangers, waarbij leerlingen geavanceerde concepten zoals AT-commando communicatieprotocollen konden begrijpen.
 
E-blocks
E-blocks II boards

3D

Halverwege de jaren 2010 ontstond een nieuwe trend: alle technici begonnen microcontrollers te programmeren: ook werktuigbouwkundigen. Programmeren was een belangrijke technische competentie geworden, omdat er maar weinig technische systemen bestaan zonder elektronische besturing of controle. Een andere trend: alle onderdelen van bedrijven als RS en Farnell hadden 3D-modellen die gedownload konden worden. Dus besloot Matrix om Flowcode volledig 3D compatibel te maken, zodat technici een 3D systeem vanuit Solidworks in de software konden importeren en de mechanische beweging van hun project in 3D konden simuleren naast de elektronische onderdelen van hun project. 

Flowcode app developer

In 2018 bracht Matrix in versie 8 Flowcode App Developer uit. Het concept hierbij was om gebruikers in staat te stellen web- of pc-gebaseerde toepassingen te ontwikkelen met behulp van de Flowcode programmeeromgeving. Matrix ontwikkelde API's voor gangbare technologie zoals Arduino, zodat klanten zeer functionele programma's konden maken op basis van goedkope hardware-interfaces voor test en besturing. Klanten kunnen nu dus programma's ontwikkelen voor het web, pc's en microcontrollers.
 
Flowcode-hardwaresimulatiescherm
Voorbeeld van een Flowcode-hardwaresimulatiescherm

State machines en data flow programmering

Voor zowel onderwijzers als industriële klanten was Matrix zich ervan bewust dat bij het ontwikkelen van elektronische systemen puur op scripts of stroomschema's gebaseerde programmeerparadigma's beperkingen hadden. In 2018 bracht Matrix een nieuwe versie van Flowcode uit die grafische systemen bevatte waarmee gebruikers programma's konden invoeren met behulp van state machines en data flow programmering, en die konden combineren met conventionele programma's. State machines zijn geweldig voor bepaalde toepassingen - vooral communicatiesystemen - en geven de functie van een systeem weer in termen van hun status bij verschillende onderdelen van een programma. Data flow programming stelt gebruikers in staat functionele diagrammen samen te stellen op basis van standaard signaalverwerkingsblokken en het resulterende systeem te compileren naar een microcontroller: geweldig voor DSP en communicatiesystemen.
 
Flowcode 10
Programma voor gemengde data flow en flow chart in Flowcode 10

Gratis voor makers

In januari 2023 heeft Matrix versie 10 van Flowcode uitgebracht met een aantal uitbreidingen en een belangrijke licentieverandering: het programma is nu gratis voor makers en hobbyisten voor populaire microcontrollers zoals PIC16F18877 en Arduino.  

De volgende stap

Matrix blijft het Flowcode-programma en de hardware ontwikkelen die studenten kunnen helpen bij het leren ontwikkelen en heeft een grote verscheidenheid aan cursussen en hardware voor elektronica, robotica, digitale communicatie, procesbesturing en andere technologieën in haar portfolio. Matrix blijft innoveren in onderwijs voor technici en de ontwikkeling van elektronische systemen. In 2023 brengt het bedrijf een belangrijk nieuw hardware/software ontwikkelingssysteem uit: Sysblocks. Sysblocks is gebaseerd op het dataflow-programmeersysteem Flowcode en een zeer snelle dsPIC microcontroller met twee analoge ingangen en twee analoge uitgangen. Hiermee kunnen technici en studenten een signaalverwerkingsschema in Flowcode construeren en compileren naar een microcontroller voor toepassingen in muziektechnologie, DSP, software defined radio, modulatie-demodulatie, codering-decodering, spread spectrum enz. Matrix is ervan overtuigd dat dit een belangrijke invloed zal hebben op de manier waarop communicatie en andere vakken op universiteiten worden onderwezen en hoopt dat de technologie ook toepassingen in de industrie zal vinden.
 
Sysblocks
Sysblocks hardware
Flowcode 10 is nu gratis voor makers en hobbyisten. Je kunt een gratis versie downloaden van: www.flowcode.co.uk


Vertaling: Hans Adams