(Raspberry) Pi Day Extravaganza!
description
Transcript of (Raspberry) Pi Day Extravaganza!
![Page 1: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/1.jpg)
(Raspberry) Pi Day Extravaganza!
Brought to you by: UMIEEE, IEEE GOLD, Visions Electronics
Presenters: Troy Denton, Ahmad Byagowi
![Page 2: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/2.jpg)
Disclaimer
Any opinions or viewpoints expressed do not necessarily reflect those of IEEE, IEEE GOLD, UMIEEE, or any of our sponsorsAny software provided or mentioned is for educational purposes onlyYou break it, you buy it– Just kidding, you already bought it
![Page 3: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/3.jpg)
The Agenda (1/2)
• Introductions and parts hand-out• SD Card flashing procedure, setup walk-through• Raspberry Pi intro (while we flash SD cards)
• Hardware overview• Software (OS) overview• Community Support
• Loading up the Desktop (GUI)• Command line fun – installing software for our
workshop
![Page 4: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/4.jpg)
The Agenda (2/2)
• Programming example 1 – “Hello World”• Break for Pie & demonstrations!• Programming example 2 – Blinking Lights• Programming example 3 - The MCP3001 SPI ADC• Arduino interaction• Various demos
![Page 5: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/5.jpg)
What is not covered
In-depth linux material– We will guide you through examples, however to do this
topic justice would require a series of workshops
Programming techniques– Will give insights and explanations relevant to examples
only, again in the interests of time
Circuit theory– Again, insights relevant to the material covered today only
Arduino use – We will get a basic example working, but that’s about it
![Page 6: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/6.jpg)
What is not covered
As much as I would like to teach all of this extra material, this is a “Raspberry Pi” event– UMIEEE regularly throws workshops that cover these
topics
If questions stray too far from the prepared material, I will defer them to after the allotted time (9:30)Will stay beyond 9:30 if there is interestFeedback is appreciated!
![Page 7: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/7.jpg)
Introductions
![Page 8: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/8.jpg)
Introductions – get your parts!
Presenters: Troy Denton, Ahmad ByagowiHonorable mentions:
• MTS• Memory Express• Visions Electronics• UMIEEE• IEEE GOLD• The Raspberry Pi Foundation! (
http://raspberrypi.org)
![Page 9: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/9.jpg)
Setup
![Page 10: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/10.jpg)
Setup
Log on to the windows machine in front of you– Password is “ece”
Go to the following website: http://troydenton.ca/rpi.htmlUnzip the UMRPImg_4G.zip that is on your desktopIf it is not there, download it from http://troydenton.ca/UMRPImg_4G.zip
![Page 11: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/11.jpg)
Windows *nixExtract win32diskimagerRight click win32diskimager, run as administrator“Browse” to the extracted rpi.img file
Figure out /dev/ path for your SD carddd bs=4M if=/path/to/rpi.img of=/dev/<sd card>
Setup – flashing the card
![Page 12: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/12.jpg)
Windows *nixSelect the proper device in the “Device” drop down.On lab machines this should be device E:/ or G:/Click “Write”Be careful!!
Figure out /dev/ path for your SD carddd bs=4M if=/path/to/rpi.img of=/dev/<sd card>
Setup – flashing the card
![Page 13: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/13.jpg)
Raspberry Pi Intro
![Page 14: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/14.jpg)
Raspberry Pi - Philosophy
![Page 15: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/15.jpg)
Raspberry Pi - Philosophy
![Page 16: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/16.jpg)
Raspberry Pi - Philosophy
![Page 17: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/17.jpg)
Raspberry Pi - Philosophy
![Page 18: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/18.jpg)
Raspberry pi - Philosophy
∑( )=
![Page 19: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/19.jpg)
Raspberry pi - Philosophy
raspberrypi.org forums:– Just shy of 60,000 members
http://www.raspberrypi.org/archives/tag/educational-manualhttp://www.adafruit.com/blog/category/raspberry-pi/– The latest and greatest raspberry pi projects and tutorials
Amazing online presence (stats as of 2013-03-13)– 15,000,000 results for “raspberry pi” – launched 2012– 27,000,000 results for “arduino” – launched 2005
![Page 20: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/20.jpg)
Raspberry pi - Philosophy
![Page 21: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/21.jpg)
Raspberry Pi - Hardware
A Pi-casso?
![Page 22: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/22.jpg)
Raspberry Pi – Hardware
Coming Soon!
![Page 23: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/23.jpg)
Raspberry Pi – Hardware
GPU
+
CPU
+
RAM
Broadcom BCM2835
CPU core is an ARM11
![Page 24: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/24.jpg)
Raspberry Pi – Hardware
RAM: 256MB (Model B Rev1)512 MB (Model B Rev2)
CPU Speed: can technically go up to 1GHz
Contains all logic for serial buses (USB, SPI, I2C)
GPIO pins go _directly_ to the CPU
Broadcom BCM2835
CPU core is an ARM11
![Page 25: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/25.jpg)
Raspberry Pi – Hardware
Can overclock it via software settings
CPU and GPU each have their own memory allocation – where the “memory split” occurs is configurable in software
GPU needs a minimum 16MB
Broadcom BCM2835
CPU core is an ARM11
![Page 26: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/26.jpg)
Raspberry Pi - Hardware
Digital inputs and outputs only! No analog!
![Page 27: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/27.jpg)
Raspberry Pi - Hardware
Displayconnector
Camera connector
JTAG header
![Page 28: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/28.jpg)
Raspberry Pi - Hardware
USB to Ethernet Adapter
![Page 29: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/29.jpg)
Raspberry Pi - Hardware
![Page 30: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/30.jpg)
Raspberry Pi - Software
Designed with linux systems in mind, not necessarily required– RISCOS– Arch linux– Fedora– Occidentalis– Raspbian (our distro of choice)– A slew of others….
![Page 31: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/31.jpg)
Raspberry Pi - Software
Raspbian is what is known as the “Operating System” (OS)– Similar to windows running on your home PC, the
raspberry pi requires an operating system to work– Raspbian is a special-purpose distribution based on Debian
(a variant of linux)
The OS is what lets the raspberry pi not only run programs, but run multiple programs concurrentlyIt accomplishes this with a “scheduler” in the OS– Simply put, this makes programs “take turns” – Only one program is actually executing at any one time
![Page 32: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/32.jpg)
Raspberry Pi - Software
The SD card contains:– The OS– All Programs on the Raspberry pi– All permanent (nonvolatile) storage, in general
![Page 33: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/33.jpg)
Loading up the OS
![Page 34: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/34.jpg)
Loading up the OS
Plug in the Network cablePlug in your SD cardPlug in your HDMI cablePlug in the USB hub– Plug in mouse and keyboard from desktop computer
Set monitor to hdmi (press this button twice )Plug in usb power (act fast)The Raspberry pi automatically boots off of the SD card
![Page 35: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/35.jpg)
Loading up the OS
You should see the raspberry pi logo, and a bunch of computer jargon printing to the screenThis is the linux kernel in action!When it is finished, you will be prompted to login.– Username: pi– Password: raspberry
![Page 36: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/36.jpg)
Loading up the OS
You are now at the system promptCommands to try:– ls
ls –a, ls –l, Lists the files in the directory
– cd <directory> Move to directory <directory> Enter “cd” without a directory to return “home”
– top This shows all of the programs running
![Page 37: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/37.jpg)
Loading up the OS
Let’s take full advantage of our SD card: type sudo raspi-config and hit enter– This is a program you can use to configure the raspberry
pi– Select “expand_rootfs”
![Page 38: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/38.jpg)
Loading up the OS
![Page 39: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/39.jpg)
Loading up the OS
To load up the graphical desktop, type startx and hit enterLXDE is the “Lightweight X Desktop Environment”– In linux, you can use different programs to provide a
graphical interface– GNOME– KDE– LXDE– XFCE– Etc…
Many programs have been preinstalled, look around!
![Page 40: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/40.jpg)
Loading up the OS
Midori – internet browserOpenOffice.org – Open source alternative to Microsoft Office, “compatible”XBMC – Xbox media Center– Demo on this later
Roughly equivalent to a 300MHz Pentium 2
![Page 41: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/41.jpg)
Loading up the OS
When we’re done looking around, close your open programs (for performance purposes)Double click the “LXTerminal” icon on the desktop– This will open a small terminal window
![Page 42: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/42.jpg)
Command line fun – installing software for our workshop
![Page 43: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/43.jpg)
Command line fun
In the console window, enter the following:cdgit clone git://github.com/doceme/py-spidev.gitsudo apt-get install python-dev– Will take a few minutes
cd py-spidevmakesudo make install
![Page 44: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/44.jpg)
Command line fun
What did we just do?– cd
Command used to change directories– git clone git://github.com/doceme/py-spidev.git
Download sourcecode from a git repository– sudo apt-get install python-dev
Download and install development libraries from our package manager
– make Compile the sourcecode that we got via git into usable
programs– sudo make install
Install these programs into system directories
![Page 45: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/45.jpg)
Command line fun
sudo nano /etc/modprobe.d/raspi-blacklist.confChange the file so it looks like:#blacklist spi-bcm2708#blacklist i2c-bcm2708
Use arrow keys to move aroundThen hit CTRL+O to save, enter to confirmCTRL+X to exit
![Page 46: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/46.jpg)
Command line fun
To enable the SPI drivers, we need to restart the system– sudo shutdown –r now– More on SPI later
We are now done installing software!
![Page 47: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/47.jpg)
Programming example 1 – “Hello World”
Without further ado, let’s fire up geany and write our first program on the raspberry pi!For our purposes today, we will be coding in Python.
![Page 48: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/48.jpg)
Programming example 1 – “Hello World”
Log in, “startx” if you havn’t alreadyOpen up geany (LXDE icon/start menu > programming > geany)Enter:
print “Hello, World!”print “This is our first”print “Python example!”
![Page 49: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/49.jpg)
Programming example 1 – “Hello World”
Save this as helloworld.py in your “home” directoryTo run the program, we need to go back to our command window. (open if you havn’t yet)Enter: cd Enter the command: python helloworld.pyCongratulations, You’re a nerd now
![Page 50: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/50.jpg)
Break for pie!
![Page 51: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/51.jpg)
Programming example 2 – blinking lights
“Hello world” is the first step in programming traditional computersSimilarly, blinking an LED is the first step in the microcontroller worldThis is accomplished through the GPIO pins!GPIO: General Purpose Input Output
![Page 52: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/52.jpg)
Programming example 2 – blinking lights
GPIO pins are special connections to the processor that can be controlled by codeInstead of your program telling the raspberry pi to put words on the screen, you can tell the raspberry pi to turn a switch on or off
![Page 53: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/53.jpg)
Programming example 2 – blinking lights
Each GPIO pin is either switched “on”, or “off”. We “call” a function to change its state.
Hey! Turn it on!
![Page 54: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/54.jpg)
Programming example 2 – blinking lights
Each GPIO pin is either switched “on”, or “off”. We “call” a function to change its state.
Turn it off now!
![Page 55: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/55.jpg)
Programming example 2 – blinking lights
Enter, the breadboard:
![Page 56: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/56.jpg)
Programming example 2 – blinking lights
Little to do with bread
![Page 57: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/57.jpg)
Programming example 2 – blinking lights
Rows of adjacent holes are connected together
![Page 58: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/58.jpg)
Programming example 2 – blinking lights
The outer “strips” are connected as well
![Page 59: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/59.jpg)
Programming example 2 – blinking lights
Pin numbering: BCM style
![Page 60: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/60.jpg)
Programming example 2 – blinking lights
Pin numbering: BCM style
![Page 61: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/61.jpg)
Programming example 2 – blinking lightsPin numbering: Raspberry Pi header - NOT USING THIS! Just FYI
1 23 4...
25 26
![Page 62: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/62.jpg)
Programming example 2 – blinking lights
![Page 63: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/63.jpg)
Programming example 2 – blinking lights
Open up your terminalcdmkdir gpiocd gpiowget troydenton.ca/blink1.pysudo python blink1.py
![Page 64: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/64.jpg)
Programming example 2 – blinking lights
While this is running, open the file in geany
![Page 65: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/65.jpg)
Programming example 2 – blinking lights
![Page 66: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/66.jpg)
Programming example 2 – blinking lights
wget troydenton.ca/blink2.pysudo python blink2.py
![Page 67: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/67.jpg)
Programming example 3 – reading an input
Similar to how we can tell the CPU to output a value, we can have the CPU “read” a value
“What do you see ??”
time
volta
ge
5V
0V
“0!”
![Page 68: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/68.jpg)
Programming example 3 – reading an input
Similar to how we can tell the CPU to output a value, we can have the CPU “read” a value
“What do you see ??”
time
volta
ge
5V
0V
“1!”
![Page 69: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/69.jpg)
Programming example 3 – reading an input
![Page 70: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/70.jpg)
Programming example 3 – reading an input
Limitations of GPIO:– When accessing via python, not at its fastest
C is much faster… but, not as easy for a workshop– Max GPIO output speed (using python in raspbian)
~60 kHz by this measurement Upwards of 80 observed Jitter issues Acceptable for real-time?– Not likely!
– Max input speed slightly better ~111 kHz
![Page 71: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/71.jpg)
Programming example 3 – reading an input
wget http://troydenton.ca/blink3.pysudo python blink3.py
![Page 72: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/72.jpg)
Intro to SPI
SPI: Serial Peripheral Interface busA loose standard used to transmit data serially– Implementation is up to chip manufacturers
Many chips out there speak SPI…– EEPROMs (memory)– Some Network interface IC’s– Analog to digital converters (MCP3001)
In this section, we will use the MCP3001 to read an analog voltage into the raspberry pi
![Page 73: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/73.jpg)
Intro to SPI
Example from MCP3001 datasheet
Analog input Digital Output
![Page 74: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/74.jpg)
Intro to SPI
Example from MCP3001 datasheet
Analog input Digital Output
![Page 75: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/75.jpg)
Intro to SPI
Example from MCP3001 datasheet
![Page 76: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/76.jpg)
Intro to SPI
![Page 77: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/77.jpg)
Installing SPI Libraries
Run the following commands:cd mkdir adccd adcwget http://troydenton.ca/adc.pypython adc.py– Turn the potentiometer and watch the display change
![Page 78: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/78.jpg)
Arduino interaction
The arduino is another embedded platform/microcontrollerBased on the Atmel AVR series of microprocessorsToday we are going to use our embedded computer (Raspberry pi) to program our embedded computer (Arduino!)– Because we can.
![Page 79: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/79.jpg)
Arduino interaction
Plug your arduino into an open USB port on the raspberry piOpen up the Arduino IDE by clicking “start” > Programming > Arduino IDEIn the Arduino IDE, select Tools > Board, and select your model of Arduino– If you do not know which, ask one of us and we will get it
going for you
![Page 80: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/80.jpg)
Arduino interaction
Next, go to tools > Serial Port > /dev/ttyUSB0Load up some example code by going to File > Example > Basics > DigitalReadSerial
![Page 81: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/81.jpg)
Arduino interaction
Modify the code to look like this:
Then, click the button to upload the test code to the arduinoClick to bring up the serial console
![Page 82: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/82.jpg)
Arduino interaction
Make sure the “Baud Rate” is set to 9600 in the serial console:
You should see your test message printing once a second
![Page 83: (Raspberry) Pi Day Extravaganza!](https://reader035.fdocuments.in/reader035/viewer/2022062501/56816782550346895ddc8fea/html5/thumbnails/83.jpg)
Demos and other installed software