So here we are. The last day with the boe-bot. Well, technically, it is the second to the last day, but this is my last post on this blog. That will bring my total to thirty, which I think is awesome because I absolutely adore even numbers.

But the point is, it is over. I am done with programs. I am done with putting in this resistor and pulling another out. I am done.

You know, sometime before this class, I thought about life without the boe-bot. I distinctly remember that I decided that I would be really sad, and I mean truly sad, and that I would miss this little critter.  I would miss looking at the pdf. I would miss pressing F9, and I will even miss the editor program. Actually I can look at the pdf and the program any time I want because I installed them on my computer, but I am missing the main thing.

The boe-bot.

That little, frustrating and sometimes not frustrating (the latter is very, very rare) piece of metal on wheels. Wow, I’m sitting here right now and suddenly, all these things that I would miss are bombarding my head. Resistors, jumpers,  servos, wheels, the breadboard – why, I will even miss the whiskers and the infrared headlights. And don’t get me started on the boe-boost – as frustrating as that thing was, I will miss setting it right. I’m the only one who knows this but I might as well let everyone in on the secret: whenever I need to fix the boe-boost, I get this good feeling when I get it right. It is like I accomplished something. Other people found it frustrating, but I found it fun.

I know you think that my mind is everywhere, and that in one paragraph I’m talking about one thing then the next I’m talking about something else. I think the same, but then I remember that I am not writing an essay. I’m writing about the boe-bot, and the whole one or three quarters that I spent with it. In theory, it was only a few months. To me it was a lifetime of frustrations and awesomeness. It was a lifetime of trial and tribulation, a lifetime of learning and gosh-I-wish-I-can-just-kick-this-thing-and-be-done-with-it. I’ve had that feeling more than once, but I never actually went through with it because for one I would get in trouble, and two I would get in trouble and lose a few monies.

Honestly! I can go on and on about the boe-bot and the things that I would miss about it. But I think I got my point across. The boe-bot was awesome. It was different and new. I’ve never come across anything as unique as the boe-bot, and I wish that I had done more things with it. But I was never that creative.

The last thing we did with the boe-bot was make a line. Like, load this program that would make them line up and follow each other. I forget what it is called. But I think you can imagine. And I think you can also imagine how that plan terribly failed as most plans do with the boe-bot. But I still think that the boe-bot is out-of-this-world. The fact that they did not follow each other does not even matter. Let’s just say that I expected it to happen and I’m so used to this kind of results that I just accepted it. Hey, we’re done with the boe-bot. I’m satisfied. I had fun – that’s what matters.

I imagined this post to turn out differently. I imagined it to be poetic and really deep in meaning and full of metaphors, but there are so many things to write about that I wouldn’t know where to start. So this is what I came up with, and the boe-bot will understand.

Thank-you for all the trouble. Thank-you for all the fun. Thank-you because you never got tired of me, even if I got tired of you. Thank-you to Mrs. Thompson for this opportunity.

Goodbye.

(I also wanted a poem here but I am not good with poems so all you get is!)

A picture of 99 – disassembling in progress.

 

I can not believe that it is the second to last class with the boe-bot. It makes me feel sad. I won’t dwell on my feelings right now. I’ll reserve that for the next post, so prepare for a sobfest! Just kidding.

Anyway for this class we did these projects on page 277. These are the projects, which I conveniently copy-pasted from the pdf. Call it laziness (it is a recurring theme in my posts):

  • Design a Boe-Bot application that sits still until you wave your and in front of it,
    then it starts roaming.
  • Design a Boe-Bot application that slowly rotates in place until it detects an
    object. As soon as it detects an object, it locks onto and chases the object. This
    is a classic SumoBot behavior.
  • Design a Boe-Bot application that roams, but if it detects infrared interference, it
    sounds the alarm briefly, then continues roaming. This alarm should be different
    from the low battery alarm.

Since this is almost the end of our time with the boe-bot, we should have amassed a great knowledge about programming and we should know the commands that make up the programs that fit the descriptions above. Well I have to admit that the first one seemed easy, but when I actually opened a new window in the editor my mind was completely blank. It is like whatever I learned went out of the window, and now that I think about it that also happens when I take a test. So I should not be surprised, yet it still feels wrong to not remember anything.

Fortunately (or maybe it is more of an ‘unfortunately’), the book had the programs! So lazy people like me could just copy and paste, but understand as well.

