Posts | Comments

Planet Arduino

In several iterations of the Star Wars saga, small black droids can be seen scurrying around imperial installations. While they tend to fade into the background or provide a fun distraction in the movies, the mouse droid by Potent Printables acts as a sort of physical messaging app. It’s able to travel to the correct location, then pop open to unveil a scrolling LED sign.

Potent Printables can trigger the side door using a Bluetooth app on his phone. On command, an RC servo pushes it open, and lowers it down using a stepper motor/reel setup. An Arduino Uno along with an Adafruit Motor Shield are used for control, while an HC-05 module enables communication with the system.  

Check out the latest video in this build series below!

A few months ago we brought word that [Electronoobs] was working on his own open source alternative to pocket-sized temperature controlled soldering irons like the TS100. Powered by the ATMega328p microcontroller and utilizing a 3D printed enclosure, his version could be built for as little as $15 USD depending on where you sourced your parts from. But by his own admission, the design was held back by the quality of the $5 replacement soldering iron tips he designed it around. As the saying goes, you get what you pay for.

But [Electronoobs] is back with the second version of his DIY portable soldering iron, and this time it’s using the vastly superior HAKKO T12 style tip. As this tip has the thermocouple and heating element in series it involved a fairly extensive redesign of the entire project, but in the end it’s worth it. After all, a soldering iron is really only as good as its tip to begin with.

This version of the iron deletes the MAX6675 used in V1, and replaces it with a LM358 operational amplifier to read the thermocouple in the T12 tip. [Electronoobs] then used an external thermocouple to compare the LM358’s output to the actual temperature at the tip. With this data he created a function which will return tip temperature from the analog voltage.

While the physical and electrical elements of the tip changed substantially, a lot of the design is still the same from the first version. In addition to the ATMega328p microcontroller, version 2.0 of the iron still uses the same 128×32 I2C OLED display, MOSFET, and 5V buck converter from the original iron. That said, [Electronoobs] is already considering a third revision that will make the iron even smaller by replacing the MOSFET and buck converter. It might be best to consider this an intermediate step before the DIY iron takes on its final form, which we’re very interested in seeing.

The first version of the DIY Arduino soldering iron garnered quite a bit of attention, so it seems there’s a decent number of you out there who aren’t content with just plunking down the cash for the TS100.

[Thanks to BaldPower for the tip.]

There’s little question that an oscilloscope is pretty much a must-have piece of equipment for the electronics hacker. It’s a critical piece of gear for reverse engineering devices and protocols, and luckily for us they’re as cheap as they’ve ever been. Even a fairly feature rich four channel scope such as the Rigol DS1054Z only costs about as much as a mid-range smartphone. But if that’s still a little too rich for your taste, and you’re willing to skimp on the features a bit, you can get a functional digital oscilloscope for little more than pocket change.

While there are a number of very cheap pocket digital storage oscilloscopes (DSOs) on the market, [Peter Balch] decided he’d rather spin up his own version using off-the-shelf components. Not only was it an excuse to deep dive on some interesting engineering challenges, but it ended up bringing the price even lower than turn-key models. Consisting of little more than an Arduino Nano and a OLED display, the cost comes out to less than $10 USD for a decent DSO that’s about the size of a matchbox.

But not a great one. [Peter] is very upfront about the limitations of this DIY pocket scope: it can’t hit very high sample rates, and the display isn’t really big enough to convey anything more than the basics. But if you’re doing some quick and dirty diagnostics in the field, that might be all you need. Especially since there’s a good chance you can build the thing out of parts from the junk bin.

Even if you’re not looking to build your own version of the Arduino-powered scope [Peter] describes, his write-up is still full of fascinating details and theory. He explains how his software approach is to disable all interrupts, and put the microcontroller into a tight polling loop to read data from the ADC as quickly as possible. It took some experimentation to find the proper prescaler value for the Atmega’s 16MHz clock, but in the end found he could get a usable (if somewhat noisy) output with a 1uS sample rate.

Unfortunately, the Arduino’s ADC leaves something to be desired in terms of input range. But with the addition of an LM358 dual op-amp, the Arduino scope gains some amplification so it can pick up signals down into the mV range. For completion’s sake, [Peter] included some useful features in the device’s firmware, such as a frequency counter, square wave signal source, and even a voltmeter. With the addition of a 3D printed case, this little gadget could be very handy to have in your mobile tool kit.

