Prototyping en code generatie voor productontwikkeling

Binnen productontwikkeling lever ik een groot aandeel in de initiële R&D tot aan code die direct geïntegreerd kan worden in het eindproduct. De volgende fases komen bij ieder project typisch aan bod:

R&D research and development

1: Initieel onderzoek

Je hebt een fantastisch idee of visie voor een product om iets te meten, uit te rekenen of te maken. Maar je wil eerst zien of het kan werken. Met mijn werktuigbouwkundige en onderzoek achtergrond help ik graag mee om de wiskunde, fysica en onzekerheid van je vraagstuk te doorgronden. Als er ook verder gekeken moet worden naar de maakbaarheid van het product pas ik systems engineering toe om snel de risico's van ontwikkeling te minimaliseren. Deze fase levert vooral scripts en diagrammen op.

prototyping and dashboards

2: Prototyping

Gedurende de ontwikkeling en doorontwikkeling van producten maak ik veel gebruik van prototype software. Dit zijn vaak losse functies of hele dashboards waarmee sensor data op een reproduceerbare manier snel verwerkt kan worden. Vaak worden deze dashboards opgeleverd aan de klant als een integraal onderdeel van de ontwikkeling om nieuwe data en onderzoeksresultaten direct zelf te kunnen verwerken.

matlab coder

3: Code generatie

Als engineer werk ik meestal met Matlab omdat ik daarmee in de eerste 2 fases zeer snel kan schakelen en nieuwe ideeën kan testen. Echter kan je die code niet 1 op 1 toepassen in embedded systemen. Gelukkig biedt Matlab hele mooie toolboxes om automatisch C en C++ code te genereren die precies hetzelfde doet als de Matlab code. Op deze manier lever ik C en C++ code die soms op minder dan 128 kB moet draaien maar soms ook meer dan 60.000 regels aan C bevat zonder vertaalfouten.

C-code from Matlab on embedded systems

4: lntegratie hardware

De C of C++ code moet gaan werken op een embedded systeem of in andere hardware zoals smartphones of tablets. Met de code over de schutting gooien alleen ben je er nog niet. Om te waarborgen dat de code ten alle tijden stabiel is maar ook correct geïmplementeerd wordt zorg ik voor versiebeheer en CI (continues integration) oplossingen die gedeeld worden met derde partijen die de code oppakken en verwerken in hun producten. Daarnaast help ik ook mee zoeken naar dit soort partijen als die nog niet aanwezig zijn in het project.

Werkman Black

Voorbeeld: Werkman Black

Sinds 2016 ben ik betrokken bij dit product en het wordt nog steeds ontwikkelt. Dankzij de prototypes is Werkman in staat om snel nieuwe mogelijkheden te onderzoeken en uitgebreidde analyses te verrichten. Bekijk het project op de Projecten pagina:

Data to information