Listening For Hand Gestures

[B. Aswinth Raj] wanted to control a VLC player with hand gestures. He turned to two common ultrasonic sensors and Python to do the job. There is also, of course, an Arduino. You can see a video of the results, below.

The Arduino code reads the distance from both sensors — one for the left hand and the other for the right. This allows the device to react to single hand gestures that get closer or further away from one sensor as well as gestures involving both hands. For example, raising your left hand and moving it closer or further away will adjust the volume. The right hand controls rewind and fast forward. Raising both hands will start or stop playback.

Continue reading “Listening For Hand Gestures”

Add Intuitiveness To OpenSCAD With Encoders

The first time I saw 3D modeling and 3D printing used practically was at a hack day event. We printed simple plastic struts to hold a couple of spring-loaded wires apart. Nothing revolutionary as far as parts go but it was the moment I realized the value of a printer.

Since then, I have used OpenSCAD because that is what I saw the first time but the intuitiveness of other programs led me to develop the OpenVectorKB which allowed the ubiquitous vectors in OpenSCAD to be changed at will while keeping the parametric qualities of the program, and even leveraging them.

All three values in a vector, X, Y, and Z, are modified by twisting encoder knobs. The device acts as a keyboard to

  1. select the relevant value
  2. replace it with an updated value
  3. refresh the display
  4. move the cursor back to the starting point

There is no software to install and it runs off a Teensy-LC so reprogramming it for other programs is possible in any program where rotary encoders may be useful. Additional modes include a mouse, arrow keys, Audacity editing controls, and VLC time searching.

Here’s an article in favor of OpenSCAD and here’s one against it. This article does a good job of explaining OpenSCAD.

Continue reading “Add Intuitiveness To OpenSCAD With Encoders”

Hackaday Prize Entry: Arduino Video Display Shield

The Arduino is the standard for any introduction to microcontrollers. When it comes to displaying video, the bone stock Arduino Uno is severely lacking. There’s just not enough memory for a framebuffer, and it’s barely fast enough to race the beam. If you want video from an Arduino, it’s either going to be crappy, or you’re going to need some magic chips to make everything happen.

[MagicWolfi]’s 2017 Hackaday Prize entry consists of an video display shield that would be so easy to use that, according to the project description, it could be a substitute for the classic Blink sketch.

The project centers around the VLSI VS23S010D-L chip, which packs 1 Megabit SPI SRAM with serial and parallel interfaces. An integrated video display  sends the composite video signal to display, with the mode depending on how many colors and what resolution is desired: for instance, at 640×400 you can display 16 colors. As he describes it, not 4K video but definitely Joust. The chip expects 3.3 V logic so he made use of a MC74LVX50 hex buffer to tailor the Arduino’s 5 V. Currently he’s working on revision two of the shield, which will include SPI flash memory.

You can follow along with the project on Hackaday.io or the current shield design can be found in [MagicWolfi]’s GitHub repository.

SimpleSumo Bots Teach More Than Fighting

[MechEngineerMike] wrote in to share the enthusiasm over SimpleSumo, a series of open source, customizable robots he designed for mini-sumo battling and much more. For the unfamiliar, mini-sumo is a sport where two robots try to push each other out of a ring. [Mike]’s bots are simplified versions designed for education.

[Mike] was inspired by a video of some kids building mini-sumo bots who were doing anything and everything to personalize them. He vowed to make his own affordable, easy-to-build bots with education firmly in mind. His other major requirement? They had to be as easily customizable as that one potato-based toy that eventually came with a bucket of parts. As of this writing, there are 34 interchangeable accessories.

[Mike]’s first idea was to build the bots out of custom 3D-printed building blocks. He soon found it was too much work to print consistent blocks and switched to a modular cube-like design instead. SimpleSumo bots can do much more than just fight each other. [Mike] has written programs to make them flee from objects, follow lines, find objects and push them out of the ring, and beep with increasing frequency when an object is detected.

The bots are completely open source, but [Mike] sells kits for people who can’t print the parts themselves. He’s made a wealth of information available on his website including links to outside resources about mini-sumo, Arduino, programming, and 3D design. How about a complete series of assembly videos? First one is after the break.  Don’t know how to build a battle ring? He’s got that covered, too.

For a sumo bot that’s more brains than brawn, check out Zumo Red, the smart sumo.

Continue reading “SimpleSumo Bots Teach More Than Fighting”

Tiny, Wearable 8-Bit VT100 Terminal

