8bitsandabyte
Published © CC BY-NC-SA

An Internet Controlled 2020 Smusher

Let’s face it: 2020 was a terrible year and we’d love nothing more than to see it disappear.

IntermediateFull instructions provided24 hours1
An Internet Controlled 2020 Smusher

Things used in this project

Hardware components

Raspberry Pi 3 Model B
Raspberry Pi 3 Model B
×1
Google AIY Voice Kit (V1)
×1
mg90s Servo
×2
mg995 Servo
×1
Camera Module
Raspberry Pi Camera Module
×1
Metal servo bracket
×1
Blue, green, pink, black and white felt
×1
Cardboard
×1
Popsicle stick
×2
Playdough
×1

Software apps and online services

Blender
Tinkercad
Google Cloud Platform
Remo.TV
Prusa Slicer

Hand tools and fabrication machines

3D Printer (generic)
3D Printer (generic)
Fabric hole puncher
Scissors
Needle & thread
Sewing pins
Strong glue

Story

Read more

Custom parts and enclosures

Fire

L Shape

Code

Remo Code

Python
# Custom Remo.TV controller code

# Generic imports
import time
import os

# Servo setup
from gpiozero import Servo
rightEyebrowServo = Servo(26)
leftEyebrowServo = Servo(24)
smusherServo =  Servo(12)
smusherServo.max()
leftEyebrowServo.detach()
rightEyebrowServo.detach()
smusherServo.detach()

# Eyebrow positions
# Sad eyebrow position
def sad():
    rightEyebrowServo.min()
    leftEyebrowServo.max()

# Neutral eyebrow position
def neutral():
    rightEyebrowServo.mid()
    leftEyebrowServo.mid()

# Angry eyebrow position
def angry():
    rightEyebrowServo.max()
    leftEyebrowServo.min()

# Sceptic eyebrow position
def sceptic():
    rightEyebrowServo.mid()
    leftEyebrowServo.max()

# Detaches the power from the servos to stop them from shaking
def detachServos():
    leftEyebrowServo.detach()
    rightEyebrowServo.detach()
    smusherServo.detach()

# Moves the smushing servo that holds the fire
def smush():
    smusherServo.min()
    time.sleep(1)
    smusherServo.max()
    time.sleep(1)
    detachServos()

# The robot setup which we've somehow left empty :)
def setup(robot_config):
    return

# This bit is executed when someone presses a button on Remo.TV
def move(args):
    angry()
    time.sleep(1)
    detachServos()
    smush()
    detachServos()
    sad()
    time.sleep(1)
    detachServos()
    time.sleep(1)
    return

Credits

8bitsandabyte

8bitsandabyte

65 projects • 49 followers
We’re Dane & Nicole, two makers that create tremendously terrible tech, which we happily share with you!

Comments