I want to build an environmental monitoring device so I'd like to code a basic serial interface so a separate C++ program can take all the readings and do what it has to do with them. Can I do this with arduino? I would use the analog ports with voltage divider to measure battery voltages, as well as digital pins for on/off conditions on certain devices like door contacts, smoke alarms, etc.
Get the chipkit uno
http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,892,893&Prod=CHIPKIT-UNO32
It can run 95% of the arduino code unchanged and it has 128K Flash, 16K SRAM, 42 I/O. It programs just like the arudino, uses a modified version of the ide, and appears as a FTDI based serial port to the pc. If you own a pickit 3 programmer you can even switch between it being an arduino or a pic 32.
This is the chip used on that board:
http://www.microchip.com/wwwproducts/devices.aspx?ddocname=en532434
80MHz, 1.56 DMIPS/MHz, 32-bit MIPS M4K Core
5 Stage pipeline, Harvard architecture
MIPS16e mode for up to 40% smaller code size
Single cycle multiply and hardware divide unit
32 x 32-bit Core Registers
32 x 32-bit Shadow Registers
Fast context switch and interrupt response
128K Flash (plus 12K boot Flash)
16K RAM (can execute from RAM)
Flash prefetch module with 256 Byte cache
Lock instructions or data in cache for fast access
Programmable vector interrupt controller
Fast and Accurate 16 channel 10-bit ADC,
Max 1 Mega sample per second at +/- 1LSB, conversion available during SLEEP & IDLE
Fail-Safe Clock Monitor – allows safe shutdown if clock fails
2 Internal oscillators (8MHz & 31KHz)
Hardware RTCC (Real-Time Clock and Calendar with Alarms)
Watchdog Timer with separate RC oscillator
In case you couldn't tell I really like the pic32 chips, price/performance ratio is outstanding.
Comparison of speeds, pic32 running mmbasic, lower is better.
Code:
BM1 BM2 BM3 BM4 BM5 BM6 BM7 BM8
ABC 800 single precision 0.9 1.8 6.0 5.9 6.3 11.6 19.6 2.9
ABC 800 double precision 1.2 2.2 10.0 10.6 11.0 17.8 26.4 14.4
IBM PC 1.5 5.2 12.1 12.6 13.6 23.5 37.4 3.5
Apple III 1.7 7.2 13.5 14.5 16.0 27.0 42.5 7.5
VIC-20 1.4 8.3 15.5 17.1 18.3 27.2 42.7 9.9
ZX81 in "fast mode" 4.5 6.9 16.4 15.8 18.6 49.7 68.5 22.9
Maximite 0.016 0.144 0.196 0.205 0.354 0.512 0.721 0.310