Arduino vs Raspberry Pi - Decisions, Decisions

Angus Gratton

Arduino vs Raspberry Pi

Decisions, Decisions

Bakery Window by Kevin Harber

Arduino

Raspberry Pi

Easy Decision?

Picture by Kendall

Microcontroller

Just runs your program
(Simplicity)

Microprocessor System On-A-Chip

Runs whole OS
(Power)

Complexity 2 by Michael Heiss

Headers

I/O Voltage

Raspberry Pi: 3.3V Logic

Arduino: 5V Logic

Analog Inputs

Arduino only!

Raspberry Pi

5V, fussy

Arduino

5V or 6-20V (varies), not fussy

Power Consumption

Arduino <100mA, Sleep Modes

Raspberry Pi <1000mA, No Sleep

Floating Point

Raspberry Pi: 24 Linpack MFLOPS

Arduino: 89 Linpack kFLOPS

Integer

Raspberry Pi: 875 DMIPS

Arduino: 5.2 DMIPS

Sources: http://www.ecrostech.com/Other/Resources/Dhrystone.htm
http://mobile.arm.com/products/processors/classic/arm11/arm1176.php
http://people.sc.fsu.edu/~%20jburkardt/m_src/linpack_bench/linpack_bench.html

Remote Access

Encryption

USB devices

Open Source?

Long term availability?

Timing

Soft vs Hard Realtime

Code Samples

                  
PIN=4
wiringpi2.pinMode(PIN,1)

while True:
    wiringpi2.digitalWrite(PIN, 1)
    wiringpi2.digitalWrite(PIN, 0)
                  
		

Head of the queue

                  
sudo chrt 99 ./python_toggle.py
                  
		

Better, worse, same?

C?

              
pinMode(PIN, OUTPUT);
while(1)
{
  digitalWrite(PIN, HIGH);
  digitalWrite(PIN, LOW);
}
              
            

4 MHz?

CONFIG_PREEMPT_RT ?

Arduino?

              
pinMode(PIN, OUTPUT);
while(1)
{
  digitalWrite(PIN, HIGH);
  digitalWrite(PIN, LOW);
}
              
            
              
cli(); // Turn off all interrupts

// Do your realtime thing here

sei(); // Turn back on all interrupts
              
            

So what to do?