Monday, February 5, 2018

The Help Has Arrived

For our eleventh meeting of the Robotic Dudes, we had a helper come, which was great to see. We had three of the team missing, which helped it be a bit calmer, plus having an assistant coach shifted the dynamics a bit.

We had two groups working on solving various tasks in the Hydrodynamics Challenge. There were still a couple of boys just sort of wandering around and one who left early. One of the teams just had to have the robot drive forward a couple of feet and lift a lever to dump out a water barrel. They came pretty close to getting it to work. Another team was trying to pick up a broken pipe, but that team had to get the robot to navigate quite a bit further before grabbing the pipe, so more room to be off slightly. I think they need to use the light sensor to turn based on when they hit some guidance lines on the ground.

I attended a Vex competition a week or so, which my nephew was competing in. I had signed him off on the Robotics Merit Badge and thought it would be a good idea to come check out how Vex works. It is similar in some ways and different in others to how the Lego Robotics works. With Legos, there are many more intricate tasks to perform. The precision required is pretty crazy. With Vex, the tasks are more gross motor, picking up or pushing around plastic rings about the size of a donut. Also with Legos, only one team is on the board at a time. There are two boards side by side running concurrently, and there is a part where you can drop something on the other side of the field, but it is very minimal interaction. With Vex, you're on the same board so can run into each other, but you actually work in cooperation with each other for part of the challenge. Legos is completely autonomous, while Vex has both autonomous and remote control modes.

Tuesday, January 30, 2018

Pseudocode

Last Thursday we had our 10th Robotic Dudes meeting. It started a bit slow with people running around again, and we had another discussion regarding the need to focus. I think it may be starting to sink in that they're not going to be able to continue coming if they aren't actually working on something.

We are supposed to be getting another helper, a USU student with some programming background, who will be coming to help with crowd control and answering questions. At this point, we really need to get going on programming. Of course, that wasn't helped much when we showed up and all the computers that are normally in the STEM Lab were gone. So we talked about pseudocode, which is a way of stepping through the logic of a program without actually writing code.

I had the boys grab their notebooks and write out how they could logically work on certain tasks. I think it was good, but they needed to be a bit more detailed in their pseudocode. They would write things like drive forward and lift the lever, instead of how it would know how far it had gone or what type of motor would be activated to lift the lever.

Wednesday, January 24, 2018

Nine Lives

Our Robotic Dudes last week was fairly uneventful from a productivity standpoint. It was our ninth meeting, and honestly I don't that we got much done. The challenge kit and table are fully assembled and in the room where we can actually work on them, since they wrapped that up in preparation for STEM Night. We started by talking about how STEM Night went and what goals people had for moving forward. We also talked through a few of the challenge options and broke into some teams based on which challenges people wanted to work on. But about half the group just ran around out of control, not paying attention to what we were doing. Does that mean we're in the Storming phase of team development or have we regressed to Forming? The ideal is that moving forward we'll have some additional adult supervision to help out.

Thursday, January 18, 2018

STEM Night

Last Thursday was meeting 8 of the Robotic Dudes. We were preparing for the STEM night, which was last Friday. We didn't have to do a presentation, just take turns with the other Lego teams from the school manning a booth with the challenge table and a couple robots. We were to just be there working on things and talk to people as they came up to us.

In our meeting on Thursday, it was a pretty low key work day. We were broken up into a couple different groups. As usual, some were working harder on things than others. One of the boys was singing Weird Al's The Saga Begins, a spoof of American Pie about Star Wars Episode I. It is one of my favorite songs (both Don's and Al's versions), so I put it on the room's speakers. Then I somehow turned into a DJ, taking requests for songs they wanted to hear. I was hoping the background music would help them focus some, but it actually distracted a little bit. It wasn't too bad, as I turned it down so it wasn't too loud. I was kind of surprised that Lukas Graham's Once I Was Seven Years Old was the most requested song. I don't think they were going to let me out of there without playing it. I mean, it's a good song and all. I guess they like channeling their inner seven year olds.