Hania and I decided to more or less collaborate for these projects. Logically we started with the first program, so we loaded those into our boe-bots. Then we took our boe-bots to the city (not literally the city; it’s boe-bot city!), which was turned onto its back for dropoff purposes. We turned our boe-bots on and hoped for the best.

I often wonder why I keep hoping for the best when nothing good ever comes. Well, some good does come, but rarely. I bet I could count on my fingers the good things that happened with me and the boe-bot, while the bad things would go on forever until they reach Jeddah. If you have not guessed already, the boe-bot did not go as it was supposed to. Instead of sitting there and waiting for me to wave my hand over it, it would back-up endlessly until I turned it off. Hania’s was doing the same thing, I think. I had no idea why it was doing that and I spent time poring over it. Finally I decided that I already spent too much time on it and decided to try the second program to see if any difference would materialize.

As it turns out, my boe-bot worked well with the second program and rotated until I waved my hand over it. I felt glad about that.

Then when I tried the third program I was back to square one because it just went forward and forward and did not beep when I swiped my hand over the infrared headlights. It worked once, but after that one time it never worked again. I have no idea why. And just for kicks I decided to try the first program again, but it did not make any difference.

One day I am going to take the time and figure this out piece by piece, but right now I am just filled with slush in the head and my brain refuses to comprehend. I guess I took too much time testing and not enough time thinking about it.

Some day.

(Next post will be the last! Isn’t it interesting that my total number of posts will be thirty? I like my numbers even. He he!)

 

 

This was possibly the coolest thing that the boe-bot can do with the infrared headlights. Basically, when the boe-bot is not detecting any reflected infrared, it stops and turns! This is most helpful when it is at the edge of a table because then it would not fall and break its parts! (And earn the anger of its owner. Every single person here hates it when something goes wrong with the hardware because they are so delicate we just expect them to work all the time so that we don’t have to change anything.)

So how do we do that? Well first of all I bent the headlights so that they were facing the ground. I also bent the detectors. You know what I’ll just show a picture because it’s much cooler that way:

Well, yay, there it goes. I did a little thinking before testing it with the wheels turning and decided that I would test the infrared headlights first to see if they still detect anything after all that bending that I did to them. So to do that I went to the folder where I keep all the programs. I had difficulty getting the right program because I am a lazy person and do not name programs properly. Anyway the program that I was looking for is one of the first programs that I tested with the infrared. I am not going to post it here because it would be pointless. If you are so interested then you might want to look back through my posts, although I doubt it.

It so happened that the left headlight was not working. I guess it is a good thing that I tested the infrared headlights first before testing them with the wheels because then I would not know what the problem was. To solve the problem I took it out then put it in again, but I got the same results. However I did notice that something was not right. To confirm my suspicion I asked Mavra and she said that the anode and cathode were not in the right place. Well it turns out I flipped the order around, which was why the headlight was not responding as it should. So I corrected the position and the headlight started working again, to my delight. Problem solved! Thanks Mavra.

So now that both headlights worked I decided to go ahead and test the program that would make my boe-bot detect dropoffs. Of course since everything was going well so far I had hoped that this testing would go on without problems. Well I guess I hoped too much because the boe-bot did either of these things:

  • went in circles
  • backed-up
  • anything that it was not supposed to do

I was stumped again. However I did not feel that bad because other people’s boe-bots were acting the same. As with the other people, I repeatedly adjusted the headlights because someone said it would make a difference. Well, I guess position does matter because after several attempts (and several boe-boost dilemmas), the boe-bot did what it was supposed to do. Yay!

And what was it supposed to do? Well we had this white board that was divided into four quadrants with black tape. White surfaces, it turns out, reflect infrared. So when place into one of the quadrants, the boe-bot will go forward aimlessly until the headlights are directly pointing down on the black tape, which does not reflect infrared. When this happens the boe-bot swerves either left or right to avoid the black tape and inevitably, the edge of the board. This is cool because then the boe-bot does not fall, which means no broken…resistors. Well, it isn’t exactly a good thing when the resistors are scrunched up and just look wrong. It’s not a pretty sight.

Anyway I had a good time with the dropoffs. It just makes me sad that we’re going to say goodbye soon… 😦

