Posts with «arduino hacks» label

Star Track: A Lesson in Positional Astronomy With Lasers

[gocivici] threatened us with a tutorial on positional astronomy when we started reading his tutorial on a Arduino Powered Star Pointer and he delivered. We’d pick him to help us take the One Ring to Mordor; we’d never get lost and his threat-delivery-rate makes him less likely to pull a Boromir.

As we mentioned he starts off with a really succinct and well written tutorial on celestial coordinates that antiquity would have killed to have. If we were writing a bit of code to do our own positional astronomy system, this is the tab we’d have open. Incidentally, that’s exactly what he encourages those who have followed the tutorial to do.

The star pointer itself is a high powered green laser pointer (battery powered), 3D printed parts, and an amalgam of fourteen dollars of Chinese tech cruft. The project uses two Arduino clones to process serial commands and manage two 28byj-48 stepper motors. The 2nd Arduino clone was purely to supplement the digital pins of the first; we paused a bit at that, but then we realized that import arduinos have gotten so cheap they probably are more affordable than an I2C breakout board or stepper driver these days. The body was designed with a mixture of Tinkercad and something we’d not heard of, OpenJsCAD.

Once it’s all assembled and tested the only thing left to do is go outside with your contraption. After making sure that you’ve followed all the local regulations for not pointing lasers at airplanes, point the laser at the north star. After that you can plug in any star coordinate and the laser will swing towards it and track its location in the sky. Pretty cool.


Filed under: Arduino Hacks, cnc hacks, news, solar hacks

Home Pool Added to Home Automation

Anyone who owns their own pool knows it’s not as simple as filling it up with water and jumping in whenever you want. There’s pool covers to deal with, regular cleaning with the pool vacuum and skimmers, and of course, all of the chemicals that have to be added to keep the water safe. While there are automatic vacuums, there aren’t a whole lot of options for automating the pool chemicals. [Clément] decided to tackle this problem, eliminating one more task from the maintenance of his home. (Google Translate from French.)

The problem isn’t as simple as adding a set amount of chemicals at a predetermined time. The amount of chemicals that a pool owner has to add are dependent on the properties of the water, and the amount of time that’s elapsed since the previous chemical treatment, and the number of people who have been using the water, and whether or not the pool cover is in use. To manage all of this, [Clément] used an ORP/Redox probe and a pH probe, and installed both in the filtration system. The two probes are wired to an Arduino with an ethernet shield. The Arduino controls electrically actuated chemical delivery systems that apply the required amount of chemicals to the pool, keeping it at a nice, healthy balance.

[Clément] has all of the Arduino code available on his project page, as well as information about all of the various sensors he used. This should make this project re-createable for anyone who is tired of dealing with their own pool or paying a pool maintenance company to do it for them. [Clément] is no stranger to home automation projects, either, and we look forward to his next (often unconventional) project to automate something we might not have thought of before.


Filed under: Arduino Hacks

Arduino Replaces Bad AC Thermostat, Hacker Stays Cool

Most of North America has been locked in a record-setting heat wave for the last two weeks, and cheap window AC units are flying out of the local big-box stores. Not all of these discount units undergo rigorous QC before sailing across the Pacific, though, and a few wonky thermostats are sure to get through. But with a little sweat-equity you can fix it with this Arduino thermostat and temperature display.

We’ll stipulate that an Arduino may be overkill for this application and that microcontrollers don’t belong in every project. But if it’s what you’ve got on hand, and you’re sick of waking up in a pool of sweat, then it’s a perfectly acceptable solution. It looks like [Engineering Nonsense] got lucky and had a unit with a low-current power switch, allowing him to use a small relay to control the AC. The control algorithm is simple enough – accept a setpoint from an encoder, read the temperature sensor, and turn the AC on or off accordingly. Setpoint and current temperature are displayed on an OLED screen. One improvement we’d suggest is adding a three-minute delay between power cycles like the faceplate of the AC states.

This project bears some resemblance to this Arduino-controlled AC, but it seems more hackish to us. And that’s a good thing – hackers have to keep cool somehow.


Filed under: Arduino Hacks, home hacks

Keytar Made Out Of A Scanner To Make Even the 80s Jealous

Do any of you stay awake at night agonizing over how the keytar could get even cooler? The 80s are over, so we know none of us do. Yet here we are, [James Cochrane] has gone out and turned a HP ScanJet Keytar for no apparent reason other than he thought it’d be cool. Don’t bring the 80’s back [James], the world is still recovering from the last time.