The actual STEM Night was pretty good. There were a lot of people there, throughout the school. The star gazing was a big hit, with a portable, inflatable planetarium. I didn't make it inside as there were a lot of kids lined up to go in there. There was a 3D printing station, some dogs from the humane society, and paper airplane contest. They had pizza and lots of science exhibits from the university and other groups around town, so a good atmosphere.

As for our particular station, I think it was okay. The other teams did the first shifts. Those teams seemed pretty well behaved and able to talk to people about what they were doing. We were at the end. I thought the crowds would have thinned out more by then, but people seemed to be sticking around. We had to clean everything up, which wasn't too bad. Several of the challenge pieces were broken, or maybe better said slightly disassembled, from everyone wanting to touch them. Some of that is from random kids and adults looking at things and some of it was from our team not being able to keep their hands off. I was a little surprised at how excited some of the team was, like they had never seen the challenge kit before, grabbing pieces they wanted to play with and yelling like they were at a birthday party. I mean, it was loud in there already, with as many people as were crammed into the cafetorium (combined cafeteria and auditorium), but I guess it's good that they're still excited to be there.

Thursday, January 11, 2018

Ringing in the New Year with Robots

Last Thursday we had our seventh meeting of the Robotic Dudes. A few days before our meeting, one of the other coaches contacted me about sharing robots, which I think will be a great thing. At this point, we've all built the basic model straight out of the book. The idea was that if we've all got stock model builds sitting there in the closet, we might as well share them so we can have several groups working on their own hardware at the same time in the class.

Based on the kindergarten feedback, I had one group working on adjusting the robot's arm so it would be two separate arms that would alternate up and down instead of one larger arm with both sides going up and down together. I gave them a little hint which gear they might use to make it work, and they did the rest. They put some little "hands" on the ends of the two arms, and it worked great. At that point, their unfocused creativity took over, and they spent the rest of the time building a big tail and putting ears on it so it looked like a dog or something. As soon as they left, I took off the tail, but I did leave the ears on it. Mostly, I didn't want the other team when they borrow our robot to have this big thing hanging off the back of it.

Honestly, I think that in addition to having a robotics club, they should just have a Legos club, since that seems to be what a few of them are most interested in - just building stuff with Legos. I've explained a few times that they need to learn to program and have some idea of what they want their robot to do before it makes sense to build something. Maybe I need to completely disassemble our existing robot and have them rebuild it just to get some of that out of their system.

I think today I'll have one group focus on the dancing robot for the kindergarteners, and another group will focus on accomplishing one of the tasks from the Hydro Dynamics Challenge. I think they'll be excited if we do the toilet flushing one.

Tomorrow is the school STEM night, where several groups from the university will come over and do all kinds of fun STEM-related activities (plus pizza) to get kids excited about science. There will be a robotics club booth, where each team will take turns for about half hour apiece, just being there working on their robots. We don't present anything, just be there doing something and available for people to ask questions about what we're doing. Should be fun.

Friday, December 22, 2017

Success...sort of

Yesterday, we were going to do a robotics demo to a kindergarten class. For a variety of reasons, I ended up doing the demo myself. I had three kindergartners come up to the white board and draw a picture of a robot. They looked similar, boxy bodies, arms with claw hands, random buttons and lights, and maybe an antenna on the head. I asked them if they had ever seen a robot and if they thought robots were real or not. Some said they were not real, while others said they were real. Then I pulled out our team robot that currently looks mostly like a car with a small arm on the front. I told them that robots can be used to cook food, drive cars, get books at the library, vacuum the floor, or just about anything you could imagine.

I wrote two quick programs. The first just made it drive around in a figure 8. I asked what they thought, and they wanted it to do more, so I changed the program to make it have the arm go up and down while it was driving around. They thought that was pretty good, but wanted two arms to alternate up and down, which I told them I could do but would take more work than we had time for at the moment.

Then I showed them another program I wrote, called Feeding the Tiger. Basically it drives forward until they put the little box of food down in front of it, then it grabs the food, makes a growling sound, and then turns around and drives off with it. A few of them got to take turns holding the food out in front of the "tiger" although they had a hard time with it, since they didn't always line up the box very well with the arms.

