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

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, YELLOW, GREEN, CYAN, BLUE, MAGENTA, WHITE

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!

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

Ongoing Learning Resources

Questions?

Slides available at: tehfedaykin.github.io/CodingWithJewelbots