<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.9.0">Jekyll</generator><link href="https://breakthroughbots.org/feed.xml" rel="self" type="application/atom+xml" /><link href="https://breakthroughbots.org/" rel="alternate" type="text/html" /><updated>2021-12-10T17:58:27-06:00</updated><id>https://breakthroughbots.org/feed.xml</id><title type="html">Breakthrough Robotics</title><subtitle>The official Breakthrough robotics team.</subtitle><entry><title type="html">Cargo Connect - Kicking off 2021 season</title><link href="https://breakthroughbots.org/seasonkickoff/fll/seasonkickoff/" rel="alternate" type="text/html" title="Cargo Connect - Kicking off 2021 season" /><published>2021-09-13T00:00:00-05:00</published><updated>2021-09-13T00:00:00-05:00</updated><id>https://breakthroughbots.org/seasonkickoff/fll/seasonkickoff</id><content type="html" xml:base="https://breakthroughbots.org/seasonkickoff/fll/seasonkickoff/">&lt;p&gt;&lt;img src=&quot;/assets/images/season2021/spike-building.jpg&quot; alt=&quot;kickoff&quot; /&gt;&lt;/p&gt;

&lt;p&gt;On Tuesday, our Breakthrough Robotics team will pick up for another season, after having
taken last year off.&lt;/p&gt;

&lt;h2 id=&quot;what-is-first-lego-league&quot;&gt;What is FIRST Lego League?&lt;/h2&gt;

&lt;p&gt;The Breakthrough Robotics team participates in the First Lego League competition. In FLL,
student engage in research, problem-solving, coding and engineering – building and programming a LEGO robot that navigates the missions of a robot game. As part of Challenge, teams also participate in a research project to identify and solve a relevant real-world problem.&lt;/p&gt;

&lt;p&gt;This year, the season theme is &lt;strong&gt;Cargo Connects&lt;/strong&gt; with a focus on real-world transportation
and supply chains. There’s a ton of info about the exact mission challenges and 
more specifics at the &lt;a href=&quot;https://www.firstinspires.org/resource-library/fll/challenge/challenge-and-resources&quot;&gt;FIRST Website&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;meetings&quot;&gt;Meetings&lt;/h2&gt;

