Posts | Comments

Planet Arduino

Ok, this one is a bit bizarre, but in perfect keeping with the subject matter: a talking toilet ripped from the pages of the Captain Underpants children’s books. Hackaday.io user [hamblin.joe]’s county fair has a toilet decorating contest and at the suggestion of their neighbour’s son, [hamblin.joe] hatched a plan to automate the toilet using an Arduino in the fashion of the hero’s foes.

Two Arduinos make up this toilet’s brains, an Adafruit Wave Shield imbues it with sound capabilities, and a sonic wave sensor will trigger the toilet’s performance routine when someone approaches. A windshield wiper motor actuates the toilet bowl lid via a piece of flat iron bar connected to a punched angle bracket. Installing the motor’s mount was a little tricky, since it had to be precisely cut so it wouldn’t shift while in the toilet bowl. A similar setup opens the toilet tank’s lid, but to get it working properly was slightly more involved. Once that was taken care of there was enough room left over for a pair of 12V batteries and a speaker. Oh, and a pair of spooky eyes and some vicious looking teeth.

If you have a limited number of bathrooms at home or at work, some signage would be useful to know when it’s free and how dangerous it is to enter.


Filed under: Arduino Hacks, Uncategorized

If you suppose that electromagnetically-propelled projectiles are strictly the purview of well-funded government research labs, think again! Using two sets of coils wrapped around custom 3D-printed base structures and an Arduino Nano for control, YouTuber “Gyro” created his own coilgun capable of propelling steel fast enough to dent a piece of wood.

When fired, a photodiode at the end of each electromagnet coil sends a signal to the Arduino. This, in turn, shuts off the coil, allowing it freely escape the barrel.

As noted in his Instructables write-up, the gun is constructed without large capacitors, which can be expensive and dangerous. Instead, two LiPo battery packs are combined to produce around 22 volts, though this and the number of coils used, could be increased to produce a more powerful device!

[Micah Elizabeth Scott] needed a custom USB keyboard that wrapped around a post. She couldn’t find exactly what she wanted so she designed and printed it using flexible Nijaflex filament. You can see the design process and the result in the video below.

The electronics rely on a Teensy, which can emulate a USB keyboard easily. The keys themselves use the old resistor divider trick to allow one analog input on the Teensy to read multiple buttons. This was handy, but also minimized the wiring on the flexible PCB.

The board itself used Pyralux that was milled instead of etched. Most of the PCB artwork was done in KiCAD, other than the outline which was done in a more conventional CAD program.

We always enjoy seeing practical use of hacker-grade 3D printers. After all, there are only so many keychains you can make. Of course, you probably don’t need exactly this keyboard layout. But the techniques of creating the flexible PCB, printing the keypad itself and integrating everything with the electronics would be a great road map for any similar project.

As far as we can tell, the cat made no actual contribution to the final design. Unless you count inspiring flexibility, perhaps.

We’ve seen people make the actual PCBs using Pyralux and Ninjaflex as an etch resist if you don’t want to mill the boards. This isn’t the first time we’ve seen a Teensy pressed into keyboard controller service, either.

Thanks [Kyle] for the tip.


Filed under: 3d Printer hacks, Arduino Hacks, ARM

As seen here, mixing colors in real life is simple enough to understand, if difficult to perfect. With red, green and blue, any color in the rainbow can be produced, and the same can be done virtually using these digital RGB components. To help make color theory easier to grasp, Justin Daneman and Tore Knudsen developed a tangible interface that employs an Arduino to detect the fill levels of three cylinders, which represent red, green, and blue.

The intensity of each color is increased by pouring more water into the corresponding container, and decreased by removing it with a syringe. In one mode, users can explore how RGB colors create and affect a digital image on a computer screen, which in this case is Leonid Afremov’s painting “Misty Mood.” A second Color Challenge mode places a random color onscreen—or even in another glass—and participants try to match it by correctly proportioning the three liquid containers.

Colorwise is a physical game and exploration concept that aims to create awarness about digital color theory. More spiecifically, the RGB color system. Through a tangible interface of three cylinders, you mix different combinations of red, green and blue. This is done with water which works as a metaphor for digital data. By rearranging the water, a feedback of aesthetic visual and audio is experienced.

You can read more about Colorwise on its page here, and see a demo of it below!

Early programmers had to represent code using binary, octal, or hex numbers. This gave way quickly to representing programs as text to be assembled, compiled, or interpreted by the computer. Even today, this remains the most common way to program, but there have been attempts to develop more visual ways to create programs graphically. If you program microcontrollers like the Arduino, you should check out XOD and see how you like visually creating software. The software is open source and currently, can target the Arduino or Raspberry Pi.

You can launch the IDE in a web browser or download a local copy. You transfer nodes from a palette into a grid-like workspace. These nodes might be inputs, outputs, processing blocks, or represent real-world I/O devices. Nodes have inputs and outputs of specific types and you connect them together, connecting like types only, although there are blocks that can convert.

For example, to the right is a simple set of nodes that forms the prototypical flashing LED program. A clock node creates a pulse that toggles a memory element and a digital output accepts both the signal and a constant value indicating which port it represents.

This is a simple example, but it does show the intuitive flow of joining nodes. There is a reasonable array of node types and sufficient documentation.

