Twitchy the Robot
Twitchy the Robot is a two part project consisting of a live stream, and a GitHub code project. Viewers of the live stream are able to control the robot (Twitchy) by typing commands into chat.
The Live Stream
Twitch the Robot is a live stream that gives viewers a unique ability to interact with what they are seeing. Twitchy is a fun robot, and I provide twitchy with an interesting environment for viewers to interact with. As the robot is a simple grabber, it leaves me with a broad number of options to provide my viewers with an interesting experience. And it works, the second day I received 71 followers which is great for a new streamer on Twitch.
The Robotic Arm
Twitchy’s arm is a OWI Robotic Arm, with a USB Interface Kit. Together these components can be purchased for about $100. The arm has no feedback mechanism, however the gearboxes contain torque limiters to prevent gear damage. When the torque limiters activate, they sound an audible click. A concern of mine with providing remote access to the robot arm to strangers on the internet, was the damage they could do to the motors and gearboxes if they chose to drive continuously in one direction. Even with the limiter, they could wear out the mechanism. To limit wear, I attached a microphone to the arm and set a trigger in the python script that activates when the Root-Mean-Square of the microphone data hits a set threshold.
The USB Interface Kit does not support Linux out of the box, however maxinbjohn on GitHub made a Linux driver with some sample code which made interfacing with the arm super easy. Starting with his sample code, I expanded it to include safety limits. There is an audio listener that activates the above mentioned trigger, it runs on a separate thread. A second thread watches active motors, and disables them when they have run their allotted time.
Connecting the arm to Twitch was the easy part, thanks to work done by LynnAU on GitHub. They created a basic twitch bot that connects to Twitch.tv’s IRC server with Socks and listens for commands, meanwhile keeping with twitch’s PING requirements. All I needed to do was to expand the code to trigger arm functions when commands come through the channel.
Play with Twitchy
I keep twitchy online when I’m home, you can come in and play with him. If he’s not online, watch past broadcasts and swing by later.