The season is about to start and the amount of free time left can be counted in hours. So before we all buckle down and curse at various components (CMU cam being the bane of many teams) I would like to ask how what programming projects you have done to just improve your overall coding skills.
Perhaps mention your first ‘real’ application, written for a specific purpose rather than just a cookie cutter projects.
I’m asking because I’ve gotten bored of these projects in the text books and want to try writing a real app. Unfortunately I have no ideas so please share your experiences!
Re-write wolfenstein! Make a ray-caster
it’s fairly simple and really cool once you get it working.
Theres a quick explanation on my site: http://stanford.edu/~ssyed/javaraycast.html
i’d have to say games are probably the funnest “app” to program.
It is also pretty fun to make your own algorithms for solving tricky problems… i.e sound or image analysis, AI type stuff.
Another cool idea could be to use Markov Matrices or some other types of analysis to try and generate coherent music
Get a new sensor to work. Adapting Kevin’s gyro code to work on your robot or adding functionanality for a new sensor will VERY quickly remind you how to code.
Just trying to write new simple drive code from scratch can work too.
I can’t give much advice on actual computer applications; I don’t like programming for computers.
It is going to be use full duplex communication on the RC’s Program port. The computer is supposed to have full control of the robot, including the hardware(but we will see how far this goes)
The dashboard is quite limiting in that you have reprogram your robot if you want to display different values. This should in theory allow you access any previously programed( and not removed) variables on the fly. The RC doesn’t flood the program with all the stuff at the same time(wasting its processor time too). Rather when you change something in any column the Application send the RC which new variables to send to the App.
I you’re looking for something on the robot getting the gyro working is a great project.
I you want something related to robotics, but not on a robot you could write a new dashboard app or look into the FusionEdit project(fusionedit.sourceforge.net).
Over the summer we mistook the Championships final match gag. They said they will switch colors so we took it as a hint for this year. Lil ole me wrote some code to track multipul color ranges. Simpally put it would either run a search pattern then switch color parameters OR look at a window switch colors then move.
Did it work? sorta. We didnt have another light so we made a filter that didnt work as well. It would lock on then drift off into the flouressence. Just some minor adjustments.
I’d like to see this years CMU cam track better, hook me up with some codes …would be cool if we could track the target like they can with those missle tracking devices…
when im bored i amuse myself re-programming classic games like pong and space invaders, but perhaps a more prudent project would be to work on some autonomous robot code
Probably one of the first really “interesting” applications I wrote was one that helped me reverse-engineer binary file formats for an arcade game. I actually got beatmania IIDX Happy Sky to play Spanish Castle Magic as its opening theme
Writing applications to fit low-level uses (i.e. networking apps, serial protocols, working with raw data, etc) really really helps you understand coding and how things work internally. I wrote a small userspace wiimote driver for Linux recently which really helped me understand pthreads, concurrency, and the bluetooth stack in linux.
Basically, if you find something interesting in computing, figure out how to write a program for it. Even if you don’t succeed 100% you will always get something out of it
My projects have basically revolved around my apcs class, the latest being a chat application for use over the net. It actually works but i decided to rewrite it completely from scratch, plans are to interface it with aim as well (Think trillian). Of course, completely open source the whole thing. I also toyed with the idea of writing a compiler in actionscript so that our teams rookies could toy with a robot on screen using “real” code but without having to worry about blowing anything up or overdriving joints. That ran out of time though, which was aided by my lack of knowing ANYTHING about compiler design (anyone got links?) and being the only programmer on our team (we dont have a regular mentor either). Oh and i did finish a text editor in java as my first project for that class as well as brushed up on writing software PIDs. Wish i could get into more ai stuff though…
You could try FreeTechBooks.com; they’ve got a section on Compiler Design and Construction. I haven’t read any of them personally to be able to give you any suggestions of which to pick, though.