Never program when you have less than 6 hours of sleep in the past 24. IT DOESN’T WORK (Without a lot of coffee)
Always initialize your PWM outputs to 127. If you don’t it will default to 0. (0 is full reverse. I forgot to initialize my motor outputs. We turned on the robot, and it went backwards full speed and almost bashed one of our engineers in the shins… )
Don’t forget to increase those counters! (Well… I forgot this crucial step in one loop in our autonomous program… our robot was spinning in a circle for about five minutes)
Ok, they’re obvious, I know… just thought I’d share them. Anyone got any others to add?
While the code I write at 4:00 am is a great deal more efficient and interesting than anything I write while under the influence of sleep, No-one (Myself included) can ever reason out just what I did. I almost always end up rewriting such code (In a signifigantly more obvious way) later. In the end, I would have saved my own time by sleeping when I was programming and programming when I was sleeping. (Of course, I haven’t slept recently as I write this, so perhaps I’m a bit of a hypocrite). Of course, when I’m awake I also don’t forget to increment my counters and such…
Granted, that was when I had gone for 36 hours without sleep, but even so, that was pathetic. ::Bangs head against wall for miserable failures::
*Originally posted by Noah *
**While the code I write at 4:00 am is a great deal more efficient and interesting than anything I write while under the influence of sleep, No-one (Myself included) can ever reason out just what I did. **
You mean like this line taken directly from RoboEmu (comment included)?
*(unsigned int *)((int)out+i*sizeof(unsigned int))=result; //have fun figuring out this one
If this line ever fails, I’m going to have to delete it (and most of the surrounding function) and start over. It seemed like such a good idea at the time…
All i got to say is that DONT use too many debug statements { I dont belive they tell you this in the manual}
I was writing code for a neighboring team {947} and they were using a potentionmeter and i was just testing it out seeing what values it was outputting. But on top of that i just wanted to make sure that i was getting all teh right inputs and i was giving out all the right outputs. By the end of it i wound up with like 13 {some stupid number} DEBUG statements. Now all of a sudden the Revolving light turn off and on and all the motors work and then doesnt work and then works etc… Now i took out all the Debug statements and everything worked fine. I think its because the timing for the DEBUG statements is too long and maybe too many of them makes the whole loop go so much slower that the controller looses its timing i guess. only thing i could think off. But remember try not to use more than like 10 DEBUG statements Max at once. I dont know if PBasic 2.5 fixes this but i am pretty sure it doesnt i have tried it out yet.
*Originally posted by Jferrante *
** **What is sleep and where can I download it? ** **
I’ve been looking for a cracked copy for weeks… No luck yet. I guess I’ll stay up and keep searching…
As for programming tips, keep a copy of the Basic Stamp Manual handy. If you’re ever unsure of the syntax of a command, you can alway lookup it, hyuk hyuk.
If you ever REALLY need to stay awake (like, life threatening emergency, or just for fun) Sobe Adrenaline Rush will most likely do it for you, and it tastes good, too.
Oh, listen to music that won’t agitate or otherwise negatively affect you. You’re going to get pissed off at your code enough as it is, without sub-par music blasting in your ears. Pink Floyd, The Beatles, Phish, Tool… whatever you’re comfortable with.
One last thing. The light of your computer’s monitor is ALWAYS enough light to work under.
Crashing into a shin? We should be so lucky. The MEs didn’t listen when I told them to back away during testing. One got smacked in the jaw with a van door motor when the robot went full reverse.
Anyway, sleep is the absolute worse thing you can do to yourself while programming. After sleep you are too energetic to sit down and code. You have to stay on the edge where you are too sleepy to run outside, but awake enough to code. Every time you sleep you are loosing the 8 hours taken by sleep, and 16 hours because your energy level is too high. If you keep this “good sleep” up you will never have good programming time. You must stay awake, and when you hit the edge, you must stay there. Caffeine helps.
As a programmer, i can say i’ve found that having a close to hand set of switches with a kill switch is effective for when your bot decides to go AWOL… until the kill switch solder breaks.
Anyway, sleep is the absolute worse thing you can do to yourself while programming. After sleep you are too energetic to sit down and code. You have to stay on the edge where you are too sleepy to run outside, but awake enough to code.
Its true, i tell ya. Every week, we have at least one 12-hour meeting, and for at least the first 8 hours i do almost no programming, unless we need it desperately (I’m normally found trying to pose as a grease monkey :D). But for those final 3 hours or so, i get everything done. I used to think it was just me, but it seems i’m wrong.
*Originally posted by Anthony Kesich *
**Its true, i tell ya. Every week, we have at least one 12-hour meeting, and for at least the first 8 hours i do almost no programming, unless we need it desperately (I’m normally found trying to pose as a grease monkey :D). But for those final 3 hours or so, i get everything done. I used to think it was just me, but it seems i’m wrong.
-Anthony ****
You must be sleep deprived
if 8 + 3 = 12 then GOSUB HelpMe
HelpMe:
Grade = Grade MAX 2 ’ sends me back to second grade
Return
I must say that 8p - 2a are my best programming hours.
btw, if you have a food lion neer you, dr perkey and mountain loin are cheap, great tasting, and loaded with caffine and sugar!:yikes: :D**
im both fearing and looking forward to the final weekend. WE have a 5 day weekend at my school that weekend cuz of combining holidays and teacher meetings, so either ill rock and programming and make something godly or i will go into a coma from lack of sleep (or food if i do progam too intensly :yikes: )
I have enough trouble programming in pbasic while i’m awake. But in my defense I have this to offer; I only just started. Today was my first real day programming, and I made several syntax errors. I managed to change the output of the joystick code from linear to varying with the square. Ugh. I’ve only got one bug left to kill. But the first bugs I had- man! I bumped the joystick and the robot went screaming full speed into a bunch of 55 gallon drums. I am so happy there is a disable switch. But yeah, it works fine going forward any speed but if you pull the joystick back into the reverse corner areas, it starts going forward. I have something going negative; tomorrow I’ll figure out what and fix it.
*Originally posted by Jeff_Rice *
**I have enough trouble programming in pbasic while i’m awake. But in my defense I have this to offer; I only just started. Today was my first real day programming, and I made several syntax errors. I managed to change the output of the joystick code from linear to varying with the square. Ugh. I’ve only got one bug left to kill. But the first bugs I had- man! I bumped the joystick and the robot went screaming full speed into a bunch of 55 gallon drums. I am so happy there is a disable switch. But yeah, it works fine going forward any speed but if you pull the joystick back into the reverse corner areas, it starts going forward. I have something going negative; tomorrow I’ll figure out what and fix it. **
Are you trying to change the joystick from using only the y-axis to being able to use the entire plane of the joystick?
This code is publicly available, but I should thank you for trying to make the code yourself, before “reinventing the wheel.”
I’ve found this to be of great value whilst attempting to fit programming into my schedule. I find soft classical music nice for coding, but try to stay away from the really good stuff as that will probably distract you from the finer things in life, lik enjoying your silly programming errors.
Also, PBASIC 3.0 should include the necessary math functions to evaluate our robots name (e^(pi*i)+2).
Being a rookie programmer myself, I am perhaps super-qualified to post a couple hints…
First off, I have verified Noah’s assertion that counter variables do not in fact increment themselves. Increment your counters!
And secondly, remember that byte variables only count so high. Thus there is a problem with the following code:
testvar VAR byte
select testvar
case 0 to 300
do something
case 301 to 400
do something else 'This is never going to get executed!
endselect
testvar = testvar +1 'This part is important too!
I, of course, learned both of these the hard way. =)
One important thing to mention is: PBASIC does not like negative values…period I learned this the hard way when trying to do a case statement on the difference between two byte values and the negative code never executed took me a while to figure it out, but have it running smoothly. oh and counters dont increment themselves, although didnt I hear that from somewhere already? hmmm…oh well