Minimalist Arduino

March 15th, 2009
Posted in Logochip, Uncategorized  Tagged
No Comments

  There is something to be said for the processes of reducing a set of objects or functions down to their lowest common denominator but I think what has really driven me to do this is I am too cheap to go out and buy an Arduino Decemila every time I want to built a new project. But really after doing quite a bit of business with the Logochips I think I understand how important it is to try to design “The little engine that could” do almost anything on a budget. This could be cool, and time will tell what all can be done with it.

   So here are the basics to a build your own Arduino clone with a hand full of parts that may cost you no more than about six dollars.

  First there is the microcontroller, the brain, the Atmel ATmega168-20PU(costs about $4.00). I should mention here that you need a way to program the bootloader into the Atmel chip. If you have a friend like Keith who will lend you his USBtinyISP and an Arduino Decemila it makes it real easy. Other wise buying one of each might be good if you plan to make a lot of clones.

 Next you need to provide the chip with a good 5 volt supply. I suggest the LM7805 and a couple of small capacitors(costs about 50 cents) to regulate just about any voltage down to a nice safe 5 volts for the microcontroller. If you are making a project that already has a 5 volt supply like an old computer power supply you can use that or a set of 4 rechargeable batteries (AA or AAA) works well for those portable projects.

  Now the brain needs a clock to keep it on time. That would be this, 16 megahertz crystal resonator (costs about 40 cents). Your probably reading this post on a laptop or desktop computer that is screaming along at 1 or 2 gigahertz well, just slow down, take it easy, 16MHz is just the right speed for the serial communications between the Arduino and your computer.

  One more thing. The brain has a tendency to fall asleep. You’ll need a 10,000 ohm resistor (cost 2 cents) to pull the reset pin up to 5 volts and keep the Arduino running. When you download a program from your computer this reset pin gets kicked to tell the Arduino ” HEY I got somthin for ya”.

MinimalArduinoPic

MinimalArduinoPic

   OK now in the picture here the Arduino clone circuit described above is on the left side and on the right side is another small chip CD40106 which is called an inverter. It and a couple of resistors and a capacitor will condition the signals to and from your computer when your downloading a program to the Arduino. When your done programming you can remove these parts and the Arduino will run by itself. There are three lines of communication that the Arduino needs to successfully download a program, RXD receive data, TXD transmit data, and DTR data terminal ready. The DTR is the one that kicks the reset pin and makes the Arduino gulp down a new program.

minimalistarduino

  So here’s a schematic drawing of the circuit in pdf and also data sheets for the LM7805 and the CD40106 and the XTAL resonator thingy.

lm7805     cd40106     xtalres

  Of course none of this addresses any of the many things you can do with the Arduino but that’s another story for later.

Tom

Simple Fun Projects :continued 2009

January 28th, 2009
Posted in Simple Fun, Uncategorized  Tagged , , ,
No Comments

 

I’m getting a real positive fealing this year about this approach to sharing my experiences and knowledge of technology by creating projects that use simple elements. There are so many dynamics that can be studied in the proccess of creating a simple machine. Today a young girl discovered that in the proccess of building a circuit, if you put a wire across a battery it gets hot. I told her “that’s called a short circuit”. I wish I had the time to tell her about the chemicals in the battery, the effect of dissimilar metals, and some thermal dynamics. But none the less, today in her life, she learned one more thing. I’ll keep working at this. I think it’s worth while. An exercise in consciuosness. We are stronger in the confidence of knowing.

So here is a video of a set of five simple projects that can be made with a basic toy motor a battery some wire and a small block of wood. Warning! making one of these projects can lead to hours of either frustration or intertainment depending on your point of view. In either case you’ll end up with a nice conversation piece.

YouTube Preview Image

I got the motors from (AllElectronics).

but you can also practice recycling and hack them out of old toys.

Have fun…

The Latest Projects 2008

April 26th, 2008
Posted in Simple Fun, Uncategorized  Tagged ,
No Comments

I’ve been so busy this year, I haven’t had time to update this blog. The two big projects I’ve been working on were “interACTIVE” an exhibition at the Wichita Art Museum and A Technology Art Sculpture with the 5th grade class of Beech Elementary School. You can see a video documentary of the Beech School project here (click on the picture).