Kidding aside (except for the part of not bringing the 80s back), the keytar build is simple, but pretty cool. [James] took an Arduino, a MIDI interface, and a stepper motor driver and integrated it into some of the scanner’s original features. The travel that used to run the optics back and forth now produce the sound; the case of the scanner provides the resonance. He uses a sensor to detect when he’s at the end of the scanner’s travel and it instantly reverses to avoid collision.

A off-the-shelf MIDI keyboard acts as the input for the instrument. As you can hear in the video after the break; it’s not the worst sounding instrument in this age of digital music. As a bonus, he has an additional tutorial on making any stepper motor a MIDI device at the end of the video.

If you don’t have an HP ScanJet lying around, but you are up to your ears in surplus Commodore 64s, we’ve got another build you should check out.


Filed under: Arduino Hacks, digital audio hacks, musical hacks

Dual Axis Solar Tracker with Online Energy Monitor

[Bruce Helsen] built this dual axis solar tracker as one of his final projects for school.

As can be experimentally verified in a very short timeframe, the sun moves across the sky. This is a particularly troublesome behavior for solar panels, which work best when the sun shines directly on them. Engineers soon realized that abstracting the sun away only works in physics class, and moved to the second best idea of tracking sun by moving the panel. Surprisingly, for larger installations the cost of adding tracking (and its maintenance) isn’t worth the gains, but for smaller, and especially urban, installations like [Bruce]’s it can still help.

[Bruce]’s build can be entirely sourced from eBay. The light direction is sensed via a very clever homemade directional light sensor. A 3D printer extruded cross profile sits inside an industrial lamp housing. The assembly divides the sky into four quadrants with a light-dependent resistor for each. By measuring the differences, the panel can point in the optimal direction.

The panel’s two axis are controlled with two cheap linear actuators. The brains are an Arduino glued to a large amount of solar support electronics and the online energy monitor component is covered by an ESP8266.

The construction works quite well. If you’d like to build one yourself the entire BOM, drawings, and code are provided on the instructables page.

 


Filed under: Arduino Hacks, solar hacks
Hack a Day 24 Jul 21:00

Hackaday Prize Entry: Reverse Engineering Blood Glucose Monitors

Blood glucose monitors are pretty ubiquitous today. For most people with diabetes, these cheap and reliable sensors are their primary means of managing their blood sugar. But what is the enterprising diabetic hacker to do if he wakes up and realizes, with horror, that a primary aspect of his daily routine doesn’t involve an Arduino?

Rather than succumb to an Arduino-less reality, he can hopefully use the shield [M. Bindhammer] is working on to take his glucose measurement into his own hands.

[Bindhammer]’s initial work is based around the popular one-touch brand of strips. These are the cheapest, use very little blood, and the included needle is not as bad as it could be. His first challenge was just getting the connector for the strips. Naturally he could cannibalize a monitor from the pharmacy, but for someone making a shield that needs a supply line, this isn’t the best option. Surprisingly, the connectors used aren’t patented, so the companies are instead just more rigorous about who they sell them to. After a bit of work, he managed to find a source.

The next challenge is reverse engineering the actual algorithm used by the commercial sensor. It’s challenging. A simple mixture of water and glucose, for example, made the sensor throw an error. He’ll get it eventually, though, making this a great entry for the Hackaday Prize.

The HackadayPrize2016 is Sponsored by:

Filed under: Arduino Hacks, The Hackaday Prize

Door Iris Porthole is the Perfect Fix for Detroit Hackerspace

In order to resolve the problem of congestion at the entrance to their hackerspace, the minds at i3Detroit installed a motion-activated mechanical iris in their door’s porthole.

Grabbing the design online (which they are now hosting on their site here), the parts were laser cut out of wood, gold leaf was added for effect, and it was relatively easy to assemble. PIR sensors detect movement on both sides of the door and an FET resistor connected to an orange LED add some old-school science fiction flair. The iris is actuated by a 12V car window motor — which works just fine on the 5V power that it’s supplied with — and an Arduino filling in as a controller. Start and stop positioning required some limit switches that seem to do the trick.

Finally they laser cut acrylic plastic with the i3Detroit logo to complete the porthole modification. You can watch a video of the mechanical iris in all its glory here — but unfortunately it’s on Google+ (do people still use that??) so we can’t embed it in the post.

If you want to add this sleek idea to your home but lack a laser cutter (understandable), then you can still hack one out of some common household materials.

[via Evan’s Techie-Blog]


Filed under: Arduino Hacks, Hackerspaces

Digital Opponent In An Analog Package

Unsatisfied with the present options for chess computers and preferring the feel of a real board and pieces, [Max Dobres] decided that his best option would be to build his own.

