Posts with «arduino» label

GymSoles ensure correct form and posture during your workout

While you can get a very good workout on your own, it’s ideal if you have someone else watching over your form. This, of course, isn’t always practical, so researchers at the University of Auckland’s Augmented Human Lab have prototyped a wearable system called GymSoles to help. 

GymSoles consist of a pressure-sensitive insole that is used to determine a foot’s center of pressure, and thus infer whether or not the participant is keeping the weights in the proper position relative to his or her body—perfect for exercises like squats and deadlifts. 

Feedback is provided visually as well as through tactile feedback via eight vibrating motors, allowing participants to modify technique without having to focus on a screen. A computer is used to control the device using an Arduino Uno with motor drivers and an I2C multiplexer.

The correct execution of exercises, such as squats and dead-lifts, is essential to prevent various bodily injuries. Existing solutions either rely on expensive motion tracking or multiple Inertial Measurement Units (IMU) systems require an extensive set-up and individual calibration. This paper introduces a proof of concept, GymSoles, an insole prototype that provides feedback on the Centre of Pressure (CoP) at the feet to assist users with maintaining the correct body posture, while performing squats and dead-lifts. GymSoles was evaluated with 13 users in three conditions: 1) no feedback, 2) vibrotactile feedback, and 3) visual feedback. It has shown that solely providing feedback on the current CoP, results in a significantly improved body posture.

VR boxing robot actually punches back

VR environments are meant to be immersive, but if you’ve ever thought what was missing is being actually pummeled by robotic fists, then James Bruton’s newest project could be just the thing. 

Bruton recently teamed up with students from Portsmouth University to build a robot that works in the real world, and coordinates its movements with a virtual setting displayed on the human’s headset.

The robot itself is controlled by an Arduino Mega, and features a differential (tank) drive with encoders for feedback. Shoulders can tilt from left to right, and the actual punching motion is handled by pneumatic actuators built from modified bicycle pumps. Robo-fists are covered by boxing gloves to keep humans relatively safe, and flesh-based competitors are given a small shield and sword-bat with which to fight back!

I worked on this project with final year degree students in Computer Games Technology at Portsmouth University CCI faculty. The robot hardware is controlled over a serial interface, the team built an VR game which controls the robot, so when you get hit in VR you get hit in real life! The robot is tracked back into VR with Vive trackers so it stays in sync.

Arduino Blog 15 May 23:25

Program smart devices with a ‘magic wand’

Consider how interactive devices have come to dominate our lives. Once the purview of a select few in large laboratories, powerful gadgets—supercomputers even—are carried with us everywhere we go in the form of smartphones. And as everything around us becomes increasingly more connected, those that have no interest in the technical aspects of computing will still need to know how to configure the networked things throughout their homes.

As an experiment in interactive design, Austrian researchers Florian Güldenpfennig, Daniel Dudo, and Peter Purgathofer have come up with a ‘Magic Paradigm’ for programming.

Their project uses a wand with a built-in RFID reader, allowing it to sense which RFID tagged object it’s pointing to and register various sequences. This enables devices to be customized as needed, many of which contain an Arduino Nano as ‘active’ units and an nRF24L01+ module for communication. A central desktop/Arduino setup is also implemented to coordinate system elements.

We are surrounded by an increasing number of smart and networked devices. Today much of this technology is enjoyed by gadget enthusiasts and early adaptors, but in the foreseeable future many people will become dependent on smart devices and Internet of Things (IoT) applications, desired or not. To support people with various levels of computer skills in mastering smart appliances as found, e.g., in smart homes, we propose the ‘magic paradigm’ for programming networked devices. Our work can be regarded as a playful ‘experiment’ towards democratizing IoT technology. It explores how we can program interactive behavior by simple pointing gestures using a tangible ‘magic wand’. While the ‘magic paradigm’ removes barriers in programming by waiving conventional coding, it simultaneously raises questions about complexity: what kind of tasks can be addressed by this kind of ‘tangible programming’, and can people handle it as tasks become complex? We report the design rationale of a prototypical instantiation of the ‘magic paradigm’ including preliminary findings of a first user trial.

This compass reads the correct heading even when tilted

Consider an analog or even digital compass. While you can reasonably expect either to point towards magnetic north when held flat, when you add tilt and/or roll to the equation, things get a bit wonky. That is unless you’re maker “lingib,” who was able to construct a magical compass using an Arduino Uno and an MPU-9250 IMU unit, with an accelerometer/gyro in the same package.

As seen in the video below, when the compass unit is set at an angle, the heading output varies significantly—as much as 100 degrees according to the project write-up. When stabilization is turned on, however, the gyro/accelerometer is used to compensate for magnetometer heading variations—reducing output errors to just a few degrees.

This Instructable explains how to make a tilt compensated compass using an Arduino Uno R3, an LCD display, and an IvenSense MPU-9250 multi-chip-module that contains an MPU-6050 accelerometer / gyro and an AK8963 magnetometer within the same package.

The LCD simultaneously displays the heading, (P)itch, and (R)oll.

The heading accuracy is within 2 degrees depending on how well the compass has been calibrated.

Without tilt compensation the compass headings vary significantly … sometimes by as much as 100 degrees.

When stabilised, the tilted compass headings only vary by one or two degrees … the improvement is amazing.

The tilt stabilization may be disabled by placing a jumper wire between Arduino pins A0 and GND.

