Rij oneindig ver met de IP-Car
In mijn vrije tijd heb ik de "IP-Car" ontwikkeld. Dit is een omgebouwde RC auto die aangestuurd kan worden over internet met een Playstation 4 controller. De IP- Car bestaat uit verschillende onderdelen waarvan de software het meest complex is. In de eerste screenshot is goed te zien hoe de verschillende onderdelen met elkaar zijn verbonden.
De PS4 controller is verbonden via bluetooth met de smartphone. Op de smartphone is de pagina stepverder.nl geladen. Via de GamepadAPI komt data van de controller binnen. Vervolgens wordt de data via Socket.io naar de server gestuurd die het weer doorstuurt naar de IP-Car. In de IP-Car zit een Raspberry pi met 4G dongle die alle data ontvangt en verwerkt. Op de Raspberry Pi zit een camera aangesloten die het beeld via WebRTC kan livestreamen, zo kan je in realtime op je smartphone zien waar je rijdt.
Raspberry Pi
Op de Raspberry Pi heb ik een klein scriptje geschreven in Python wat automatisch opstart als de Raspberry Pi wordt aangezet. Zodra er internet verbinding is zal hij een Chromium pagina opstarten waar hij naar de broadcast pagina van stepverder.nl gaat. Via deze pagina zal hij het beeld van de camera livestreamen .
Zodra hij deze heeft opgestart en er een socket.io verbinding is tussen de Server en de Raspberry pi kan er data worden gestuurd. Binnenkomende data wordt omgezet en gestuurd naar de ESC via PWM signalen. In de IP-Car zit een 14,6V Lipo accu. Om de spanning omlaag te brengen voor de Raspberry Pi en de stuur servo heb ik gebruik gemaakt van twee instelbare buck converters. (Zie 3de screenshot)
Om de IP-Car te kunnen laten rijden over 4G moet er een zogenaamde “turn server” worden geconfigureerd. Omdat de mogelijkheden over 4G erg beperkt zijn. Op een device wat verbonden is over 4G kunnen bijvoorbeeld niet zomaar poorten open gezet worden. De turn server zorgt ervoor dat de data wordt weerlegt naar de server waardoor die het “zware” werk doet. Uiteindelijk is het mij gelukt om de IP-Car op deze manier via een 4G netwerk te laten rijden.
Minor Game Design & Development
Minor Natuur, Mens en Technologie
Al student? Upload hier jouw eigen project!
Nog geen student? Schrijf je hier in!