To successfully bring your code off the screen and into a 3D space, Misty must be able to communicate with her environment in many ways. While Misty is already packed with sophisticated technology — including 25 sensors — your use cases may call for additional sensors. Today, we’re covering several ways you can add to Misty’s native capabilities by using additional sensors and we’re sharing some skill inspiration to get you started.
You might also like: Exercising Misty’s Extensibility
Adding a Sensor to Misty
There are several ways to expand Misty’s physical form by adding sensors and other accessories, including 3D-printed accessories. Misty’s official mounting points — that is, those points with embedded magnets — include the antenna mount, the backpack, and the trailer hitch. CP, Misty Robotics’ Prototype Engineer, has also mounted sensors on the top of Misty’s head, her arms, base side, and front grill using mounts he has developed and open-sourced here. Please note that while third-party hardware can be physically mounted to each of these parts of Misty, no electrical connections are made at any of these points.
Misty’s back is the final location that you can add sensors (and other accessories). This is the most important place on the robot for mounting third-party extensions — especially sensors — because this is where all electrical and communication connections take place. Misty’s USB and UART serial port channels have separate, isolated power controllers that allow her to supply power to external hardware. Each port can provide up to 500 mA. The pins for Misty’s UART serial port are configured as follows:
- RX (receiver): Receives messages sent to Misty from an external device
- GND (ground): The grounding pin for the electrical circuit
- TX (transmitter): Transmits messages from Misty to connected hardware
- 3V: Supplies power to the connected hardware at 3.3v
The Misty Arduino-Compatible Backpack turns Misty into a robotic base for your imagination. To access it, you simply pop it off, unscrew the two small screws on the Backpack to expose the Arduino inside, and pop it back onto Misty. This protoboard-style Arduino allows you to attach sensors, LEDs, and motors as easily as you would in any other Arduino project.
Once you’ve added the sensor to Misty’s Backpack, you can upload the sketch provided to the Arduino, disconnect the Arduino from your computer, and attach it to Misty.
Choosing a Sensor
Temperature sensor (left) RFID reader (right)
Even if you don’t yet have a skill in mind, these sites are good places to find inspiration. Another place to find inspiration is the Misty Skills subcategory of the Misty Community Forum — you can build a skill someone has already shared, tweak their skill by adding your own skill(s) to it, and combine any number of skills.
Skill-Building With a Sensor
Misty’s magic happens when you can begin running your skill! Here are a few existing skills to get started on:
The Fireman Skill
Monitoring the temperature of a room can be useful for many reasons: to ensure product and equipment are kept in a safe range, to ensure your cooling or heating equipment is working properly, and simply to track temperature fluctuations in a given space.
Additionally, when the temperature exceeds a certain threshold (in this case, 80ºF), Misty sounds an alarm through her built-in speakers which send a request to IFTTT, turning on a warning light in the room. Once the temperature drops back down below the set threshold, Misty automatically turns off the alarm and warning light. If you have a temperature sensor, you can find the code for this skill here and start monitoring your own space.
The Fingerprint Skill
Robotics Prototype Engineer CP recently shared the Fingerprint Skill. First, he connected the fingerprint scanner to Arduino and used a program from the sensor library to train his finger. He then modified the fingerIF=D detection library sketch to say PASS or FAIL based on the FP scanned. Finally, he mounted the fingerprint scanner to Misty’s arm and connected it via a Qwiic Connector to the Arduino Backpack so that whenever a finger touches the scanner, Misty receives the data.
Once the data is received, Misty either grants the person access (using some fun lights, audio, and arm movements to let them know) or denies them access (again, using some fun yet different lights, audio, and arm movements). Here’s the code for this skill.
CP plans to pair the Fingerprint Skill with Misty’s facial recognition capabilities for a two-factor biometric authorization skill. In this expanded skill, Misty will first detect use her facial recognition capability to identify the person. (Note: Misty will require prior training on the person’s face in order to use facial recognition in this skill.) She’ll then greet the person by name and request that they place their finger on the scanner. And if she doesn’t recognize their face, she’ll deny them access before even reaching the fingerprint scanning process.
The Follow Ball Skill
In addition to the skills that developers have already built for Misty, there are “Future Skills” in the Misty Community Forum that incorporate sensor expandability as well. These skills — like the Coat Check Skill and the Go Grease Lightning Skill — are skills that developers haven’t quite gotten around to building but see a real need for (and in some cases, they’re just fun ideas). Anyone can build these skills and if you have skill ideas that incorporate Misty’s sensor extensibility that you’d like to see built, add them to this list!
At every opportunity during the design process for Misty, we’ve opted to build a robot that you can adapt to suit your needs and interests. Including sensor extensibility is just one aspect of this new approach to building the first professional platform robot for developers. Using Misty’s sensor extensibility feature, what additional capabilities do you see being useful?