Introduction
What happens when a Pi meets an Arduino?
A simple example would be, when building a mobile robot, we use the Raspberry Pi to extend its vision and get a nice tiny monitor. Meanwhile, Arduino handle nicely with the motor driving part and delivers fast responses like obstacle avoidance. Because, without the OS, the response time of rapid changes on the Arduino is much shorter. Also the high performance Pi can deals much easily with wireless communications, imaging and running complex algorithm.
Therefore, with the Arduino and Pi together, you get a powerful "brain" and "cerebellum" for your project, at one time.
Specification
- Onboard Microcontroller: ATmega32u4
- Arduino Leonardo Chip
- Arduino Compatible pin mapping
- Compatible with All arduino standard shield and sensors
- System Voltage: 5v
- Arduino Digital I/O: 20
- Arduino Analog I/O: 6
- Raspberry Pi B GPIO : 16
- Raspberry Pi B I2C: 1
- Raspberry Pi B ID_I2C: 1
- Raspberry Pi B SPI: 1
- Raspberry Pi B TTL UART: 1
- Dimension: 88mm x 56mm x 26mm
Features
- Integrate with the Xbee socket
- Available to be connected to Arduino or Raspberry Pi B directly either
- Compatible with Bluetooth Bee(BT2.1) and xbee modules
- Embeded DS1307 RTC module,which keeps time of the Pi even when the power is off, or the battery removed
- Bidirectional logic converter for Raspberry Pi B GPIO to convert signal between 3.3v and 5v
- 3 pin headers sensor port for Arduino pins and B GPIO, directly compatible with hundreds of Arduino sensors and modules,like:
- Relay Module V3.1 for IOT AC control
- Analog pH Meter Kit for monitoring Water quality of your pool
- SHT1x Humidity and Temperature Sensor
- Motion Sensor for security and human detection
- And more sensors...
- Arduino shield compatible layout makes it possible to extend Arduino shield features for your Pi also,
Raspberry Pi B Meet Arduino Shield Pinout
NOTE: The ID-I2C is an EEPROM interface, which is dedicated to connect to external EEPROM, it will test automatically EEPROM devices attached to it when it starts, is used for configuring GPIO and Linux drivers. In theory, it can be used as an ordinary I2C.
Feature Introduction Diagram
Get Started with Raspberry Pi B Meet Arduino Shield
First of all, let's control a sensor by Raspberry Pi directly with Meet Arduino Shield. '''Note: '''For this tutorial, we assume that you've known the basic knowledge about the Raspberry Pi B . And more details will be focused on how to extend and use more hardware modules and sensors for your Raspberry pi B projects. In this part, we will control the Relay module with Python via Pi's GPIO.
Tools Required
- Raspberry Pi B with Ethernet or WIFI connected
- Raspberry Pi B Meet Arduino shield
- Relay module (or and LED module)
Software Required
- Python 2 Installed.
- Setup SSH on Raspberry Pi.
If you didn't install python. Please enter the following commands below into LX Terminal via SSH.
root@raspberrypi:/home/pi# sudo apt-get update
root@raspberrypi:/home/pi# sudo apt-get install python-rpi.gpio
Hardware Connection
Step by Step tutorial
1. Plug the Pi Meet Arduino shield to the Raspberry Pi B , Which connected with the power and Ethernet.
2. Connect the Relay module(or LED module) to your Pi as the hardware connection shown.
3. Login in your Pi by Putty.
4. Create a Python example code using nano.
root@raspberrypi:/home/pi# nano blink.py
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(4,GPIO.OUT)
while True:
GPIO.output(4,GPIO.HIGH)
time.sleep(1)
GPIO.output(4,GPIO.LOW)
time.sleep(1)
5. Run the python sample by the command below.And Check the effect. PS: The module is connected to the GPIO 4 matching the software configuration.
root@raspberrypi:/home/pi# python blink.py
6.
Program the Arduino shield using Raspberry Pi B
In this part, we will share how to program your Arduino using Pi. The steps is quite simple what you need is just installing the Arduino on your Pi and run the remote desktop to test it.
Software Required
- TightVNC Viewer on your PC
- TightVNC on your Pi
- Arduino IDE on your Pi
To install the TightVNC on your Pi, please check the commands below.
root@raspberrypi:/home/pi# sudo apt-get update
root@raspberrypi:/home/pi# sudo apt-get install tightvncserver
And to install the Arduino IDE on your Pi.
root@raspberrypi:/home/pi# sudo apt-get install arduino
Steps
- Connect the micro usb from Meet Arduino shield to the USB host on the Pi.
- Launch your VNC server on the Raspberry Pi B .
root@raspberrypi:/home/pi# sudo vncserver
- Log in the remote desktop to Pi using TightVNC Viewer.
- Launch your Arduino IDE. Open the blink sample sketch. Choose the leonardo as the board connected and open the right port as the picture shown.
- Click "Upload" to program it.
FAQ
Q1. Some general Arduino Problems/ FAQ/ Tips, very good to know.
A. Clike the topic link on DFRobot Forum.
Q2. SPI devices not working on this expansion shield? I have been working around with the microSD card reader (cod. dfr0229) and this expansion shield. The arduino works great, I even have a lcd display working without any problem, but the SD card reader doesn't seem to work so well, I have connected it to the icsp pins (D4,11,12,13, 5V&GND).
A. Note that the SPI pins of Leonardo are not connected to any of the digital I/O pins as they are on the Uno, they are only available on the ICSP connector. From Arduino.cc
For any question/advice/cool idea to share, please visit DFRobot Forum.