If you’d rather go the commercial route, Hackaday’s very own [Jenny List] has been reviewing a number of very affordable models such as the DSO Nano 3 and the JYE Tech DSO150 build-it-yourself kit.

[Thanks to BaldPower for the tip.]

If you want to integrate a nice graphical interface with a microcontroller or single-board computer for a useful piece of custom equipment, how will you go about it? MyOpenLab is a platform that makes it easy to design virtual interfaces your electronic builds. If you want controls and readouts for Arduino, Raspberry Pi, Android, or anything with a serial port, this is worth a try.

MyOpenLab reminds me of LabView. Not so much modern LabView with all of its add-ons and extras, but LabView back when it did just a few things but did them really well. The open source MyOpenLab project has been around for a while. The website and documentation are not in English, which may have kept some people from giving it a try, but the software itself is available in German, English, and Spanish. I took the plunge and found the language barrier didn’t cause me trouble.

As an example of what you can do, image you want to build a custom bench tool. You build virtual device (they call it a “VirtualMachine”) that uses your computer as the control panel and readout, and your electronic project as the physical interface. In myOpenLab your device will consist of two parts: a diagram and a front panel. Some things only live on the diagram, like a timer or a connection to an Arduino. But some things live on both like switches, LEDs, graphs, and so on. You can connect all the little boxes together to build up applications. They can stand alone, but the power comes in being able to connect to an Arduino or Raspberry Pi (or a few other options) for I/O.

A Quick Project

Before getting into the gritty detials, let’s look at a simple demo I cooked up to try things out. There are also plenty of substantial examples already in the VirtualMachines folder you can examine.

You can see the front panel here. The Jolly Wrencher is just a graphic added for decoration along the other items and labels that make the front panel look nice but don’t show up in the working diagram. The diagram is where you specify connections between your virtual front panel and actual hardware you want to control. You also have the power to add logic to existing hardware inputs.

The Firmata block (Firmata is a protocol for communicating with microcontroller boards) is used to represent the hardware interface of your project and has a few interesting properties. First, you really need your board hooked up and working before you put the block down as it reads things even before you run your virtual machine. You can set the serial port to use and the refresh interval for inputs (apparently in milliseconds).

Checking the Active box on the pin editor makes the pin show up on the Firmata component

I wired two buttons connecting an Arduino’s pins 7 and 8 to ground, each with a 10K pull-up resistor. This biases the pin values so that MyOpenLab can read a 1 on those input pins when the buttons idle and a 0 when the buttons are pressed. I use this to illustrate the cool logic abilities of MyOpenLab. On the right side of the firmata block I invert the buttons since they are active low and then feed the result to an RS flip flop. A virtual LED on the front panel shows the state of the flip flop.

To the left of the firmata block, I have a slow timer and a virtual switch. This goes through an OR gate and an inverter to drive pin 13 of my Arduino (the LED built into the board). The net effect is the LED will blink unless you turn the virtual switch on the MyOpenLab front panel on. It is MyOpenLab that times the blinking.

 

You can also right-click on a wire and set a testpoint. During operation, you can open a window from the Window menu and display the test points easily. You can also open a little oscilloscope display that will show you all your digital or analog signals.

Signal 1 is the “set” button, signal 2 is the “reset” button and signal 3 is the LED output.

Pretty simple and while this is a silly example, you can see from the components you could put together a pretty significant system. There are quite a few examples in the VirtualMachines folder if you want to look at some meatier examples.

Now lets get into the details of working with MyOpenLab.

Working with the User Interface

The user interface is not bad at all. On a high-DPI monitor I found it is a bit small and there wasn’t a clear way to zoom it (but I’ll tell you how I fixed that later). Things work about how you’d expect. You pick components of the horizontal palette above the workspace then click on the workspace to place them. Note the palette changes if you are on the diagram (circuit panel) or the front panel.

Once in a while, you’ll see something that didn’t get localized for the English version of the software (the contadores de tiempo folder has timers in it). I also ran into a few components that insisted on throwing Java errors pretty much nonstop related to painting. They seemed to work, they just threw some Java exception. I did work out some Java fixes under Linux which I’ll detail later on.

