Kees Kerling, lid van HCC!robotica, besloot een microcontroller in te bouwen in een model Sherman-tank. Hij koos voor een combinatie van de Teensy-microprocessor en de Arduino IDE-software: teensyduino.
Kees Kerling
Het interieur van de Sherman-tank
Het Teensy-bord kwam ik voor het eerst tegen via een website over radiogestuurde (rc) modelbouw. Het bleek een veelzijdig bordje te zijn: compact, hoge frequentie en veel aansluitingsmogelijkheden. Het bord heeft 34 poorten, waarvan er 21 analoog gebruikt kunnen worden, 12 PWM, 3 Serial en 2 I2C. De extra serieelmogelijkheden gebruik ik voor het uitlezen van de rc-besturing. Enig mogelijk nadeel van de Teensy kan zijn dat het een 3,3volt-systeem is. Soms heb je daarom bidirectional logic level shifters nodig om te communiceren met andere componenten, in mijn geval de rc-ontvanger en de aandrijfmodules voor de motoren.
De componenten
Voor de Sherman robottank met radiobesturing heb ik de volgende componenten gebruikt:
- de Teensy 3.2 microprocessor (zie https://www.pjrc.com/store/teensy32.html voor details);
- bidirectional logic level shifters van Pololu, voor communicatie tussen 3,3V- en 5V-componenten. Dit bordje zet logische signalen om van 3,3 naar 5 V en terug. Niet geschikt voor analoge signalen;
- motordrivers van Pololu, omdat de Sherman-motoren veel stroom kunnen gebruiken;
- 2 IR-fototransistoren en een IR-led die 50 mAmp kan hebben (voor het lijn volgen);
- tankonderstel van Heng Long, om de robottank er als een échte tank uit te laten zien en niet als een rijdende printplaat;
- rc-besturing: Flysky FS-i6X zender (een Ibus-zender en bijbehorende Ibus-ontvanger);
- een Sharp-sensor van 10 tot 80 cm, voor de afstanduitlezing. Deze geeft een analoog signaal van max 3,3 volt en kun je dus direct op de Teensy aansluiten;
- een 9 DOF-sensor met processor om de hoekverdraaiing te meten. 9 DOF wil zeggen 9 graden van vrijheid – hij meet versnellingen in X, Y en Z, de hoekversnelling in X, Y en Z, magneetvelden en temperatuur. De sensor werkt via I2C, zodat je hem rechtstreeks op de Teensy kunt aansluiten.
De robottank ziet eruit als een échte tank |
Voor de afstand heb ik ook een time of flight-sensor uitgeprobeerd, de VL53L0X. Los doet hij het, via I2C, maar in combinatie met de rest heb ik die nog niet aan de praat gekregen.
Software
Voor de software gebruik ik C, via de Arduino IDE, omdat dit een goede werkomgeving is voor een beginner. De meer ervaren roboteers maken ook gebruik van andere systemen, maar die vaardigheid heb ik nog niet. Het heeft me een aantal maanden gekost om een beetje thuis te raken in C en ik beheers dan ook lang niet alle aspecten van deze taal. Voor de Teensy kun je software van PJRC downloaden. Die komt in de Arduino IDE te staan en dan kun je volledig gebruikmaken van de mogelijkheden van de Teensy. PJRC noemt dit ‘teensyduino’. Zeer handig.