So it is understood that the IR headlights detect reflected infrared and do whatever they are supposed to. Well this was fun in the beginning, but what if the range of detection increased or decreased? What I am basically saying is if the infrared headlights detected something further away or much closer (meaning more or less sensitive), then it would be cooler and much more fun. As it turns out, the answer to my question lies in the resistors. As we all know the resistors control the flow of electricity. Well, the thing is when the infrared LEDs receive more flow of electricity, then they are more sensitive! So what do we do? Naturally, we change the resistors to resistors that allow more electricity to pass through. We did exactly that with some resistors that the pdf told us to use. I do  not think it would be that useful to tell you the colors so just understand that we used resistors that allowed more electricity for the LEDs to detect more.

So when we changed the resistors to the other resistors, the added electricity made the infrared LEDs brighter and, as a result, more sensitive. This means that the infrared headlights detected at a wider range! That is cool. (Okay I have to admit that I did not see any difference. But I will pretend that there is a difference because it makes it more special.)

Anyway that was it for the detection range. The boe boost annoyed me to the floor as usual. It just kept falling out. I am thinking of taping it but I do not think that it is a good idea so I will just have to keep putting it back where it belongs.

Aside from that I watched this video on BoeBotTeacher.com called Parallax BoeBot Turns. As the title suggests it is about how to make a boe-bot turn at certain angles and speeds. I already know some of the things there, such as the mechanics of the PULSOUT command, which looks like this:

PULSOUT Servopin, Duration

The servo pin can either be 12 or 13, and there are only two. The duration is how fast or slow, counterclockwise or clockwise, the wheels turn. The video mentioned 750 being the duration when the boe-bot does not move, and I already know this fact. I also know how any duration below 750 is clockwise, while anything above 850 is counterclockwise. I admit that I have forgotten this little fact and it is a good thing that the video reminded me. It also talked about which side of the boe-bot is front and which side is back, and which servo is the left one (13) and which one is the right (12). I know those as well.

What I was not aware of, but the video mentioned, was the fact that there are three possible rotations for each wheel, which means that there are nine possible motions. The three rotations are clockwise, still, and counterclockwise. The video goes on to explain what those motions are:

The first one is forward. This is when left wheel is turning counterclockwise and the right wheel is turning clockwise, resulting in the boe-bot going forward.

The second one is reverse, or as I commonly refer to it, ‘back-up’. This is basically the opposite of the forward motion, so the left wheel is turning clockwise while the right wheel is turning counterclockwise.

The third one is ‘still’. This means that the duration for both wheels is 750, and the boe-bot is not moving.

These are ‘straight line’ motions, obviously because they make the boe bot go in a straight line (or not move at all).

To my surprise there are actually SIX turns. It was just left and right for me until I watched this video.

The first two turns are ‘tight spins’ because they pivot at a point in the middle of the boe-bot. Both wheels are turning in the same direction.

The other turn is called the wheel pivot because one wheel is the point of the turn. That wheel is still while the other one is turning, which makes the boe bot go around in small circles. There are four of these turns:

  • when the left wheel is not turning, then there are two possible pivots of CW and CCW with the right wheel
  • when the right wheel is not turning, then there are two possible pivots of CW and CCW with the left wheel

And those are the nine motions that are possible with the boe-bot. I never knew that they had names for them but now I do, thanks to this video. The video had a really nice table showing all of these motions so you should search it up and look at it. I am not sure if I am allowed to share it so you’ll have to look for it. (Or maybe I am just too lazy.)

 

 

 

 

Mrs. Thompson was here for this class, which was good. We talked about what we did and did not do while she was absent. Mavra received some congratulations for being a good teacher while Mrs. Thompson was away. I learned many things from Mavra and I am thankful that she was there to help us with the infrared headlights. Without her, I do not think that I would have learned as well as when she was here. It is a good thing that she knows robotics very well because if I did not understand something I could ask her for help. Of course I will always try to figure it out myself first but if I am really stuck then Mavra is the way to go. I also sit next to her so that is good, I guess.

For most of this class we did field testing. In the most basic sense it means checking if the infrared headlights work when they need to work. We did that last class but we spent more time on it in case something changed while we were away. So I checked mine again to see if I had the proper programs and if an LED lights up when its respective IR detector detects infrared being reflected. I learned something very interesting and important from Mrs. Thompson while I was doing so. She said that if the IR headlights are not working as they should then we should check for a couple of things:

  • Is the anode or cathode in the right spot? If either one is in the wrong place then you should stop trying to make it work because it will never work unless you pluck it out and set it right!
  • Are the resistors touching? If they are, separate them immediately. Or risk getting burned.
  • Finally, check the piezzospeaker. I am not sure if I spelled that right but you get the idea. It is the black, circle thing that makes a sound when you have the right program.

