SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Downloaden Sie, um offline zu lesen
Programming the Raspberry Pi
Dr Eben Upton
Raspberry Pi Foundation
contents
• introduction
• unboxing and setup
• flashing an SD card
• logging in for the first time
• the JOE text editor
• running the “hello world” program• running the “hello world” program
• a (slightly) more complex example
• an OpenGL ES graphics program in C
• the configuration file
• wrap up
introduction
• Raspberry Pi is a small, cheap
ARM-based PC for education
and hobbyists
• Runs Debian GNU/Linux from
an SD card
– Standard image available from
Feature Specification
CPU 700MHz ARM1176-JZFS
GPU Broadcom VideoCore IV
Memory 256MB LPDDR2-800
Video HDMI, composite
Audio HDMI, stereo analog
– Standard image available from
http://www.element14.com
– Includes a broad range of tools and
examples
• General-purpose IO connector
allows simple interfacing
Audio HDMI, stereo analog
USB 2 x USB2.0 (model B)
Storage SD card
Networking 10/100 Ethernet
Power 5V micro USB
unboxing
a quick tour
a quick tour
Power
a quick tour
Power
HDMI
a quick tour
Power
HDMI
Ethernet
a quick tour
Power
HDMI
Ethernet
USB
a quick tour
Audio
Power
HDMI
Ethernet
USB
a quick tour
Audio
Video
Power
HDMI
Ethernet
USB
a quick tour
Audio
Video
Power
GPIO
HDMI
Ethernet
USB
a quick tour
Audio
Video
Power
GPIO
SD
HDMI
Ethernet
USB
cables and accessories
putting it all together
putting it all together
flashing an SD card
• You may have purchased a pre-
installed card
• Otherwise, you will need to
– Download an image and a copy of
the tool dd-removable from
www.element14.com/raspberrypi
– Flash the image onto a 2GB SD
card from a Windows PC
• Insert the card into a card reader
• At a command prompt, type
– dd-removable --list
– dd-removable bs=1M if=sd.img of= ?DeviceHarddisk<X>Partition0 -progress
– Substituting the appropriate number for <X>
flashing an SD card
flashing an SD card
• You may have purchased a pre-
installed card
• Otherwise, you will need to
– Download an image and a copy of
the tool dd-removable from
www.element14.com/raspberrypi
– Flash the image onto a 2GB SD
card from a Windows PC
• Insert the card into a card reader
• At a command prompt, type
– dd-removable --list
– dd-removable bs=1M if=sd.img of= ?DeviceHarddisk<X>Partition0 -progress
– Substituting the appropriate number for <X>
logging in for the first time
• Insert a card
• Apply power to the device
• Red LED should come on
• After 5 seconds
– Green LED should begin to flicker
– Text should appear on the screen– Text should appear on the screen
• At the login prompt
enter the username pi, and
password raspberry
• You may want to set the clock!
logging in for the first time
logging in for the first time
• Insert a card
• Apply power to the device
• Red LED should come on
• After 5 seconds
– Green LED should begin to flicker
– Text should appear on the screen– Text should appear on the screen
• At the login prompt
enter the username pi, and
password raspberry
• You may want to set the clock!
the JOE text editor
• Standard image bundles JOE
– Simple programmer’s text editor
– Syntax highlighting for Python and C
• At the command line, type
joe helloworld.py
• When the editor appears, type• When the editor appears, type
print “hello world”
• Now type Ctrl+K and then X to
save and exit
• More documentation available at
http://joe-editor.sourceforce.net
the JOE text editor
the JOE text editor
• Standard image bundles JOE
– Simple programmer’s text editor
– Syntax highlighting for Python and C
• At the command line, type
joe helloworld.py
• When the editor appears, type• When the editor appears, type
print “hello world”
• Now type Ctrl+K and then X to
save and exit
• More documentation available at
http://joe-editor.sourceforce.net
running the “hello world” program
• We just wrote our first program!
• We can run it using the bundled
Python interpreter
• At the command line, type
python helloworld.py
• The text “hello world” will appear• The text “hello world” will appear
• You can also run Python in
“interactive mode” by just typing
python
• A great way to experiment with
the language
running the “hello world” program
running the “hello world” program
• We just wrote our first program!
• We can run it using the bundled
Python interpreter
• At the command line, type
python helloworld.py
• The text “hello world” will appear• The text “hello world” will appear
• You can also run Python in
“interactive mode” by just typing
python
• A great way to experiment with
the language
a (slightly) more complex program
• A series of examples, building up to a simple game of Snake, can be
downloaded and unpacked by typing
wget http://www.raspberrypi.org/game.tar.gz
tar xvfz game.tar.gz
a (slightly) more complex program
a (slightly) more complex program
a (slightly) more complex program
• A series of examples, building up to a simple game of Snake, can be
downloaded and unpacked by typing
wget http://www.raspberrypi.org/game.tar.gz
tar xvfz game.tar.gz
an OpenGL ES graphics program in C
• Raspberry Pi incorporates a
powerful graphics accelerator
• We bundle a simple example
– Written in C, using OpenGL ES
– Source can be found in
/opt/vc/src/hello_pi/hello_triangle/opt/vc/src/hello_pi/hello_triangle
• To run the example
– Change directory using cd
– Build it using make
– Run it by typing ./hello_triangle.bin
• Try editing the source and the
makefile using JOE
an OpenGL ES graphics program in C
an OpenGL ES graphics program in C
• Raspberry Pi incorporates a
powerful graphics accelerator
• We bundle a simple example
– Written in C, using OpenGL ES
– Source can be found in
/opt/vc/src/hello_pi/hello_triangle/opt/vc/src/hello_pi/hello_triangle
• To run the example
– Change directory using cd
– Build it using make
– Run it by typing ./hello_triangle.bin
• Try editing the source and the
makefile using JOE
an OpenGL ES graphics program in C
• More complicated examples available online, including Quake 3 at
https://github.com/raspberrypi/quake3
an OpenGL ES graphics program in C
an OpenGL ES graphics program in C
an OpenGL ES graphics program in C
• More complicated examples available online, including Quake 3 at
https://github.com/raspberrypi/quake3
the configuration file (advanced users)
• At startup, Raspberry Pi reads
config.txt from the SD card
– Controls display and overclocking
– Edit from a PC or on device using
joe /boot/config.txt
• Common options include
• A typical configuration file
# select 16:9 PAL
sdtv_mode=2
sdtv_aspect=3
• Common options include
– arm_freq set ARM clock speed
– gpu_freq set GPU clock speed
– sdtv_mode select PAL/NTSC
– hdmi_mode force HDMI resolution
– overscan_* set screen border
• Very easy to break your install
# medium size borders
overscan_left=28
overscan_right=28
overscan_top=16
overscan_bottom=16
wrap up
• We’ve seen how to
– Set up, boot and configure your Raspberry Pi
– Create and edit text files using the JOE editor
– Run a simple Python script
– Download and unpack more examples
– Build and run one of the bundled C programs– Build and run one of the bundled C programs
• Remember Raspberry Pi is just a GNU/Linux box
– Many books and online tutorials available
• Don’t be afraid to play around with software
– At worst you’ll have to reflash your SD card