BeechSculp
You might notice the absence of kids in the video. When ever I was with the kids I didn’t have time to take pictures.

Prior to that was the Wichita Art Museum. Lee Shiney Chris Gulick and I started in September and worked out tails off to get it up and running by February. You can see pictures and blogs of this project (here). 

                    WAM-circle

More to come…

Infrared Transmit and Receive with a Logochip

November 30th, 2007
Posted in Logochip
No Comments

    When ever I find an easy way to do something I just have to make a record of it. There are some projects where you might want to do something wireless with the Logochip. This little circuit makes it pretty easy.

    First an explination of the Radioshack 276-640, the IR Receiver Module. It will receive signals from an IR(940nm) LED that is oscillating at 38killoherts. So if we want to send a series of 1’s and 0’s we modulate this 38KHz signal on and off.

    Fortunately the Logochip can produce the 38KHz signal and modulate it with very little effort from the software.  We’re going to set up the internal timer module to produce the signal and set up the serial UART to modulate it. So here let’s look at the schematic.

            LogoIRtranceiver

   This schematic shows the Logochip circuit to the left and the IR transmit and receive circuits to the right. There are two transistors involved in the in the transmit. The one that drives the LED is driven by the timer output PORTC bit 2 which is producing a 38KHz square wave. But most of the time it is being held off by the other transistor which is being driven by the transmit pin (TX) PORTC bit 6. Now when you tell the serial port to transmit an 8 bit byte the serial data comes out of the TX pin and modulates the 38KHz signal on and off to the LED.

   On the receiver side (this is really easy) the Radioshack part is simply hooked up to the 5 volt power and ground and the output signal runs right into the receiver input (RX) PORTC bit 7. I put a resistor to ground just in case the output drifts. That’s it.

    Here’s a picture of my bread board. IRlogoProtoBoard . The transmit LED and the receiver module are pointing straight up and I just help my hand above it to reflect the signal back. I can’t wait to use it in something.

    So here’s the Logochip code. I hope I commented it well enough for everyone to follow.

                      TextPage

Have fun…

Comm Port Error Handeling

November 7th, 2007
Posted in Logochip
No Comments

If I were to describe the proccess of implementing a sreial port communication with a microcontroller I’d say It’s a shot in the dark. There are a fairly large number of variables that come into play when data is transmitted and received. I just wanted to touch on error handeling here just as sort of note to my self if nothing else. Presuming you get the baud rate and the number of bits set right and you are able to get the basic communication working there are a couple of things that can still happen that will put a damper on the whole thing.

Framing Errors

If you send a whole string of data to a microcontroller and the controller software isn’t paying a lot of attention to the comm port one of the things that can happen is called a framing error. In the PIC18F2320 chip there is the “rcsta” (receive status register) which is at address $fab. Bit 2 of this register will go high on a framing error. The best resolution for this error that I have found is to go ahead and read the data from the “rcreg” receive register but keep in mind that it may be bad data.

Over Run Errors

Another kind of error you can get is called over run error. This can be a serious problem because it will cause the reciever to stop working until the problem is resolved. Bit 1 of the rcsta will go high (1) on an over run error. To resolve this error turn off the continuois recieve bit (bit 4) of the rcsta (set it to 0) and then turn it back on (set it to 1). This will flush out data that is held in the receive buffer and reset the reciever to run again.

CORRECTION It will flush out the receive buffer but it will not clear the error. So don’t keep doing it in a loop because the error will clear only after the next byte is received. If you keep reseting the receiver it will never receive the next transmition.

So here is a code example for the Logochip to handle the comm port:

;CommErrorTest.txt

constants [
 [rcreg $fae][rcsta $fab]
 [spbrg $faf][pir1 $f9e][txsta $fac]
 [txreg $fad][t2con $fca]
  ] 

global[ comand ]

to powerup
 prs “CommErrorTest.txt”
 write spbrg 25  ; sets baud rate to 19200
 write rcsta $90
 write txsta $24
 write t2con 6
end

