Op afstand besturen

Mijn robot kan nu python scripts lezen en op deze manier uit zichzelf bewegen maar ik wil mijn robot op afstand kunnen besturen. In het ideale geval wil ik mijn robot besturen met mijn draadloze Xbox controller maar het samenvoegen van het xbox controller script en dit robot besturings script gaat niet zo makkelijk als ik had gehoopt.

Ik heb er voor gekozen om wat makkelijker te beginnen en ga proberen mijn robot aan te sturen via mijn computer met behulp van de toetsen op mijn toetsenbord. Op dit moment gebruik ik windows remote desktop om toegang te krijgen tot de desktop van mijn Raspberry pi maar voor het op afstand besturen van mijn robot heb ik in principe alleen de Linux terminal nodig. Met behulp van een programma dat PuTTY heet kan ik gemakkelijk toegang krijgen tot de Linux terminal van de Raspberry.

PuTTY.png

Met de linux command line
$ ifconfig
kan ik achterhalen wat het IP adres is voor de Raspberry en via poort 22 kan ik dan verbinding maken met de linux terminal.

PuTTY2.png

Nu is het een kwestie van het schrijven van de juiste code voor het lezen van keypresses.
Met behulp van code die geschreven is voor de pi2go robot ben ik gaan testen hoe ik deze code kon gaan aanpassen om vervolgens te kunnen gebruiken voor mijn robot. Code remote.png

Ik begin de code met het importeren van de benodigde modules, zoals time, Robot en sys. robot = Robot.Robot(left_trim=LEFT_TRIM, right_trim=RIGHT_TRIM) zorgt er voor dat de trim functie juist word opgevraagd uit het robot script. Met left en right trim kan ik de eventuele afwijking van de motors compenseren.

Code remote2.png

De code die je hierboven ziet zorgt ervoor dat de input van mijn keyboard begrepen word door de raspberry pi.

code remote3.png

De bovenstaande code zorgt voor de aansturing van de robot. De code checkt of er een gespecificeerde key word ingedrukt en voert vervolgens de code uit die bij deze key hoort.

Met deze code en de remote terminal via de PuTTY applicatie is het nu mogelijk om mijn robot met een computer en toetsenbord te besturen. De computer en de raspberry pi moeten wel op hetzelfde netwerk aangesloten zijn. Hier zie je het resultaat.

 

Leerervaring & tijdsbesteding

Ik heb een efficiente manier gevonden om mijn robot op op afstand te kunnen besturen met PuTTY. Ik heb geleerd hoe gemakkelijk toegang kan krijgen tot mijn Raspberry’s Linux terminal met behulp van PuTTy en heb dit ook op verschillende computers getest. Het werkend krijgen van de code heeft me weer meer geleerd over hoe Python werkt en ik weet nu hoe keypressed werkt. Het uitzoeken en vinden van de juiste pragramma’s en code om tot dit resultaat te komen heeft veel tijd in beslag genomen en het opzetten en schrijven van de code was ook niet heel makkelijk in de eerste instantie. al met al ben ik zeker rond de 8 uur bezig geweest om mijn robotje aan rijden te krijgen.

Bronnen:

https://linuxconfig.org/linux-ipconfig-equivalent
http://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

https://github.com/the-raspberry-pi-guy/robot

Plaats een reactie