Light and dark wood veneer on 8mm MDF board created a board that was thin enough for adding LEDs to display moves and for the 10mm x 1mm neodymium magnets in the pieces to trip the reed switches under each space. The LEDs were wired in a matrix and connected to an Arduino Uno by a MAX7219 LED driver, while the reed switches were connected via a Centipede card. [Dobres] notes that you’ll want to test that the reed switches are positioned correctly — otherwise they might not detect the pieces!

A small LCD screen and four buttons also connect to the Arduino for configuring options a number of options, computer difficulty, and play styles, while a Raspberry Pi acts as the main computer.

The Raspberry Pi is using ChessBoard 2.05 as a rule set with consideration for special moves (such as en passant and castling). It’s currently unsupported but used with permission by its creator, John Eriksson. The chess program Stockfish is the actual engine; be sure to adjust the skill of the AI, as it defaults to an ELO of 2600! Unfortunately, it’s a rather finicky program, only running on Python 2.7. If that doesn’t appeal to you, [Dobres] has provided a nice list of other options to help you with your own build.

He has recently updated his design and done away with the need for the Arduino in the process which — especially if you use the Pi Zero — drops the cost of this project significantly. That should leave you with enough room in your budget to build a robot to make the moves for you!

[via Max Dobres]


Filed under: Arduino Hacks, Raspberry Pi

A Pi Robot Without a Hat

Daughter boards for microcontroller systems, whether they are shields, hats, feathers, capes, or whatever, are a convenient way to add sensors and controllers. Well, most of the time they are until challenges arise trying to stack multiple boards. Then you find the board you want to be mid-stack doesn’t have stackable headers, the top LCD board blocks the RF from a lower board, and extra headers are needed to provide clearance for the cabling to the servos, motors, and inputs. Then you find some boards try to use the pins for different purposes. Software gets into the act when support libraries want to use the same timer or other resources for different purposes. It can become a mess.

The alternative is to unstack the stack and use external boards. I took this approach in 2013 for a robotics competition. The computer on the robots was an ITX system which precluded using daughter boards, and USB ports were my interface of choice. I used a servo controller and two motor controllers from Pololu. They are still available and I’m using them on a rebuild, this time using the Raspberry Pi as the brain. USB isn’t the only option, though. A quick search found boards at Adafruit, Robotshop, and Sparkfun that use I2C.

This approach has challenges and benefits. A stack of daughter boards makes a neat package, where external boards makes a tangle of wires. Random sizes can make mounting a challenge. Providing power can also be a hassle because of the random placement of power pins. You can’t rely on USB power, especially from a Raspberry Pi whose USB is power limited.

On the other hand, external boards can offload processing from your main processor. Once a command is sent, these boards handle all the details including refresh requirements. They are likely to provide capabilities beyond the microcontroller software libraries since their processors are dedicated to the task.

I am using an 18-channel board from the Pololu Maestro Servo Controller family of boards that control from 6 to 24 servos using a single board. You might find the Adafruit 16 channel I2C board a useful alternative. For motor control I turned to the Pololu Simple Motor Controller family using one that will handle 18 amps. Others will handle from 7 to 25 amps. Or consider the Sparkfun Serial Controlled Motor Driver. Another source for USB controllers is Phidgets. I experimented with one of their spatial devices for the original robot. I should have used it to measure the tilt since one of my robots rolled over on a hill. Ooops!

Servo Control

The board currently installed on my robot is the Mini Maestro 18. The Maestro provides control over the servo speed, acceleration and movement limits. A home position can be set for startup or when errors occur. You can even do scripting or set movement sequences to play on command.

On the hardware side, the Maestro also allows channels to be used for digital input or output, and some channels for analog input. On some there is one channel for pulse width modulation output. An onboard regulator converts the servo power input to the voltage needed by the processor, simplifying part of the power distribution challenge.

My previous robot used the Maestro to control pan and tilt servos for camera positioning, a servo to lift samples from the ground, and a safety LED. Two analog inputs from current sensors on the motors helped avoid burnout during stalls, and four inputs from a simple RF key fob transmitter provided control. The latter came in handy for testing. I’d program a test sequence such as starting a 360° camera scan for landmarks or drive onto the starting platform and drop the sample. A button press on the key fob would initiate the activity. One button was always set up as an emergency halt to stop a rampaging robot. The rebuild is following this pattern with some additions.

Motor Controller