Last of all we tried out many (okay, just three) programs and witnessed the capability of the IR headlights. They can do so much more and it is all very, very cool. The first one we already tested last class, but just for kicks I tried it again and thankfully it still worked. The second one was really funny. Actually, I tried it before everybody else because I already did the other program, so I went ahead and tested this one. Well, basically the program made the boe-bot let out a series of sounds when something interfered with the emitted infrared. For the interference I used Mavra’s boe-bot. The pdf said to use a second boe-bot but I did not have a second one so I used Mavra’s. Anyway the sound was really funny, kind of like an ambulance alarm except much higher. The third and last one finally made use of the wheels so I had to stand up. I needed the stretch. Anyway when I used that program the boe-bot would either go left, right, or back-up when I swiped a hand over the detectors. Otherwise, if nothing was reflecting the infrared then it went forward aimlessly until I took mercy on it and prevented it from turning on its back. That is like the worst thing that can happen to a boe-bot. If it turned onto its back, well, just hope that the resistors and all are still intact.

That was it for this class and I enjoyed it a lot, especially the second program.

I should have written about this date ages ago but I had other homework in the way so I decided to sacrifice this blog post. Well, it is here now and hopefully I can make up for it with meaningful content!

After spending a long time with the whiskers, we finally bid goodbye to them at the beginning of this class to make way for the infrared headlights. What are infrared headlights?

Well, they look like this on the boe-bot:

And are composed of these:

As you can see, I left out the piezzospeaker because it is an important factor in using the IR headlights. I am not sure why. . .but the programs we use to test the IR headlights make use of the FREQOUT, which means the piezzospeaker is involved. I will ask Mavra when the opportunity comes up.

Since I left it there, it must work with the IR headlights. I just do not know the reason. But it works so I will accept the logic.

This is how the IR LED was put in its shield:

The infrared headlights work by detecting infrared that bounces back. In truth, the infrared headlights themselves emit the infrared. So when something reflects that infrared that the IR headlights emitted, the infrared detectors detect the reflected infrared and send signals to the boe-bot, depending on whether they detect the reflected infrared or not. The actions that the boe-bot will undertake upon detection or non-detection will depend on what the program requires at that particular time.

So with this understanding we decided to test our awesome, spanking new IR headlights using two programs. The first program did not require the use of the wheels, which is convenient because we are new to these headlights and using the wheels first thing after assembly seems far too advanced. Or maybe I am just lazy and do not want to move from my seat.

Just kidding! I will move if I have to.

So this is the program that we used:

‘ Robotics with the Boe-Bot – TestLeftIrPair.bs2
‘ Test IR object detection circuits, IR LED connected to P8 and detector
‘ connected to P9.
‘ {$STAMP BS2}
‘ {$PBASIC 2.5}
irDetectLeft VAR Bit
DO
FREQOUT 8, 1, 38500
irDetectLeft = IN9
DEBUG HOME, “irDetectLeft = “, BIN1 irDetectLeft
PAUSE 100
LOOP

So the DEBUG terminal will show for each of the two IR headlights the value of  ‘1’. This means that the infrared headlights are not detecting any reflection of the infrared that they emit. However, when I swipe my head over them, that value changes to ‘0’, which, obviously, means that my hand reflected the infrared and the IR detectors detected them. I am not sure how my hand can reflect infrared…well, it seems like an interesting topic so I will research about it later when I get the time. Anyway, this was a success for me as both of the values were ‘0’ whenever I swiped my hand over either or both of the IR headlights.

The second program required LEDs but my memory tells me that I did not install those at the time of testing this program. So it basically worked like the other program, except this time the right IR was not working. I consulted Mavra and she told me to change the FREQOUT pin in the Main Routine from 8 to 2. I am not certain about the reason behind this but it worked so I would ask no further, except that odd time when I feel that it is really necessary for me to know.