Weitere ähnliche Inhalte

Was ist angesagt?

Python in raspberry pi
Python in raspberry piPython in raspberry pi
Python in raspberry piSudar Muthu
 
Introduction to Raspberry Pi and GPIO
Introduction to Raspberry Pi and GPIOIntroduction to Raspberry Pi and GPIO
Introduction to Raspberry Pi and GPIOKris Findlay
 
Console development
Console developmentConsole development
Console developmentspartasoft
 
Raspberry Pi and Amateur Radio
Raspberry Pi and Amateur RadioRaspberry Pi and Amateur Radio
Raspberry Pi and Amateur RadioKevin Hooke
 
Exploring the abc's of raspberry pi and python(day 2)
Exploring the abc's of raspberry pi and python(day 2)Exploring the abc's of raspberry pi and python(day 2)
Exploring the abc's of raspberry pi and python(day 2)Shahed Mehbub
 
Exploring the ABC's of Raspberry Pi with Python
Exploring the ABC's of Raspberry Pi with PythonExploring the ABC's of Raspberry Pi with Python
Exploring the ABC's of Raspberry Pi with PythonShahed Mehbub
 
Coffee & Pi - Everything RetroPie
Coffee & Pi - Everything RetroPieCoffee & Pi - Everything RetroPie
Coffee & Pi - Everything RetroPieBrad ☼ Derstine
 