Drawing interconnecting lines was a bit difficult. You have to start from the source, click, and then move to the destination and click again. The green lines were hard to see on my monitor and there was no way I could see to change the colors. You can only connect one output to one input. If you right click on a wire, though, you can add a node which will allow you to make another connection to that node. You can also pick the splitter component from the extras folder.

If you click on an object, there some help text that shows up on the right (often missing) and a property inspector on the left. Some of these require a little detective work on your part. For example, in the timer component, the high-level property sets the time in output is high and low-level sets the time the output is low. Both times appear to be in milliseconds.

Back End

What was interesting to me was the number of backends available as I/O devices. You can talk to an Arduino using Firmata but several others are also available. You can talk to a Raspberry Pi, Modbus, Processing, several commercial I/O interfaces, and the RS232 port. I wished there was a backend for Sigrok or USBTMC.

Then again, this is open source, so I guess I should add it instead of complaining. The project is hosted on SourceForge. Don’t get confused by the code you’ll get using the download button there (that’s an old version). If you look on the “code” tab you’ll find the subversion details to check out the most recent code:

svn checkout https://svn.code.sf.net/p/myopenlab3/code/ myopenlab3-code

Work Arounds

Getting things to work was a little challenging. Many Java programs don’t pick up my big screen correctly — I probably need to update my JVM. After I got tired of squinting, I ran Xephyr and passed it a fake DPI:

Xephyr -dpi 100 :3 -screen 1800x1200 -dpi 100  ; DISPLAY=:3 twm ; DISPLAY=:3 ./start_
linux &

Xephyr is like Xnest. It creates a virtual X Windows display in a window on your desktop. That made the mouse cursor a little funny which didn’t help with the wiring, but it was workable. Sure would be nice if the interface could zoom in and out, but as far as I could tell it doesn’t.

However, I had an even bigger problem. The program depends on the RXTX library to talk to the serial port. At first, it could not find my installation. I knew it should work because the Arduino IDE uses the same library and that was fine.

-Djava.library.path="/usr/lib/jni/"

But that wasn’t the end of the problem. The Arduino enumerates as /dev/ttyACM0 or perhaps some other number depending on what else is connected. The program would find ports that show up as /dev/ttyUSB* and /dev/ttyS* but didn’t want to show any ports with ACM in them. In a Kobayashi Maru maneuver, I issued the following command:

ln -s /dev/ttyACM0 /dev/ttyUSB99

Then MyOpenLab found /dev/ttyUSB99 and I was in business. I don’t like to lose.

More Resources

There’s a lot more to explore with this tool. There are dozens of components ranging from simple gates to PID controllers. However, this should get you started. If you speak Spanish, you are set. If you don’t, don’t forget that your browser probably has a translate button or you can use an online translator — you may have to hunt to translate the whole manual (or borrow my copy). Of course, the translations leave something to be desired. There is a forum that has a good bit of English. There’s also a YouTube channel, that has some English and was updated recently.

One thing to note about the YouTube videos. At least some of them have some English subtitles. For example, check out the introduction video below and turn on closed captioning in the YouTube viewer. Unfortunately, the translation stops when you get to the good stuff, but you can still follow what’s happening pretty well.

 

When you think of sports, you usually think of something that takes a lot of physical effort. Golf is a bit different. Sure, you can get some walking in if you don’t take a cart. But mostly golfing is about coordination and skill and less about physical exertion. Until you want to practice driving. You hit a bucket of balls and then you have to go walk around and pick them up. Unless you have help, of course. In particular, you can delegate the task to a robot.

The robot that [webzuweb] built looks a little like a plywood robot vacuum. However, instead of suction, it uses some plywood disks to lift the balls and deposit them in a hopper. The electronics consist of an Arduino and an Orange Pi Lite. A GPS tells the robot where it is and it develops a search pattern based on its location.

Although [webzuweb] notes he isn’t done with the project, it looks pretty good. He describes the software, but it doesn’t appear to be posted anywhere. However, he does describe its operation and how it changes mode based on its current state.

We can’t decide if golf is really a sport or more of a game. We were surprised to read that if you carry your own bag and don’t use a cart you can burn about 360 calories an hour which is somehow more than a gymnast burns, which hardly seems possible.