‘ Robotics with the Boe-Bot – TestIrPairsAndIndicators.bs2
‘ Test IR object detection circuits.
‘ {$STAMP BS2} ‘ Stamp directive.
‘ {$PBASIC 2.5} ‘ PBASIC directive.
‘ —–[ Variables ]———————————————————-
irDetectLeft VAR Bit
irDetectRight VAR Bit
‘ —–[ Initialization ]—————————————————–
DEBUG “Testing piezospeaker…”
FREQOUT 4, 2000, 3000
DEBUG CLS,
“IR DETECTORS”, CR,
“Left Right”, CR,
“—– —–”
‘ —–[ Main Routine ]——————————————————-
DO
FREQOUT 8, 1, 38500
irDetectLeft = IN9
FREQOUT 2, 1, 38500
irDetectRight = IN0
IF (irDetectLeft = 0) THEN
HIGH 10
ELSE
LOW 10
ENDIF
IF (irDetectRight = 0) THEN
HIGH 1
ELSE
LOW 1
ENDIF
DEBUG CRSRXY, 2, 3, BIN1 irDetectLeft,
CRSRXY, 9, 3, BIN1 irDetectRight
PAUSE 100
LOOP
Your Turn

(I am pretty sure I did not have red LEDs for this one because I remember feeling surprised when I came back a week later to see that the LEDs were there…I know someone from the other class did it. So thank you.)

Anyway that’s basically it for this class. Mrs. Thompson was not here once again, but Mavra was there to save the day and she did a good job. Yay Mavra.

Yay infrared.

(I know I shouldn’t be saying this but I am glad we are done with whiskers. I think I got fed up at some point. Let’s see how long I’ll last with the IR headlights. I think they would be fun because the experience I have with them so far has been good. We’ll see what happens.)

(And oh yeah, the page for the keyboard is 253. Whoever cares about this, have fun making your own music with the boe-bot!)

And in the end, I started from scratch.
So I did not follow the list that I put up in my last post and really, everyone should have seen that one coming. I should confess that that was a spur of the moment list and was not really thought out that well. I guess it could be said that I was under pressure to produce something, no matter how unsure I am of it.
The list in the previous post does have something (or should I say somethings) that I included in my final program. What are these somethings? Well, they are called songs…
(I somehow thought of ‘You don’t say?’ as I typed that.)
(Only some people will understand that.)
Anyway!
I chose to include London Bridge, Clementine, Hot Cross Buns, and Fur Elise for the songs. Of course, I had to Google the piano sheets. But I have to say that that was probably the easiest part of translating these songs into robot speak.
To aid me on my journey of converting these songs into the language that these boe-bots speak, I turned to this page in the WAM pdf. I do not exactly remember the page but I wager that it is 253. I will check later and confirm in my next post.
What, exactly, was on that page? Well, for starters, it has a picture of a keyboard. But not only a keyboard! You see, the most important part of converting these songs into robotics language is knowing the frequency of each note.
‘What does frequency have to do with this?’ Boe-bots make sound because of a command called FREQOUT. This is how FREQOUT looks like:
FREQOUT pin,  duration, frequency
Frequency is how loud the sound will be. So, for every note on the piano there is a specific frequency number that corresponds to it. That is why I had to consult this handy guide.
What is true is that writing down the notes and looking up the frequencies are easy tasks. The difficult thing about it is getting the right duration. I aimed to not be very specific about it because one I am not a music genius and I have only a basic idea on how long each note should be; two this is robotics and as long as it makes sense, specifics do not really matter. That is not true all the time but in this case it is. Does the boe-bot play a recognizable tune of London Bridge? Then that is all that matters.

It is more difficult when there are four songs, which is why I chose to not do Hot Cross Buns. So in the end I had the robot-speak for London Bridge, Fur Elise, and Clementine.

Here they are, if you are so interested:

(Warning: might not sound right. Although everything except Clementine is recognizable.)

(Also, only portions of the songs were turned into FREQOUTs because I did not have time and/or I was too lazy)

London Bridge:

FREQOUT 4, 300, 2637
FREQOUT 4, 150, 2349
FREQOUT 4, 250, 2093
FREQOUT 4, 250, 2349
FREQOUT 4, 250, 2637
FREQOUT 4, 250, 2637
FREQOUT 4, 500, 2637
FREQOUT 4, 250, 2349
FREQOUT 4, 250, 2349
FREQOUT 4, 500, 2349
FREQOUT 4, 250, 2637
FREQOUT 4, 250, 3136
FREQOUT 4, 500, 3136
FREQOUT 4, 300, 2637
FREQOUT 4, 150, 2349
FREQOUT 4, 250, 2093
FREQOUT 4, 250, 2349
FREQOUT 4, 250, 2637
FREQOUT 4, 250, 2637
FREQOUT 4, 500, 2637
FREQOUT 4, 500, 2349
FREQOUT 4, 500, 3136
FREQOUT 4, 250, 2637
FREQOUT 4, 500, 2093

Fur Elise:

FREQOUT 4, 200, 2637
FREQOUT 4, 200, 2489
FREQOUT 4, 200, 2637
FREQOUT 4, 200, 2489
FREQOUT 4, 200, 2637
FREQOUT 4, 200, 2489
FREQOUT 4, 200, 2093
FREQOUT 4, 200, 2637
FREQOUT 4, 200, 2637
FREQOUT 4, 200, 5000

Clementine:

FREQOUT 4, 150, 2349
FREQOUT 4, 100, 2349
FREQOUT 4, 250, 2349
FREQOUT 4, 250, 3250
FREQOUT 4, 150, 2794
FREQOUT 4, 100, 2794
FREQOUT 4, 250, 2794
FREQOUT 4, 250, 2349
FREQOUT 4, 150, 2349
FREQOUT 4, 100, 2794
FREQOUT 4, 300, 3520
FREQOUT 4, 150, 3520
FREQOUT 4, 150, 3136
FREQOUT 4, 150, 2794
FREQOUT 4, 150, 2637
FREQOUT 4, 500, 2637
FREQOUT 4, 150, 2794
FREQOUT 4, 100, 3136
FREQOUT 4, 250, 3136
FREQOUT 4, 250, 2794
FREQOUT 4, 150, 2637
FREQOUT 4, 100, 2794
FREQOUT 4, 250, 2349
FREQOUT 4, 250, 2349
FREQOUT 4, 150, 2794
FREQOUT 4, 100, 2637
FREQOUT 4, 250, 3520
FREQOUT 4, 250, 2093
FREQOUT 4, 150, 3520
FREQOUT 4, 150, 2637
FREQOUT 4, 500, 2349
FREQOUT 4, 1000, 2349

Like I said, Clementine didn’t sound so good but the sound that came out sounded so interesting that I kept it the way it is. If I were to correct this to form Clementine I’d say that the problem lies in the durations…but I am not going to worry about that now.

So that’s only part of my program. I would show you all of the program but then it would be too long and probably would not make any sense. So what I am going to do is put here the steps that I wanted the boe-bot to take. I think it would be easier to visualize that way.

So here it is:

None Pressed
1. Go forward aimlessly.

Both Pressed
1. Go forward for one second.
2. Pause for half a second.
-LEDs blink fast during this pause.
3. Go forward for one second.
4. Pause for half a second.
-LEDs blink slowly during this pause.
5. Go forward for one second.
6. Pause for half a second.
-LEDs blink two times.
7. Go forward for one second.
8. Pause for half a second.
-LEDs light up.
-Piezzospeaker lets out a 2-second long 4 kHz sound.
9. LEDs turn off.

Touch Left Whisker
1. Face to the left using a 90 degree turn.
2. Form a circle that is three feet in diameter and sing London Bridge.
3. When the circle is finished, pause for 1 second.
4. Pivot in the same spot and sing London Bridge again.
5. Face to the left using a 45 degree turn.
6. Face to the right using a 45 degree turn.
7. Face forward.
8. Let out a half second 4 kHz beep.
9. LEDs turn on for one second then go off.

Touch Right Whisker
1. Back-up for 3 seconds then sing unrecognizable version of Clementine.
2. Pause for one second.
3. Turn around on the spot and sing Clementine.
4. Pause for one second.
5. Turn to the right at 90 degrees.
6. Go forward for 4 seconds.
7. Pause for half a second.
8. Both LEDs blink and beginning of Fur Elise by Beethoven will play.
9. When song is finished, face left then right (45 degrees each, approx.)
10. Face left at 90 degrees.
11. Go forward for 8 seconds.
12. Pivot.
13. Pause for less than half a second then face to the right.
14. Go forward for four seconds then pause.
15. Face forward at 90 degrees.
16. Both LEDs turn on then 4 kHz sound (2 seconds) lets out.
17. End.

As you can see there are different commands for when no whiskers are pressed, both are pressed, when the left is pressed, and when the right is pressed. I don’t know how I kept up! It does sound confusing, doesn’t it? But this is just the plan and not the program itself…wow I am amazed with myself.

I just wish I used a circle or two. Maybe next time when I figure out how to use them in a GOSUB.

(Someone teach me!)

(Also: I am sorry that the beginning paragraphs do not have space between them. I copied from Word and I have no idea why it is like that. Just bear with it, please. If it does not bother you then that is good.)

Mrs. Thompson was not present for this class, so we were left to fend off for ourselves. It’s not as primitive as it sounds, though. I’m talking more along the lines of writing this complicated program, with no one to clarify difficult code snippets…

