Programmeren van de Raspberry Pi

Slides:



Advertisements
Verwante presentaties
Motorsturing met de Arduino
Advertisements

Embedded systemen Embedded software.
™.
Moederbord en blu-ray.
Home Automation met “X10“
Didactisch bord: Led RGB
De PROFIBUS, PROFINET & IO-Link dag 2011
HCC PC gebruikersgroep: Practical Electronics, Maarssenbroek I2CI2CI2CI2C Wat kun je ermee?
Wat is DALI? Digital Addressable Lighting Interface
Arduino project.
1 Device driver. 2 Hardware Operating Systeem Prog1Prog2 System calls/ API Device drivers Gebruiker afschermen van de hardware.
Presentatie Thuisnetwerken
Door Ramòn Janssen, Tim Helwegen en Niels Killaars. Home Interaction System RJTHNK.
Input/Output Invoer/Uitvoer
ADuC8xx MICROCONVERTER
Les 5 - onderwerpen Aansturen van vier 7-segment displays
Over computers.
Workshop LabQuest Vernier en Logger Pro
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 6: Practicumprocessor invoer en uitvoer.
Digitale overzetting van beweging The mosFET strikes back.
PROS2 Les 6 Programmeren en Software Engineering 2.

Bestanden delen. Linux als NFS server  Traditionele manier van delen  Server zorgt voor exporteren van directories  Hierdoor worden directories “mountable”
Welkom. inhoud presentatie wat is een Micro Mouse controller motoren sensoren hardware software voeding leerwinst.
Mail: Jan Zuurbier  Mail:
1/1/ /e/e eindhoven university of technology OGO 1.2 project Startbijeenkomst Een microprocessor… …om warm voor te lopen.
Operating Systems Informatica.
Presentatie Stageplaats Roose Ben 7IC Inhoud -Bedrijf -Functie in het bedrijf -Stage activiteiten -Project/opdrachten bespreking : - Assemblage.
Moederbord en blu-ray.
Afstudeerproject ETHERFLOW:
Les 5: Zaterdag 29 maart 2014 Wim Peeters
Les 3: Zaterdag 7 juni 2014 Wim Peeters
Les 2: Zaterdag 24 mei 2014 Wim Peeters
Les 4: Zaterdag 22 maart 2014 Wim Peeters
Slimme meter en domotica met de Raspberry Pi
Etherflow Voor het aansluiten van een flowmeter op een Ethernet netwerk Afstudeerpresentatie Michel van der Net Elektrotechniek Avans Hogeschool Breda.
Les 3: Zaterdag 15 maart 2014 Wim Peeters
BIOS en Opstarten.
Les 1: Zaterdag 10 mei 2014 Wim Peeters
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Wouter van Ooijen Mail: Sheets en.
Robotica & ICT Formula Flowcode Robot
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1.
Les 1: Zaterdag 22 februari 2014 Wim Peeters
2TPRJ8 – hardware en ontwikkelomgeving Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Wouter van Ooijen Mail:
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Een embedded systeem: ARM bord.
Over Raspberry PI Wat is een Raspberry Wat kun je er mee
Embedded systemen Programmeren op de Arduino Les 5 analoge input en motoren.
EMSE 20 oktober 2015 Verlichting, het Internet of Things en ARM mbed 3.0 Klaas de Waal.
Apparaten laten praten Keuzecollege Robots in een rampgebied, 8 februari #MaakbareWereld.
Raspberry Pi de nieuw hype voor lage energie computers
Microcontrollers Labo
Welkom bij de presentatie van de Cube of Life, gemaakt door Team Z.
Virtualisatie 29 sept 2012 Een wegwerpcomputer met VirtualBox
Operating Systems Informatica.
PI-HOLE: NETWORK-WIDE, HARDWARE AD BLOCKING
Opdracht 13 - hondenkennel
3 Hardware 3.3 Moederbord, slots en bussen.
NLLGG Muziek maken met de Raspberry Pi
Gaming Console Gip.
Informatieverwerkende systemen
INGEBRUIKNAME & TESTEN
Embedded systemen Programmeren op de Arduino Les 1
INGEBRUIKNAME & TESTEN
Arduino Basis Training
DOMOTICA MEI MAAND Sander Claassen John Heesterbeek Ad van Berlo
Besturingssystemen Ga verder met een muisklik..
Eindproject informatica
Besturingssysteem.
Analog  Digital Conversion
Mini – 552 introductie Geschiedenis Hardware Bouwhandleiding
Transcript van de presentatie:

