ActivityBot with BlocklyProp Educator Course Activities

Course Content (http://learn.parallax.com/node/1653)

This is the hands-on activity list for the ActivityBot with BlocklyProp Educator Course.  The course provides initial introductions to:

  • Microcontroller programming BlocklyProp (a visual programming language)
  • Building simple circuits and programming a microcontroller to control and monitor them
  • ActivityBot 360 construction, testing, and trouble-shooting (if needed)
  • Programmed robot navigation (dead-reckoning)
  • Programmed robot navigation with sensor circuit inputs (whiskers, light, infrared, ultrasonic)
  • Programming a the Propeller microcontroller to use multiple cores to do tasks in parallel
  • Using Parallax educational resources (tutorials, assessments, project ideas, scope and sequence, etc)

In class, follow the tutorials exactly as presnted. Here, in the Professional Development, we're going to bounce around a bit for the sake of time. 

Introductions and Housekeeping

  • Introductions (and attendance sheet)
    • Who you are, what you do/teach (subject/grade)
    • How did you learn about the course?
    • Any 1-to-1 schools?  Any Chromebook schools?
  • Bathrooms, lunch, and when to ask questions.
  • (2 day course ONLY) Taking the course for graduate credit (Syllabus here)
    • Fee, and Forms
    • Assignment and deadlines
  • Request an educator account at learn.parallax.com by emailing education@parallax.com
  • Pace and content of class: Scope and Sequence (what you'll use in class) vs. this guide (for the Professional Development)

BlocklyProp Overview

The BlocklyProp System has four major components:

So how does this all work?

The BlocklyProp System is almost entirely web-based and in "the cloud." 

  1. The BlocklyProp Solo servers, hosted by Amazon's cloud, sends content to your browser, which then loads the editor.
  2. The editor contains the blocks, which each have two parts, a definition and a generator.
  3. The definition tells your browser what to make the block look like.  The generator turns the information you put into the block into Propeller C - one of the traditional text-based languages the Propeller can be programmed in.
  4. When you click Compile or Load, your browser sends the generated C back to Amazon's cloud.  Once there, the code is compiled.  Compiling is the process of turning code into a series of instructions for your microcontroller to follow.  
  5. The result of compilation is a file called a binary.  It's a bunch of 1's and 0's - and it gets sent back to your browser.
  6. Your broswer then sends the binary to the BlocklyProp-client.
  7. The BlocklyProp Launcher then tells the connected Propeller to be ready to be programmed, and then the BlocklyProp Launcher sends it the binary.
  8. This all happens in a matter of seconds!


Simple BlocklyProp Programs

This section will introduce more foundational programming concepts.  We'll also take time to discuss how Blockly generates C code - it's important to begin seeing text-based code early on. This section may be done by using the tutorials listed below or a "Hello World" and "Guess the Number" game. 


Build the ActivityBot
(10:00 am - noon)

Robot Construction & Testing

These tutorials show how to mechanically assemble and set up the electrical connections for your ActivityBot.

Stop here! Wait for the Course Instructor to provide directions! To test the connections we have two choices. 

1. Using the tutorials the student uses:

2. Test them with these two simple programs for faster results:

Circuit Building and ActivityBot Programming

Circuit Training

These are tutorials show examples of how to:

  • Build circuits and connect them to your microcontroller
  • Write programs that make the microcontroller control and monitor them

Be sure to focus on building the circuits, running the test code, and attempting the Try This section.  Depending on the time available, you may get split into pairs or groups of three, each building and testing one of the circuits.

Do this after calibration, below.

BlocklyProp Functions and Multicore

[Shameless plug!] Altough there are other Blockly implementations and microcontrollers out there, there's nothing quite like the Propeller Multicore Microcontroller.  The Propeller is behind the scenes in a few places you might not expect: Movie props, animatronics in theme parks, escape rooms, and various consumer electronics - it's combination of a multicore architecture and ease-of-use means it's ideal for bringing inventions and ideas to life!

To demonstrate this, we will ask you to blink the two LEDs at different rates. 

This tutorial goes into functions and using Multicore in BlocklyProp:

Programmed Robot Navigation

These tutorials show how to make the robot perform various maneuvers.  We'll start with a test of the encoder connections - the test is built using concepts from the previous tutorials.  As with the other activities we've done to this point, we will discuss the code examples.  Focus on just the Test Code and Try This sections unless otherwise noted.

Navigate by Sensors

These tutorials show how to make the robot measure sensors and use them to make navigation decisions.  It's okay if we don't make it through all of these - we've built enough skills and confidence now for you to be able to do these on your own and confidently guide your students through them.


Before We Leave

Additional Activites - some robot, some not!

We'll try this one out before we wrap up the course:

Learn.parallax.com already has a number of projects and tutorials available for BlocklyProp, and the list keeps growing!  Check often and follow us to learn when we publish new tutorials and resources.  Here are just a few you'll find when you click the link:

  • Tilt Tones with BlocklyProp
  • RFID Scan and Store to EEPROM
  • Candy Sorter Project
  • Parking Assist Project
  • Memsic 2125 Tilt with OLED Bubble Display
  • Light it Up! with WS2812 LEDs and Blockly
  • Rainbows and Robotics with WS2812 LED Strip Lighting
  • Line Follower with Color-Coded Turns
  • Display - OLED Display with BlocklyProp