Up and running with Raspberry Pi
Up and running with Raspberry PiUp and running with Raspberry Pi
Up and running with Raspberry PiShahed Mehbub
 
Getting Started with Raspberry Pi and Arduino
Getting Started with Raspberry Pi and ArduinoGetting Started with Raspberry Pi and Arduino
Getting Started with Raspberry Pi and ArduinoChad Mairn
 
My presentation raspberry pi
My presentation raspberry piMy presentation raspberry pi
My presentation raspberry piHusainBhaldar21
 
Connecting Hardware to the Web with the BeagleBone
Connecting Hardware to the Web with the BeagleBoneConnecting Hardware to the Web with the BeagleBone
Connecting Hardware to the Web with the BeagleBoneFrank Hunleth
 
Taking the BeagleBone Cookbook recipes beyond BeagleBone Black
Taking the BeagleBone Cookbook recipes beyond BeagleBone BlackTaking the BeagleBone Cookbook recipes beyond BeagleBone Black
Taking the BeagleBone Cookbook recipes beyond BeagleBone BlackDrew Fustini
 
introduction to Raspberry pi
introduction to Raspberry piintroduction to Raspberry pi
introduction to Raspberry piluckyanks1992
 
Hadoop on raspberry pi PART 1
Hadoop on raspberry pi PART 1Hadoop on raspberry pi PART 1
Hadoop on raspberry pi PART 1Aniket Maithani
 
Raspberry Pi, Arduino and the Maker Movement
Raspberry Pi, Arduino and the Maker MovementRaspberry Pi, Arduino and the Maker Movement
Raspberry Pi, Arduino and the Maker Movementsrmonk
 
Interfacing the Raspberry Pi to the World
Interfacing the Raspberry Pi to the WorldInterfacing the Raspberry Pi to the World
Interfacing the Raspberry Pi to the WorldOmer Kilic
 
Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...
Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...
Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...Maarten Balliauw
 

Was ist angesagt? (19)

Python in raspberry pi
Python in raspberry piPython in raspberry pi
Python in raspberry pi
 
Introduction to Raspberry Pi and GPIO
Introduction to Raspberry Pi and GPIOIntroduction to Raspberry Pi and GPIO
Introduction to Raspberry Pi and GPIO
 
Console development
Console developmentConsole development
Console development
 
Raspberry Pi and Amateur Radio
Raspberry Pi and Amateur RadioRaspberry Pi and Amateur Radio
Raspberry Pi and Amateur Radio
 
Exploring the abc's of raspberry pi and python(day 2)
Exploring the abc's of raspberry pi and python(day 2)Exploring the abc's of raspberry pi and python(day 2)
Exploring the abc's of raspberry pi and python(day 2)
 
Raspberry
RaspberryRaspberry
Raspberry
 
Exploring the ABC's of Raspberry Pi with Python
Exploring the ABC's of Raspberry Pi with PythonExploring the ABC's of Raspberry Pi with Python
Exploring the ABC's of Raspberry Pi with Python
 
Coffee & Pi - Everything RetroPie
Coffee & Pi - Everything RetroPieCoffee & Pi - Everything RetroPie
Coffee & Pi - Everything RetroPie
 
Up and running with Raspberry Pi
Up and running with Raspberry PiUp and running with Raspberry Pi
Up and running with Raspberry Pi
 
Getting Started with Raspberry Pi and Arduino
Getting Started with Raspberry Pi and ArduinoGetting Started with Raspberry Pi and Arduino
Getting Started with Raspberry Pi and Arduino
 
My presentation raspberry pi
My presentation raspberry piMy presentation raspberry pi
My presentation raspberry pi
 
