Behind every great project, stands a micro-controller. Whether it be a lowly ATTINY13A with 1-kilobyte of Flash to a beefy STM32F407VGT6 with 1-gigabyte of Flash Memory, working with the external world is a lot easier with a microcontroller. We just need to know where to start. By far the largest body of open source libraries would be the Arduino compatible microcontrollers. The popular ATmega328-P is quite comfortable with 32k of Flash Memory, but the 2k of RAM is a little tight. It also has 6 Analog Input/Outputs (IOs) and 14 Digital IOs with 1 USART (aka UART or TTL) for serial communications.
The ATmega1284-P (I hyphenate the “P” to denote the PDIP as opposed to the “Pico-Power” that is nomenclature) on the other hand, has 128k of Flash Memory and 16k of RAM, 8 analog pins, 24 digital pins with 2 USARTs. While the ATmega1284-P takes up much more realestate, it is only a nuisance on a half sized solderless breadboard (you will have to build your 5V regulated circuit elsewhere). It is a small price considering the extra Flash, RAM, IOs and USARTs. Those that have connected a Graphical Liquid Crystal Display (GLCD) to an ATmega328 without SPI/I2C have gasped the lack of IOs left over. A good demonstration of the ATmega1284-P can be found here: http://www.theresistornetwork.com/2013/04/designing-window-manager-for-avr.html
Anyhow, the Bill of Materials (BOM) are here:
- (1) Full Sized Breadboard
- (1) ATMEGA1284P-PU w/ Optiboot Bootloader
- (6) 0.1uF Ceramic Capacitors
- (2) 22pF Ceramic Capacitors
- (2) 100uF Electrolytic Capacitors
- (2) 330 ohm Resistors
- (1) 10k ohm Resistor
- (1) Red 5mm LED
- (1) Green 5mm LED
- (22) Bent Hookup Wire
- (5) Breadboard Jumpers
- (1) 7805 5VDC Regulator
- (1) 1N4001 Diode
- (1) 16MHz Crystal
- (1) USB2TTL FTDI Serial Communications with 8″ Jumpers
- (1) 9VDC Battery Clip
This bootloader setup operates either on a 16MHz resonator or a 16MHz crystal and two 22pF capacitors. Uploading the IDE sketches are through USART0. The bootloader is the same Optiboot that is used in the Arduino compatible Unos. For the technical types, the High Fuse needs to be set to Full Swing on these PDIP chips for communication issues (USART0) and the XTAL1 signal next to RXD0.
Next, the buildout…
For those of you that are unfamiliar with the term, it is a way to interact with the physical world by way of using electronics and micro-controllers to activate or sense things in the real world. One simple example would be micro-controlling a fan motor based on a temperature sensor value (very cheap air conditioning). A more complicated example is to navigate a remote controlled car through a track without the remote control. The latest fad is the Unmanned Arial Vehicle (UAV) Quadcopters.
The platforms that we will work with will be Arduino™ compatible, Penguino™ compatible and hopefully the Uno32™ Compatible open source projects. Each of these have a “breadboard capable” Dual Inline Pin (DIP) micro-controller, well established bootloaders and Intergrated Development Environments (IDE) that allows for a fully hands on experience.
Each project will be supported with all components in a kit format available at http://www.spcomputing.com.