Arduino Alvik Robot Kit: Eenvoudige MicroPython programmering en modulaire uitbreiding met Grove, QWIIC en servo poorten

4 juni 2024

Afgelopen week ontving ik mijn Arduino Alvik Robot Kit. Dit platform is uitgerust met een Arduino Nano ESP32 en diverse sensoren: een time-of-flight-afstandssensor, een 6-assige versnellingsmeter met gyroscoop en RGB-kleursensoren. De Alvik is voorzien van encoder-motoren, waardoor hij nauwkeurige en gecontroleerde bewegingen kan uitvoeren. De robot is uitgerust met een 18650 Li-Ion-accu, waardoor deze lang meegaat. Deze controller is ingebouwd voor het afhandelen van low-level commando’s, zoals het uitlezen van de sensoren en het gecontroleerd manoeuvreren met de encoder-motoren. Hij heeft 7 touch-knoppen en meerdere RGB-LEDs voor statusaanduidingen voor de gebruiker.

De ESP32 is programmeerbaar in MicroPython en is daarmee erg laagdrempelig in gebruik. De Alvik is standaard geprogrammeerd met 3 programma’s:

  1. Touch-Mode, waarmee de robot in stappen van 10 cm naar voren/achteren en draaiingen naar links/rechts kan worden geprogrammeerd.
  2. Hand-Follower, waarmee de robot met behulp van de time-of-flight-afstandssensor op een vaste afstand van 10 cm beweegt ten opzichte van een hand of object aan de voorkant van het robotplatform.
  3. Line-Follower, waarmee het Alvik-robotplatform een zwarte lijn (plakband) op een witte achtergrond (tafel) blijft volgen.

Met behulp van de Alvik Application Program Interface (API) is een grote variëteit aan functies beschikbaar. Met de functie get_accelerations() worden waarden teruggekoppeld van de acceleratiestatus van de IMU. De functie get_line_sensors() geeft feedback over de positie ten opzichte van een zwarte lijn. Met brake() kan de robot direct gestopt worden en met is_target_reached() kan uitgevraagd worden of de gewenste locatie al bereikt is. Als je een touch-knop ingedrukt houdt tijdens het gebruik, kan het algoritme dit omzetten in gewenste acties.

Alvik heeft meerdere Grove- en QWIIC (I2C)-connectors, waarmee sensoren, displays, actuatoren, knoppen en allerlei andere randapparatuur aangesloten kunnen worden. Er zijn ook twee servo-connectors ingebouwd, die standaard servo’s eenvoudig kunnen koppelen aan de Alvik. In de Arduino Alvik tutorialomgeving is een uitgebreide set documentatie beschikbaar, waarin stap voor stap uitgelegd wordt hoe functies aangeroepen kunnen worden, sensorwaarden uitgelezen kunnen worden en hoe data-overdracht plaats kan vinden van de computer naar het robotplatform en andersom. Voor de fysieke montage beschikt de Alvik over 8 M3-schroefgaten en 4 LEGO Technic-connectiepinnetjes. Hiermee kunnen eenvoudig printplaten, LEGO-elementen, mechanische objecten en ook 3D-prints gemonteerd worden. Door gebruik te maken van de Grove- en QWIIC-connectors is het vrij eenvoudig om extra functionaliteit aan de Alvik toe te voegen. MicroPython wordt standaard gebruikt, maar het is ook mogelijk om dit vanuit de Arduino IDE in C++ te programmeren.

Deze Arduino Alvik Robot Kit AKX00066 is een mooie aanvulling op mijn toolkit als prototype-ontwikkelaar en trainer. De Alvik is eenvoudig te programmeren en vooral ook uitbreidbaar met allerlei Grove-, QWIIC- en servo-boards. Dit platform is stabiel, mechanisch degelijk uitgevoerd en direct inzetbaar – out-of-the-box – voor trainingsdoeleinden. Voor prototypes is het een interessant platform om de proof-of-concept tastbaar en functioneel te maken.