Programmeren van de Raspberry Pi Zaterdag 21 september 2013 De Bilt Johan Swenker http://ardezo.home.xs4all.nl/RPi_programmeren/

Agenda Inleiding Raspberry Pi GPIO Programmeren bash python scratch Interfaces I2C 1-Wire Z-Wave Security

Raspberry Pi ? Computer Raspbian (Debian Linux) Risc OS Klein credit card formaat Goedkoop $ 35 ~ € 40 Met GPIO General Purpose IO ARM processor zoals Android tablets

Home automation Meten + reageren = besturen Vroeger: printerpoort Nu: USB Of: GPIO van Raspberry Of: Arduino Soms gecombineerd Raspberry Pi + Arduino Arduino: real time afhandeling (busy waiting) Raspberry: complexe besturing en gebruikersinterface

GPIO general purpose IO Voorgedefinieerde pennen 0V, 3.3V, 5V, Transmit, Receive I2C, 1-Wire Vrijbeschikbare pennen GPIO 4, 17, 18, 8, 7 Naamgeving Pinnummer van connector P1 Broadcom documentatie van de SoC (System on Chip) http://elinux.org/RPi_Low-level_peripherals #Referring_to_pins_on_the_Expansion_header

GPIO Voordat je iets aansluit input maximaal 3.3V let met name op de 5V van pin 2 en 4 output maximaal 16 mA LED over 330 Ω weerstand mag motortje heeft een buffer nodig (ULN2003) totale output maximaal 50 mA http://www.thebox.myzen.co.uk/Raspberry/Understanding_Outputs.html http://cymplecy.wordpress.com/2013/04/22/scratchgpio2-using-motors

Hardware opstelling

Programmeren Schrijven (led laten knipperen) Eerst: GPIO pennetje definieren als output Dan: herhaaldelijk schrijven Pennetje 26 = GPIO 7 Lezen (schakelaar uitlezen) Eerst: GPIO pennetje definieren als input Dan: herhaaldelijk lezen Pennetje 24 = GPIO 8

Programmeren (bash) bash is de Linux command line interpreter als root in directory /sys/class/gpio werken GPIO 7 voor uitvoer echo "7" > /sys/class/gpio/export echo "out" > /sys/class/gpio/gpio7/direction led aan (1), led uit (0) echo "1" > /sys/class/gpio/gpio7/value echo "0" > /sys/class/gpio/gpio7/value

Programmeren (bash) Knipperen GPIO 8 voor invoer eenmalig lezen while sleep 0.5 do echo "1" > /sys/class/gpio/gpio7/value sleep 0.5 echo "0" > /sys/class/gpio/gpio7/value done GPIO 8 voor invoer echo "8" > /sys/class/gpio/export echo "in" > /sys/class/gpio/gpio8/direction eenmalig lezen cat /sys/class/gpio/gpio8/value

Programmeren (bash) herhaald lezen opruimen while sleep 0.1 do cat /sys/class/gpio/gpio8/value done opruimen echo "7" > /sys/class/gpio/unexport echo "8" > /sys/class/gpio/unexport

Programmeren (python) Pi in Raspberry Pi staat voor python http://nl.wikipedia.org/wiki/Python_%28programmeertaal %29 Standaard modules en bibliotheken keuze in naamgeving pennetjes meer functies RPi.GPIO standaard onderdeel van Raspbian http://code.google.com/p/raspberry-gpio- python/wiki/Examples WiringPi

Programmeren (python) import RPi.GPIO as GPIO # gebruik P1 pinbenamingen GPIO.setmode(GPIO.BOARD) # pen 26 voor uitvoer GPIO.setup(26, GPIO.OUT) # Uitvoer naar pen 26 GPIO.output(26, GPIO.HIGH) GPIO.output(26, GPIO.LOW) GPIO.cleanup()