There are out-of-the-box nodes for ultrasonic sensors, temperature sensors, servos, LCDs, buttons, and H-bridges. You can create your own super-nodes (patches) and you also can make multiple disjointed flows to execute more than one task at a time.

When you generate the code you get a lot of boilerplate that sets up the run time system and the nodes you use. Your main code appears to be in an evaluate function. For example, here’s a snippet of the code that corresponds to the simple graphical blink program:

void evaluate(Context ctx) {
State* state = getState(ctx);
TimeMs tNow = transactionTime();
TimeMs dt = getValue<input_IVAL>(ctx) * 1000;
TimeMs tNext = tNow + dt;

if (isInputDirty<input_RST>(ctx)) {
if (dt == 0) {
state->nextTrig = 0;
clearTimeout(ctx);
} else if (state->nextTrig < tNow || state->nextTrig > tNext) {
state->nextTrig = tNext;
setTimeout(ctx, dt);
}
} else {
// It was a scheduled tick
emitValue<output_TICK>(ctx, 1);
state->nextTrig = tNext;
setTimeout(ctx, dt);
}
}

There are a few rough edges, which isn’t surprising for new software. For one thing, nodes have fixed numbers of inputs and outputs. So if you want, for example, a ten-input AND gate, you’ll have to build it. Another apparent issue is there is no way we found to select a lot of items at once. If you decide you want to move a whole bunch of nodes down to make room for something new, you are going to be in for a lot of work.

There are other drag-and-drop programming languages, of course. We’ve covered Scratch for the Arduino and the Raspberry Pi, before. However, this is a dead simple way to try flow-based programming with minimal setup.


Filed under: Arduino Hacks, Raspberry Pi

Most people support their school or favorite sports team by buying a shirt or tuning into games. Jacob Thompson, however, took things one step further and created his own Arduino-powered, backlit Clemson Tiger Paw.

Thompson’s “WallPaw,” as he calls it, uses an Arduino Uno to receive signals from an infrared remote and to pick up sounds with a small microphone. This information is passed on to an Arduino Mega, which controls a five-meter-long strip of WS2812 LEDs to provide lighting effects.

He notes that it would be possible to use only one Arduino board for everything, but patterned his code after this tutorial that included two. The paw itself is cut out of wood and clear acrylic, allowing the lights underneath to shine through nicely.

You can see the build in action below and find more details on Thompson’s website here.

You may be familiar with “Pop-A-Shot” at arcades and amusement parks, which allows you to shoot baskets at a hoop for fun and prizes. Maker Cory Guynn, apparently unsatisfied with not having one of these at home, decided to duplicate the game with the “Pop o Shop.”

In this version, an ultrasonic sensor in the hoop tells an Arduino Nano when a shot has been registered, while two 7-segment displays inside of a LEGO scoreboard show the current count, time remaining, and high score. There is also an RGB LED that turns green after every made basket and changes color with a new top score.

Incidentally, one of the displays can also spell out “POPOSHOP,” which dictated the name of the game, since there is no “T” character in the LedControl library used! For more info and code, be sure to check out the “Internet of LEGO” build log!

We sit down to talk with Scott Shawcroft, an engineer at Adafruit, to discuss their hardware transition to CircuitPython.

Read more on MAKE

The post CircuitPython Snakes its Way onto Adafruit Hardware appeared first on Make: DIY Projects and Ideas for Makers.

Apparently unsatisfied with existing video game input devices, game designer Rob Santos created his own using, what else, fidget spinners. His system combines a spinner and five buttons on a pair of controllers to interface with Flock Off, an arcade game loosely based on Flappy Bird.

To register spinner input, a magnet is embedded on each lobe, triggering a Hall effect sensor three times per revolution when spun. An Arduino in each control box reads these signals, then sends this information, along with button inputs, to the game via USB accessible through a serial port.

Although using the Uno means that the game must be programmed especially for this type of input, Santos notes that using an HID-capable board, such as the Leonardo, would give it the capability to act as keyboard input by itself.

What’s better than a laser? How about two rapidly rotating lasers, attached to servo motors and controlled by an Arduino Mega? That’s exactly what Jon Bumstead made with his “Interactive Laser Sheet Generator.”

In addition to controlling the lasers, his device can sense hand motion on top of it using an array of 12 ultrasonic sensors, and can even coordinate music through a built-in MIDI output.

As seen in the demonstration video, Bumstead’s project–which was constructed with the help of a CNC router–looks like a cross between a coffee table and a test fixture for a space vehicle. When activated, a brushless motor spins the two lasers at a high speed, while the Mega controls the laser angles via two servos, creating a unique vortex-like light show!

I included distance sensors in the device so that the laser sheets could be manipulated by moving your hand towards them. As the person interacts with the sensors, the device also plays music through a MIDI output. It incorporates ideas from laser harps, laser vortexes, and POV displays. The instrument is controlled with an Arduino Mega that takes in the inputs of ultrasonic sensors and outputs the type of laser sheet formed and music generated. Due to the many degrees of freedom of the spinning lasers, there are tons of different laser sheet patterns that can be created.

You can find more details on the laser sheet generator on Instructables.



  • Newsletter

    Sign up for the PlanetArduino Newsletter, which delivers the most popular articles via e-mail to your inbox every week. Just fill in the information below and submit.

  • Like Us on Facebook