It was fun, and I'm glad I had just me and the kindergartners. I think it would have been too much to have several of the team in there as well, since they can be out of control at times. Their teacher had to tell them several times to back off, since they would creep closer and closer trying to get a better look. They all want to do another robotics day in the future, so I'll have to think of something else cool to demonstrate for them, hopefully something they can interact with. Maybe I'll do something with colors and the light sensor.

After school, when it was official robotics club time, at the beginning of our sixth meeting, a few of the team asked about the kindergarten thing, but no one seemed very upset that they didn't get to actually do the demo. I told them we would split the group into two teams, and each team was to try to program the robot to follow a line. I used black electrical tape to draw a rectangle on one table and one that looked kind of like a digital sine wave. I let them split up however they wanted.

I should have attached the light sensor myself beforehand. I usually leave the parts box put away in the closet, because if it is out, they just want to build stuff with the Legos instead of working on what we are supposed to be working on. I figured I should let them attach the light sensor, so the parts were out, but as usual, about half the group just started playing with parts. About half of the team did work on getting the light sensor attached and went over to the table with the rectangular box to start working. I went over with the half that were working, and we started trying things out. The thing I'm most concerned with is that they are going to break or lose parts if they are just playing around.

A couple of the team that were paying attention were just lost. They were trying to program something but didn't really know where to start. One team member knew how to read in colors from the light sensor, so he worked on that and eventually was able to get it to start going if it was on the black line, although he didn't get very far with it turning at the corner.

I built a basic switch algorithm that was constantly checking the light level and would make it go straight forward if it registered black and stop if it registered anything else. Once I got that working, I had it turn a little to the left if it was on something other than black. Eventually I had it drift slightly to the right if it was on the black and turn sharply left if it was off the black. Tweaking slightly how much it was turning and driving and how fast, I was eventually able to get it to follow the rectangle. Every once in a while it would get off the tape and would drive in a circle until it found it again and then start following again. It wasn't driving totally smoothly, as it would wobble a bit right and left, but it followed the line pretty well. I think some more tweaks can get it moving better.

The bigger challenge is having it be able to follow the line that curves in both directions. I'm not sure yet how to tell it which way to turn, but I think the general idea is to actually follow the edge of the line instead of the middle of the line, so it will always turn right if it's on the line and left if it's off the line and go straight if it's on the edge of the line, which means it can turn in either direction. Of course, the boys should be coming up with their own algorithm or researching how to do it, but I'm trying to model a bit how to try things out and think through the problem logically. I may recommend they spend some time looking at videos others have uploaded for how to perform basic tasks but not too much that they're just copying what others have done. The problem solving mindset is what they need to develop, so they can start to think critically about designing something to work, rather than not knowing where to start.

Monday, December 18, 2017

Success!

This past week we had our fifth meeting. The challenge that I had given them the week before was met! Time to start working on the next one.

We had one of the more boisterous boys come back, who had been missing the week before, but he was much more mellow. He was much more on task himself, plus helped get some of the other boys focused when they were not. I don't know what happened exactly, but I'll take it. :)

At the end of last week, each boy had their own computer and were individually working on trying to solve the problem of picking up the pipe and driving it over and dropping it on the other notebook and they got close. This week we started that way, but about half of them just sort of naturally grouped together and were working on the problem together, which was great to see. They had a couple of computers but were mostly just working on the one program that was the closest and trying it repeatedly until they could get it to work consistently. Part of their problem was not having the spots marked on the floor where the robot and the notebooks were sitting, so they would get bumped around and not end up back exactly where they were previously.

The other half of the boys were just kind of over there messing around on the computers. I honestly don't really know what they were doing. I've gotten to where if they are running around too much, I just sit there and wait quietly for them to be ready, as I can't compete with that many of them if they want to be out of control. One of them will see it quickly and tell the others to calm down so we can get back to work. Since we had about half of them focused, I spent time with that half and let the other half do whatever they were doing.

This is really the norming phase moving in. There is still some storming. They will fight and yell and poke each other in the eye as they are 9 and 10 year old boys after all. But those who want to do something are actually trying and accomplishing what they want to do.