Programmeren (python) import RPi.GPIO as GPIO # gebruik Broadcom GPIO 00..nn nummers GPIO.setmode(GPIO.BCM) # pen 26 = GPIO 7 voor uitvoer GPIO.setup(7, GPIO.OUT) # Uitvoer naar pen 26 = GPIO 7 GPIO.output(7, GPIO.HIGH) GPIO.output(7, GPIO.LOW) GPIO.cleanup()

Programmeren (python) blink.py knipperen http://www.rpiblog.com/2012/09/using-gpio-of- raspberry-pi-to-blink-led.html switch.py leest schakelaar uit (busy waiting) switch2.py leest schakelaar uit (interrupt) blink_pwm.py knipperen met PWM pulse width modulation 1 Hz, 50% duty cycle na 4 tellen: 1 Hz, 1% duty cycle demo_pwm.py fel licht / zacht licht met PWM 50 Hz, varierende duty cycle

Programmeren (scratch) Echt gericht op kinderen http://www.raspberrypi.org/archives/3755 GPIO toevoegen aan scratch volgens: http://cymplecy.wordpress.com/2013/04/22/scratch-gpio- version-2-introduction-for-beginners/

Programmeren Voorbeelden in andere talen http://elinux.org/RPi_Low-level_peripherals

LCD display Standaard HD4470 LCD display 16x2 tekens parallele aansturing per byte: 8+2 GPIO pennen per nibble: 4+2 GPIO pennen http://my-raspberrypi.de/#post-154 http://www.rpiblog.com/2012/11/interfac ing-16x2-lcd-with-raspberry-pi.html

I2C Standaard van Philips besturing tuners in TVs 4 draads bus HD4470 met aangekoppeld I2C interface gebruikt slechts 2 GPIO pennen SDA en SLC, pen 3 en 5 die al gereserveerd waren voor I2C Barometer BMP085 rampzalige codering in C-functie bmp085_GetPressure weggestopt ~/testBMP085 Bus Gelijktijdig gebruik is mogelijk Temperature 23.3 C Pressure 998.26 hPa

1-Wire Standaard van Dallas Truc: alle informatie door 1 draadje voorbeeld deze thermometer DS18B20 samples bij Maxim https://shop.maximintegrated.com of voor een paar euro op marktplaats En nog een draadje voor aarde En nog een draadje voor spanning Samen toch nog 3 draadjes

1-Wire thermometer Engelstalige uitleg http://www.cl.cam.ac.uk/projects/raspb errypi/tutorials/temperature/ ook LED en schakelaar als voorbeelden http://www.raspberrypi- spy.co.uk/2013/03/raspberry-pi-1-wire- digital-thermometer-sensor/

1-Wire thermometer kernel kent 1-Wire protocol en de 1-Wire thermometer resultaat in /sys/bus/w1/devices/ modules w1-gpio en wl-therm na elke reboot installeren met sudo modprobe w1-gpio sudo modprobe w1-therm of eenmalig toevoegen aan /etc/modules cd /sys/bus/w1/devices/ bus, dus meer devices zijn mogelijk ls cd 28-000004973c35 cat w1_slave 28-000004973c35 28-00000497adab w1_bus_master1 8f 01 4b 46 7f ff 01 10 14 : crc=14 YES 8f 01 4b 46 7f ff 01 10 14 t=24937

Z-Wave Z-Wave is een draadloos communicatie protocol ontworpen voor home automation RazBerry project

Z-Wave en dat ga ik nog leren

Beveiliging Voorkom dat anderen je Raspberry Pi kunnen besturen opvragen van de temperatuur, niet zo erg aanzetten verwarming, vervelend openen voordeur, erg ongewenst Applicaties die via internet werken, liever niet Apart netwerk, los van andere computers Air gap of air wall als firewall

Programmeren Raspberry Pi Deze presentatie staat op de CD en op http://ardezo.home.xs4all.nl/RPi_programmeren/ Informatie over de Raspberry Pi is te vinden op http://www.raspberrypi.org/ Informatie over de GPIO connector staat op http://elinux.org/RPi_Low-level_peripherals http://creativecommons.org/licenses/by/3.0/deed.nl