posted Dec 14th 2011 1:01pm by
Mike Szczys
filed under:
arduino hacks

[John Boxall] took a different route for a single-input combination lock. This unit uses a Ping ultrasonic range finder to input a four digit code. It’s a hardware upgrade, but uses the same basic concept as his button-based combo lock. That design used an Arduino to measure how long you hold down a single button, with a one second pause between inputs, to enter the code. This one also uses timing to establish when each digit is read, but that digit is grabbed as the distance between your hand and the sensor.
There are things we like and dislike about the redesign. This is obviously much more expensive than other button-based locks like this garage door opener we built. If we were to run with [John's] design, we might spring for the Ping sensor (because it’s a pretty cool input) and replace he character LCD with an LED or two. The other drawback that we see here is that it may be easy for someone to steal your code by watching from afar. Still, we love the project and think you will too after seeing the demo clip below.
Read the rest of this entry »
posted May 14th 2011 12:52pm by
Brian Benchoff
filed under:
Microcontrollers

For some projects, it’s okay to have a microcontroller twiddling it’s thumbs most of the time. When a project requires the cpu to do just one thing over and over, there’s no loss with inefficient code – it either works or it doesn’t. However, if a project requires a microcontroller to do several things at once, like reading sensors, dimming LEDs, and writing serial data out, cpu utilization can become an issue. [Robert] wasn’t happy with the code he used to control a string of LEDs, so he rewrote his code. With the old implementation, [Robert]‘s code used 60% of the cpu time. With the new and improved code, the cpu was only busy 8% of the time.
The code works by using a hardware timer to trigger an interrupt. After calculating the next time it should run again, and changing the state of the data line, the code just sits quietly until it’s needed again.
It’s not a pretty hack, or even one you can hold in your hands, but [Robert]‘s determination in getting a μC to do what he wants is admirable.
posted Apr 15th 2011 2:01pm by
Mike Nathan
filed under:
arduino hacks,
Software Development

While programming an Arduino is a piece of cake for EEs who have been around the block a few times, there are some groups who would still find it difficult to get started with the IDE. It is touted for its ease of use, but there is a steep learning curve if say, you are 5 or 6 years old. [Julián da Silva] has been hard at work for a while now, to make the Arduino more accessible than ever.
Earlier today, we posted a story about moldable putty which can be used by children to build rudimentary circuits, enabling them to enter the fun world of hobby electronics at a young age. [Julián's] project “Minibloq” aims to do the same thing with the Arduino. A work in progress, Minibloq uses a graphical interface to “build” Arduino code a block at a time. The code components are dragged and dropped into place on one side of the screen, while the source code is generated on the other half. This helps gently introduce those people new to the Arduino how to write actual code, a little bit at a time.
[Julián] is working hard to ensure that his application works well on OLPC and other classroom-oriented computers to ensure it can reach as wide an audience as possible. We think this would be a great introduction to the world of micro controllers for children as well as those who have never tinkered with electronics at any point in their lives.
Keep reading to see a quick demo of the software in action.
Read the rest of this entry »
posted Jan 25th 2011 9:00am by
Mike Szczys
filed under:
transportation hacks

[Ed Zarick] built a module to control his vehicle which he calls the Jeeputer. The name’s a mash-up of Jeep and Computer; the device itself is a combination of Arduino, character LCD, and a collection of shift registers and relays for interfacing. Watch the video after the break to see what this can do. We were surprised in the beginning when he says that all he has left to do is remove the steering wheel lock and he’ll be able to drive using the interface, but we think he means type in a code to unlock the ignition, not remote control for his car. He then goes on to demonstrate garage door control, power cycling for CB radio, GPS, 110V power inverter, vehicle light control, and much more. This must be the most feature packed car computer we’ve seen so far.
Read the rest of this entry »
posted Nov 15th 2010 7:47am by
Greg R. Jacobs
filed under:
software hacks

We live in a world where everything must be portable, ranging from mobile applications to making an application able to run on Linux, Windows and OS X. Making a C# application to be completely portable across all windows computers is a problem that Microsoft knows about and willingly admits they will not fix. [Mike] from Geek Republic has taken it upon himself to show us how to hack up some code to make your programs portable. This code is a good push forward for people loving the portability of modern applications. He will admit that bugs may exist so be on the lookout and he would probably appreciate the feedback. Looking forward to a fully working provider so that .NET applications can be carried wherever people go!
43.002684
-81.214990
posted Nov 9th 2010 12:29pm by
Mike Szczys
filed under:
Microcontrollers

Last month we asked you to send in your debounce code. You didn’t disappoint and it’s time to share the code received. There were some guideline for sending in code so if you don’t see yours here, it probably didn’t follow the rules, sorry. We also tried to weed out code that using delay loops for debounce. These tend to be a poor way to handle inputs because they monopolize the processor.
We wanted to add upvote/downvote buttons to each set of code to give some idea of a group consensus on code quality but there’s no good system available for multiple up/down vote widgets on one wordpress page. This results in a huge code dump for any one person to go through. If you’ve got any ideas on how to better organize this let us know: debounce@hackaday.com.
We make no guarantees that this code is safe to use, or that it even works. Test it carefully before using for important tasks.
Join us after the break for a whirlwind of code examples.
posted Nov 5th 2010 3:00pm by
Mike Szczys
filed under:
how-to,
Microcontrollers

In the last installment of our tutorial series we built a simple circuit on a breadboard and programmed an ATmega168 to make it run. That proves that you know how to follow directions, but the eureka moments of doing everything yourself are on the way. This time around you will get down and dirty with the datasheet, learning where each line of the sample code came from, and give your recently installed compiler a test drive. We will:
- Talk about bitwise operators and how they work when coding for microcontrollers
- Discuss C code shorthand
- Review the sample code from Part 2 and talk about what each line of code does
- Learn to compile code
If this is the first you’ve heard about our AVR Programming series, head back to Part 1 and start from the beginning. Otherwise, take a deep breath and we’ll being after the break.
Series roadmap:
Read the rest of this entry »
posted Oct 13th 2010 1:11pm by
Mike Szczys
filed under:
HackIt

If you’ve ever designed an embedded system with at least one button you’ve had to deal with button debouncing. This is also know as contact bounce, a phenomenon where a button press can be registered as multiple button presses if not handled correctly. One way to take care of this is with a hardware filter built from a resistor-capacitor setup, or by using a couple of NAND gates. We find that [Jack Ganssle] put together the most comprehensive and approachable look at contact bounce which you should read through if you want to learn more.
We’re interested in software solutions for debouncing buttons. This seems to be one of the most common forum questions but it can be hard to find answers in the form of reliable code examples. Do you have debounce code that you depend on in every application? Are you willing to share it with the world? We’d like to gather as many examples as possible and publish them in one-post-to-rule-them-all.
Here’s some guidelines to follow:
- Please only include debounce code. Get rid of other unrelated functions/etc.
- You should send C code. If you want to also send an assembly code version that’s fine, but it must be supplementary to the C code.
- Please comment your code. This will help others understand and use it. You may be tempted to explain the code in your email but this info is best placed in the code comments
- Cite your sources. If you adapted this code from someone else’s please include a note about that in the code comments.
As an example we’ve included one of our favorite sets of debounce code after the break. Please note how it follows the guidelines listed above.
Read the rest of this entry »