Raspberry Pi Car

I’ve recently found time to work on my Pi Car and it is now in a mostly working state with one thing I haven’t quite found yet.

It now has a webcam mounted on it and acts as a wireless access point with DHCP server. I went down this route for portability. This meant that I could easily create an Android App that controlled the movement of the car. This currently looks very similar to the application for my Bluetooth car (seen here) except that it runs on Android and connects over Wifi.

An outside view of my Pi Car with mounted webcam
An outside view of my Pi Car with mounted webcam

As you can see from the picture above the car now has a webcam mounted to it’s top, this is currently streamed to a laptop using ffmpeg but I have future plans to stream to the Android App.

The Raspberry Pi primarily acts as a Wifi shield for an Arduino in the car which interfaces with the motors, as well as streaming the webcam.

This shows the inside of the car, the board in the center is a Raspberry Pi, the one in the cabin of the car the wifi.
This shows the inside of the car, the board in the center is a Raspberry Pi, the one in the cabin of the car the Wifi.

 

More code on GitHub

I’ve now added my assembly assignment for the LC-3 virtual computer and for C assignment to my GitHub account.

And Pesterchum is coming along nicely, messaging is now implemented and I’m currently working on offline messaging, which sort of works except that the username isn’t displayed properly on the receiving end.

I’ve also been working on something I hoped would be for my games development module assignment, which was to make a “rocket man” go around on screen picking up diamonds and taking them to his space ship. But we’re required to use a “game engine” that the lecturer developed that handles rendering, looping, and collision detection. But it’s very limited and I wanted to make mine a side scroller for a few extra marks so decided to develop my own. But as this cannot be submitted for my assignment it won’t be worked on in the foreseeable future. Currently it has randomly generated terrain, side scrolling is implemented, the “rocket man” is there and gravity is enabled.

Part of what would have been my submission
Part of what would have been my “rocket man” submission.

This is also on my GitHub under RocketManScroller

Rocketman Sidescroller Jar

Pesterchum

Pesterchum is the name of a fake chat client, inside of MSPaintAdventures Homestuck universe (a web comic). It’s also the name of a chat client built in Python, based on the one from Homestuck. My mission is to remake this chat client, add some features, remove some limitations.

The main flaws in the current Pesterchum stem from its IRC back-end.
My main problem with it is that nothing is encrypted. So I’ve addressed that in my version, although improvement is still needed. Man in the middle attacks between the server and client are still a possibility. So there needs to be some sort of verification that the server they’re talking to is the correct server. For encryption I’ve used a mix of public key encryption and symmetric encryption. Firstly the client generates a public key pair, it then sends it’s public key to the server which then generates an AES-128 key. This key in encrypted using the public key the client sent, then the client decodes this key using it’s private key and further communication is done using this key. A way I may fix this is to also also messages to be encrypted from a password that is not transferred across the server, and simply given in person.
My other major problem with this version, although not major, I feel is somewhat important. The friends list is only stored locally, this isn’t particularly user friendly if a user wishes to login from another computer.

Here’s some screen shots of the state of the project upon writing this.

Pesterchum Login
Login screen showing the ability to register, login and choose a different server other than the default.

 

Pesterchum Main Screen
This the current state of the GUI being worked on by Aleksandra Badyda (abadyda.co.uk)

Currently most back-end features are implemented and just need to be linked to the GUI before the first milestone “Simple Messaging” is reached.

GitHub project http://github.com/timstableford/pesterchum

 

SpaceZombies on GitHub

SpaceZombies and it’s launcher have been added to public GitHub repositories on my account. I’ve realized how bad some of the commits are, my only excuse is that it was a private repository.

Somewhat unrelated to this, to add the repositories to GitHub I first had to convert them from SVN, which was actually surprisingly simple with “git svn clone”. When it was first recommended to me that I use Git over SVN I was skeptical about it having any benefits, but it managed to win me over anyway. I don’t think I’ll be going back to SVN and I may convert some more of my repositories too.

The URL to my GitHub account:
https://github.com/timstableford/

Edit: Added other projects to my GitHub account.

SpaceZombies Update

I haven’t had much time to develop this lately however, I have implemented enough for it to be usable. As it stands I have the Earth, the Sun and the Earth’s moon all orbiting at there average distance from the Sun or Earth respectively with sizes to scale. However the planets jump, this is because of the way there location is updated. At the moment I’m just increasing the angle that the planets are at based on the time they should realistically take given there realistic masses.

Now, the ship. I’ve implemented a little space ship the force from its thrusters can be altered by scrolling the mouse wheel and theoretically it should be impossible for you to go faster than the speed of light. To limit the players maximum velocity I implemented simple relativity for mass and velocity. The ship is fully physics enabled towards the planets, eg it will be affected by their gravity and it’s possible to do sling-shot manoeuvres and to orbit planets.

There is currently either 2 or 3 arrows on the screen, there are 2 if you’re some distance from the Earth but as you get closer a 3rd will appear for the Earth’s moon.

I think my next development step after some thought will be to scale everything down, because although realistic I think it would be more fun if it doesn’t take hours to fly between the Earth and Sun (that’s assuming I limit certain ships thrusters, as it stands you can accelerate to the speed of light so it should only take 10 minutes.

After Christmas when I’m back at uni I’m going to add this code to my GitHub and hopefully get some time to work on it after exams, so no source code available yet.

Downloads are located here:
http://spacezombies.hyperbadger.it.cx/
They may run slowly because they’re hosted on my home server. Downloading and launching the launcher will create a folder called SpaceZombies in your home folder and download the LWJGL natives along with the games jar.

PS Hopefully before I release the source I can fix the planets by giving them velocity and also neaten by OpenGL, it’s not exactly great at the moment.