Robots



Inverted Pendulum

My two-wheeled balancing robot is the classic example of an unstable equilibrium - the inverted pendulum! To prevent tipping, feedback system uses measurements of angle to drive its wheels. This angle is determined by combining measurements of acceleration and angular rotation using a 6-axis gyro-accelerometer (MPU6050) with a simple complimentary filter. Everything is controlled by an Arduino Nano, and a dual H-bridge (L298N) takes care of delivering the current to the motors.



Working on this robot taught me how to handle measurement error and was a cool demonstration of PID feedback (though a little "bang-bang", since improved). Additionally, power supply decoupling was necessary to handle the inductive spikes from rapid switching of the motors. Since this project, I've becoming increasingly interested in using the measurements from IMU (inertial measurement unit) and MARG (magnetic, angular rate and gravitational sensor) to determine orientation and trajectory. With the rapid advances being made in MEMS technology, the integration of sensors into the multitude of devices has already begun. Some really interesting implementations can be found in the CrazyFlie dev quadcopter, and in gait tracking for health purposes.


Internet Controlled Air Conditioning

New York City summers are brutal. Introducing: an Air Conditioner you can turn on from anywhere - school, the bus, the bar, and more! It's actually really simple, just decode the IR signals from your remote (great walk-throughs online), store them as commands available to an Arduino. These commands are sent to an IR LED (taped to the AC in video). Connect to the Arduino via a dedicated server (old laptop) and host a webpage! Additionally, a microphone listening under the AC determines the current on/off state, implemented via PyAudio. Be sure to password protect it though, other your friends can turn your AC on/off at random times of the night!



The source for my ACbot is available on my Bitbucket in case you want to make one yourself!

Tron Christmas Ornament

I needed a really sweet gift for someone, and figured this might do the trick. The idea was to use an Arduino Nano to control about 50 RGB LEDs that would light up in various patterns. The real trick was getting everything into the machined plastic globe!




Other Random Projects

The lights, monitors, fan power (and orientation!) are controlled by three numeric keypads around my room. You might think keypads are old news, but I tried an Android app version and I found no one wants to have to find their phone to turn off the lights!

I attached a 4 DOF claw to the back of an old Roomba. The robot can navigate using ultrasonic range finders, but control of the motors and claw servos is implemented through an Android app via bluetooth.

I got a CrazyFlie for Christmas a year ago. They're awesome, but I found I spent all my time trying to keep it from hitting the floor or ceiling! I found this great walk-through to attach a lightweight range finder to the CrazyFlie, and used it (pointing up) to fix the altitude relative to the ceiling. I think this method works much better than the barometer approach implemented by other people, but keep him away from windows!