Ed_B's blog


Submitted by Ed_B on Fri, 04/23/2010 - 20:32

Multitaskng gives the appearence of doing more than one thing at a time, when you're really switching between tasks as fast as you  can. When computeres do this it's usually under the control of an operating system. With microcontrollers, its usually done by writing a bunch of small functions that do unrelated jobs, then firing those functions off based on external events that arrive through interrupts, or by lining all the functions up and firing them off, in sequence, by a master timer. In an exterme case it's possible to have a program with an empty main loop that's busy doing lots of stuff. Two ideas often come into play to do this. Interrupts and call backs. To start an exploration of event driven programming, I'm using the Arduino's Wire library. I've maped out the event handling and generating calls to study. 


QTouch / Qprox with SurfBoard

Submitted by Ed_B on Fri, 04/16/2010 - 11:43

This is a QT113B QTouch / Qprox proximity detector in an 8-pin soic package soldered onto a SurfBoard. A student is building an interactive light object, and this sensor board is for first-round experiments. The circuit is straight from the Atmel datasheet for the part.

Joe the Plumber

Submitted by Ed_B on Thu, 04/15/2010 - 16:37

When I was a kid, people would give me old radios to "play" with. At that time, old radios had usable (or at least cool-looking) parts in them. That made them worth "recycling".  As a grade-schooler, I  never ran across any books that explained how radios worked in a way that was simple enough for me to understand, but that didn't stop me from spending lots of hours staring into circuits, trying to devine something of their inner nature. That exercise was as fruitless as it was naive.

Sparkfun RGB module part 2

Submitted by Ed_B on Sun, 04/04/2010 - 23:52

The ATmega168PA has 16K Bytes of program memory and 1K Bytes of SRAM.
The ATmega328P has 32K Bytes of program memory and 2K Bytes of SRAM.
Using SRAM to hold a bunch of constant (unchanging) data like large arrays or strings is wasteful. This program uses flash program memory to store constant data arrays. The program uses special data types to read bytes from progmem.

Sparkfun RGB module part 1

Submitted by Ed_B on Sun, 04/04/2010 - 22:59

 This is a Sparkfun RGB LED display. It has a "backpack" with a cascadable SPI input. Xin Wang is using it in a piece and asked me to have a look.


 Xin's piece will use a number of graphical symbols that will be displayed based on a set of sensor inputs. Coordinated with sensing and display, there will also be dynamic electro-mechanical components.

Photovoltaic module data plotting

Submitted by Ed_B on Thu, 04/01/2010 - 09:52

In my last post on the solar project, I described the next, penultimate step in synthesizing a group of solar powered devices. There needs to be done a group of actual physical tests of load capacity and charge time, compared against different combinations of light intensities, PV units, and electrical loads. The blockage in getting form here to there remains the lack of a data-loggiing/data-plotting tool to record and view the relationships around power in/out and time. After some thought about the problem and much digging around on the web, it's (hopefully) open source to the rescue!

Bit masking for doing low level MCU programming

Submitted by Ed_B on Sun, 03/21/2010 - 21:28

This seemed timely, so I wrote it here.

A mask is a binary number specially constructed to help set or clear specific bits in a byte.
Masks are typically used to control hardware functions inside a microconttroller chip. This little writeup
introduces the idea of using masks to control digital i/o pins in an AVR chip. 

Definition of true and false when speaking about one "bit":
Logical false means 0. In hardware, it means a pin is low. To clear a bit is
to make it 0.

Logical true means 1. In hardware, true means a pin is high. To set a bit is to
make it 1. 

set a bit: make it 1
clear a bit: make it 0

Solar Solar Solar!

Submitted by Ed_B on Mon, 03/15/2010 - 01:40

I've been working on this solar power for art project. It's coming along nicely. The amount of information got too big to keep posting in the blog, so I made a web section to hold the work. It's here. I've noticed that the dippy little drop down menu sometimes doesn't work the first time. Is this a linux thing?

Solar Solar Solar!


Submitted by Ed_B on Fri, 02/19/2010 - 18:48

A student is interested in measuring the force of impact of a large, padded, blunt object on a human frame. Three ideas came to mind.

  • Force sensing resistors, FSR's
  • piezo film
  • accelerometers
Sparkfun SEN-09156 Sparkfun DEV-09267

Alternative energy revisited - SOLAR 1

Submitted by Ed_B on Fri, 02/19/2010 - 17:23

I'm working on a project to see what kind of solar experiments we can add to our curriculum. I'll be looking at different combinations of loads and supplies on my workbench. To make sensible comparisons between different device configurations, I need some baseline figures on available light in different environments. Here ia a bit of raw data that will be essential in comparing the behavior of different devices under different lighting conditions.

Light intensity measurements made with with a Sekonik Studio Deruxe II meter (Thanks, Anna). Outdoor measurements made noon, February 19, 2010 at Chicago, IL, 41.88 deg North. (Ed Bennett, sbennett@saic.edu)

Syndicate content