Dancing BiPed Robot
Built a dancing biped robot with Arnold, Rain, Amir, Parsa, Sanjeev, and Manek for a CPEN 291 course mini project.
- Waddle: The robot flaps its feet up and down similar to how a penguin waddles
- Pop-Step: The robot rotates its feet inwards and outwards in a pop and step sort of fashion
- Ballerina: The robot rotates its legs and performs a tip toe sort of action. The robot then proceeds to rotate and kick at the end.
- High-Knees: The robot brings its legs up and down one by one, similar to a high knees exercise.
- Excite: This move performs several kicks back to back, switching between the right and left legs.
- Shuffle: The robot performs a simple shuffle by turning its legs left and right several times.
- Anthem: A powerful moving anthem
- Mario: Super Mario Bros Theme Song
- Stranger Things: Stranger Things Theme Song
- All Star: All-Star by Smash Mouth Chorus
- Tetris: Class Tetris Game Theme Song
- Fortnite: Fortnite Default Dance Song
- loading and welcome screen that prompts for user input upon startup
- Course info screen
- Passcode login screen
- Main menu, consisting of 5 options:
- Default Menu - displays an animation showing dance moves and corresponding dance name
- Dance Menu - choose between six dance moves
- Song Menu - choose between six songs
- About - displays system information and general information
- Exit - terminates the program
- Wall detection and motion sensing to abort task when distance to solid object is below a certain threshold.
- Returns a ‘Runtime error’ when it is not able to detect a distance.
- Passcode detection, system diagnostics, and an interactive UI with a keypad
- LED lights that indicate button clicks, dance moves and supplemental information via output to a RGB module
Finite State Machine
A finite state machine with nine states (Loading, Passcode, Home, Dance, Music, About, Exit, Request and Default) is used to run the GUI. Each state has a different, specific function for the GUI, and input from the sensor(Keypad or Ultrasonic) changes its state.
- Loading state - a loading screen with an animation
- Passcode state - a welcome screen and prompts for a password upon powering on the robot
- if the password is wrong the screen will show this and let you try again
- if the password is right it goes to the main menu
- Home state - consists of 5 options to choose from the keypad: (1)Default, (2)Dance, (3)Song, (4)About, (5)Exit
- Default state - Plays all the dance moves
- Dance state - Choose between six dance moves with the six buttons, respectively: Waddle, Pop-step, Ballerina, High-Knees, Excite, Shuffle to keypad 1-6. Returns to the Main Menu once done or an interrupt is triggered.
- Song state - Choose between six songs with the six buttons, respectively: Anthem, Mario, Stranger-Things, All-Star, Tetris, and Fortnite to keypad 1-6. Returns to the Main Menu once done or an interrupt is triggered.
- Request state - asks the user if they want to (1) Play Again, (2) Dance, (3) Play Music or (4) return to home
- About state - shows system information and general info about the bipedal dancing robot returns to Main Menu
- Exit state - terminates the program
Since circuit python does not support interrupt service routine, we created an interrupt method that breaks out of loops when a sensor is triggered.
- Itsy Bitsy M4 Express microcontroller
- 1.44” TFT LCD display
- numeric matrix keypad
- HCSR04 ultrasonic sonar sensor
- Servo motors
- Piezo buzzer
- RGB module with unified voltage line
- Servo motors
- 3-D printed casing components
- 7404 NOT gate array
- 7400 NAND gate array
- 2N3904 NPN Transistors
- Ultrasonic Range Sensor
- Python and CircuitPython
- Circuits (wiring and fritzing)
- PWM (Pulse Width Modulation)
This project was super fun. I worked with a group of fun people to develop an open-ended product that we are proud of.
I am hoping to film a feature video for our completed dancing biped robot.