• Electronics & Microcontrollers for Absolute Beginners (Part 2)

    6 days ago 0 comments

    In Part 1 of this soon-to-be epic series of columns, we discussed the fact that we are going to explore electronics and microcontrollers starting at the most fundamental level. We are also going to learn some useful skills, like how to not burn ourselves with a soldering iron (it took me years to perfect this one).

    Last, but certainly not least, we introduced the Cool Beans and their Cool Beans Blog. In this column, we are going to introduce the concepts of voltage (V), current (I), and resistance (R). Just to help out, as seenin the image below, the Cool Beans have donned corresponding T-shirts in order to take place in a demonstration later (I apologize in advance for resistance, who is a bit of a pain at the best of times, and who had enjoyed a tad too much coffee and was grooving to his own internal soundtrack at the time the artist captured this likeness).

    The Cool Beans sporting their voltage (V), current (I), and resistance (R) T-shirts (Image source: Max Maxfield)

    Whenever we build an electrical or electronic circuit (we’ll discuss the difference in a later column), we cannot help but run into voltage, current, and resistance. One way to visualize these little scamps is to use an analogy based on a 2-liter plastic fizzy drink bottle. This is a great experiment for you to replicate at home, especially if you are teaching this stuff to someone else.

    First, drink or discard the original contents, wash the bottle out, remove any external labels, and use a permanent marker to draw a series of horizontal lines up the side as illustrated below. Mark the lowest graduation 0 and count from there. I used 18 graduations in my diagram, but you can use as many as you want.

    Representing voltage, current, and resistance with a water analogy (Image source: Max Maxfield)

    We are going to use the height of the water in the bottle to represent voltage (V) in an electrical system. Fill your bottle halfway (the 9 V mark on my diagram), stand it on something like an upturned saucepan next to your kitchen sink, and put a small measuring cup in the sink. Carefully punch a hole (say 2 mm diameter) into the bottle at the 0 V mark and record how long it takes to fill the measuring cup to some pre-defined level you’ve selected (say 1/4 of a cup). If you don’t have a timer, just counting “one Mississippi, two Mississippi, three Mississippi...” will be close enough for our purposes here.

    The hole resists the flow of the water. In our analogy, we’re using the hole to represent the resistance (R) in an electrical system. In the same way that the hole resists or limits the amount of water that can pass through the hole, so does resistance in an electrical circuit resist or limit the flow of electricity.

    Finally, let’s turn our attention to current (I). In an electrical circuit, we might think of current as being the amount or quantity of electricity flowing through the circuit. The equivalent in our water analogy is the amount of water flowing through the hole at any particular point in time.

    We can think of voltage (V) as pushing current (I) while resistance (R) does its best to impede things (Image source: Max Maxfield)

    Let’s return to our trusty Cool Beans (if you can’t trust a Cool Bean, who can you trust?). In the case of our water example, we might think of our voltage (V) bean as trying to push our current (I) bean through the hole, while our resistance (R) bean does its best to impede things.

    The Relationship Between Voltage, Current, and Resistance

    So, how can we determine the relationship between voltage, current, and resistance using our water analogy? Well, let’s begin by repeating our experiment, but this time let’s start with the bottle filled to the topmost mark (the 18 V mark on my diagram).

    Remembering that this is a really rough-and-ready setup, we should find it takes about half the time to fill the measuring cup to the same level as before. That is, if we keep the diameter of the hole (the resistance)...

    Read more »

  • Electronics & Microcontrollers for Absolute Beginners (Part 1)

    05/21/2020 at 20:11 0 comments

    I wasn’t always the world’s foremost authority on anything and everything to do with electronics (well, this is what my dear old mom believes and what she tells her friends, and I’d like to think I’m not the sort of chap who goes around disagreeing with his mother).

    When I first started out in electronics, I didn’t have a clue. Even worse, if there had been such a thing as a “pit of misconception,” I would have tripped over my own feet and fallen in face-first.

    When I was about 10 years old, my parents gave me an electronics kit for my birthday. It was one of the ones where you used springs to hold the ends of the wires you used to connect the various components together (a simpler version of the Elenco 130-in-1 Electronic Playground you can purchase on Amazon today for around $45). This came with an instruction book. I ground to a halt when it started talking about “resistor bridges” without explaining what they were waffling about because -- in my mind’s eye -- I was visualizing the resistors acting like the cables in a suspension bridge.

    Over the years, I’ve taught quite a few people about electronics and microcontrollers. These folks have ranged in age from around 14 to over 70. The one thing they had in common was that they started off knowing nothing whatsoever about electricity, electronics, and microcontrollers. In the course of teaching them, I realized where they were making misconceptions; almost invariably, these were the same misconceptions I’d made myself deep in the mists of time.

    Now, there are some great kits around, especially for learning things like the Arduino. The problem I have with these kits is that you learn how to do things without actually understanding what it is you are doing at the most fundamental level.

    I also think it’s wonderful that beginners can use breadboards and pre-constructed flying wires to create prototype projects without having to cut wires and solder things -- I do this all the time -- but at some stage you need to go beyond breadboards, so where do folks go to learn these skills?

    I’ve been thinking about this for a long time. What I want to do is write a series of small, non-threatening columns that really explain the fundamental concepts, including things like stripping wires, soldering, using a multimeter, creating projects from the ground up, and debugging these projects when they don’t initially work (the story of my life).

    I can’t stop myself from saying that I think this this is going to be “Cool Beans.” I was introduced to this expression when I first moved to the USA in 1990 (I moved from England to Alabama for the nightlife -- that's a little Alabama joke thrown in for free right there), and it stuck in my mind. I now find myself saying this all the time; I even have my own Cool Beans Blog.

    I’m the Cool Bean on the right (the good looking one in the Hawaiian shirt)

    My plan is to start with things like switches and resistors and light-emitting diodes (LEDs) on their own, and to add a microcontroller like an Arduino later. What I want is to provide a real sense of understanding, including answering all of the niggling questions that pop into people’s minds.

    For example, when you are reading something on the internet, you might see one person write “a LED,” while someone else might write “an LED.” Hmmm, ‘a’ or ‘an’ -- which is correct? Well, both of them, actually. This problem arises from the way in which the author says things in conversation, because that’s the way she or he will think about it when they write things down. Some people say “LED” to rhyme with “bed,” in which case “a LED” would be appropriate. By comparison, other speakers will spell things out letter-by-letter along the lines of “L-E-D,” in which case “an L-E-D” sounds more pleasing to the ear.

    In my next column, I plan on introducing the concepts...

    Read more »

  • Tiny Book Review on TinyML by Pete Warden & Daniel Situnayake

    04/23/2020 at 18:40 0 comments

    On the one hand, I feel lucky to have been born where and when I was, which was in Sheffield, Yorkshire (God's own county), England, in 1957. Due to my good fortune, I got to see the 1960s firsthand, albeit through the eyes of a young lad. I also got to see the very first episode of Doctor Who in 1963, the first humans land on the Moon in 1969, the first microprocessor-based home computers in the 1970s, the first IBM PC in 1981, and the introduction of the internet and World Wide Web to the general public in 1993.

    I'll be 63 this year, which means I'll be celebrating the 21st anniversary of the 21st anniversary of my 21st birthday, and that's not something you get to say too often. Of course, on the basis that it's always nice to have something to look forward to, I'll be celebrating my 100th birthday next year if we count in octal (base 8).

    Generally speaking, I have few regrets. Having said this, I wish I knew more about digital signal processing (DSP), but I fear the math is beyond the capabilities of my poor old noggin. When I graduated high school and commenced working on my degree in 1975, the engineering department at the university was in possession of an analog computer only. There was a digital computer in another building, but this was shared across all of the university departments.

    We had to create our programs in FORTRAN, capture them on punched cards, and hand-carry the deck of cards to the guardians of the machine, to be added to the run schedule at some indeterminate time in the future. The typical debug cycle ("Missing comma on line 2") took a week to resolve, so the best we could hope for was get one simple program to work each semester. Creating a DSP program simply wouldn’t have been feasible, even if the students (or the lecturers) had a clue what the DSP acronym stood for.

    More recently, I've observed the rise of artificial intelligence (AI), machine learning (ML), and deep learning (DL) (see also What the FAQ are AI, ANNs, ML, DL, and DNNs?). I'm amazed by what I hear about the high-end cloud-based AI systems created using tools like Google's TensorFlow. I've also been blown away by machine-vision AI applications that can perform object detection and recognition. In addition to things like face detection, some systems can determine age, gender, and emotion ("There's a 98% probability that 25-year-old man is not happy I'm looking at him!")

    I've also been interested to see the rise of new companies and devices that are especially targeted at AI applications. Just a couple of weeks ago, for example, a new company caller Perceive emerged from stealth mode. The folks at Perceive claim to have reinvented neural network mathematics using information theory, and they've created a chip called Ergo (which is a Latin word meaning "therefore").

    Ergo delivers over 4 TOPS (tera operations per second) peak performance at less than 1/10 watt peak power. I don’t care what anyone says, that's a lot of TOPS.

    Wading through the bumf, we discover that Ergo can run artificial neural networks (ANNs) with an excess of 100 million weights and a size exceeding 400 MB. Furthermore, it can run multiple networks concurrently, so one network can be detecting and identifying objects, another can be honing in on faces, while a third is processing sound.

    Now, all of this is very exciting, but I fear creating AI applications to run on something of Ergo's caliber is beyond my humble capabilities. My first glimmering of hope was when I was exposed to the concept of the NanoEdge AI Studio from Cartesiam (see also Any Embedded Developer Can Create AI/ML Systems).

    The idea here is that NanoEdge AI Studio starts by asking you a series of questions, including what sort of processor you intend to run on (choices are Arm Cortex M0, M0+, M3, M4, and M7), how much RAM you wish to devote to your AI/ML solution (it can generate solutions that require only 4K to 16K of RAM), and the number and types of sensors you wish to use. NanoEdge AI Studio...

    Read more »