Humans are often a vital part of any maker project, and there are a lot of ways to interface a human with them. Some good, some bad, some obscure, and some you may not think about - all of these are covered in this video of the maker workshop series.

Transcript

One of the most important maker skills is knowing how to interface humans with a project. This involves figuring out how to get a human to send data to a project to control it and then have the project send data back to the human. There are countless ways to achieve this, some good and some bad. Sometimes, a simple button with an LED is appropriate for your project, but there is often a way to make it look and feel nicer, perhaps even more like a finished professional product. Here's the deal: sit back and watch as we share some of the best ways to interface with your project and how to make them effective. While we won't cover how to wire up all of these components, the course page linked below includes a guide to getting started with everything you see in this video. This video is part of a workshop where Liam and I will guide you through a fast-paced and practical journey to learn a wide variety of maker skills, equipping you with the tools and knowledge to create anything. It's part of Fabacademy, where we'll build our own projects and share insights along the way.

Let's start with getting information from a human to a project. The simplest method is a button. Buttons are cheap, easy to use, and often small. They can be set to on and off, making them great for turning something on or off. While everyone knows about buttons, they're also excellent for changing a value, like adjusting the temperature on a soldering iron. Just avoid the cardinal sin of not programming it to rapidly move through values when the button is held down. When using a button, you'll need pull-up or pull-down resistors; most microcontrollers have built-in ones you can use nowadays. Implementing debounce is also crucial, and using buttons with interrupts makes them incredibly responsive, which is how they should be used in your project. Capacitive touch buttons are another option; they don't use a clicky mechanism but instead rely on the capacitance of your body. These are really cool and allow for creative applications. Our Fab Lab instructor Claire attached conductive thread to one, enabling her project to sense when someone was hugging it because it activated the button.

Buttons are great, but what if you have a large range of values to cycle through? This is where potentiometers and encoders might be better options. The rotational motion of these components allows you to move across large values quickly. Potentiometers are excellent, returning a voltage that corresponds to their angle, but they have limited rotation, functioning like an angle sensor. They also come in linear sliding versions, which are quite cool. Rotary encoders, on the other hand, return clicks or pulses as they spin, indicating how much they've rotated. You'll often find these in car stereos. The best thing about encoders is their ability to rotate infinitely. While a potentiometer is an angle sensor, encoders are more like rotation sensors, measuring how much you rotate them. If you need to navigate a large range but also require precise control, using a coarse and fine control knob combo, like on a power supply, is a great idea. One knob moves the value by large steps, and the other by small steps for precision. Knobs with built-in buttons are also handy for navigating menus in a project. Joysticks, often two potentiometers combined, are great for changing two values simultaneously, such as controlling a robot's forward and turning speeds.

Some quick tips on joysticks: taller sticks can be awkward but offer better control. Implementing dead zones is important because joysticks never have a perfect centreed position, preventing drifting. For makers dealing with robots, an RC transceiver setup might be worth the investment. My robotics project, Leo, will eventually have one of these setups. An upgrade to the button comes in the form of force sensors, like load cells, force-sensitive resistors, and velostat. These sensors not only detect if a human has pressed them but also measure how hard the press was, returning an analog voltage similar to a potentiometer. A great example of these in use is in launch pads, which produce louder sounds depending on the force of the tap. Larger-scale applications include scales, like those used to weigh yourself, often utilizing load cells. You can do cool things with them, like placing them under a doormat to detect if someone is there, similar to a Minecraft pressure plate. These sensors can be niche because humans aren't always good at applying exact amounts of force, often better suited to turning knobs and pressing buttons rapidly.

