Posts | Comments

Planet Arduino

Hey Arduiners,

Today we are releasing IDE 1.8.10 and you should try it because it’s awesome! With the support of our incredible community, we’ve been improving a lot of (small and not so small) things.

Besides taking a look at the complete changelog, we’d like to point out one outstanding contribution that we received during this dev cycle.

Our friend Joe Wegner from APH reached out to us with a very clear plan on how to improve the IDE’s accessibility with some very convenient patches. With the help of co-founder Tom Igoe and ITP alumnus and research resident Jim Schmitz, we’ve started targeting some of the most problematic components that used to interact badly with screen readers (popups, links, lists not entirely navigable by keyboard) while also adding a plethora of accessibility descriptions to components that were basically hidden for blind and visually impaired users.

To keep things clean, Wegner added a checkbox under Preference panel to enable some particular optimizations for screen readers (like transforming links into buttons so they can be reached using the TAB key).

We hope it is the start of a lasting collaboration to make Arduino truly available for everyone willing to learn and hack with us.

The holidays are over and we’re back at work, so it’s time to clean up the house. To get ready for autumn, our amazing dev team has decided to devote an entire week to resolve as many of the open issues on the Arduino IDE repository and related projects (cores, libraries, etc.) as possible.

Starting this Monday, the dev team will be going through the open issue log — analyzing requests, fixing them where immediately possible, and in some cases, reaching out to the original submitter to establish if they are still seeing an issue or if it can be closed out. If you do receive such a notification in your GitHub account (with a subject starting with [arduino/Arduino] …), please help us help you by responding accordingly.

Big thanks to all of you who’ve contributed in the past and continue to submit the issues you find within the Arduino IDE for resolution. We appreciate your support and acknowledge your patience while waiting for them to be fixed.

Let’s watch that open issue counter fall by the day!

What has a dozen servos, a camera, and an Arduino Mega for a brain? Nevon Projects’ snake-bot, of course! 

This impressive robot uses a total of 12 servos for locomotion and can travel across a variety of surfaces under the control of Android app, or autonomously via a sensor mounted to a smaller servo on the head.

The snake’s electronics are split up between a head section that houses batteries and the sensor, and a tail bearing electronics including the Arduino. 

The project is available as a kit, or could certainly provide inspiration for your own project if you want to start from scratch. Check it out oscillating across the ground on tiny rollers in the video below, along with a surprising transformation into a square shape at just before the 1:45 mark.

To help a patient in his country with a congenital limb deficiency, Buzi Nguyen has designed a 3D-printed transhumeral—above the elbow—prosthesis prototype. The device features 10 degrees of freedom, including independent control of four fingers and a thumb, along with movement capabilities for the wrist and forearm.

The prosthesis is powered by a number of Arduino boards and a Raspberry Pi, and equipped with computer vision to track and choose grip patterns for object handling. It can also potentially be operated via brain-computer interface and electromyography.

A demonstrate of all the currently supported features can be seen in the video below.

Counting frequency is one of those tasks that seems simple on the face of it, but actually has quite a bit of nuance. There are two obvious methods, of which the first is to count zero crossings for some period. If that period is one second you are done, otherwise it’s a simple enough case of doing the math. That is, if you count for half a second, multiply the result by 2, or if you count for 10 seconds, divide by 10. The other obvious method is to measure the period of a single cycle as accurately as you can. Then there’s this third method.from [WilkoL], which simultaneously counts a known reference clock alongside the frequency to be measured.  You can see the result in the video, below.

The first method is easy but the lower the frequency you want to measure, the longer you have to count to get any real resolution. Also, you need the time base to be exact. For the second method, you need to be able to make a highly precise measurement. The reason [WikolL] chose the third method is that it doesn’t require a very precise time base — a moderately accurate reference oscillator will do. The instrument gets good resolution quickly at both high and low frequencies. 

The key to making the measurement is a clever way of connecting a D flip flop in such a way that it counts the high frequency reference clock and the lower frequency of interest for a fixed period of time. The fixed period doesn’t have to be very accurate. You wind up with two counts: How many input clocks you saw over the period and how many reference clocks. Since you know the frequency of the reference clock, the rest is simple math.

The real danger to projects like this is you can quickly get obsessed with measuring frequency and time. Of course, we’ve seen plenty of gated counter designs.

 

As described in this project’s write-up, “The brachistochrone curve is a classic physics problem, that derives the fastest path between two points A and B which are at different elevations.” In other words, if you have a ramp leading down to another point, what’s the quickest route?

Intuitively—and incorrectly—you might think this is a straight line, and while you could work out the solution mathematically, this rig releases three marbles at a time, letting them cruise down to the Arduino Uno-based timing mechanism to see which path is fastest. 

