Posts with «arduino» label

Tidy POV Display Using The ESP32

Chinese Youtuber [corebb] presents the second version of his POV display. The earlier version used 5050-sized SMT addressable LEDs, which didn’t give great resolution, so he rev’d the design to use a much higher number (160 to be exact) of APA102 LEDs. These are 2mm on the side, making them a little more difficult to handle, so after some initial solder paste wobbles, he decided to use a contract assembly house to do the tricky bit for him. This failed as they didn’t ‘understand’ the part and placed them the wrong way around! Not to be deterred, he had another go with a modified solder stencil, and eventually got the full strip to light up correctly.

Based on an ESP32 (using the Arduino stack) and SDCard for control, and a LiPo cell charged wirelessly, the build is rather tidy. A couple of hall effect switches are mounted at the start of each of the two arms, presumably lining

Real-time video streaming? Check!

up with a magnet on the case somewhere, although this isn’t clear. The schematic and PCB appear to have been designed with JLCEDA, which is a repackaging of EasyEDA. We can see the attraction with the heavy integration of this with the JLC and LCSC services. It appears that he even managed to get streamed video working — showing a live video from a webcam — which is quite an undertaking to pull off when you think how much processing needs to happen in real-time. As he alludes to in the video, trying to increase the resolution beyond this point is not viable with the processing capability of the ESP32.

A resin-printed case finishes off the build, with a screw-thread mount added to the rear, to allow typical camera mounts to be used to hold the thing down. A smart move we think.

We love POV displays around here, this spherical POV display is especially fabulous, but you don’t need fancy hardware if you have a handy ceiling fan and a bit of protoboard spare.

Thanks to [mrx23dot] for the tip!

Hack a Day 24 Nov 00:00

Better Air Quality Sensing with CO2

Measuring air quality, as anyone who has tried to tackle this problem can attest, is not as straightforward as it might seem. Even once the nebulous term “quality” is defined, most sensors use something as a proxy for overall air health. One common method is to use volatile organic compounds (VOCs) as this proxy but as [Larry Bank] found out, using these inside a home with a functional kitchen leads to a lot of inaccurate readings. In the search for a more reliable sensor, he built this project which uses CO2 to help gauge air quality.

Most of the reason that CO2 sensors aren’t used as air quality sensors is cost. They are much more expensive than VOC sensors, but [Larry] recently found one that was more affordable and decided to build this project around it. The prototype used an Arduino communicating over I2C to the sensor and an OLED screen, which he eventually put in a 3D printed case to carry around to sample CO2 concentration in various real-world locations. The final project uses a clever way of interfacing with the e-paper display that we featured earlier.

While CO2 concentration doesn’t tell the full story of air quality in a specific place, it does play a major role. [Larry] found concentrations as high as 3000 ppm in his home, which can cause a drop in cognitive function. He’s made some lifestyle changes as a result which he reports has had a beneficial impact. For human-occupied indoor spaces, CO2 can easily be the main contributor to poor air quality, and we’ve seen at least one other project to address this concern directly.

Hack a Day 22 Nov 03:00

Wearable Sensor Trained to Count Coughs

There are plenty of problems that are easy for humans to solve, but are almost impossibly difficult for computers. Even though it seems that with modern computing power being what it is we should be able to solve a lot of these problems, things like identifying objects in images remains fairly difficult. Similarly, identifying specific sounds within audio samples remains problematic, and as [Eivind] found, is holding up a lot of medical research to boot. To solve one specific problem he created a system for counting coughs of medical patients.

This was built with the idea of helping people with chronic obstructive pulmonary disease (COPD). Most of the existing methods for studying the disease and treating patients with it involves manually counting the number of coughs on an audio recording. While there are some software solutions to this problem to save some time, this device seeks to identify coughs in real time as they happen. It does this by training a model using tinyML to identify coughs and reject cough-like sounds. Everything runs on an Arduino Nano with BLE for communication.

While the only data the model has been trained on are sounds from [Eivind], the existing prototypes do seem to show promise. With more sound data this could be a powerful tool for patients with this disease. And, even though this uses machine learning on a small platform, we have seen before that Arudinos are plenty capable of being effective machine learning solutions with the right tools on board.

Hack a Day 16 Nov 00:00

Arduino Brings A MicroPython IDE

Both Arduino and MicroPython are giants when it comes to the electronics education area, and each one of them represents something you can’t pass up on as an educator. Arduino offers you a broad ecosystem of cheap hardware with a beginner-friendly IDE, helped by forum posts explaining every single problem that you could and will stumble upon. MicroPython, on the other hand, offers a powerful programming environment ripe for experimentation, and doesn’t unleash a machine gun fire of triangle brackets if you try to parse JSON slightly incorrectly. They look like a match made in heaven, and today, from heaven descends the Arduino Lab for MicroPython.

