This is only a showcase with code, no instructions included. Also things like jumper wires and screws are not listed above. The project is big, so it makes more sense to make projects for each of the components (done for "Browser with video").
Automatic driveThe robot car can drive automatically with an ultrasonic distance sensor (MaxBotix MB1202). With servos, the robot can look around to find a free way. The robot drives wherever there is a free way, no logic otherwise. The robot can determine if it's stuck (measures speed with LM393 FC-03 speed sensor, no speed means it's stuck). If it's stuck, he tries to free himself.
Browser with videoYou can control the robot car with modern browsers. So you can control it from your notebook, tablet and smartphone. You have to connect the device with the WLAN of the router (TP-LINK TL-WR802N, running with custom firmware DD-WRT) and open the website "robot.sl" in the browser.
In the browser, you can see the current video frame from the ELP USB webcam. The video stream is realized with an endless series of single JPEG images. On the server side the MediaFrameRenderer class is used to get single frames from the webcam. The frame from the camera is then converted to a compressed jpeg image. On the client side a WebSocket receives the JPEG image from the server, display it in the browser and than request and receive the next JPEG image and so on.
A JPEG image has a resolution of 1280x720 pixels (HD 720p). The video has an average around 25 fps. The estimated delay is less than a second. The above video shows an old version of the video stream (that uses the old MinnowBoard MAX). The new video stream has a higher resolution and is significantly faster (see code for changes).
See project: Browser Webcam Live Stream with Windows IoT Core Raspberry 3
Xbox One ControllerYou can control the robot car with an Xbox One Controller. With this controller you can drive different speeds and different strong curves. The controller vibrates according to the ground (the Sparkfun MPU-6050 accelerator sensor measures the G forces and the controller vibrates accordingly).
Speech recognitionI use the Logitech G933 wireless headset to speak commands. The robot car drives accordingly to the commands. I have configured the robot so that he understands commands in German.
Audio feedbackThe robot car has an amplifier (Adafruit TPA2012) and two little speakers. For example, the robot car greets you after he has booted. You can hear the audio output on the car and headset. You can disable car speakers or the headset speakers separately. I have configured the robot to speak German.
Windows IoT CoreThe robot is running on MinnowBoard Turbot Quad Core with Windows IoT Core Build 15063/ Version 1703.
I use the MinnowBoard Turbot Quad Core, instead of a Raspberry Pi 3 Model B, because I can use a high resolution with great fps (HD 720p (1280x720) with an average of 25 fps). Also the Xbox One Controller actually works only with the MinnowBoard and not with the Raspberry (see comments).
Comments