The ramps are made out of laser-cut acrylic, and the marbles each strike a microswitch to indicate they’ve finished the race. The build looks like a great way to cement a classic physics problem in students’ minds, and learn even more while constructing the contraption!

Learning about how computers work and coding skills will be important for future generations, and if you’d like to get your kids started on this task—potentially before they can even read—the Ifs present an exciting new option. 

The Ifs are a series of four character blocks each with their own abilities, such as reproducing sound, movement, or sensitivity to light and darkness.

Children can program the blocks to accomplish tasks based on instructions that snap onto the top of each using magnets, and the whole “family” can communicate and work together to accomplish more advanced actions as a team. 

As outlined in more detail on this project page, the devices were developed using Arduino technology, and you can sign up here to be notified when they’re ready for crowdfunding.

The Ifs are full of sensors and actuators but they need some instructions in order to function. 

Programming is as simple as placing physical blocks in their heads with the help of magnets. No screens are involved. Each block has a different image serving as an intuitive symbol to represent an instruction. This makes the game suitable for children from the age of three, even before learning to read or write.

We only need different color pieces that are placed on their heads. The different color pieces are instructions that are combined as if it were a code, from being able to light them when it’s dark to making them communicate with each other. This allows kids to play with loops, statements, algorithms while also inventing their own stories. Their imagination is the only limit.

It always gives us a sense of wonder when we realize that what would be a simple task for a human child is a big deal for a computer. For example, if you asked someone if you or someone else was in bed, that’s a pretty simple thing to check. For you, that is. For a computer, it requires some sort of sensor. [Lewis] used load cells to tell if someone is in a particular bed or not. He uses Home Assistant and has a great post about how he created and interfaced the sensors. Of course, the sensors really only tell you if something heavy is in the bed. It doesn’t know who it is or even that it isn’t an overstuffed suitcase.

Load cells aren’t exactly high tech. There are several different types that use hydraulic pressure or pneumatics to measure force. However, the most common that we encounter use strain gauges. A strain gauge is a resistor that changes value when it deformed and a load cell usually has several strain gauges wired in a bridge configuration so that small forces create larger output changes.

Although a bridge circuit is good for sensitivity, it can be a challenge to measure. [Lewis] used a breakout board with an HX711 amplifier and converter made especially for this purpose. With calibration, the load cells can measure weight accurately, but they are subject to some drift. We suppose if the people usually in your bed have very different weights, you might be able to identify who exactly is in the bed.

The software was simple since the HX711 has an Arduino library available. The hardest part might have been successfully creating a caster for the bed legs to push against the load cells. We saw a bathroom scale built in much the same way a few years ago. Of course, weight isn’t the only force you can measure with a load cell. For example, check out [sbkirby’s] bandsaw.

If you’ve heard of core rope memory, it will probably be in the context of vintage computing equipment such as Apollo-era NASA hardware. A string of magnetic cores and sense wires form a simple ROM arrangement, which though long-ago-superceded by semiconductor memory remains possible to recreate by the experimenter. It’s a path [Nicola Cimmino] has trodden, as he’s not only made a few nibbles of core rope memory, but incorporated it with an Arduino as part of one of the most unusual LED flashers we’ve ever seen. The memory holds a known sequence of bits which is retrieved in sequence by the Arduino, and the LED is kept flashing as long as the read values conform to those expected.

The memory itself is simple enough (and not to be confused with magnetic core memory). The cores are ferrite rings that form a sequence of small transformers that become the bits of the memory. Individual bits are set high or low by either passing a sense wire through a core to create a primary, or bypassing it. Multiple sense wires can be used for separate nibbles in the same cores, so for example his four nibbles all share the same four cores. Pulses are sent down the wires, either passing through a core or not, and equivalently picked up or not on sense lines.

In this case the sense wire is driven directly to ground by Arduino pins which means that the circuit is relying upon the current limiting of the ATmega328 to avoid destroying itself, it’s possible we’d add a driver transistor. The bits are read meanwhile from the secondary windings through a diode rectifier and capacitor to an Arduino analogue pin.

Core memory has been paired with an Arduino before on these pages, though of the RAM variety.

Servo motors form the basis of many Arduino projects, but few use them in as interesting a manner as Doug Domke’s piece of electronic art.

The device features 36 servo motors arranged on a pegboard to produce various patterns, and can even be used in an interactive mode where it follows a person’s hand around with the help of ultrasonic sensors. 

Everything is driven by an Arduino Uno along with three 16-channel PWM control modules, and popsicle sticks show the servo movement to onlookers. 

Details, including Arduino code, can be found in the Domke’s write-up. To really appreciate this project’s visuals, be sure to take in the coordinated movements in the video below! 



  • 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