Flying with Proportional – Integral – Derivative Control

Your quad-copter is hovering nicely 100 feet north of you, its camera pointed exactly on target. The hover is doing so well all the RC transmitter controls are in the neutral position. The wind picks up a bit and now the ‘copter is 110 feet north. You adjust its position with your control stick but as you do the wind dies and you overshoot the correction. Another gust pushed it away from target in more than one direction as frustration passes your lips: ARGGGHH!! You promise yourself to get a new flight computer with position hold capability.

How do multicopters with smart controllers hold their position? They use a technique called Proportional – Integral – Derivative (PID) control. It’s a concept found in control systems of just about everything imaginable. To use PID your copter needs sensors that measure the current position and movement.

The typical sensors used for position control are a GPS receiver and an Inertial Management  Measurement Unit (IMU) made up of an accelerometer, a gyroscope, and possibly a magnetometer (compass). Altitude control would require a barometer or some other means of measuring height above ground. Using sensor fusion techniques to combine the raw data, a computer can determine the position, movement, and altitude of the multicopter. But calculating corrections that will be just right, without over or undershooting the goal, is where PID comes into play. Continue reading “Flying with Proportional – Integral – Derivative Control”

Ball Balancing Arduino-Style

If you have a good sense of balance, you can ride a unicycle or get on TV doing tricks with ladders. We don’t know if [Hanna Yatco] has a good sense of balance or not, but we do know her Arduino does. Her build uses the ubiquitous HC-SR04 SONAR sensor and a servo.

This is a great use for a servo since a standard servo motor without modifications only moves through part of a circle, and that’s all that’s needed for this project. A PID algorithm measures the distance to the ball and raises or lowers a beam to try to get the ball to the center.

Continue reading “Ball Balancing Arduino-Style”

Basic Toolkit for the Basement Biohacker

Laying hands on the supplies for most hacks we cover is getting easier by the day. A few pecks at the keyboard and half a dozen boards or chips are on an ePacket from China to your doorstep for next to nothing. But if hacking life is what you’re into, you’ll spend a lot of time and money gathering the necessary instrumentation. Unless you roll your own mini genetic engineering lab from scratch, that is.

arduino-based-biolab-data-logger-thumbTaking the form of an Arduino mega-shield that supports a pH meter, a spectrophotometer, and a PID-controlled hot plate, [M. Bindhammer]’s design has a nice cross-section of the instruments needed to start biohacking in your basement. Since the shield piggybacks on an Arduino, all the data can be logged, and decisions can be made based on the data as it is collected. One example is changing the temperature of the hot plate when a certain pH is reached. Not having to babysit your experiments could be a huge boon to the basement biohacker.

Biohacking is poised to be the next big thing in the hacking movement, and [M. Bindhammer]’s design is far from the only player in the space. From incubators to peristaltic pumps to complete labs in a box, the tools to tweak life are starting to reach critical mass. We can’t wait to see where these tools lead.

Passcode-Protecting the Means of Caffeine

Several years ago, [Cameron] added an ATMega328-based PID temperature controller to his espresso machine. It has performed admirably to this day. But behind that cool bezel and LCD, all of the electronics are just sitting there, exposed. [Cameron] decided to give it a makeover. He has a better machine at home these days and wanted to take the old one to work. In order to keep untrained hands away from it in the office’s shared kitchen, [Cameron] installed a 4-digit keypad.

This makeover didn’t end with hiding wires and locking out noobs, though. [Cameron] added a float switch that will disable the pump when the water level gets too low. This is a nice touch. Otherwise, machines like this one will try to brew when the tank is dry, and then the pump has to be primed once the tank is refilled. [Cameron] also replaced the buttons’ back-lighting bulbs with bright LEDs. A small LCD mounted on the front of the machine shows the boiler temperature and shot-pulling duration.

If you’ve add PID temperature control to your espresso machine but have done nothing to improve the steam wand, why not add a pressure gauge?

Hackaday Prize Semifinalist: Playing With PIDs

PID control loops are everywhere, found in flight controllers for drones and the temperature control code for 3D printers. How do you teach PID control loops? [Tim] has a great demonstration for this, and it’s also a semifinalist for the Hackaday Prize.

[Tim]’s Sab3t is an educational tool designed to illustrate how PID control loops work. It’s a robotic table on which a large ball bearing sits perfectly balanced. On this table is a resistive touch screen from a display providing feedback for the location of the ball bearing. By adjusting PID values, the ball bearing either sits stationary on the table or flails wildly around, depending on the values in the PID algorithm being used.

As a teaching tool, it’s great; with a python script displaying a log of the PID values and the position of the ball on the plate, anyone can easily visualize how oscillations happen, what a well-tuned control loop looks like, and have some fun moving the ball bearing around to different locations.

The 2015 Hackaday Prize is sponsored by:

Continue reading “Hackaday Prize Semifinalist: Playing With PIDs”

Autonomous Drones Now Carry People

There are a handful of companies trying to build the first autonomous car, but this project makes us think that they all might be heading in the wrong direction. [Thorstin] wanted to use a quadcopter to transport people, and built a working prototype of an autonomous quadcopter-esque vehicle that is actually capable of lifting a person.

The device isn’t actually a quadcopter anymore; that wouldn’t be able to generate enough lift. It has sixteen rotors in total, making it a sexdecacopter (we suppose). This setup generates 282 pounds of static thrust, which as the video below shows, is enough to lift an average person off of the ground along with the aluminum alloy frame and all of the lithium ion batteries used to provide power to all of those motors.

With the PID control system in place, the device is ready for takeoff! We like hobby projects that suddenly become life-sized and rideable, and we hope to see this one fully autonomous at some point too. Maybe soon we’ll see people ferried from waypoint to waypoint instead of being driven around in their ground-bound autonomous cars.

Continue reading “Autonomous Drones Now Carry People”

Quadrotor Control Systems And Kerbal Harriers

Kerbal Space Program, the game that teaches engineers at JPL and SpaceX the basics of rocket design and orbital mechanics, recently had a giant update. There are now science contracts that require you to fly Kerbals all over their tiny globe, collect data, and transmit it back to the Kerbal Space Center. As would be expected, this is a grind for XP, and the contracts sometimes don’t make sense – you need to collect data from cliff faces and mountain tops. Landing a Kerbal jet at these places is hard.

[Matt Thiffault] wanted to do these science contracts more efficiently. The best way to get to a remote location without a landing strip would be a helicopter, but a harrier jump jet would do just as well. This isn’t supported in the stock game, so [Matt] wrote a complete control system for four engines to control a hovering Kerbal jet.

[Matt]’s work is built on kOS, a scriptable autopilot mod for Kerbal that was originally intended to be something like the Apollo Guidance Computer. People have been using it to make computerized skycranes and automated rendezvous and docking programs, but these are actually relatively simple examples; there’s far more math involved in flying a quadcopter than there is getting into orbit.

To build his automated hovering harrier, [Matt] needed an aircraft. His Kerrier has parts from the Kerbal Aircraft Expansion, B9, and Infernal Robotics mods for KSP, but this is only half the problem. Anyone can put four tilt jets on an airplane, and it takes a real wizard to force a control system to hover. Hover control of the Kerbal harrier is accomplished with a complete control system for a four-engined aircraft, with proper PID control loops and code updating at 20Hz.

With kOS, the proper plane, and the right software running on this emulated guidance computer, [Matt] is able to park his plane in mid-air, have a Kerbal descend the ladder, perform some science, and return to base. It’s an impressive amount of work for a video game. A good thing, too: [Matt] is looking to get into controls engineering professionally. Whether this will go on his resume is another question entirely.