I think the next step is to work on loops and sensors. Right now they have to tell the robot to drive a certain distance, but by using a sensor in a loop, you can tell it to start driving and just keep on driving until a certain condition is met by the sensor, such as seeing a certain color or bumping the touch sensor. That way, we could put the notebooks a differing distance apart, and as long as it is going in a straight line between them, as soon as it sees a certain color, it knows it is on the notebook and can drop the piece and back away. Part of that is also navigating around the table. There are lines in certain parts of the table which can be followed to make sure it ends up in the right place. The basic algorithm is that as the robot drives forward, if it sees black it turns slightly one way or if it sees white it turns slightly the other way. By checking the line regularly and only moving a little at a time, it will end up driving pretty smoothly.

Making progress.

Friday, December 8, 2017

I'm Bored

Yesterday was our fourth meeting of the Robotic Dudes.

We jumped right into trying to perform a basic task. Part of the challenge is to pick up a piece with a ring-shaped handle and bring it back to the home base. In order to keep it simple but get them programming, I gave them a modified challenge using that Lego piece from the challenge kit. I put two notebooks on the ground about 4 feet apart. They had to make the robot pick up the piece off the one notebook, turn around, and drop it on the other one.

There are enough laptops in the STEM Lab, which which is the room where we meet, for everyone to work on their own. I just explained their task, pointed each one of them toward a computer, and I went over and sat in the corner to watch. Their first task was to modify our existing robot to give it something it could pick up the piece with. It already had an arm, but it was more for dragging something on the ground than for picking something up off the ground. They modified the arm to put a small hook on it. Then they had to start working on the programming. I had to kick them out of the box of Lego parts, as they kept wanting to mess around and build things that had nothing to do with the robot.

They eventually all started working on the computers, although a couple of them were just going through all the different built in sounds the robot can make instead of actually working on the task at hand. One of those included one of our robotic experts, who does have experience both in Legos and in other programming environments. His favorite line so far is, "I'm bored." The first couple weeks were painful for him, I think, as we were getting to know each other, setting up some rules, talking about what we would be doing, and learning how the programming environment works. He just wanted to get in and start programming. I don't know that we're looking at an Asperger's diagnosis, but he's definitely more interested in interacting with technology than with other people. Of course a lot of kids these days match that description. Part of First Lego League is teamwork, though, so we have to spend some time on it.

Most of the boys had a laptop to work with, although a few were working together on one or goofing around. They were fighting over who got to connect their Bluetooth to the robot and try out their program, which is a good thing. We had several who tried to drive way too far and just kept going after hitting the piece they were supposed to pick up. We had one who picked up the piece but ended up flinging it up in the air since they raised the arm too fast. One actually picked it up and drove off with it, but went off at a weird angle and didn't end up dropping it on the other notebook. They were getting closer each time as they took turns running their programs and then tweaking them. This might have been the first meeting where I wasn't ready to kick them all out when time was up. We could have stayed another hour to tweak programs and keep trying to accomplish the task.

Something that will make this easier in the future will be when we start using loops and sensors to move around instead of just trying to guess how far to make it drive. Plus, I think building a different kind of arm to pick up the piece will work better.

I really tried to stay mostly hands off and let them try things. I would give them some ideas or hints to help them figure out what they did wrong. At one point when some of the boys were messing around building things that had nothing to do with our robot, before I took away the box of extra parts, one of the boys asked if he could just watch a video (unrelated to robotics) since no one was doing anything. I took away the spare parts, but I also challenged him to step up and be a leader and get his team focused on the task at hand. The only way for me to stay sane and for them to really come together as a team is for me to give them something to do and then back off and let them organize and make it happen.

At one point, someone that looked like a college student came into the STEM Lab and sat down to watch. She took some notes for maybe 10 minutes and then left, without saying anything. There are a lot of college kids that work in the after school club, so I don't know if she was part of that (or if she thought we were part of that). When she was there, we were testing out our programs and learning some things together about how to fix the mistakes they had made in their programs, so much better than some times she could have shown up in previous sessions when they were jumping off tables (both literally and figuratively).

We have a ways to go, but I can see the light at the end of the tunnel.




Thursday, December 7, 2017

Programming

