MCU Car Rally

The projects aim was to build an autonomous robotic car to take part in the Renesas Competition Rally at the Embedded World 2017 exhibition in Neuremberg. Construction of the car was fairly straight forward, however the code was more complex. although we were given example code, it had issues with it which made it unreliable. You can find more information on the competition at the Renesas and AND Technology websites. Even though the competition was very close, only seconds between competitors in some cases, we managed to come ninth out of thirty teams.

Our three lap run in the qualifiers took one minute and fifty five seconds and the car fell off twice. Each time a member of the team has to touch the car ten seconds are added to the team's time. This gave us a final time of two minutes and fifteen seconds. Unfortunatly this put us in ninth place, just outside of the top eight qualifying for the final. This project was also an assessment for part of one of my first year modules. It replaced an arduino project for Programming Fundamentals. You can read the report that we handed in Here. The sections written by me are marked at the bottom with "Written by Thomas Hopkins". During the construction stage my job was to carry out most of the soldering; including the power harness, sensor board and main control board; and, as the member of the team with the most construction experiance, support the rest of the team with the machiening and assembling of the car. Once we had constructed the car it was my job to code and debug the obstruction detection, and ensure that the car could navigate all the obstructions built into the track.

Sub Space

Sub Space is an ongoing project for a university assessment. The aim is to use a technology that is pushing the boundaries of whats currently possible and create a game that has unique mechanics that are new to the industry. Our game is a submarine based game that runs on mobile devices. The player will be able to control the depth and heading of their own submarine. The aim of the game is to use your torpedoes to sink the other players while staying undetected on their sonar so they cant sink you.

Once the game is complete the player will be able to tilt their phone up and down to control the depth of the sub, and left and right to control the heading. They will be able to track the position of the other players from the on screen sonar, if they have detected them, and fire a torpedo with the onscreen fire control. However the player will have to be careful because once the torpedo is out of communications range it will search for the nearest target in its field of view, which might be the player that launched it. My job on this project is to; create the assets, code and debug the network conection code so players can find each other, and code and debug the AI homing of torpedos so they are able to find a target.

Weather Station

The Weather Station is a longterm personal project, using an arduino and an array of sensors to record the weather to a database. Eventually I will stream the recorded date to a website live and allow users to look through historical data. Currently it is recording; wind speed, wind direction, light level, temperature and humidity. The intention is to extend this to add rainfall and ambient noise in the future.

Currently to read wind speed there is a magnet attached to an impellar and a reed switch which have been calibrated in the code to match a comersial mobile anamometer. However due to the button bouncing effect a schmit trigger has had to be added between the arduino and the reed switch to smooth out the switching cycles. To read wind direction a magnet is attached to a wind vain and four hall effect sensors are used to measure the magnetic field. Then in the code the four signals are combined using triganometry to determin the angle from north. A Light Dependant Resistor (LDR) in a potential divider circuit is used to measure the light level and then a formula is applyed to convert it to LUX. Im aware this isnt the most accurate method and hope to upgrade it in the future. A DHT sensor is used to measure temperature and humidity. Using the available librarys it is possible to get a very accurate reading in this manner. This is an ongoing project and I will update this page as it progresses.

3D Models

3D was one of my first year assessment projects. It was designed to teach us how to use 3DS Max and its various tools to create 3D models to be used in computer games. It also gave me as a programmer an understanding of how models are constructed for manipulating them with code. There were six different models to create, each with its own poly count limit. This made it more difficult as each model had to be crafted with efficient use of polygons only using them where detail was required in the model.

As you can see the six models to be created were; Bottle, Clock, Weapon, Log Cabin, Venus Fly Trap, and Vehicle. Each one had its own poly count limit and I was more efficient with the polygons in some of the models than others. My bottle, Weapon and Fly Trap are good detailed models with efficient use of polygons in the areas that needed the most detail. However my Clock, Log Cabin and Vehicle are less efficient and have some wasted polygons although the Vehicle is currently unfinished. Looking back at the project I would do things differently in the future. For example for the clock only the hours and minutes needed to be modeled, and the numbers could have been separate objects floating in the tubes instead of attached. This would have given me the necessary polygons to add more detail to the outside of the nixie tubes. In the case of the cabin, use of separate objects for the roof, door and any windows would have drastically reduced the polycount of the model and allowed me to add much more detail. The 3DS Max tools used to create these models include; cut, target weld, boolean, bend, mirror, extrude and bevel. The models can be downloaded Here.