The two Simple Motor Controllers (SMC) each handled the three motors on either side of the Wild Thumper chassis. The SMC does more than just control the motor speed and direction. You can set acceleration, braking, and whether forward and reverse operate at the same or different speeds. The board monitors a number of error conditions for safety. These stop the motor and prohibit movement until cleared. Such blocking errors include lost communications, low input voltage, or drivers overheating.

An additional capability I found extremely helpful is the ability to read signals from a radio control (RC) receiver. These signals can be used to control the motor and, with some cross wiring between two controllers, provide differential drive control. This is useful for driving the robot to a new location using an RC transmitter. I didn’t use the RC inputs directly. Instead I read the RC inputs and issued the control commands from my program. This let me monitor the speed in my program logs for correlation with the other logged data. I also used an input to command the robot into autonomous or RC control operations. There are also two analog inputs that can be used to directly control the motor and can be read through commands.

Serial Communications

USB ports were my choice for communications but there is also a TTL level serial port with the standard RX and TX pins. This port can be used by the Raspberry Pi, Arduino, or any other microcontroller that has a TTL serial port.

The Maestro boards using USB appear as two serial ports. One is the command port that communications with the Maestro processor. The other is a TTL port. This port can serve as simply a USB to TTL serial port converter to allow communications with other boards, even from another vendor. Another use of the TTL port is to daisy chain Pololu boards. I could attach the SMC boards in this manner and save two USB ports for other devices. These boards support this by having a TXIN pin that ANDs the TX signal from the connected board with the TX on the board.

Both of these controllers support a few different communications protocols. I use the one Pololu created and is available on some of their other products. The command details are different between the boards, but the basic command structure is the same. They call it their binary protocol, and the basic format follows:

0xAA, <device address>, <command>, <optional data>, <crc>

All the fields are single bytes except for the data field which is frequently 2 bytes to transmit 16-bit data. The returned data is only one or two bytes with no additional formatting. Note they provide for detecting errors in the message by using a CRC (cyclical redundancy check). This is probably not critical over USB but a TTL line might receive noise from motors, servos, and other devices. A CRC error sets a bit in the error register that can be read if the command is critical.

I wrote my own code, C++ of course, for the PC and converted it just now to the Raspberry Pi. The main change is the different serial port code needed by Linux and Windows. Pololu now provides Arduino source for the protocol making it easy to use these boards with that family of controller boards.

Wrap Up

The chassis, Pi, and these boards are now installed on the Wild Thumper chassis along with a pan and tilt controlled by servos. A safety LED is on when power is applied and flashes when the robot is actively controlling the system. A LiPo battery powers all but the Pi because I need to configure a battery eliminator circuit to provide five volts. I’m powering it temporarily using a USB battery pack.

A test program, cross compiled from my desktop, moves the robot forward, pivots left than right, and then reverses. The pan / tilt moves and the LED flashes. I originally used a web camera for vision processing but will switch to the Pi camera since it is better. The Neato lidar discussed in a previous article will soon find a place onboard, along with an accelerometer to detect possible rollovers.

I’m sure I could have done this using Pi daughter boards despite the challenges I mentioned earlier. There are trade-offs to both approaches that need to be considered when working on a project. But there is one final advantage to the external boards: they have a lot of twinkly LEDs.

Product photos from Pololu.


Filed under: Arduino Hacks, Raspberry Pi, robots hacks

Venduino Serves Snacks, Shows Vending is Tricky Business

Seems like just about every hackerspace eventually ends up with an old vending machine that gets hacked and modded to serve up parts, tools, and consumables. But why don’t more hackerspaces build their own vending machines from scratch? Because as [Ryan Bates] found out, building a DIY vending machine isn’t as easy as it looks.

[Ryan]’s “Venduino” has a lot of hackerspace standard components – laser-cut birch plywood case, Parallax continuous rotation servos, an LCD screen from an old Nokia phone, and of course an Arduino. The design is simple, but the devil is in the details. The machine makes no attempt to validate the coins going into it, the product augurs are not quite optimized to dispense reliably, and the whole machine can be cleaned out of product with a few quick shakes. Granted, [Ryan] isn’t trying to build a reliable money-making machine, but his travails only underscore the quality engineering behind modern vending machines. It might not seem like it when your Cheetos are dangling from the end of an auger, but think about how many successful transactions the real things process in an environment with a lot of variables.

Of course, every failure mode is just something to improve in the next version, but as it is this is still a neat project with some great ideas. If you’re more interested in the workings of commercial machines, check out our posts on listening in on vending machine comms or a Tweeting vending machine.

[via r/arduino]


Filed under: Arduino Hacks, misc hacks
Hack a Day 02 Jul 21:01