In the modern era of computing, the end-user is often quite far removed from the machine they’re using. At least in terms of abstraction levels, the user experience of most computers, smart phones, and the like are very far away from the zeros and ones. If you need to get down to that level though, you’ll have to make your way to a terminal somehow, and reminisce fondly about the days when everything was accessed through a serial line.

Nowadays, some harmless nostalgia is often accompanied by a challenge as well, as [Nick] demonstrated with his tiny serial terminal. It mimics the parsing and rendering of a VT100 console using an Arduino Uno and a 1″x1″ TFT screen. His goal was to make it wearable like a wristwatch would be, using two buttons as an HID device. With the size and simple interface, [Nick] also explores the possibility of mounting such a terminal to a pair of glasses.

While not everyone may want to interact with a serial terminal with only two buttons, it’s certainly a great demonstration of what is possible when it comes to implementing retro software in unique ways. There have been serial terminals implemented in many other unique places as well, such as old oscilloscopes and replicas from popular video games.

Using An Arduino To Re-Create A Computer’s Keyboard Decoder

[Max Breedon] found an old Apple IIe clone twenty years ago. He recently dug this Epson AP-200 out of the salvage heap and quickly discovered that the keyboard decoder chip was fried. The old chip was way too obscure to source a replacement — and soon this post will be the top Google result for the string, ‘C35224E’ — so he busted out his trusty UNO and created a replacement keyboard decoder.

Unlike the Apple II, where all the keyboard decoding happens on the keyboard, this clone used a dedicated chip on the main board. Although it’s a rare part that’s virtually ungoogleable, this chip’s architecture and pinout can be figured out by testing out every trace for continuity. After locating what looked like four data pins, he had the Arduino send signals onto the clone to see what characters popped up. That didn’t work, but it led him to idea that two of the wires were clock and data, and after a bit of experimenting figured out that the third pin was a latch enable of some sort that sent the character.

So, [Max] created an Arduino rig to do the same thing. The Arduino uses a shift register to interact with the keyboard’s 8×10 matrix, and the sketch translates any serial data it receives into the keypresses the clone is expecting. After prototyping with the UNO, [Max] hardwired an Arduino Nano (as well as the shift register) into a daughter board with pins extending into the old chip’s sockets. A permanent solution!

In addition to a weird keyboard controller that has been lost to the sands of time, this Apple IIe clone features a few more parts that are downright weird. There are two chips that are found in a few other Apple clones labeled STK 65301 and STK 65371, used as ASICs, MMUs, or a 20-IC expression of Wozzian brilliance condensed into custom silicon. There’s another weird chip in this clone, a 27c32 ROM loaded up with repetitive bits. There is no obvious 6502 code or strings in this ROM, so if anyone has an idea what this chip does, send [Max] a note.

Look What Came Out Of My USB Charger !

Quick Charge, Qualcomm’s power delivery over USB technology, was introduced in 2013 and has evolved over several versions offering increasing levels of power transfer. The current version — QCv3.0 — offers 18 W power at voltage levels between 3.6 V to 20 V.  Moreover, connected devices can negotiate and request any voltage between these two limits in 200 mV steps. After some tinkering, [Vincent Deconinck] succeeded in turning a Quick Charge 3.0 charger into a variable voltage power supply.

His blog post is a great introduction and walk through of the Quick Charge ecosystem. [Vincent] was motivated after reading about [Septillion] and [Hugatry]’s work on coaxing a QCv2.0 charger into a variable voltage source which could output either 5 V, 9 V or 12 V. He built upon their work and added QCv3.0 features to create a new QC3Control library.

To come to grips with what happens under the hood, he first obtained several QC2 and QC3 chargers, hooked them up to an Arduino, and ran the QC2Control library to see how they respond. There were some unexpected results; every time a 5 V handshake request was exchanged during QC mode, the chargers reset, their outputs dropped to 0 V and then settled back to a fixed 5 V output. After that, a fresh handshake was needed to revert to QC mode. Digging deeper, he learned that the Quick Charge system relies on specific control voltages being detected on the D+ and D- terminals of the USB port to determine mode and output voltage. These control voltages are generated using resistor networks connected to the microcontroller GPIO pins. After building a fresh resistor network designed to more closely produce the recommended control voltages, and then optimizing it further to use just two micro-controller pins, he was able to get it to work as expected. Armed with all of this information, he then proceeded to design the QC3Control library, available for download on GitHub.

Thanks to his new library and a dual output QC3 charger, he was able to generate the Jolly Wrencher on his Rigol, by getting the Arduino to quickly make voltage change requests.

Continue reading “Look What Came Out Of My USB Charger !”