Well, there’s Mavra. And some other people.

Anyway, we have this huge contest thing where our boe bots are supposed to do really complex maneuvers. We write the programs using all the techniques that we know, and the boe-bot demonstrates. Now, there are two parts to this: the program, and the boe-bot. While the program itself will be a challenge, testing it on the boe-bot is much harder. Everything can and will go wrong, and that is usually the case with me. I have no idea why I always get the bad results. It cannot be me; it has to be the boe-bots.

So for my complicated challenge I went over my head and decided that my program would do the following:

(It looks better like this because it is inhumanely long and I am more than certain that I will not accomplish everything, but these are my thoughts right now.)

1. Go forward a few seconds.

2. Pause.

3. Go to the right, then left, then go back to the position before it faced either direction.

4. Spin around for a few seconds.

5. Pause.

6. Back-up (and maybe play out ‘Thriller’? [wow I’m really over my head])

7. If left whisker is touched:

-go around in a square:

–stop at one point, spin while playing London Bridge

–turn to the right, go forward a few seconds, pause and play Mary Had a Little Lamb

–turn right again, go forward a few seconds, pause and play Hot Cross Buns

–last turn, go forward a few seconds, pause, turn left and right while singing some nursery rhyme

8. If right whisker is touched:

-back-up while blinking profusely

-back-up, then turn left, spin, turn the lights on, turn left then right then left on repeat

-pause

-let out loud beep

-turn off

Looking at this list, I am beginning to doubt myself. I think I will have to remove some aspects and make it more interesting. I will see how it goes because I have not written the actual program yet. Instead, I decided to test the code snippets that I need one by one to see if 99 works well with them.

I did not finish testing all the code snippets that I needed, but I did find out that 99 turned 90 degrees with the normal number of pulses. I also found out that if I used GOSUB and I have a GOSUB for a one-second forward, and I did not put RETURN at the end of the code snippet for the forward, and if I used EEPROM with the GOSUBs and put three forwards then three pauses, the boe-bot will not continuously go forward for three seconds but rather would go forward for one second, then pause, then go forward, then pause, and so on.

The EEPROM looks like this:

(assume ‘A’ is GOSUB forward and ‘B’ is GOSUB pause)

AAABBB

(There is no RETURN for the subroutine for forward.)

I think we all know that that is obviously what would happen if a RETURN was not put but I never really encountered it so I thought it looked cool, and actually decided that I will use it for the complicated program.

I also decided to refresh my LED memories so I looked up some basic programs for LEDs. When I tested those programs one of the LEDs won’t turn on, even if the resistors weren’t touching. Actually, it would only brighten up if the resistors were touching and that is not correct robotics. So I got worried and even changed that LED two times until it suddenly blinked. I think it is an LED problem. I know it is not me because the program was the same…

I am just glad that it is blinking now.

I know what I’m doing next class.

(Write that program for the uninitiated. I feel apprehensive. I hope I finish it.)

Before I end, here is a picture of the new LED. It is the darker red one.

So we used this class to continue working on the circles – we wanted so badly to get it right. Hania and I worked together for the second time and we employed many tactics to get this circle done accurately. It is amazing how it took us one hour to crack the code…well, it was worth it. I especially enjoy the look on people’s faces when they ask how we did it and I tell them ‘Go figure it out yourself’. Then I feel bad but I still hold the secret back.

It is not that terribly difficult…now.

Well the first thing we did was change the variable from byte to word. I personally thought it would solve the problem because I have had an experience where changing the variable made all the difference in the world. Unfortunately the three feet circle is a tough cookie and it refused to make an appearance even with that change that we made to the program. The boe-bot made the same exact huge circle that it made before, so back we went to the computer to puzzle over the program.

Since Hania put the program within a huge program (Programception? You bet!), we thought it would be easier if we tried it alone in its own page. So we did that and hoped it would work. We should have known not to raise our hopes that high because the boe-bot made the same huge circle. Well, back to the computer.

Next we thought it was Hania’s boe-bot. Having had all these failures with her boe-bot, it was safe to assume that the problem was the boe-bot itself. So we thought to try the program on my boe-bot and hoped that the answer was in this one. Well, it was not that, either. 99 made the same mistake as Hania’s boe-bot and I just found it hilarious. It was funny how it was taking us this long to make a three foot circle.