It has been a while since my last post on the Lego team. Thanksgiving preempted our normal Thursday session, which would have been our third meeting. I sent out an email with some basic information on the challenges we will be performing and some videos for the kids to review over the break.

Last week, we had our third meeting. I wanted to make sure we got the kids more hands on with the robots so they don't start losing interest, and they've been excited to get started. I split them into two groups. I had one group create a short plan for some movement they wanted the robot to make - drive in a circle or a square, zig zag along a path, etc. Then they would actually program whatever they decided they wanted it to do. In the meantime, I took the other group and showed them around the challenge kit, which had been assembled by one of the other teams. Then the first group told us what they planned and we had them show it off to see if it did what they wanted it to. (Spoiler Alert: It didn't.) Then the second group had a couple minutes to try to fix whatever was wrong with the first group's code. Then we switched, and I showed the challenge kit to the first group and had the second group plan something and program it. One of the groups had planned to have the robot drive in a straight line, turn around 180 degrees, drive back in a straight line to where it started, and repeat that several times. The first time, it ended up drawing more of a star shape, but eventually they were able to tweak it to go straight back and forth.

We also watched another of the STEMCentric videos where he showed some of the other basic blocks using the medium motor or the tank steering. The next video we need to watch is the one on loops, which are important when using sensors to control the motors. We'll get to that soon.

Saturday, November 18, 2017

Robotic Dudes

This week we had our second robotics team meeting. There was still some running around on top of tables (literally and figuratively), but there was a slight shift of the wind. We have a ways to go, but we're making progress.

As I mentioned last time, we discussed some team rules, and I came up with a streamlined version of the rules, which I'm calling the 4 Cs:
  • Celebration - be positive, look for the good and say it
  • Cultivation - always be learning, sharing with others
  • Collaboration - work together, synergize
  • Concentration - stay on task, be respectful
I was having a hard time with a good word that started with C and ended in -tion for be positive. I had it down to celebration and conciliation. Of the two, celebration seemed more positive to me. As soon as the word was said, we spent the next few minutes waiting for the impromptu dance party to dissipate as about half the boys did their best Kool & The Gang impression.



I had to explain what cultivation meant. We discussed that working in a garden took work to cultivate or help the plants grow. Learning takes work, but the results can be awesome.

Collaboration was easy, since a big theme of the school is the 7 Habits of Highly Effective Kids. As soon as I said synergize, they recognized it as Habit 6 and were good on that one.

I think Concentration was pretty straight forward, too, although I was still getting the last of the Celebration calmed down, so I'm not totally sure.

Everyone put on the board what team names they came up with. They all put in two votes (although there may have been some ballot box stuffing), and then our top vote getters moved on to a final election. It ended up being a close call between Bot Rockers and Robotic Dudes. I was pulling for Bot Rockers, but Robotic Dudes won the day by one vote. After the vote was over, one of the boys said he hadn't voted and he wanted to vote for Bot Rockers, which would have put it back to a tie. We then had a short lesson in politics, "Do you know what happens when you don't vote? Nothing, because you chose not to participate when your vote would have made a difference." And we're the Robotic Dudes for now, although I left the door open for changing the name later if they want to.

They have been anxious to start building something. I wanted to get them in doing something to keep their interest up, so we actually went to programming the robot that I had built previously. Eventually they have to build their own robot, but for now we can learn some of the programming basics. I found an awesome EV3 Tutorial site, so we will be watching those videos during our meetings and practicing what we have learned. Hopefully about the time the other team is done assembling the Challenge Set, we will have some navigating skills.

The first video introduced the various motors and sensors, the computer module everything plugs into, and the programming environment. He then shows how to do some basic driving around - forward, backward, turning, different speeds, etc. We had each boy drop in a Move Steering block and pick what they wanted it to do - turn, drive backwards, etc. A couple of the boys wanted to be different and used a single motor block, which just made it turn in a big circle when that block executed since only one motor turned on at a time. We talked about making sure the programming blocks were activating the desired motor, based on the port they are plugged into on the computer module.

We ran their program a couple times, so they could watch what the robot was doing while each person's block was executing. And time was up.