Connecting Hardware to the Web with the BeagleBone
Connecting Hardware to the Web with the BeagleBoneConnecting Hardware to the Web with the BeagleBone
Connecting Hardware to the Web with the BeagleBone
 
Taking the BeagleBone Cookbook recipes beyond BeagleBone Black
Taking the BeagleBone Cookbook recipes beyond BeagleBone BlackTaking the BeagleBone Cookbook recipes beyond BeagleBone Black
Taking the BeagleBone Cookbook recipes beyond BeagleBone Black
 
introduction to Raspberry pi
introduction to Raspberry piintroduction to Raspberry pi
introduction to Raspberry pi
 
Hadoop on raspberry pi PART 1
Hadoop on raspberry pi PART 1Hadoop on raspberry pi PART 1
Hadoop on raspberry pi PART 1
 
Raspberry Pi, Arduino and the Maker Movement
Raspberry Pi, Arduino and the Maker MovementRaspberry Pi, Arduino and the Maker Movement
Raspberry Pi, Arduino and the Maker Movement
 
Interfacing the Raspberry Pi to the World
Interfacing the Raspberry Pi to the WorldInterfacing the Raspberry Pi to the World
Interfacing the Raspberry Pi to the World
 
Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...
Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...
Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...
 
Presentazione
PresentazionePresentazione
Presentazione
 

Andere mochten auch (12)

MagPi48
MagPi48MagPi48
MagPi48
 
The mag pi_issue_8
The mag pi_issue_8The mag pi_issue_8
The mag pi_issue_8
 
Instalar twonky En Synology
Instalar twonky En SynologyInstalar twonky En Synology
Instalar twonky En Synology
 
Mag pi18 Citation "PhotoReportage"
Mag pi18 Citation "PhotoReportage"Mag pi18 Citation "PhotoReportage"
Mag pi18 Citation "PhotoReportage"
 
MagPi43
MagPi43MagPi43
MagPi43
 
Raspbian
RaspbianRaspbian
Raspbian
 
MagPi51
MagPi51MagPi51
MagPi51
 
Raspberry Pi ® User Guide
Raspberry Pi ® User GuideRaspberry Pi ® User Guide
Raspberry Pi ® User Guide
 
The mag pi-issue-28-en
The mag pi-issue-28-enThe mag pi-issue-28-en
The mag pi-issue-28-en
 
MagPi47
MagPi47MagPi47
MagPi47
 
"Are you what you sign? " Arnaud Velten Interview for Cyber Security Trends ...
 "Are you what you sign? " Arnaud Velten Interview for Cyber Security Trends ... "Are you what you sign? " Arnaud Velten Interview for Cyber Security Trends ...
"Are you what you sign? " Arnaud Velten Interview for Cyber Security Trends ...
 
HOME AUTOMATION USING ARDUINO
HOME AUTOMATION USING ARDUINOHOME AUTOMATION USING ARDUINO
HOME AUTOMATION USING ARDUINO
 

Ähnlich wie Programming the Raspberry Pi element14

Ähnlich wie Programming the Raspberry Pi element14 (20)

Starting Raspberry Pi
Starting Raspberry PiStarting Raspberry Pi
Starting Raspberry Pi
 
Polstra 44con2012
Polstra 44con2012Polstra 44con2012
Polstra 44con2012
 
Hacking and Forensics on the Go - 44CON 2012
Hacking and Forensics on the Go - 44CON 2012Hacking and Forensics on the Go - 44CON 2012
Hacking and Forensics on the Go - 44CON 2012
 
The Deck by Phil Polstra GrrCON2012
The Deck by Phil Polstra GrrCON2012The Deck by Phil Polstra GrrCON2012
The Deck by Phil Polstra GrrCON2012
 
Raspberry pi
Raspberry piRaspberry pi
Raspberry pi
 
Raspberry pi complete setup
Raspberry pi complete setupRaspberry pi complete setup
Raspberry pi complete setup
 
Raspbeery Pi : An Introduction
Raspbeery Pi : An IntroductionRaspbeery Pi : An Introduction
Raspbeery Pi : An Introduction
 