&lt;p&gt;We meet twice a week.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tuesdays&lt;/strong&gt; are required practice. We will use these days to go over the 
activities we are working on on and get an intro. Typical agenda for Tuesdays is as follows:&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Time&lt;/th&gt;
      &lt;th&gt;Activity&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;6:30pm&lt;/td&gt;
      &lt;td&gt;Arrival &amp;amp; dinner&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;6:45pm&lt;/td&gt;
      &lt;td&gt;Weekly Standup (meet to go over activities for the night&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;~7:00pm&lt;/td&gt;
      &lt;td&gt;Core Values activity&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;7:15pm&lt;/td&gt;
      &lt;td&gt;Split into groups for work&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;7:45pm&lt;/td&gt;
      &lt;td&gt;(optional) check in on progress&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;8:15pm&lt;/td&gt;
      &lt;td&gt;Clean up&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;8:30pm&lt;/td&gt;
      &lt;td&gt;Leave&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;&lt;strong&gt;Thursdays&lt;/strong&gt; are encouraged but optional practice. These nights are available for kids to 
continue work towards their goals.&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Time&lt;/th&gt;
      &lt;th&gt;Activity&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;6:30pm&lt;/td&gt;
      &lt;td&gt;Arrival &amp;amp; dinner&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;6:45pm&lt;/td&gt;
      &lt;td&gt;Split into groups for work&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;7:45pm&lt;/td&gt;
      &lt;td&gt;(optional) check in on progress&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;8:15pm&lt;/td&gt;
      &lt;td&gt;Clean up&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;8:30pm&lt;/td&gt;
      &lt;td&gt;Leave&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 id=&quot;season-kickoff&quot;&gt;Season kickoff&lt;/h2&gt;

&lt;p&gt;Here’s a teaser kickoff from FLL for the season:&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/eJSDHC_9Sxk&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Check out &lt;a href=&quot;/season2021&quot;&gt;our 2021 season details&lt;/a&gt; for more info.&lt;/p&gt;

&lt;p&gt;I look forward to seeing you all there!
Luke&lt;/p&gt;</content><author><name></name></author><category term="seasonkickoff" /><category term="fll" /><summary type="html"></summary></entry><entry><title type="html">Welcome to CoderZ</title><link href="https://breakthroughbots.org/virtualclass/virtual-class-intro/" rel="alternate" type="text/html" title="Welcome to CoderZ" /><published>2020-05-14T00:00:00-05:00</published><updated>2020-05-14T00:00:00-05:00</updated><id>https://breakthroughbots.org/virtualclass/virtual-class-intro</id><content type="html" xml:base="https://breakthroughbots.org/virtualclass/virtual-class-intro/">&lt;p&gt;Hello students! Tonight, we are going to be setting up a virtual robotics environment to
allow for socially-distanced learning.&lt;/p&gt;

&lt;p&gt;Please join the Zoom here at 7pm on Thursday May 14:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://us02web.zoom.us/j/84839409749?pwd=ckNSL2cyZ2ErRTlYSzFkSFBkRmFDUT09&quot; class=&quot;btn btn--primary&quot; target=&quot;_blank&quot;&gt;Join Zoom Meeting&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The password is “bots”.&lt;/p&gt;

&lt;p&gt;Follow along with the slides for this evening:&lt;/p&gt;

&lt;iframe src=&quot;https://docs.google.com/presentation/d/e/2PACX-1vQn6Kq7m95zUIMkMnrB8id7SPtMZXbHDtVKgpYh9BOBnZTcMydENX2efYhQKSfws8U6s3p_YXYTCeHs/embed?start=true&amp;amp;loop=true&amp;amp;delayms=3000&quot; frameborder=&quot;0&quot; width=&quot;960&quot; height=&quot;569&quot; allowfullscreen=&quot;true&quot; mozallowfullscreen=&quot;true&quot; webkitallowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;</content><author><name></name></author><category term="virtualclass" /><summary type="html">Hello students! Tonight, we are going to be setting up a virtual robotics environment to allow for socially-distanced learning.</summary></entry><entry><title type="html">LEGO’s New Robot Language Is Awesome</title><link href="https://breakthroughbots.org/new-year-new-language/" rel="alternate" type="text/html" title="LEGO’s New Robot Language Is Awesome" /><published>2020-01-16T00:00:00-06:00</published><updated>2020-01-16T00:00:00-06:00</updated><id>https://breakthroughbots.org/new-year-new-language</id><content type="html" xml:base="https://breakthroughbots.org/new-year-new-language/">&lt;p&gt;Last night was a great first class of Robotics 101. Every year when we start this class with a
fresh set of new students, we try something new. We have two goals in the class: first, to help
the kids learn the basic skills necessary to be an effective team member on the First Lego
League team in the fall - but more importantly, to cultivate an interest and help them discover
a passion for engineering.&lt;/p&gt;

&lt;p&gt;This winter, LEGO released a version of Scratch built entirely to operate with EV3 robots. It’s
a dramatic improvement over the previous version, called Labview, which has been the main choice
for First Lego League for years.&lt;/p&gt;

&lt;h1 id=&quot;simpler-language-for-simpler-programs&quot;&gt;Simpler language for simpler programs&lt;/h1&gt;

&lt;p&gt;Here is the intro program showing how a robot can drive straight. In Scratch, it’s pretty
clear what’s happening - the robot should move forward for 2 rotations of the wheel, then stop
for a second, move backward, stop, and then forward again.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/scratch/ev3-scratch-move-straight.png&quot; alt=&quot;Scratch Move Straight Code&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/scratch/robotstraight.gif&quot; alt=&quot;Robot Moving Straight&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In prior years (as recently as a month ago), the official software from LEGO used LabView. This 
language doesn’t use language, and is laid out horizontally. The code is a bit more confusing
and requires more translation for new developers as a result. Here’s the same code shown in LabView:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/scratch/ev3-labview-move-straight.png&quot; alt=&quot;Labview Move Straight Code&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;easier-to-understand-more-complicated-programs-too&quot;&gt;Easier to understand more complicated programs too&lt;/h1&gt;

&lt;p&gt;Labview also presents challenges as programs get more complex. It’s challenging to comment, and when
programs get more than a few pieces of logic they stretch into screenfuls without great ways to organize.
LEGO has a concept of a “myblock” which is kind of like a function except they can’t nest, and editing
the function is a challenge.&lt;/p&gt;

&lt;p&gt;My students have often run into trouble understanding code with any switches or loops. We have to
consistently re-explain what each block does (“oh, that’s a loop”) before we can get to the basic
logic. For example, here’s a line follower in Labview. The robot follows the edge of a black line
by using the color sensor to see whether it’s looking at a light or dark area and turning accordingly:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/scratch/ev3-labview-linefollow.png&quot; alt=&quot;Labview Line Follow&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Even this relatively small program presents a lot of challenges. However, in Scratch the same program
becomes more readable - the loop fades to the edge and the main attention is drawn to the core logic.
Many of the optional features are not present unless specificaly called to. And you can sort of read
the code and undresatnd roughly what it’s doing without necessarily having a lot of training
in the specific blocks that are used.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/scratch/ev3-scratch-linefollow.png&quot; alt=&quot;Scratch Line Follow&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/scratch/legolinefollow.gif&quot; alt=&quot;Line Follow animated gif&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;really-complicated-math-is-easier-as-well&quot;&gt;Really complicated math is easier as well&lt;/h2&gt;

&lt;p&gt;When students write in Labview, the language makes it really hard to do even basic math. Labview
includes the concepts of variables and math, but values are shuttled between blocks using “data wires”
which are fairly arcane and nonintuitive. As an example, an advanced form of line following is called
a “PID” line follower which takes into account past behavior to more precisely follow a black line.&lt;/p&gt;

&lt;p&gt;The EV3Lessons tutorial on PID (&lt;a href=&quot;http://ev3lessons.com/en/ProgrammingLessons/advanced/PID.pdf&quot;&gt;link&lt;/a&gt;)
is really top-notch and walks through the different components and how they
work. However, the final result is nearly unintelligible:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/scratch/ev3-labview-pid-follower.png&quot; alt=&quot;Labview PID code&quot; /&gt;&lt;/p&gt;

&lt;p&gt;While it’s still complicated, the Scratch version at least proceeds linearly and you can trace more easily
where the different values come from and how they end up determining the motor direction. This 
is especially true if students have experience working in any other programming language, which are 
more likely to use variables than data wires. Here is the code from the updated Scratch tutorial on PID 
(also from Ev3Lessons) - &lt;a href=&quot;http://ev3lessons.com/en/ProgrammingLessons/advanced/scratch-PID.pdf&quot;&gt;link&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/scratch/ev3-scratch-pid-follower.png&quot; alt=&quot;Scratch PID code&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I am really excited for the potential of students to learn using Scratch and build more powerful programs
than what is possible with Labview.&lt;/p&gt;

&lt;h1 id=&quot;real-world-use-is-fully-supported&quot;&gt;Real world use is fully supported&lt;/h1&gt;

&lt;p&gt;Bluetooth is the primary way we encoufrage our students to connect. It has been a challenge because, well
Bluetooth is finicky. But the new connection screen really helps things out. Last year, I printed out
worksheets showing students all the steps to take, but this year it’s built into the program. I can tell
them “Just click Connect” and they followed the prompts and all got their robots hooked up.&lt;/p&gt;

&lt;p&gt;Here’s the connection procedure - super fast end to end.&lt;/p&gt;

&lt;iframe src=&quot;https://player.vimeo.com/video/385320593&quot; width=&quot;640&quot; height=&quot;383&quot; frameborder=&quot;0&quot; allow=&quot;autoplay; fullscreen&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Compared with the old software, it’s a significant improvement. And when I consider alternatives - such
as MakeCode, OpenRoberta, or Python, which each involve some major lifting (either inserting a SIM card,
or only connecting via USB and some magic with connected drives), it becomes obviously easier
for students to just use the code out of the box.&lt;/p&gt;

&lt;p&gt;But this new release changes it all. It’s officially supported and released by LEGO - which means
we can trust that over time, it will be the mainstream standard and bugs will be fixed. It supports
Bluetooth out of the box with an intuitive connection interface that’s easier tan the one in Labview.&lt;/p&gt;

&lt;p&gt;When I tried it with the class last night, we found that the kids were able to quickly build their
robots AND connect them. By the end of the one -hour class, all students had their robots built
and majority had connected them to the computers and gotten them to go straight.&lt;/p&gt;

&lt;h2 id=&quot;teaching-kids-to-teach-themselves&quot;&gt;Teaching kids to teach themselves&lt;/h2&gt;

&lt;p&gt;One issue I ran into with MakeCode is the very limited curriculum for kids to learn. There isn’t much
of an online community for EV3 Make code so I wrote all my own guides. But this is painstaking and not
great - most of waht I etaech kids is how to google for their simple asnwers. There are resources like
Ev3Lessons.org that are tailored to Labview and were inaccessible to my previous attempts.&lt;/p&gt;

&lt;p&gt;But I am super grateful to the Seshan Borthers for rewriting all their lessons to support the new language
as well. The website ev3lessons has been essential for my journey as a coahc the last four years
and the kids have learned some great techniques; but it has hampered my other attmpets to teach b
because those resources arne’t aabilable if you’ren ot using Labview. But now, they support
the new language as well.&lt;/p&gt;

&lt;p&gt;Even the Seshan brothers tools show how the new language is easier. For exampe, take this advanced 
lesson on how to build a proportional line follower. The Labview ersion reuires a bunch of comments in the code
itself and the math operations on variables are super hard to follow - I often have to write down
 what the equations should be just to make any sense.&lt;/p&gt;

&lt;p&gt;Whereas, here in the Scratch version, the essential math fits on one line and at leaste makes sense
as an equation. Students can then focus on “why” the code is this way rather than on “what” it’s doing.&lt;/p&gt;

&lt;p&gt;In addition, the built-in tutorials for Scratch are similar to those offered by the prior version of EV3,
but I think the smoothness of hte language makes the enviroment a bit more slick. For example, the
tutorial automatically restricts that available blocks for certain lessons so that you’ll gradually
release complexity and let kids move their way up.&lt;/p&gt;

&lt;p&gt;Also, Scratch is a mainstream coding tool that kids may have encountered in school, as well. While it’s not
a major professional language (like Python), it is more standard then some of the more custom ones
like Labview, Make Code or OpenRoberta, which are all robot specific. We think that will expose
the kids to better, more mature tech as well.&lt;/p&gt;

&lt;p&gt;In summary, the new Scratch language is fun and will be a better fit for our class this winter.&lt;/p&gt;</content><author><name></name></author><summary type="html">Last night was a great first class of Robotics 101. Every year when we start this class with a fresh set of new students, we try something new. We have two goals in the class: first, to help the kids learn the basic skills necessary to be an effective team member on the First Lego League team in the fall - but more importantly, to cultivate an interest and help them discover a passion for engineering.</summary></entry><entry><title type="html">Season Officially Begins</title><link href="https://breakthroughbots.org/bootcamp/season-kickoff/" rel="alternate" type="text/html" title="Season Officially Begins" /><published>2019-09-03T00:00:00-05:00</published><updated>2019-09-03T00:00:00-05:00</updated><id>https://breakthroughbots.org/bootcamp/season-kickoff</id><content type="html" xml:base="https://breakthroughbots.org/bootcamp/season-kickoff/">&lt;p&gt;Welcome to the Lego League Official Season! Tonight we begin the intense work to build a robot,
develop a solution to a problem in the community, and grow as a team.&lt;/p&gt;

&lt;p&gt;Team members! Please read through the rules- it is up to YOU to understand what’s required for your missions.&lt;/p&gt;

&lt;p&gt;We will organize this season into two-week &lt;strong&gt;sprints&lt;/strong&gt;. Every other Tuesday, we’ll have a team planning meeting,
where we will use a &lt;strong&gt;Kanban board&lt;/strong&gt; to organize which tasks each person will work on for that sprint. You can
choose what you want to focus on and then work for two weeks to achieve each milestone.&lt;/p&gt;

&lt;p&gt;Practice is every Tuesday &amp;amp; Wednesday (except for the Wednesday Nov 27 before Thanksgiving). Please plan to come to
at least one practice every week, but come to as many as you can!&lt;/p&gt;

&lt;p&gt;Reading below:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://drive.google.com/file/d/1t729_e9u4QJEiYSEm0ahl-zZfd1cRh6X/view&quot;&gt;Full Rules for City Shaper&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://firstinspiresst01.blob.core.windows.net/fll/2020/city-shaper-challenge-updates.pdf&quot;&gt;CHALLENGE UPDATES&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;See you tonight!&lt;/p&gt;</content><author><name></name></author><category term="bootcamp" /><summary type="html">Welcome to the Lego League Official Season! Tonight we begin the intense work to build a robot, develop a solution to a problem in the community, and grow as a team.</summary></entry><entry><title type="html">Sprint Planning for First Lego League</title><link href="https://breakthroughbots.org/bootcamp/kanban-board/" rel="alternate" type="text/html" title="Sprint Planning for First Lego League" /><published>2019-09-03T00:00:00-05:00</published><updated>2019-09-03T00:00:00-05:00</updated><id>https://breakthroughbots.org/bootcamp/kanban-board</id><content type="html" xml:base="https://breakthroughbots.org/bootcamp/kanban-board/">&lt;p&gt;This is my third year of coaching our First Lego League team. I’ve noticed a few common questions
come up that we haven’t had a great system to answer in the past:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Does everyone know what they need to do each night? Sometimes I’ve seen kids don’t really know
or understand what’s expected of them. The rules and missions can be daunting and the language
very precise, especially for a younger team of 4th and 5th graders.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Does everyone have the help they need to be successful? Kids can get stuck on simple things, like
where is the LEGO piece I need for this attachment or how do I save my program? They can also get
overwhelmed by the steps needed for the project.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;What happened last time? Our practices are two nights a week, and volunteer coaches and kids
may only be there for some of them. It’s helpful to know what was accomplished last time so you
can pick up where they left off.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We have tried digital solutions - a shared Google doc, Slack channel, and email - but those
seem to rarely work. First, not everyone has access to Internet outside of robotics, and at practice,
once the laptops come out distractions go through the roof.&lt;/p&gt;

&lt;p&gt;This fall, we are trying something with a bit more structure that I borrowed from professional
sofware engineering - a Kanban board and sprints.&lt;/p&gt;

&lt;h3 id=&quot;standup&quot;&gt;Standup&lt;/h3&gt;

&lt;p&gt;Tonight, we learned about “standup”. A standup is a brief meeting where everyone is standing in
a circle. We have a big red one-minute sand timer that gets passed around. Each person talks for
one minute and answers three questions:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;What progress did I make last time?&lt;/li&gt;
  &lt;li&gt;What am I planning to work towards tonight?&lt;/li&gt;
  &lt;li&gt;What help do I need to make progress?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After everyone goes, we assess- are there gaps? If someone isn’t sure what to work on, then their
teammates can make suggestions until each person has a project for the night.&lt;/p&gt;

&lt;h3 id=&quot;kanban-board&quot;&gt;Kanban Board&lt;/h3&gt;

&lt;p&gt;We track all the tasks on a “Kanban board”. I’m used to using digital versions of this such as
Asana or Trello, but for this team a physical board is really effective. We use big post-its for
each big task. Each kid has their own card which can move around and stick to the tasks.
As people choose tasks, they are moved to “In Progress” with the person or people who are working on it
attached.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/season2019/making-kanban.png&quot; alt=&quot;making kanban board&quot; /&gt;&lt;/p&gt;

&lt;p&gt;So far we have only had two practices but it’s going well - the kids loved making the board and
the first standup led to one of the most focused practices I’ve seen.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/season2019/2019-09-04-kanban-board.png&quot; alt=&quot;current board&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;sprint-planning&quot;&gt;Sprint Planning&lt;/h3&gt;

&lt;p&gt;It’s possible that the daily standup will be sufficient; however, I think having a longer planning
meeting every two or three weeks will be helpful. At the longer meeting, we’ll allocate 30-45 minutes
at the beginning of practice to glom together three functions. In professional software
development, these are sometimes combined and sometimes kept separate - we will have to experiment
but I suspect doing them all at once will make the most sense.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Demos - as the season progresses, it will be helpful to have mini-milestones to showcase the current
progress of the robot missions and project. A formal demo gives everyone a chance to show what they’ve
done to their peers.&lt;/li&gt;
  &lt;li&gt;Retro - a quick reflection on what went well and what could be better during the last two weeks.&lt;/li&gt;
  &lt;li&gt;Planning - we’ll look ahead to the whole remainder of the season, evaluate where we are compared
to our goals and consider if the set of goals should change.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These kids are ready for a great season of learning and discovery! Can’t wait to see what they create
and how they grow as a team. Hopefully the agile structure will help them along.&lt;/p&gt;</content><author><name></name></author><category term="bootcamp" /><summary type="html">This is my third year of coaching our First Lego League team. I’ve noticed a few common questions come up that we haven’t had a great system to answer in the past:</summary></entry><entry><title type="html">City Shaper Kickoff - First Day!</title><link href="https://breakthroughbots.org/bootcamp/city-shaper-kickoff/" rel="alternate" type="text/html" title="City Shaper Kickoff - First Day!" /><published>2019-08-12T00:00:00-05:00</published><updated>2019-08-12T00:00:00-05:00</updated><id>https://breakthroughbots.org/bootcamp/city-shaper-kickoff</id><content type="html" xml:base="https://breakthroughbots.org/bootcamp/city-shaper-kickoff/">&lt;p&gt;Every summer, Breakthrough hosts a 4-day Bootcamp to kick off the season. This was our best
first day kickoff yet! We had eight hardy souls come out in the middle of summer
to begin tackling the twin challenges of the Robot Game and the Innovation Project.
Unfortunately, our challenge set has not yet arrived, but I think that will end up being
a blessing as it gives us more time to digest the rules and focus on preparation so that
the team will use their time more effectively when we get down to the business of actually
building &amp;amp; programming.&lt;/p&gt;

&lt;p&gt;First, we watched the kickoff video:&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/y_mTQZQ8Kzc&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Then, the kids split into groups to go through each mission and think about how it might
be accomplished. We used these awesome worksheets provided by the Seshan brothers (thanks!).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/worksheet-mission-eval.png&quot; alt=&quot;mission evaluation worksheet&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Already, I can tell that the kids AND coaches have a better understanding of all the missions
than any of the teams did last season. It pays to spend some time learning!&lt;/p&gt;

&lt;h3 id=&quot;homework&quot;&gt;Homework&lt;/h3&gt;

&lt;p&gt;Each team member should read through the &lt;em&gt;full&lt;/em&gt; contents of the packet below, which covers the
rules of the robot game.&lt;/p&gt;

&lt;iframe src=&quot;https://drive.google.com/file/d/1t729_e9u4QJEiYSEm0ahl-zZfd1cRh6X/preview&quot; width=&quot;560&quot; height=&quot;700&quot;&gt;&lt;/iframe&gt;</content><author><name></name></author><category term="bootcamp" /><summary type="html">Every summer, Breakthrough hosts a 4-day Bootcamp to kick off the season. This was our best first day kickoff yet! We had eight hardy souls come out in the middle of summer to begin tackling the twin challenges of the Robot Game and the Innovation Project. Unfortunately, our challenge set has not yet arrived, but I think that will end up being a blessing as it gives us more time to digest the rules and focus on preparation so that the team will use their time more effectively when we get down to the business of actually building &amp;amp; programming.</summary></entry><entry><title type="html">Custom Blocks (MyBlocks) in MakeCode</title><link href="https://breakthroughbots.org/makecode-custom-blocks/" rel="alternate" type="text/html" title="Custom Blocks (MyBlocks) in MakeCode" /><published>2018-09-01T00:00:00-05:00</published><updated>2018-09-01T00:00:00-05:00</updated><id>https://breakthroughbots.org/makecode-custom-blocks</id><content type="html" xml:base="https://breakthroughbots.org/makecode-custom-blocks/">&lt;p&gt;Our team is potentially participating in the pilot to use
different programming languages this fall (see the &lt;a href=&quot;/programming/&quot;&gt;MakeCode Pilot page&lt;/a&gt;). However, MakeCode has not nearly as many
tutorials as are available for Mindstorms EV3 Native software,
so we have looked at ways to replicate some of the familiar
tasks that one may do using EV3.&lt;/p&gt;

&lt;p&gt;In Ev3, MyBlocks are a way to reuse code in different contexts,
which makes for more compact and easily understood programs. In 
MakeCode, you can write JavaScript functions to allow for reusable
code instead. With special text comments, you can configure
custom, reusable blocks that are a slightly more flexible than
those found in EV3. (More on the differences below).&lt;/p&gt;

&lt;h3 id=&quot;move-centimeters-in-ev3&quot;&gt;Move Centimeters in EV3&lt;/h3&gt;

&lt;p&gt;At EV3Lessons.com, the Seshan brothers have written an excellent
&lt;a href=&quot;http://ev3lessons.com/en/ProgrammingLessons/intermediate/MoveDistance.pdf&quot;&gt;tutorial&lt;/a&gt; for a simple MyBlock that moves the robot a given distance in centimeters. Using this MyBlock, you can measure the conversion from
centimeters to rotations one time, enter it into the Myblock,
and then re-use the block every time you want to move the robot.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/myblock-2.png&quot; alt=&quot;myblock-code&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The EV3 code is doing two things:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;A Math block multiplies the distance (in CM) by a fixed,
precalculated ratio to get the degrees that the large motors
should rotate to achieve that distance. In the example, the
ratio is 20.5 degrees for each centimeter.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The number of rotations is fed into a Move Steering block
to propel the motor forward.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Both blocks are packaged as a single Myblock which can
be invoked repeatedely.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;move-centimeters-in-makecode&quot;&gt;Move centimeters in MakeCode&lt;/h3&gt;

&lt;p&gt;To do this in MakeCode, we will first make a program that moves
centimeters manually. We can then create a custom block to
allow it repeatedely.&lt;/p&gt;

&lt;p&gt;To start, I’ll create a New Project which gives the basic New Project screen:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/new_project.png&quot; alt=&quot;new project&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I’ll create a program that moves the motor for 10 centimeters, using
the similar multiplication block that we saw above:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/steer_multiply.png&quot; alt=&quot;multiply&quot; /&gt;&lt;/p&gt;

&lt;p&gt;When I test it, I see that the robot moves 10 cm. Yes!&lt;/p&gt;

&lt;p&gt;Let’s click the “JavaScript” button to see the equivalent code for the
blocks we created:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/javascript_blocks_movecm.png&quot; alt=&quot;jsblocks&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The blocks and code do the same thing: multiple 10 x 20.5, and then
tell the motors to steer that number of rotations.&lt;/p&gt;

&lt;p&gt;So let’s take that same thing and create a custom block.&lt;/p&gt;

&lt;h3 id=&quot;custom-blocks-in-makecode&quot;&gt;Custom blocks in MakeCode&lt;/h3&gt;

&lt;p&gt;MakeCode provides for the ability to create custom blocks using
JavaScript functions. The biggest drawback is that it does require
a little bit of text JavaScript code in order to &lt;strong&gt;create&lt;/strong&gt; a
custom block. (However, once created a custom block can be used
exclusively through drag-n-drop).&lt;/p&gt;

&lt;p&gt;MakeCode has documentation for this &lt;a href=&quot;https://makecode.mindstorms.com/blocks/custom&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;First, click on JavaScript mode, and then the Explorer tab on the
bottom left of the side panel:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/explorer1.png&quot; alt=&quot;explorer&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Then, select the “+” next to the Explorer.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/explorer2.png&quot; alt=&quot;explorer&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It asks if you want to create custom blocks - click “Go Ahead!”&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/add_custom_blocks.png&quot; alt=&quot;customblocks&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Ok, now this is the most confusing part. When you click “Go Ahead”,
MakeCode creates a new file called custom.ts in your project. It’s filled
in with a bunch of sample code that can be overwhelming. We’ll explain
this file briefly and then show you how to add your own custom
block.&lt;/p&gt;

&lt;p&gt;The file defines a few custom blocks already, called “foo” and “fib”.
You can delete the whole file and replace it with this text:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-javascript&quot; data-lang=&quot;javascript&quot;&gt;&lt;span class=&quot;c1&quot;&gt;//% color=&quot;green&quot; block=&quot;Custom Blocks&quot;&lt;/span&gt;
&lt;span class=&quot;nx&quot;&gt;namespace&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;custom&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;c1&quot;&gt;//% blockId=move_cm&lt;/span&gt;
    &lt;span class=&quot;c1&quot;&gt;//% block=&quot;move|cm %v&quot;&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;move_cm&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;distance_cm&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;number&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;nx&quot;&gt;motors&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;largeBC&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;steer&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;distance_cm&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;20.5&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Let’s explain what’s going on here:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;First, we define the custom namespace. This means that all of our
new blocks will live in a category called “Custom Blocks” that
carries a green color. Note that we use a special comment tag &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;//%&lt;/code&gt;
to tell the MakeCode engine about our new block.&lt;/li&gt;
&lt;/ol&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-javascript&quot; data-lang=&quot;javascript&quot;&gt;&lt;span class=&quot;c1&quot;&gt;//% color=&quot;green&quot; block=&quot;Custom Blocks&quot;&lt;/span&gt;
&lt;span class=&quot;nx&quot;&gt;namespace&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;custom&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;ol&gt;
  &lt;li&gt;Next, we define the actual block using special comments. This tells
MakeCode to expect a block that we call “move_cm”. The user will see
the word “move” and then the value of a single parameter, “cm”.&lt;/li&gt;
&lt;/ol&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-javascript&quot; data-lang=&quot;javascript&quot;&gt;    &lt;span class=&quot;c1&quot;&gt;//% blockId=move_cm&lt;/span&gt;
    &lt;span class=&quot;c1&quot;&gt;//% block=&quot;move|cm %v&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;ol&gt;
  &lt;li&gt;Third, we define the function itself. This is like the setup screen
of the MyBlock in EV3. It says that the function is named “move_cm”
and takes a single parameter called “distance_cm”.&lt;/li&gt;
&lt;/ol&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-javascript&quot; data-lang=&quot;javascript&quot;&gt;    &lt;span class=&quot;k&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;move_cm&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;distance_cm&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;number&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;ol&gt;
  &lt;li&gt;Finally, the actual contents of the function tell the block what to.
In this case, we pass in the distance_cm, multiple it by 20.5, and
use it to direct motors B+C to move forward at 50% power.&lt;/li&gt;
&lt;/ol&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-javascript&quot; data-lang=&quot;javascript&quot;&gt;        &lt;span class=&quot;nx&quot;&gt;motors&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;largeBC&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;steer&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;distance_cm&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;20.5&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Put it all together again:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-javascript&quot; data-lang=&quot;javascript&quot;&gt;&lt;span class=&quot;c1&quot;&gt;//% color=&quot;green&quot; block=&quot;Custom Blocks&quot;&lt;/span&gt;
&lt;span class=&quot;nx&quot;&gt;namespace&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;custom&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;c1&quot;&gt;//% blockId=move_cm&lt;/span&gt;
    &lt;span class=&quot;c1&quot;&gt;//% block=&quot;move|cm %v&quot;&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;move_cm&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;distance_cm&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;number&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;nx&quot;&gt;motors&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;largeBC&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;steer&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;distance_cm&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;20.5&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;After saving, we click on the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;main.blocks&lt;/code&gt; link on the
sidebar:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/main.blocks.png&quot; alt=&quot;main.blocks&quot; /&gt;&lt;/p&gt;

&lt;p&gt;That shows us the Custom Blocks sidebar and our new block is there!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/new_move_cm_block.png&quot; alt=&quot;new_move_cm_block&quot; /&gt;&lt;/p&gt;

&lt;p&gt;We can drag it into our program to use it just as any other block:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/using_move_cm_block.png&quot; alt=&quot;using_move_cm_block&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally! Hopefully that was helpful in learning how to create
the equivalent of a MyBlock in MakeCode.&lt;/p&gt;</content><author><name></name></author><summary type="html">Our team is potentially participating in the pilot to use different programming languages this fall (see the MakeCode Pilot page). However, MakeCode has not nearly as many tutorials as are available for Mindstorms EV3 Native software, so we have looked at ways to replicate some of the familiar tasks that one may do using EV3.</summary></entry><entry><title type="html">Hydrodynamics - 2017 Season Wrapup</title><link href="https://breakthroughbots.org/bootcamp/hydrodynamics-wrapup/" rel="alternate" type="text/html" title="Hydrodynamics - 2017 Season Wrapup" /><published>2018-08-01T00:00:00-05:00</published><updated>2018-08-01T00:00:00-05:00</updated><id>https://breakthroughbots.org/bootcamp/hydrodynamics-wrapup</id><content type="html" xml:base="https://breakthroughbots.org/bootcamp/hydrodynamics-wrapup/">&lt;p&gt;The Breakthrough Robotics team performed better than expected last December
during the regional qualifier for the Hydrodynamics season. Team members Aiden,
Sammy, and Jayla led the robot to score the third highest score, with a final
run that came right down to the buzzer.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/cfpDRFEtKYw&quot; frameborder=&quot;0&quot; allow=&quot;autoplay; encrypted-media&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The robot ultimately was composed of several interlocking gears and had 5 runs,
each with their own attachments.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/robotclose.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Additionally, the Breakthrough team won the Project award for outstanding
teamwork. They came up with a creative application that would solve a real
problem that humans encounter with water- how do people in remote areas of the
world construct a water filter using locally available materials? Our team
built a filter using rocks, sand, leaves, and plastic tubes and demonstrated
for the judges.&lt;/p&gt;

&lt;p&gt;However, our weakest performance came in the Core Values exercise. The judges
did not see the team work well together, and we came up short.&lt;/p&gt;

&lt;p&gt;This was a great showing for a team that had never worked that closely together
before. Next year, we will need to develop our teamwork through more Core Values exercises and bring the same level of intensity to the project, even as we
focus on applying some of the lessons from the Robot Game.&lt;/p&gt;</content><author><name></name></author><category term="bootcamp" /><summary type="html">The Breakthrough Robotics team performed better than expected last December during the regional qualifier for the Hydrodynamics season. Team members Aiden, Sammy, and Jayla led the robot to score the third highest score, with a final run that came right down to the buzzer.</summary></entry></feed>