Of course, most people use a cart and a caddy, so they aren’t going to burn those calories. If you are in the market for a cool cart, we liked this one. Or, perhaps you’d like one with more power.

Oscilloscopes come in all different shapes and sizes, and now with just a few discreet components, maker Peter Balch has been able to turn an Arduino Nano into an oscilloscope the size of a matchbox. 

The simplest version of this device, which he calls the “ArdOsc,” displays data on a computer screen, but a 1.3” OLED can also be added if you want to use it on its own.

His build write-up goes through several versions of the instrument, progressively adding capabilities including a logic display, signal generator, and other useful tools. It’s certainly worth checking out, whether you need tiny test equipment or just want to marvel at how something this small can be made!

This oscilloscope costs the price of an Arduino Nano, plus a few pence for resistors, etc. Its specifications are:

  • Max 1M samples/second, min 1000sps
  • 8-bits per sample
  • DC 0-5V; AC +/- 550mV, AC +/- 117mV, AC +/- 25mV
  • USB “PC scope” or built-in display
  • Could be battery-powered
  • Optional logic display
  • Optional frequency meter
  • Optional voltmeter

Oscilloscopes come in all different shapes and sizes, and now with just a few discreet components, maker Peter Balch has been able to turn an Arduino Nano into an oscilloscope the size of a matchbox. 

The simplest version of this device, which he calls the “ArdOsc,” displays data on a computer screen, but a 1.3” OLED can also be added if you want to use it on its own.

His build write-up goes through several versions of the instrument, progressively adding capabilities including a logic display, signal generator, and other useful tools. It’s certainly worth checking out, whether you need tiny test equipment or just want to marvel at how something this small can be made!

This oscilloscope costs the price of an Arduino Nano, plus a few pence for resistors, etc. Its specifications are:

  • Max 1M samples/second, min 1000sps
  • 8-bits per sample
  • DC 0-5V; AC +/- 550mV, AC +/- 117mV, AC +/- 25mV
  • USB “PC scope” or built-in display
  • Could be battery-powered
  • Optional logic display
  • Optional frequency meter
  • Optional voltmeter

What would you get if you crossed a gigantic Christmas tree ornament with an LED strip and Arduino/IMU control? Perhaps you’d come up with something akin to this colorful “RGB LED Ball” by James Bruton.

The device features eight curved supports along with a central hub assembly, forming a structure for APA102 RGB LED strips. Each of these is linked together via wiring that winds through the central hub making them appear to the Arduino Mega controller as one continuous chain of lights. 

Several animations can be selected with a pair of control buttons, and the ball even responds to movement using an MPU6050 IMU onboard. Files for the build are available on GitHub.

Stroboscopes produce carefully timed pulses of light in order to make a rotating object appear still. While this may seem like something of an exotic concept, YouTuber Mr. Innovative decided to build his own using an Arduino Nano.

His project uses a PN2222A transistor to drive a 10W LED, which acts as the device’s light source. The spinning RPM is set via a potentiometer, and a small OLED provides user feedback.

As shown in the video below, the stroboscope is able to cause a sign spinning around on a fan to appear nearly stationary. If you’d like to create you own, Arduino code is available here.

Underneath the sea are a wide variety of strange and amazing animals. Perhaps none more so than the anglerfish, with its characteristic light-up lure in front of its face. Club Asimov decided to recreate this fish in a steampunk style, using a linkage system to actuate the tail, and another to open and shut its menacing mouth.

Three stepper motors provide power for the fish’s movements, and two Arduino boards are used for control. Additionally, the fish’s lure illuminate to attract human observers, along with a heart that rhythmically lights up.

Inspired by the steampunk universe and the anglerfish, the fish appearing in the movie Nemo, we present to you our newest invention” “Le Poisson des Catacombes!”

The 1-meter-long mechanical beast is made with metallic pieces recovered from an old dishwasher. It reacts from movements around it giving the impression that it can interact with its surrounding.

To make the fish, we used:

2 Arduinos
2 HC-SR04 ultrasonic
3 Nema 17 stepper motors
3 TB6560 stepper motor drivers
5 red LEDs with 5 100 ohm resistors
1 old PC power supply

You can see this mechanical marvel in action in the first video below, while the second provides background on how it was made.



  • 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