In all these methods, we've moved our bodies to interact with hardware. But what if we measured body movement directly? There are many ways to do this. You could strap an IMU sensor to yourself, tracking movement, rotation, and angle for gesture control in your project. Gesture control modules allow you to swipe and move your hand in mid-air to control your project. Though sometimes clunky, they're great for no-touch interaction, like when your hands are wet or covered in paint. Going further, EMG sensors attach to your body to measure muscle flexing, converting it into a signal. They have their challenges but are super cool and worth knowing about. Even cooler are EEG sensors, which measure brain waves. Typically worn on the head, they non-invasively measure brain activity. Performance varies, but it's now affordable to buy a sensor that measures brain waves and thinking strength. Beyond movement, sound is another form of interaction. The simplest level is an inexpensive loudness sensor, which reads room loudness, enabling actions like controlling lights with a clap. A step up is dedicated hardware modules for voice recognition, which don't cover every word in the English dictionary but have a set list of keywords for commands like open, stop, off, and up. For advanced applications, small computers like a Raspberry Pi can be set up for voice recognition and speech-to-text. If using a Raspberry Pi, machine vision is also an achievable option. Though it may seem complex, setting up a Raspberry Pi with a camera to detect facial expressions, recognize objects, or track body poses is straightforward and easy.

These are just some ways to send data from a human to a project. Now, let's explore ways to do that in reverse, starting with vibrational motors. These are straightforward, similar to those in cell phones or controllers, allowing you to vibrate patterns or error codes. This is a great option for projects designed to be held by a human. If we vibrate the air instead, we get noise. Cheap buzzer modules are excellent for beeping error codes, confirmation beeps, or whatever you need.

And contents of the input can be outputted in various ways, with speakers being an easy addition to microcontrollers. However, visual outputs are often the most effective for human processing. The simplest form of visual output is an LED, which can be flashed, have its brightness adjusted, or, if it's an RGB LED, its colour changed. LEDs are a cost-effective and simple way to output data, requiring only low-spec hardware. By combining multiple LEDs, you can create a segmented LED display, similar to those found in alarm clocks, which are excellent for displaying numerical readouts. Additionally, 1602 displays, which have more segments, are well-suited for showing both letters and numbers.

For more advanced visual outputs, there are numerous display options available for microcontrollers like the Pico and Arduino, as well as single-board computers like the Raspberry Pi. Among these, OLED screens are particularly favored for their ease of use and low-power consumption. These black and white displays allow for text, lines, boxes, and circles to be drawn, making them versatile for creating user interfaces. If your project requires a display that can maintain an image without power, E-ink displays are a great choice. They offer a paper-like appearance and can retain an image even when unplugged for extended periods. However, they do take a few seconds to update, making them unsuitable for real-time data needs. Despite this, their low-power consumption and compact size make them ideal for embedding in various projects.

Touchscreens, although intimidating for beginners, are generally user-friendly and often plug-and-play. They range from simple screens for microcontrollers to high-resolution displays for devices like the Raspberry Pi. For projects requiring a touchscreen, a computer is often preferable over a microcontroller, with a Pi Zero being an affordable option to drive the display. Touchscreens provide rich information and are easy to customize with apps and interfaces. Python's TKinter, included by default, is a straightforward tool for creating simple UIs, though it can appear outdated. More modern frameworks like PyQt and Flask offer enhanced aesthetics. You don't need to be an expert coder to create interfaces; large language models like ChatGPT can assist by generating code based on your descriptions.

A practical tip is to utilize a touchscreen you already own. With a wireless microcontroller like an ESP32, Pico W, or Raspberry Pi, you can host a webpage interface via Wi-Fi and access it through your phone. This method, which we used for our mid-semester project—a remotely controlled Esky on wheels—proved cost-effective and required no additional hardware. While there are countless ways to interface with your project, this overview highlights some of the most accessible options. For further resources, refer to the course page linked below. Until next time, happy making!

Comments


Loading...
Feedback

Please continue if you would like to leave feedback for any of these topics:

  • Website features/issues
  • Content errors/improvements
  • Missing products/categories
  • Product assignments to categories
  • Search results relevance

For all other inquiries (orders status, stock levels, etc), please contact our support team for quick assistance.

Note: click continue and a draft email will be opened to edit. If you don't have an email client on your device, then send a message via the chat icon on the bottom left of our website.

Makers love reviews as much as you do, please follow this link to review the products you have purchased.