Coding With Jewelbots

Jennifer Wadella

Thanks to all our sponsors!

Jennifer Wadella

@likeOMGitsFEDAY

  • JavaScript Developer
  • Community Organizer
  • Diversity Advocate

Programs I've launched

What Inspired this talk?

Repeatedly getting asked the question

"How do I get my daughter interested in coding?"

Let's take a step back ...

Why AREN'T girls jumping into coding?

  • Psychological Barriers
  • Lack of encouragement & role models
  • Gender-based marketing
  • Tech isn't 'made' for girls
  • Societal pressures

Not a Role Model

Girls are subjected to much higher scrutiny of their appearance, almost from birth.

This isn't changing anytime soon = (

How to help

  • Exposure to opportunities - yay Jewelbots!
  • Positive Reinforcement - encourage hard work & perseverance
  • Female Role Models
  • Help her wardrobe reflect her empowerment

Simone Giertz

"The Queen of Sh*tty Robots"

or the more age-appropriate

"Queen of the Most Wonderfully Craptastic Machines"

Empowerment Gear

What are Jewelbots?

Jewelbots are friendship bracelets for the iPhone era. Technology-enabled jewelry for tween and teen girls, they’re a means of communicating with friends by lighting up when a BFF is near or buzzing to send messages to a pal across the school.

Created By

Sara Chipps

Co Founder & CEO

Brooke Moreland

Co Founder & COO

Features

  • Programmed via Arduino IDE
  • Uses C++
  • Encourages social coding
  • Forum community for support and ideas
  • Open source

Setup

You'll Need

  • A Jewelbot Bracelet (w/ micro USB)
  • A computer
  • Arduino IDE

Getting the Jewelbot Boards

  • Preferences -> Additional Boards Manager URL
  • Paste
    
    								https://jewelbots.github.io/arduino-library/package_jewelbots_index.json,
    								https://jewelbots.github.io/arduino-firmware/package_jewelbots_firmware_index.json,
    								https://jewelbots.github.io/arduino-friendship/package_jewelbots_friendship_index.json
    							
  • Click 'Ok' and restart IDE
  • -> Tools -> Board -> Board Manager
  • Find Jewelbots boards, install, and restart IDE

Friendship Mode!

First make sure your firmware is updated!

(you can do this in firmware mode board by uploading a blank sketch)

To Pair your Jewelbots

  • Turn both on
  • Hold down magic button for two seconds
  • The lights will cycle white, then cycle colors
  • Click the magic button on the color you want for your friendship!
  • Both Jewelbots will then light up with chosen color!

To Send Messages

When on & paired jewelbots will flash colors of nearby friends

  • Click the button once to put into messaging mode
  • Click the button on the color friend you want to message
  • Press and hold the button for a short buzz or a long buzz to send to your friends!
  • Create a secret code to decipher messages(hint: binary)

Exploring the API

Colors and Positioning

RED, GREEN, BLUE, MAGENTA, YELLOW, CYAN, WHITE, ORANGE, GOLD, PURPLE, PERIWINKLE, ROSE, OCEAN, and SKY

LEDs


						LED led;

						led.turn_on_single(SW, GREEN);
						led.turn_on_all(GREEN);
						led.turn_off_single(NE);
						led.turn_off_all();
						led.flash_single(SE, BLUE, 1000);
						led.flash_all(BLUE, 1000);
					

LED Animations


						Animation animation;

						animation.rainbows();
						animation.jewelbots_logo();
						animation.breathe_single_color(GREEN);
					

Buzzer


						Buzzer buzz;

						buzz.extra_short_buzz();
						buzz.medium_buzz();
						buzz.really_long_buzz();
						buzz.custom_buzz(63, 500);
						// This will buzz at 50% strength for 1/2 second.
					

Magic Button


						void button_press(void){
						  // Define what happens when the Magic Button is pressed quickly
						  // (when the Jewelbot is not plugged into power)
						}
						void button_press_long(void) {
						  // Define what happens when the Magic Button is held for 2 seconds
						  // (when the Jewelbot is not plugged into power)
						}
						void charging_button_press(void) {
						  // Define what happens when the Magic Button is pressed quickly
						  // (when the Jewelbot is plugged into power)
						}
					

Test your code while you're charging!


						void setup() {
							set_run_loop_charging();
						}
					

Allow Ardiuno Code


						void setup() {
							set_arduino_coding();
						}
					

Print sting to monitor


						JWB_SERIAL("Debugging message.\n");
					

Print sting & variable to monitor


						JWB_SERIAL_PRINTF("x = %u\n", x);
					

Friendship Library


						see_red_friends()
						see_green_friends()
						see_blue_friends()
						see_cyan_friends()
					

Let's Code!

Code Samples

Debugging Steps

  • Is it in upload mode?
  • Is the right port selected?
  • Is the correct Jewelbot board selected?
  • Try uploading a blank sketch

Jewelbots is looking for open source contributors!

Check out their repos on Github.

Jennifer's Rules of Mentoring

  • Keep your hands OFF the keyboard
  • Let her make mistakes
  • Don't give her the answer, help her find it
  • Teach her how to read the documentation
  • Help her create diagrams of her ideas
  • Be patient

Workshop Success

  • PRE-WORKSHOP: Make technical requirements known - laptop with admin rights to download, wifi, usb port
  • Prep your mentors with guide + debugging tips
  • Communicate goals of the workshop - explain the "what" & "why"
  • Installing boards may take 10-15 min
  • Be prepared for different learning speeds
  • Have a guide/curriculum strategy prepared
  • Have follow up resources ready - encourage joining Jewelbots community
  • Expect some chaos ... and have a blast!

Ongoing Learning Resources

Get Your Own Jewelbots!

Use "codewithJennifer" at Jewelbots.com for $20 off!

(Check out European Distributor)

Questions?

Slides available at: tehfedaykin.github.io/CodingWithJewelbots

@likeOMGitsFEDAY #CodingWithJewelbots #NDCOslo