===== 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 [[https://userguides.robotical.io/martyv2/userguides/python|python installed]] and [[https://userguides.robotical.io/martyv2/userguides/sensorsandaddons/discomarty|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. [[#passing_in_your_add_ons|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 [[https://g.co/kgs/Na34hP|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. [[#passing_in_your_add_ons|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 [[https://userguides.robotical.io/martyv2/userguides/sensorsandaddons/discomarty|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. [[#passing_in_your_add_ons|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.