This is not an Arduino IDE extension – it’s a separate Arduino IDE-shaped app that does MicroPython editing and uploads code to your board from a friendly environment. It works over a serial port, and as such, the venerable ESP8266-based boards shouldn’t be be left out – it even offers file manager capabilities! Arduino states that this is an experimental effort – it doesn’t yet have syntax checks, for instance, and no promises are made. That said, it already is a wonderful MicroPython IDE for beginner purposes, and absolutely a move in the right direction. Want to try? Download it here, there’s even a Linux build!

High-level languages let you build projects faster – perfect fit for someone getting into microcontrollers. Hopefully, what follows is a MicroPython library manager and repository! We’ve first tried out MicroPython in 2016, and it’s come a long way since then – we’ve seen quite a few beginner-friendly MicroPython intros, from a gaming handheld programming course, to a bipedal robot programming MicroPython exploration. And, of course, you can bring your C libraries with you.

DIY Streamdeck Helps You Professionalize Your Twitch Show

The one thing that separates the pros on Twitch from the dilettantes is the production values. It’s all about the smooth transitions, and you’ll never catch the big names fiddling with dodgy software mid-stream. The key to achieving this is by having a streamdeck to help control your setup, like this straightforward design from [Electronoobs]. (Video, embedded below.)

The build relies on an Arduino Micro, which is a microcontroller board perfectly equipped to acting as a USB macro keyboard. It’s paired with a Nextion LCD touchscreen that displays buttons for various stream control features, like displaying a “Be Right Back” screen or cuing up video clips. The build also features bigger regular buttons for important quick-access features like muting a mic. It’s all wrapped up in a 3D printed housing, with some addressable RGB LEDs running off another Arduino to add some pizazz. The neat trick is that the build sends keycodes for F13-F24, which allows for the streamdeck’s hotkeys to avoid conflicting with any other software using conventional keyboard hotkeys.

It’s a useful tool that would be of use to anyone streaming on Twitch or other platforms. Alternatively, you could repurpose an old phone to do a similar job. Video after the break.

Trigger Your Home Automation Routines With Home Buttons

Home automation systems are all well and good, so long as the person who built it all is around to drive it. Let’s face it, they’re quite often a complex web of interconnected systems, all tied to the specifics of one’s home — and someone less familiar with it all could get a little irritated if, on a chilly day, the interface to the boiler is via a Python script, and something won’t work. Just saying. Home Buttons by [Matej Planinšek] over on Hackaday.IO is a nicely polished project, which aims to take some of the hackiness out of such automation by providing a sleek front end to those automation routines, enabling anyone to rock on over and set one in action without hassle.

The PCB is based around the ESP32-S2-mini which deals with WiFi connectivity and integration with Home Assistant using the usual MQTT protocol. We expect integration with other flavors of home automation would not be difficult to achieve. The center of the unit holds a simple E-Ink display, for that low-standby power. Specifically, the unit chosen is a Good Display GDEY029T94 2.9″ which this scribe can confirm is easy to interface and pretty cheap to purchase from the usual Chinese online vendors. This was matched up with six clicky Alps SKRB-series low-profile tact switches, which sit on either side of the display, and corresponds to a flexure-type affair on the 3D printed front casing. Neat and simple.

The PCB design was provided in Altium format, which you can find on the project GitHub page. This shows a straightforward design, with a few nice little details here and there. The internally mounted 186550 cell is reportedly good for at least a year of operation, but when time, it can be charged via USB. A Xysemi XB8608AF (PDF) protection chip provides appropriate limiting for the 186550 cell, shielding it from the perils of overcharging, discharging, and whatnot. Not that that is likely in this current setup. A Sensiron SHTC3 humidity and temperature sensor is also in there, hanging off the I2C bus, which makes sense for this application.

Home Automation hacks are plenty on these pages, like this scroll-wheel interface, for instance. If all this stuff is looking quite overbearingly complicated to get into, how about starting with a Pico W?

IR Remote Tester Helps You Crack the Code

Even though some devices now use WiFi and Bluetooth, so much of our home entertainment equipment still relies on its own proprietary infrared remote control. By and large (when you can find them) they work fine, but what happens when they stop working?  First port of call is to change the batteries, of course, but once you’ve tried that what do you do next? [Hulk] has your back with this simple but effective IR Remote Tester / Decoder.

How to connect the TSOP4838 to an Arduino to read the transmitted codes

By using a cheap integrated IR receiver/decoder device (the venerable TSOP4838), most of the hard work is done for you! For a quick visual check that your remote is sending codes, it can easily drive a visible LED with just a resistor for a current-limit, and a capacitor to make the flickering easier to see.

