Home Upgrade Search Memberlist Extras Hacker Tools Award Goals Help Wiki Follow Contact

HF Rulez the UniverseHF Rulez the Universe
Physical-Computing Arduino RaspberryPi IOT Microprocesser DIY Prototyping GPIO

Quick overview of the Arduino & Raspberry Pi

Posted 08-16-2019, 01:35 PM

Physical Computing: The Arduino & Raspberry Pi

[Image: Raspberry-Pi-Vs-Arduino.jpg]
Arduino and Raspberry Pis are the two most common boards used in the world of Physical Computing. This article will be split into two parts, the first covering the Arduino and the second covering the Raspberry Pi.

Arduino vs Raspberry Pi

The first and foremost difference between the two boards is the Arduino is a microcontroller where as the Raspberry Pi is a mini computer board. The Arduino is useful at stable tasks that have fixed situations, such as measuring the temperature of the room and adjusting a light accordingly or tasks such as alerting you when say a push button has been triggered or a laser was tripped. It performs well in situations which don't require heavy calculations or operations. It's ideal for projects that are usually permanent and don't require much upkeep or change or update of code. In contrast, the Raspberry Pi is useful in all sorts of beefier and heavier tasks such as image processing through a camera or utilizing servos and a camera and some algorithm to solve a scrambled Rubiks cube. It runs a operating system, usually a variant of Linux and can run multiple programs that span different languages. The Raspberry Pi boards (aside from the Raspberry Pi Zero) usually have on-board WiFi and can be controlled over WiFi meaning you can update your code and can pull or download data onto it, if necessary. Both boards have GPIO pins, meaning you can control them using code. You can connect motors, LEDs, other IC chips, and a multitude of components to interact with them using code.

The Arduino
[Image: a000066_featured.jpg]
This is the Arduno Uno Rev3 board, the most common variant of Arduino Boards. 

Arduino boards often use Arduino Code as it's primary programming language, a mix between C and C++. However there are boot loaders that allow you to use python or even Java.
The default Arduino IDE looks like this:

[Image: Arduino_IDE_-_Blink.png]
The Arduino board is open source, meaning you can find cheaper or modded variant of the board. Some of the most known Arduino-based boards are the ESP boards! These boards utilize the easy to use Arduino language but often come in a smaller form factor and with on-board WiFi as well Bluetooth. The ESP8266-01 and the ESP32 are my favorite of the ESP boards, their tiny size makes for a lot of interesting projects!

[Image: 20160318184844_61262.JPG][Image: 613Q6IxkivL._SX466_.jpg]
The ESP8266-01(or ESP-01) and the ESP32 boards, respectively.

Where to buy:
The Arduino board, alone: https://store.arduino.cc/usa/arduino-uno-rev3
The starter kit, the board, a mix of components, as well as a beginner book: https://store.arduino.cc/usa/arduino-starter-kit

Although it's nice to support the company, you can find other Arduino Starter Kits for much cheaper on Ebay or Amazon. The boards are made from third parties and cannot be 100% vouched but often sell for a cheaper price:
https://www.amazon.ca/s?k=arduino+starter+kit&ref=nb_sb_noss_2

Some cool Arduino based projects:
My own physical implementation of HF's API
Two player, Wireless Arduino based Chess board
Robotic servo arm, controlled using a mobile app



The Raspberry Pi

[Image: RASPBERRY_PI_3B_PLUS_001.png]


The Raspberry Pi, unlike the Arduino is not open source and is produced and manufactured only by the Raspberry Pi Foundation. Since the boards are not open source, the boards come in limited form factors. The most common is currently the Model 3 Line, more specifally the 3B+

As any other computer, you can find the tech specs. These are the specs of the Model 3B+
[Image: maxresdefault.jpg]

As mentioned before, the Raspberry Pi is extremely versatile. It runs Linux so you can do almost anything else a normal computer can do. As a computer running Linux, you can use most of your favorite programming languages such as Python, Java, or even .Net languages, all of which can interact with the GPIO pins on the board.

Other form factors:
Aside from the regular sized boards, The Raspberry Pi foundation also sells board in the following form factors/sizes:

SO-DIMM Computer Module
[Image: c8f6606e0a9d60195af77919dcb5408f49140807_cm300.jpg]

Pi Zero & Zero W
[Image: 6b0defdbbf40792b64159ab8169d97162c380b2c...5x1080.jpg]

Where to Buy:
Raspberry Pi Foundation Store

Examples/Tutorials:
I'm using a Model 3B+ connected to an external hard drive as a NAS server that I can access anywhere like my own cloud.
I'm using another Model 3B+ on a mini bot with a mini camera as a vision system to navigate through a mapped area.
Raspberry Pi Web Server
Kodi Media Center
Retro Pi: Retro console emulator



Closing statements:
If you're a beginner hoping to get into DIY electronics and prototyping, I'd highly recommend purchasing an Arduino starter kit. The original or a third party one, just get yourself a board and follow some YouTube tutorials, it's easier than you'd think!