to startup
 loop[
  if testbit 1 rcsta [ ;check overrun Error
  clearbit 4 rcsta
  prs "overrun"
  setbit 4 rcsta
  ]
  if testbit 5 pir1 [
   setcomand uart-receive
   print comand
   ]
 wait 10
 ]
end

to uart-send :n
  waituntil [testbit 1 txsta]
  write txreg :n
end

to uart-receive
 if testbit 2 rcsta [  ;check frame Error
  prs "framing"
  ]
 output read rcreg
end

After a week at art camp…

June 10th, 2007
Posted in Simple Fun
1 Comment

Wow! that was great. Sorry I didn’t post pictures along the way but it was a very busy week at the CityArts Teen Extreme 2007. Jodi, Kendra, and I (Tom) worked with a hand full of teen aged kids to put on a show of kinetic sculptures using these simple fun technics. Each of them got to take there work home but before it was over they all sat down and animated their works together with the help of a Logochip controller. For the last couple of hours people, including their parents, wandered through the gallery while their sculptures danced before their eyes. It was great, everyone was thrilled and amazed. The Kids also made video of the art camp experience which is posted on You Tube -( click here )-

Teenextreme1

 Here’s a movie I made:

(click it) theshow

And pictures: IMGP1020a  imgp1021a.JPG  imgp1023a.JPG imgp1024a.JPG imgp1025a.JPG imgp1026a.JPG  imgp1027a.JPG imgp1028a.JPG  imgp1029a.JPG  imgp1031a.JPG  imgp1032a.JPG

A Scary Spider

April 21st, 2007
Posted in Simple Fun
1 Comment

Spiders are good for the garden but they scare me. Here’s a good way to have fun with your older sister. Attach some kind of spool to a toy motor shaft and mount it up high. Then tie a string to a creepy bug and run it up to the spool. When the motor runs the bug goes up. Disconnect the motor and the bug comes back down.

Click the picture for a video.

       Spider

Slap Stick

April 17th, 2007
Posted in Simple Fun
1 Comment

    Sometimes you just want to smack something. Ya know what I mean. Don’t take it personal. It’s real easy to do. If you want to make some noise or knock something over just stick a stick on a motor shaft and let fly. A word of caution once the motor stops turning don’t leave the battery connected too long. It may smoke.

Click for video:

            SlapPict

Extra Memory EEPROM for the Logochip

April 15th, 2007
Posted in Logochip
No Comments

Using the lab notes from Prof. Robbie Berg I hooked up a memory chip to a Logochip using an I2C interface. So if somebody would want their Logochip to remember a bunch of numbers like a data pattern or say an audio track this could help. It could also be helpful if you wanted to use another device that had an I^2C (also called”2 WIRE”) interface. Memory is saved when the power is off too. The PDF formatting of his lab notes kind of screwed the line feeds so I tried to tidy things up. But it’s real easy to hook up. The part only costs a buck. You can paste this code in, load, and go. Might be a good thing to put in the wiki.

  LogoEEPROM 

Logo code for reading and writing data to a 24LC64

The Logo code below (also stored in the course conference is the file calledeeprom.txt) contains the procedures needed for a LogoChip to be able to write and read data to and from a 24LC64.

To write a byte of data to the 24LC64 use write-eeprom <address> <value> where <address> is an integer from 0 to 8191 and <value> is an integer from 0 to 255. For example try

   write-eeprom 100 57

 This command stores the number 57 in memory location 100 in the 24LC64

To read a byte of data from the 24LC64 use read-eeprom <address> where <address> is an integer from 0 to 8191 and <value> is an integer from 0 to 255. If you try

   print read-eeprom 100

you should see the number 57 print in monitor window.
Here’s the code:

 

 

  TextPage

Just stuff all this in your program somewhere or put it in a library and include it in you code.

Flying in Circles

April 13th, 2007
Posted in Simple Fun
No Comments

Here’s something that was popular a few years ago. You could have a pot of flowers with a bumble bee or a butterfly flittering around it. It’s a neat tick. Mount a toy motor in the middle of the flowers. A wheel mounted on the motor shaft has a small hole drilled off center. A thin wire stuck in the hole extends out to the bug. Click this picture for a video.

               Fluterby  Â