For an encore, [Hulk] shows how to connect this up to an Arduino and how to use the “IRremote” library to see the actual data being transmitted when the buttons are pressed.

It’s not much of a leap to imagine what else you might be able to do with this information once you’ve received it – controlling your own projects, cloning the IR remote codes, automating remote control sequences etc..

It’s a great way to make the invisible visible and add some helpful debug information into the mix.

We recently covered a more complex IR cloner, and if you need  to put together a truly universal remote control, then this project may be just what you need.

Mini Ultrasonic Levitation Kit is an Exercise in Sound Minimalist Design

For those that haven’t heard, ultrasonic levitation is a process by which two or more ultrasonic transducers are set opposite to each other and excited in such a way as to create a standing wave between them. The sound is, as the name implies, ultrasonic — so outside the range of human hearing — but strong enough so that the small, light objects can be positioned and held fixed in mid-air where there’s a pressure minimum in the standing wave. [Olimex] has created a small ultrasonic levitation kit that exemplifies this phenomena.

The kit itself is made using through-hole components, with an ATTiny85 as the core microcontroller to drive two TCT40-16T ultrasonic speakers, and a MAX232 to provide a USB interface. Two slotted rectangular PCB pieces that solder connect to the main board, provide a base so that the device stands upright when assembled. The whole device is powered through the USB connection, and the ultrasonic speakers output in the 40KHz range providing enough power to levitate small Styrofoam balls.

The project is, by design, an exercise in minimalism, providing a kit that can be easily assembled, and providing code that can be easily flashed onto the device, examined and modified. All the design files, including the bill of materials, KiCAD schematics, and source code are provided under an open source hardware license to allow for anyone wanting to know how such a project works, or to extend it themselves, ample opportunity. [Olimex] also has the kit for sale for those not wanting to source boards and parts themselves.

We’ve featured ultrasonic levitation devices before, from bare bones system driven by a NE555 to massive phased arrays.

The Great Resistor Embiggens the Smallest Value

With surface-mount components quickly becoming the norm, even for homebrew hardware, the resistor color-code can sometimes feel a bit old-hat. However, anybody who has ever tried to identify a random through-hole resistor from a pile of assorted values will know that it’s still a handy skill to have up your sleeve. With this in mind, [j] decided to super-size the color-code with “The Great Resistor”.

How the resistor color-code bands work

At the heart of the project is an Arduino Nano clone and a potential divider that measures the resistance of the test resistor against a known fixed value. Using the 16-bit ADC, the range of measurable values is theoretically 0 Ω to 15 MΩ, but there are some remaining issues with electrical noise that currently limit the practical range to between 100 Ω and 2 MΩ.

[j] is measuring the supply voltage to help counteract the noise, but intends to move to an oversampling/averaging method to improve the results in the next iteration.

The measured value is shown on the OLED display at the front, and in resistor color-code on an enormous symbolic resistor lit by WS2812 RGB LEDs behind.

Inside The Great Resistor, the LEDs and baffle plates make the magic work

Precision aside, the project looks very impressive and we like the way the giant resistor has been constructed. It would look great at a science show or a demonstration. We’re sure that the noise issues can be ironed out, and we’d encourage any readers with experience in this area to offer [j] some tips in the comments below. There’s a video after the break of The Great Resistor being put through its paces!

If you want to know more about the history of the resistor color code bands, then we have you covered.  Alternatively, how about reading the color code directly with computer vision?

The Seven-Segment Display That’s Also an Input Device

We’re used to seeing all manner of seven-segment displays, be they mechanical, electronic, or something in between. But what all these displays have in common is that they’re, you know, displays. Using them as inputs would just be crazy talk, right?

Perhaps, but we like where [Dave Ehnebuske] is going with “InSlide,” the seven-segment input device. The idea for this comes from the “DigiTag” display, which we covered back in October, and divides a standard seven-segment character into three vertical strips — two skinny ones for the outside vertical segments, and one wide strip holding the horizontal elements. By sliding these strips up and down relative to each other, the standard nine digits, plus a few other characters, can be composed.

[Dave]’s take on this theme started by building his display from laser-cut plywood pieces, which is a nice choice because of the good contrast between the white wood and the engraver segments. Next, he embedded rare earth magnets in the slides and installed seven Hall effect sensors in the frame. The sensors are connected to an Arduino Nano via a 74HC165 parallel-load shift register, which lets multiple modules be daisy-chained together. He also built an Arduino library to read the current state of the segments; it supports the full hexadecimal character set, or even duodecimal if you like.

[Dave] has shared the library, and it looks like you can get the build files for the mechanism from the original project. That’s good, because this looks ripe for hacking. It looks like it would be pretty easy to motorize a display like this by adding rack-and-pinion gearing and steppers — something like that could make an interesting clock.