Disco Addons
This page will help you get started with the disco add-ons with Marty using the python library. Before we get started, make sure you have python installed and have set up your disco add-ons.
Get Connected
First you must always import MartyPy and establish connection to your Marty. Follow the code below to connect your Marty.
import martypy
# USB connection
# comment out the next line to use Wi-Fi
my_marty = martypy.Marty("USB")
# Wi-Fi connection
# to use Wi-Fi, uncomment the next line and change the IP address to your Marty's IP address
# my_marty = martypy.Marty("wifi", "192.168.0.5")
You should now be able to play with your disco add-ons using the three functions below.
Disco Pattern
The function disco_named_pattern allows you to set your disco add-ons to a built-in pattern of lights. You will need to pass in your choice of pattern and specify the add on you would like to turn on, which is outlined below.
disco_pattern(add_on, pattern):
- add_on: This allows you to specify the add-on that you would like to light up. Click Here to learn how to pass in your add-ons.
- pattern: choose the pattern you would your add-on to turn to. There are three options: show-off or pinwheel or off
Try this function using the code below to set all of your disco add ons to pattern show-off.
my_marty.disco_named_pattern(my_marty.Disco.ALL, "show-off")
Choose Your Own Colors!
The function disco_color allows you to turn on and set your disco add-ons to the color of your choice.
disco_color(color, add_on, region, api):
- color: choose the color you would like your disco add-ons to be. You can pass in either a hex code, RGB tuple, or a string calling one of the built in colors: white, red, blue, yellow, green, teal, pink, purple, and orange.
You can use this color picker to find the hex code or RGB tuple of the color of your choice.
- add_on: This allows you to specify the specific add-on on your Marty that you would like to light up. Click Here to learn how to pass in your add-ons.
- region: This allows you to specify the specific side of Marty’s eye, arm, or leg that you would like to light up. Revisit setting up your disco add-ons for a refresher on these regions. You have the option to pass in 0, 1, or 2.
- api *: This option lets you choose how you'd like to talk to Marty. You have two choices: 'led' or 'raw_query'. The 'led' option is supported by newer Marty versions (2022 onwards), while the 'raw_query' works with older Marty versions.
Try this function using the code below to set all of your disco add ons to teal.
my_marty.disco_color('teal', my_marty.Disco.ALL, api='led')
You can also get the same color by passing in a hex code or RGB tuple. See the code samples below on how you would pass the color teal as a hex code or RGB tuple, respectively.
my_marty.disco_color('#02d1bc', my_marty.Disco.ALL, api='led')
my_marty.disco_color((2, 209, 188), my_marty.Disco.ALL, api='led')
Turning Off Your Disco Addons
The function disco_off allows you to turn off the disco add on of your choice. You can specify which specific add on you want to turn off, or turn off multiple at a time.
disco_off(add_on, api):
- add_on: This allows you to specify the specific add on on your marty that you would like to turn off. Click Here to learn how to pass in your add-ons.
- api *: This option lets you choose how you'd like to talk to Marty. You have two choices: 'led' or 'raw_query'. The 'led' option is supported by newer Marty versions (2022 onwards), while the 'raw_query' works with older Marty versions.
Try this function using the code below to turn off all of your disco add-ons.
my_marty.disco_off(api = 'led')
Party Marty!
Now we can use our disco functions to make Marty party! Follow the code below to light up Marty's disco add-ons and make Marty dance.
from martypy import Marty
my_marty = Marty("wifi", "192.168.0.42") # Replace 192.168.0.42 by your Marty's IP
my_marty.disco_color('blue', my_marty.Disco.FEET, api='led')
my_marty.disco_named_pattern(my_marty.Disco.EYES, pattern="show-off")
my_marty.disco_named_pattern(my_marty.Disco.ARMS, pattern="pinwheel")
my_marty.dance()
my_marty.disco_off(api='led')
Passing in Your Add-Ons
When passing in your add-ons, you have two options:
1. You can pass in a string of the name of the add on that you would like to call the function on. You can find the names of all your add-ons by visiting the Scratch app and going to Configure –> ADD-ONS. Don't forget to disconnect the app after in order to connect with your Marty in python!
2. You can also pass in groupings of the add-ons so you can call your chosen function on multiple add-ons at a time! We have groupings for:
- my_marty.Disco.EYES
- my_marty.Disco.FEET
- my_marty.Disco.ARMS
- my_marty.Disco.ALL
Pass in one the variables above in the add_on parameter of your chosen function when you would like to call a pair or all of the add-ons.