Introduction To Raspberry Pi with Simple GPIO pin Control
Introduction To Raspberry Pi with Simple GPIO pin ControlIntroduction To Raspberry Pi with Simple GPIO pin Control
Introduction To Raspberry Pi with Simple GPIO pin Control
 
Feature satip4
Feature satip4Feature satip4
Feature satip4
 
Feature satip4
Feature satip4Feature satip4
Feature satip4
 
Feature satip4
Feature satip4Feature satip4
Feature satip4
 
Feature satip4
Feature satip4Feature satip4
Feature satip4
 
Feature satip4
Feature satip4Feature satip4
Feature satip4
 
Tac Presentation October 72014- Raspberry PI
Tac Presentation October 72014- Raspberry PITac Presentation October 72014- Raspberry PI
Tac Presentation October 72014- Raspberry PI
 
introduction to Raspberry pi
introduction to Raspberry pi introduction to Raspberry pi
introduction to Raspberry pi
 
Beagle board101 esc-boston-2009b
Beagle board101 esc-boston-2009bBeagle board101 esc-boston-2009b
Beagle board101 esc-boston-2009b
 
Raspberry Pi introduction
Raspberry Pi introductionRaspberry Pi introduction
Raspberry Pi introduction
 
Feature satip4
Feature satip4Feature satip4
Feature satip4
 
Feature satip4
Feature satip4Feature satip4
Feature satip4
 
Porting To Symbian
Porting To SymbianPorting To Symbian
Porting To Symbian
 

Kürzlich hochgeladen

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 

Kürzlich hochgeladen (20)

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 