Back we went to Hania’s boe-bot and we thought that maybe it was the pulses. So to PULSOUT 12 we added sixteen pulses and hurrah! It made a difference. However, it was not the difference we were looking for. Still, the circle got ridiculously miniscule and that was all that mattered to us poor souls.

We determined that adding made smaller circles, so if we subtracted some pulses the circle would be bigger. So that PULSOUT we changed to 720. This time the circle was bigger than the last one, but also wider than three feet. So we went back to the computers, this time with a tad bit more of optimism.

The secret is: the bigger the PULSOUT, the smaller the circle and vice versa.

We experimented with more numbers, each time adding one or two until we finally chanced upon the magic number: 723! We were very happy when the boe-bot made a circle that was three feet wide. We were annoyed that some people got the program from the book as is and their boe-bots immediately worked. The unfairness of this world.

We went through all of that while they had it all in a wink.

Anyway, these are the numbers that Hania’s boe-bot ended up with:

PULSOUT 13, 850

PULSOUT 12, 723

I tested this with mine but of course I should have realized that no two boe-bots are alike, except maybe in appearance but never in how their minds work. So I ended up with these numbers:

PULSOUT 13, 850

PULSOUT 12, 721

That’s not very far off from Hania’s and it’s actually a pretty good number.

I had fun figuring out the mysteries of the circle and I plan to experiment more with this new knowledge – in my complicated program, maybe? Who knows…

Mrs. Thompson was back for this class and it was great. So we were asked if we were done with the challenges under cycle 17 on Moodle. I don’t think anyone did, including me. Like I said in my previous post, I did not finish the song part.

For that part I planned a really elaborate song that would sound so cool that everyone would be speechless. However, I decided that that was not practical because I know nothing about music. If I did that I would also have to go back to the pdf and look for the keyboard where the cool hertz numbers are. As cool as they are, however, that would be a tedious process. I like to keep things as simple as possible, unless it is really imperative that I think outside of the box.

In keeping with my ‘simple as possible’ motto I typed random numbers for the hertz and hoped that an awesome song would come out of it. I guess I hoped for too much because what sounded out was more like gibberish rather than a melody that is pleasing to the ears. Oh well.

So after that Mrs. Thompson told us to make circles; that is basically the final challenge under cycle 17. I thought, how do you make circles? I know how to make 99 turn around in a circle, but I cannot make it go around to make a circle that is three feet in diameter. Well, it is more that I do not know how, because I certainly can. I just did not know HOW.

I sat there thinking about it, testing small circles by having one wheel at 750 and the other at numbers that make it turn. Okay, those were successful, but certainly not three feet in diameter. I was itching to ask other people but I thought that they would be busy making their boe bots go around in circles, so I sat there for a moment. Then I decided that I was one hundred percent stumped and decided to walk over to Hania’s table to see what she was doing, and, hopefully, learn from her. Something about being Batman.

As I did that, Mavra brought something to Mrs. Thompson’s attention. She took 99, pointed at the screws holding the servos to the chassis, and said, “Mrs. Thompson, see this boe-bot’s screws are the correct length. Some other people’s boe-bots have shorter screws, and that causes problems.” (Okay that is not word for word, SURELY, but she said something along those lines.)

So Mrs. Thompson said, Oh, really, then went around checking everyone’s screws. It turned out that more than half of the people had short screws, so she told them to change them to the proper length. The people with the wrong screws groaned in frustration. We all knew how terrible that process is, and how tedious it is.

Well, no problem for me. Mine were right. So I went back to Hania’s and we decided that we would just work on her boe-bot to learn from each other. Also, since everyone else was working on their servos, we just decided to work on getting the circle right. It is like killing two birds with one boe-bot. (Point for me!)

Hania got this code snippet from the pdf that is supposed to make a one yard in diameter circle. We know that one yard is approximately three feet so we used that. The code snippet used For counter. From past experience with the triangles we know that changing the number of pulses and not the PULSOUT (as people told us) has a connection with angles. So we decided to play around with that.

First of all, since the code snippet that she found was already for a one yard diameter circle, we thought that our problems were solved. Well, when we tried it on the circle that was constructed near the corner of the classroom, the circle that it made was so big it didn’t even make a full circle. So we decided to play around, decreasing and increasing, and we were not successful. Neither decreasing nor increasing made a circle that is three feet across. We spent most of the time on this without success, and when it was time to go we were still not successful. So we decided to try again next class.

So, our goal next class is to crack the code to making a circle that is three feet in diameter.

Categories

Pages