Arduino Blog 15 May 14:12

Modular CNC machine made with Arduino

Arduino boards running GRBL software have long been used for CNC machine control, but usually you need to choose between having a router or laser cutter. This project, however, is specifically designed to accommodate both with a modular carriage system.

Build-wise, it’s a fairly standard XYZ gantry CNC — with a frame made out of V-slot aluminum extrusions from OpenBuilds cut to length by a circular saw. The X and Y axes are controlled via NEMA 17 stepper motor and belt drive assemblies, while height adjustment is accomplished with a NEMA 23 motor and screw drive.

The electronics are all hidden away in a separate enclosure, including the Arduino Uno/CNC shield that serves as the brains of the operation and a cooling fan to keep the temperature inside in check. 

If you’ve been considering doing this type of build, this looks like a great place to start, and you can see a demos of it in laser and spindle modes in the videos below.

Current limiting Hacky Racer throttle

Hacky Racers, an electric vehicle racing series that’s part of the Power Racing Series, encourages drivers to put together their own hacky vehicle. While it looks like a lot of fun, in order to keep things relatively safe, current powering the car is regulated by an inline fuse from the battery, effectively limiting the top power output to the motor—thus keeping speed in check.

This means that while drivers need some control over how fast their motor is running, traditional PWM control where as much power is thrown to the motor as needed to keep it at a certain speed doesn’t really work. Instead, you need a system that controls how much current is provided. It’s a subtle problem, solved here with the addition of an Arduino Nano, which regulates output based on feedback from a current clamp sensor. While it won’t let a racer exceed the current limit, it does allow for maximum output when needed without tripping the fuse!

Those wishing to learn more can read the full write-up here and check out Hackaday’s recent article.

Arduino Blog 15 May 13:57

Washing machine becomes ‘universal’ rotary tool

If you have a broken washing machine, you may want to think twice before disposing of it. As Stephen John Saville shows in this multi-use rotary table project, they can provide a wealth of parts, from the actual physical structure/table of the build, to a motor that’s able to run via AC or DC, and various other mechanical components. There’s even an electronic timer salvaged from an old microwave.

To keep the turntable running at the desired speed, he used an Arduino Nano connected to a triad circuit, along with an LM393 chip and optocoupler to implement closed-loop control. User feedback is shown on a 16×2 LCD screen, updated every two seconds to avoid interfering with speed control functions. 

More info on this clever hack can be found in its well-detailed write-up, and be sure to check out the very entertaining video of what’s involved in such a repurposing feat below! 

Arduino Blog 14 May 14:17

Stator Library Makes Your Arduino Code Easier To Read

The readability of your code can make the difference between your project being a joy to work on, or an absolute headache. This goes double when collaborating with others. Having easily parsed code reduces your cognitive load and makes solving problems easier. To try and help with this, [PTS93] developed the Stator library to make certain common tasks simpler to read.

The aim of the library is to get rid of piles of state tracking variables and endless if/else statements – hence the name. It’s designed primarily for the Arduino IDE but doesn’t have any dependencies on the API, so can be used in other C++ environments. It comes with a variety of neat tools for common jobs, such as reading an analog sensor with hysteresis around a trigger point, as well as easy ways to track state changes across multiple variables. By using basic English terms instead of condition checks and mathematical operators, it can make things more readable and easier to follow.

The power of the Arduino platform has always been in its easy to use libraries that make everything easier, from interfacing LCDs to working with Amazon Dash buttons.

Clean your whiteboard automatically with Wipy

If you have to do a lot of drawing on a whiteboard, you also have to clean it. Why not have a robot do this instead? That’s the idea behind Wipy, an Arduino Uno-based robot that uses magnets to stick it to the board, plus grippy wheels and motors to power it across your scribbles.

Wipy employs an array of IR sensors that enable it to act as a line follower, along with a time-of-flight (ToF) sensor to detect your hand on the board. While one might assume this sensing arrangement would prevent it from erasing your work-in-progress, it annoyingly allows it to start erasing immediately when you start drawing on the board. At least it has a cute LED face!

Did you ever get tired of cleaning the whiteboard? Have you ever wondered how much your life would improve if a robot could do this for you? You now have the chance to make this a reality with Wipy: the overly motivated whiteboard cleaner. Wipy will properly clean your embarrassingly bad drawings, and it will even do it with a cute smile. You don’t even need to activate it! It will just clean the board when you least expect it… Uhhh…*cough cough*…we, of course, mean: when you need it most!

– Our future friend will be able to stick to the board using magnets and is able to move through space using grippy wheels.

– It will be able to follow a line and erase it using a line-following sensor and a sponge.

– Wipy has the ability to measure the distance to your hand using a time-of-flight sensor.

– We will give Wipy a cute personality using a small OLED screen.

Automated plant tending with Arduino

Do you like plants, but not so much the tending to and watering them? If that sounds like you, then you might be interested in your own CNC growing machine. The system—created by 15-year-old maker “daily3dprinting”—is controlled by an Arduino Uno, and uses a single stepper motor to pull a watering head into position based on hygrometer readings.

A relay is used to turn the grow light on at 6am and off at 8pm, and another to activate the unit’s water pump. A third relay is employed to power off the L298N stepper driver when not needed. 

The project took home second place in the math and engineering category at daily3dprinting’s high school science fair, and more info on the build is available in its write-up here.