Recently I was given an old CD player that wasn’t needed anymore. I decided to hack the electronics, and turn it into a clock (because what else would you turn an old CD player into?). I attached an LCD screen to the CD tray to display the time, and wired it up to an arduino.
I had decided that I wanted the clock to slide out the CD tray and display the time on the LCD when it heard a clap from someone in the room, so I hooked up a simple electret Mic. I also wanted the sound threshold at which the clock triggered to be adjustable, so I traced some PCB tracks and probed terminals until I found the connections to the buttons on the front panel of the CD player. I then hooked these up to the arduino with some pullup resistors.
Next I figured out how to control the opening/closing of the CD tray, so I found the relevant terminals on the old PCB and soldered them to an arduino motor shield. I attached a Real Time Clock to make sure the time was accurate.
Finally I put it all together and wrote some simple software. Demo in the video above!
Last week I attended a Computing and Micro-electronics course at Southampton university.
We worked in teams of 5 to build a completely autonomous robot capable of fetching blocks and taking them home to base, navigating and spotting blocks by means of a webcam. The video above shows my team’s robot in the competition at the end of the week, against three other robots in the same arena. Within my team, I was responsible for the programming of our bot.
After a lot of hard work and midnight GitHub commits we came second out of ten.
Though I have completed all the hardware of my IoT chess board, I am still in the process of developing the software for it.
An Arduino MEGA sits underneath the board and controls the hardware, while a Raspberry Pi runs a webserver and takes care of the processing. Therefore the software development comes in three parts:
The Arduino software, for physically controlling the LEDs and detection circuit on the board
The communication protocol between the Arduino and Raspberry Pi
The Raspberry Pi software, creating a functioning webserver with an online UI.
I have completed the first two modules, leaving the Pi server as the last task in this project. You can find source code for my Arduino libraries Chess (for controlling the board hardware) and ChessSerial (for handling Serial communications with the Pi) at https://github.com/bengineer19/chess
I recently undertook a month of work experience at Vitec, one half of which consisted of me shadowing engineers in their jobs and spending time in each department – mechanical engineering, electrical engineering, software, testing etc.
The other half of the time, I was allowed to use the company’s resources to build a project of my choice.
I chose to build an IoT chess board; a physical chess board that interfaces with online chess. Details can be found here.