Programming the Raspberry Pi element14

  • 1. Programming the Raspberry Pi Dr Eben Upton Raspberry Pi Foundation
  • 2. contents • introduction • unboxing and setup • flashing an SD card • logging in for the first time • the JOE text editor • running the “hello world” program• running the “hello world” program • a (slightly) more complex example • an OpenGL ES graphics program in C • the configuration file • wrap up
  • 3. introduction • Raspberry Pi is a small, cheap ARM-based PC for education and hobbyists • Runs Debian GNU/Linux from an SD card – Standard image available from Feature Specification CPU 700MHz ARM1176-JZFS GPU Broadcom VideoCore IV Memory 256MB LPDDR2-800 Video HDMI, composite Audio HDMI, stereo analog – Standard image available from http://www.element14.com – Includes a broad range of tools and examples • General-purpose IO connector allows simple interfacing Audio HDMI, stereo analog USB 2 x USB2.0 (model B) Storage SD card Networking 10/100 Ethernet Power 5V micro USB
  • 15. putting it all together
  • 16. putting it all together
  • 17. flashing an SD card • You may have purchased a pre- installed card • Otherwise, you will need to – Download an image and a copy of the tool dd-removable from www.element14.com/raspberrypi – Flash the image onto a 2GB SD card from a Windows PC • Insert the card into a card reader • At a command prompt, type – dd-removable --list – dd-removable bs=1M if=sd.img of= ?DeviceHarddisk<X>Partition0 -progress – Substituting the appropriate number for <X>
  • 19. flashing an SD card • You may have purchased a pre- installed card • Otherwise, you will need to – Download an image and a copy of the tool dd-removable from www.element14.com/raspberrypi – Flash the image onto a 2GB SD card from a Windows PC • Insert the card into a card reader • At a command prompt, type – dd-removable --list – dd-removable bs=1M if=sd.img of= ?DeviceHarddisk<X>Partition0 -progress – Substituting the appropriate number for <X>
  • 20. logging in for the first time • Insert a card • Apply power to the device • Red LED should come on • After 5 seconds – Green LED should begin to flicker – Text should appear on the screen– Text should appear on the screen • At the login prompt enter the username pi, and password raspberry • You may want to set the clock!
  • 21. logging in for the first time
  • 22. logging in for the first time • Insert a card • Apply power to the device • Red LED should come on • After 5 seconds – Green LED should begin to flicker – Text should appear on the screen– Text should appear on the screen • At the login prompt enter the username pi, and password raspberry • You may want to set the clock!
  • 23. the JOE text editor • Standard image bundles JOE – Simple programmer’s text editor – Syntax highlighting for Python and C • At the command line, type joe helloworld.py • When the editor appears, type• When the editor appears, type print “hello world” • Now type Ctrl+K and then X to save and exit • More documentation available at http://joe-editor.sourceforce.net
  • 24. the JOE text editor
  • 25. the JOE text editor • Standard image bundles JOE – Simple programmer’s text editor – Syntax highlighting for Python and C • At the command line, type joe helloworld.py • When the editor appears, type• When the editor appears, type print “hello world” • Now type Ctrl+K and then X to save and exit • More documentation available at http://joe-editor.sourceforce.net
  • 26. running the “hello world” program • We just wrote our first program! • We can run it using the bundled Python interpreter • At the command line, type python helloworld.py • The text “hello world” will appear• The text “hello world” will appear • You can also run Python in “interactive mode” by just typing python • A great way to experiment with the language
  • 27. running the “hello world” program
  • 28. running the “hello world” program • We just wrote our first program! • We can run it using the bundled Python interpreter • At the command line, type python helloworld.py • The text “hello world” will appear• The text “hello world” will appear • You can also run Python in “interactive mode” by just typing python • A great way to experiment with the language
  • 29. a (slightly) more complex program • A series of examples, building up to a simple game of Snake, can be downloaded and unpacked by typing wget http://www.raspberrypi.org/game.tar.gz tar xvfz game.tar.gz
  • 30. a (slightly) more complex program
  • 31. a (slightly) more complex program
  • 32. a (slightly) more complex program • A series of examples, building up to a simple game of Snake, can be downloaded and unpacked by typing wget http://www.raspberrypi.org/game.tar.gz tar xvfz game.tar.gz
  • 33. an OpenGL ES graphics program in C • Raspberry Pi incorporates a powerful graphics accelerator • We bundle a simple example – Written in C, using OpenGL ES – Source can be found in /opt/vc/src/hello_pi/hello_triangle/opt/vc/src/hello_pi/hello_triangle • To run the example – Change directory using cd – Build it using make – Run it by typing ./hello_triangle.bin • Try editing the source and the makefile using JOE
  • 34. an OpenGL ES graphics program in C
  • 35. an OpenGL ES graphics program in C • Raspberry Pi incorporates a powerful graphics accelerator • We bundle a simple example – Written in C, using OpenGL ES – Source can be found in /opt/vc/src/hello_pi/hello_triangle/opt/vc/src/hello_pi/hello_triangle • To run the example – Change directory using cd – Build it using make – Run it by typing ./hello_triangle.bin • Try editing the source and the makefile using JOE
  • 36. an OpenGL ES graphics program in C • More complicated examples available online, including Quake 3 at https://github.com/raspberrypi/quake3
  • 37. an OpenGL ES graphics program in C
  • 38. an OpenGL ES graphics program in C
  • 39. an OpenGL ES graphics program in C • More complicated examples available online, including Quake 3 at https://github.com/raspberrypi/quake3
  • 40. the configuration file (advanced users) • At startup, Raspberry Pi reads config.txt from the SD card – Controls display and overclocking – Edit from a PC or on device using joe /boot/config.txt • Common options include • A typical configuration file # select 16:9 PAL sdtv_mode=2 sdtv_aspect=3 • Common options include – arm_freq set ARM clock speed – gpu_freq set GPU clock speed – sdtv_mode select PAL/NTSC – hdmi_mode force HDMI resolution – overscan_* set screen border • Very easy to break your install # medium size borders overscan_left=28 overscan_right=28 overscan_top=16 overscan_bottom=16
  • 41. wrap up • We’ve seen how to – Set up, boot and configure your Raspberry Pi – Create and edit text files using the JOE editor – Run a simple Python script – Download and unpack more examples – Build and run one of the bundled C programs– Build and run one of the bundled C programs • Remember Raspberry Pi is just a GNU/Linux box – Many books and online tutorials available • Don’t be afraid to play around with software – At worst you’ll have to reflash your SD card