# crazy code projects

I am looking for some crazy or cool code projects to work on.

I have spent the last few years working on a project to track my robot and do auto-navigation, and I found that when I started I was way in over my head, but by working on the project I learned much about what I now know about programing. Now that I am done with that project I am looking for something new to sink my teeth into, something to widen my horizons and give me some new knowledge

As a bonus, if I get any cool project ideas from here, I’ll post my code here when I’m done

I’m not sure how “crazy” this is but I am curious as to whether or not there is a way to make a bang bang controller as accurate as PID while retaining the same fast rate of fire for flywheels. I have not done any testing with and velocity controls, but from reading forum posts it seems as though bang bang’s weakness is accuracy and I am sure that a bit of intuitive coding could solve that.

unfortunately I have, no way to test this, The principal idea of the Bang-Bang Controller is that if error is positive power = MAX, and if Error is Negative, power = -MAX, however my robot uses a ratchet, so I cant really go in reverse

Alright.

1. Use two LCDs and make them play a game.
2. Have a system to know where the robot is facing at all times, then auto position to fire into the goal.
3. You could try your hands at recordable autonomous. (It’s been done before, but still fun to try).

I am wrapped up in a similair project (that is way over my head but is good for my skills) of making the robot copy the driver in 1000 fps. So the driver drives, then the robot drives what the driver drove…

I wouldn’t think that would be too hard. Wouldn’t you just have to have an array list for each joystick/button that records their value every millisecond?

Make an H-drive omni-wheeled platform that balances an inverted pendulum in 2-axis. That should be fun given the zero crossing hysteresis in VEX motors as you switch current direction.
If you get it to work, the foundational algorithm would help everyone.

the cortex does not nearly enough variable storage (you might need 500 times more storage)

one of the few words I got in that was hysteresis, just because a star trek episode I recently watched made reference to the “hysteresis cure” now if you could explain what the rest of it means we would be all good

perhaps every Msec you could check if each input has changed, and only record values if they change, or out put the values to a debugger stream, out put them to a parser programed in java, then have that program convert them into commands that you feed back into the cortex (anyway that what another person on my team did to make code like this

I already have number 2 done (although it is not incredibly accurate as a result of gyro drift that I have not been able to overcome" however, I will now totally make two LCD’s screens so that I can play pong

For buttons you could just record the time in milliseconds that the button was pressed. For the joysticks you could do this but record the time when the value changes and have another array list that saves the value at those moments (you dont need to do this with the buttons because it would just be switching between 1 and 0).

That sounds very challenging. How would you measure the inverted pendulum’s position, though?

ah, did some research on an inverted pendulum, this is a challenge I can really sink my teeth into, I like it, must try this now…

I just threw my life away for the next few months, and couldn’t be happier

however I think that I will start with a 1 axis pendulum to start, but could some one explain what a “zero crossing hysteresis” is?

I believe he’s referring to what happens when the motor power levels get close to zero (i.e. small enough power levels don’t result in movement, because the motors can’t overcome inertia and friction).

Another challenge is playing robotic tic tax toe… You play the robot computer that you programmed… It will be a lot of repetitive lines of code unless you can find the short cut if you really want to take the challenge to the next level you could make the robot learn how to win…

A self-balancing VEX motorcycle. Making it might be the toughest part, so maybe go with a segway
Or you could try to make a VEX robot that balances on a ball (PID would probably be the easiest way out).

I wouldn’t mind having a robot that flies over to my laptop (or phone, or mouse, or chips) and throws it at me safely. Or at least brings it to me. That would be pretty useful

Potentiometers would work. They are the best absolute position sensor VEX has. Although you could start straight up and down for HOME and use a relative sensor like quad encoder. Depends upon which gives you better resolution.