Met de Grab-it de wereld van de robotica in – Deel 2

Met de Grab-it de wereld van de robotica in – Deel 2

Met de ‘Grab-it’-robotarmen van JOY-IT kunnen hobbyisten, scholieren en studenten hun eerste ervaringen opdoen met programmeren in Python en eenvoudige projecten uitvoeren met de Raspberry Pi of Arduino.

In het eerste deel van het artikel ging het over de opbouw van de robotarm, het kalibreren van de servomotoren en de eerste bewegingen van de robotarm en de programmering daarvan. In het tweede deel vinden ontwikkelaars korte voorbeelden en ideeën voor uitbreidingen waarmee nog meer uit de Grab-it kan worden gehaald.

Creatieve projecten & toepassingen

Benodigde hardware:

Empfohlenes weiteres Zubehör:

Creatief project – onderdelen stapelen

In het eerste creatieve project wordt de robotarm zo geprogrammeerd dat hij bouwblokken uit de 3D-printer pakt en deze in een daarvoor bestemde doos stapelt (afbeelding 1).

Een eerste interessant project is het stapelen van onderdelen met de Grab-it (afbeelding 1).
Een eerste interessant project is het stapelen van onderdelen met de Grab-it (afbeelding 1).

Hiervoor moeten eerst – zoals in deel 1 getoond – de volgende stappen worden uitgevoerd:

  • Raspberry Pi met Moto Pi – of als alternatief met Arduino Uno en Motorino – installeren en verbinden met de robotarm.
  • Raspberry Pi OS installeren.
  • Bibliotheken installeren en servomotoren kalibreren.

Vervolgens kan het programma voor het stapelen van onderdelen op de Raspberry Pi worden uitgevoerd.

Het programma voor het stapelen van de onderdelen (afbeelding 2).
Het programma voor het stapelen van de onderdelen (afbeelding 2).

Hieronder volgt een fragment van de code waarmee de Grab-it de bewegingen via de Raspberry Pi in combinatie met de Moto Pi kan uitvoeren:

Grab-it goes IoT

Besturing via webinterface en app

In de volgende stap wordt de Grab-it voorbereid voor het IoT. Net als in een smart home moet de robotarm via een webinterface worden bestuurd. Hiervoor wordt de populaire Flask-webserver gebruikt als interface tussen de HTML-interface en de motorbesturing. Via de webinterface kan de robotarm vervolgens gemakkelijk worden bediend.

Naast de besturing via de pc werkt de besturing via HTML ook via een app en de smartphone. In combinatie met de Raspberry Pi kan de Grab-it dus heel eenvoudig via de smartphone worden bestuurd. Het idee hierachter is als volgt:

  • De Raspberry Pi bestuurt de Grab-it via de PCA9685-servodriver. De PCA9685 is een bouwsteen die tot 16 servomotoren tegelijkertijd nauwkeurig bestuurt via slechts twee kabels van de Raspberry Pi, omdat hij zelf de benodigde PWM-signalen genereert en zo de Pi ontlast.
  • Op de Raspberry Pi draait een Flask-webserver. Een Flask-server is een lichtgewicht webframework voor Python waarmee snel eenvoudige webapplicaties of interfaces kunnen worden gemaakt waarmee apparaten zoals de Grab-it via een browser kunnen worden aangestuurd.
  • Via een interface in de browser (pc of smartphone-app) kan de arm gemakkelijk worden aangestuurd.

Hiervoor wordt eerst het systeem voorbereid voor de installatie. Vervolgens wordt de servobesturing in Python geïmplementeerd en worden de Flask-webserver en de HTML-interface gemaakt.

1. Systeem voorbereiden:

  • I2C activeren:
  • Stuurprogramma’s voor de SMBus installeren:
  • Controleren of de PCA9685 wordt gevonden:

2. Servobesturing voorbereiden:

3. Flask-webserver aanmaken:

De Flask-webserver wordt aangemaakt (afbeelding 3).
De Flask-webserver wordt aangemaakt (afbeelding 3).

4. HTML-webinterface aanmaken:

Met deze code wordt de webinterface aangemaakt (afbeelding 4).
Met deze code wordt de webinterface aangemaakt (afbeelding 4).

5. Daarnaast wordt een JavaScript opgeslagen:

  • het JavaScript activeert de functies van de knoppen (afbeelding 5).
De functies van de knoppen worden geactiveerd via JavaScript (afbeelding 5).
De functies van de knoppen worden geactiveerd via JavaScript (afbeelding 5).
Voorbeeldweergave van de webinterface voor de bediening van de Grab-it (afbeelding 6).
Voorbeeldweergave van de webinterface voor de bediening van de Grab-it (afbeelding 6).

U kunt ook kiezen of u de Flask-app handmatig of met Autostart wilt starten. Dit wordt niet gespecificeerd in de code, maar in het Raspberry Pi-systeem.

Bediening via controller

Naast bediening via smartphone of pc is het ook interessant om de robotarm met een joystick of controller te bedienen. Een Xbox-controller werd via een USB-interface met de Raspberry Pi verbonden. Via de reeds geïnstalleerde Flask-server kan de arm gemakkelijk via de controller worden bediend.

  1. Installeer de Xbox-controller met de volgende opdracht: sudo apt install python3-evdev
  2. Installeer Python Script: XboxController.python (afbeelding 7)

