I’m so thrilled with how my team’s project turned out. I think people enjoyed interacting with out ArtBots (pictured above) and our hard work on the movement of the bots, the interaction of the controllers, and our thoughtfulness about materials selection and set up of space paid off. During our demo of this projects we heard comments like “this is so fun” and we watched people have fun as well. They experimented with controllers, tried to get the bots to battle each other, and contributed to our community, robot-generated art piece.
Below is my final code for the ArtBot.
And here is my final code for the ArtBot controller. As noted in the final group post, I would have liked to avoid button presses and to just use the position of the screen to control the bot but the responsiveness of the ArtBot to those commands was not as reliable as the button presses were. For improved user experience, I decided to sacrifice some of the interaction novelty for functionality.
Here’s an example of code that demonstrates one of the biggest lessons I learned: You can only have one radio event in makeCode but that radio event can receive multiple packets of information. I had been feeling very limited by the radio functionality prior to discovering this and my code looked simple and not engaging (blocks on the left side of the screen). Additionally I wasn’t using best practices and I was doing things like renaming variables in a way that can cause the code to not function correctly. Learning how to send and then use multiple commands via radio (as pictured in the blocks on the right) opened up many more avenues of interaction.
Another one of the biggest lessons I learned was how to send a command from the controller micro:bit to get the ArtBot to stop. I had previously been trying to do this by using a method similar to the two blocks pictured in the bottom row below. However this didn’t work as expected. It cause the ArtBot to stop only very briefly. Instead I tried creating a variable that I was thinking of as a switch. “when I get this radio number, set that stop variable to “on” (1), if any other radio number aside from that one are received, turn that variable off and set it to 0″. This had the effect that I wanted which was a complete stop until another button was pressed.
This felt like a huge learning moment for me because I don’t think I would’ve had the ability to think about variables like switches and to set up that code so organically at the beginning of this course. The fact that my mind was able to come up with this switch mechanism tells me that I’ve gotten much better at “thinking in code”.
Things that I want/need to learn in order to feel like I have some mastery here include understanding the gigglebot developer notes better. I didn’t notice until today that hovering over the giggleBot blocks provides some additional information about how the battery level and speed of motors can both affect the accuracy of the commands sent to the bot. There are blocks to correct the motion of the bot and I think this may have been useful when I was experiencing a lot of unexpected behaviors in my ArtBot but I’m not quite sure how to use those blocks. Another area that I would love to learn more about to increase my understanding of how radio works, its uses , its limitations, and creative ways to use it.