Zo kan de Grab-it eenvoudig en snel met de controller in elke gewenste positie worden bewogen.

Via een Xbox-controller en de USB-interface kan de arm ook met de controller worden bediend (afbeelding 7).
Via een Xbox-controller en de USB-interface kan de arm ook met de controller worden bediend (afbeelding 7).

Een uittreksel van de code laat zien hoe u te werk moet gaan om de Xbox-controller te activeren:

Uitbreidingen & aanpassingen

Wie zich er verder in wil verdiepen en nog meer uit zijn Grab-it wil halen, kan de robotarm aanzienlijk verbeteren door gerichte mechanische en software-optimalisaties.

Mechanische upgrades voor de Grab-it van JOY-IT

De Grab-it-robotarmen kunnen met eenvoudige mechanische upgrades gericht worden aangepast en geoptimaliseerd. Bijzonder effectief zijn grijperopzetstukken, verlengde armen en camerahouders, die met een 3D-printer kunnen worden gemaakt.

Verschillende grijpervormen, zoals rubberen punten voor ronde objecten of brede bekken voor platte onderdelen, verbeteren de veelzijdigheid en precisie bij het grijpen. Verlengde armsegmenten vergroten het werkbereik, maar moeten worden ondersteund door stabielere servo’s of lichte materialen zoals koolstof om trillingen te voorkomen.

Een camerahouder boven de grijper maakt het gebruik van AI-visie of kleurherkenning via OpenCV mogelijk. Voor meer stabiliteit wordt aanbevolen om wankele kunststofverbindingen te vervangen door metalen scharnieren of kogellagers. Als u een camera op de Grab-it wilt aansluiten, kunt u met deze code controleren of de camera correct is aangesloten en deze vervolgens gebruiken voor kleur- of objectherkenning:

Ook de servo-opname kan worden versterkt of gedempt om trillingen te verminderen. Met deze aanpassingen kan de Grab-it nauwkeuriger, stabieler en veelzijdiger worden gebruikt – perfect voor ambitieuze makerprojecten.

Software-upgrades voor de Grab-it – meer intelligentie dankzij OpenCV

Met gerichte software-upgrades kan de Grab-it-robotarmen van JOY-IT aanzienlijk slimmer en autonomer worden gemaakt. Bijzonder effectief is de integratie van OpenCV om met behulp van een USB- of Raspberry Pi-camera kleur-, vorm- of objectherkenning te implementeren.

Met eenvoudige OpenCV-functies kan de robot live videogegevens analyseren, kleurgebieden filteren en de posities van objecten bepalen. In combinatie met een servodriver kunnen bijvoorbeeld herkende objecten automatisch worden benaderd en gegrepen. Voor het herkennen van kleuren volstaan eenvoudige filters, terwijl contourherkenning of AI-gebaseerde modellen met bijvoorbeeld TensorFlow Lite nauwkeurigere resultaten mogelijk maken.

Voorbeeld (objectherkenning met OpenCV):

Een andere upgrade is bijvoorbeeld het invoegen van bewegingsprofielen die flexibel reageren op basis van de cameragegevens. Daarnaast kan een API of een Flask-webinterface worden gebruikt om commando’s van webapplicaties of smartphone-apps over te nemen. Deze software-uitbreidingen maken de Grab-it tot een lerend systeem dat taken niet alleen uitvoert, maar ook actief “waarnemt” en erop reageert.

Community & bronnen

Hoewel er maar weinig specifieke projecten op GitHub bestaan, biedt de maker-community rond de Grab-it-robotarmen van JOY-IT waardevolle bronnen die je kunt gebruiken. Op GitHub vind je een kleine selectie van repositories, bijvoorbeeld voorbeeldschetsen voor de integratie van OpenCV of Flask-webinterfaces.

Daarnaast is het de moeite waard om platforms zoals Thingiverse of MyMiniFactory te bekijken voor STL-bestanden voor aangepaste grijpers of kamerahouders. Maker-forums en DIY-blogs, bijvoorbeeld Reddit-threads of Insta-Stories, bieden meer ervaringen en tips, bijvoorbeeld voor het verbeteren van de mechanica, het nauwkeurig afstellen van de servo’s of het integreren van een camera.

Hoewel er momenteel geen grote centrale community speciaal voor de Grab-it bestaat, kun je door gericht te zoeken op trefwoorden zoals “JOY-IT Grab-it” individuele projecten en tutorials vinden. Gebruik deze bronnen als uitgangspunt, pas ze aan je setup aan en documenteer je eigen ontwikkeling om deel uit te maken van de groeiende community.

Grab-it in actie & perspectieven

In het tweede deel van het artikel over de Grab-it van JOY-IT wordt getoond hoe de eerste projecten met de robotarm kunnen worden gerealiseerd. Bovendien is de Grab-it “IoT-compatibel” gemaakt en kan hij worden bediend via een controller, smartphone of pc.

Aangezien de community voortdurend groeit, zijn er op GitHub en andere ontwikkelaarsforums talrijke projecten, upgrades en andere bronnen te vinden waarmee de Grab-it voortdurend kan worden uitgebreid, AI-compatibel kan worden gemaakt en verder kan worden ontwikkeld.

Afbeeldingen: Adobe Stock, reichelt elektronik


Naar het eerste deel van het artikel:
Setup en basics: Met de Grab-it de wereld van de robotica in – Deel 1

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *