Raspberry Pi
(→Python) |
(→Python) |
||
Řádka 55: | Řádka 55: | ||
== Python == | == Python == | ||
− | sudo apt-get install python-rpi.gpio python3-rpi.gpio | + | install GPIO: sudo apt-get install python-rpi.gpio python3-rpi.gpio |
+ | |||
+ | Running the Script: sudo python blinker.py | ||
+ | |||
[[Soubor:RpiPython_03_PINOUT.png|300px|right]] | [[Soubor:RpiPython_03_PINOUT.png|300px|right]] | ||
Řádka 96: | Řádka 99: | ||
GPIO.setup(ledPin, GPIO.OUT) # LED pin set as output GPIO.setup(23, GPIO.OUT) | GPIO.setup(ledPin, GPIO.OUT) # LED pin set as output GPIO.setup(23, GPIO.OUT) | ||
GPIO.setup(butPin, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Button pin set as input w/ pull-up | GPIO.setup(butPin, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Button pin set as input w/ pull-up | ||
+ | GPIO.setup(butPin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) # Button pin set as input w/ pull-down | ||
# Initial state for LEDs: | # Initial state for LEDs: | ||
Řádka 101: | Řádka 105: | ||
GPIO.output(ledPin, GPIO.HIGH) # GPIO.output(23, 1) = GPIO.output(23, True) | GPIO.output(ledPin, GPIO.HIGH) # GPIO.output(23, 1) = GPIO.output(23, True) | ||
+ | time.sleep(0.01) # wait 10 ms to give CPU chance to do other things | ||
− | + | while True: | |
− | + | ||
− | + | ||
− | + | ||
print("Here we go! Press CTRL+C to exit") | print("Here we go! Press CTRL+C to exit") | ||
try: | try: | ||
while 1: | while 1: | ||
if GPIO.input(butPin): # button is released | if GPIO.input(butPin): # button is released | ||
− | |||
GPIO.output(ledPin, GPIO.LOW) | GPIO.output(ledPin, GPIO.LOW) | ||
+ | |||
else: # button is pressed: | else: # button is pressed: | ||
− | |||
GPIO.output(ledPin, GPIO.HIGH) | GPIO.output(ledPin, GPIO.HIGH) | ||
time.sleep(0.075) | time.sleep(0.075) | ||
GPIO.output(ledPin, GPIO.LOW) | GPIO.output(ledPin, GPIO.LOW) | ||
time.sleep(0.075) | time.sleep(0.075) | ||
+ | |||
except KeyboardInterrupt: # If CTRL+C is pressed, exit cleanly: | except KeyboardInterrupt: # If CTRL+C is pressed, exit cleanly: | ||
− | |||
GPIO.cleanup() # cleanup all GPIO | GPIO.cleanup() # cleanup all GPIO | ||
+ | |||
</source> | </source> | ||
Verze z 5. 2. 2022, 09:57
NAG-IoE | |
http://www.youtube.com/user/RaspberryPiTutorials/videos http://www.youtube.com/user/RaspberryPiBeginners/videos?flow=grid&view=0 Soutěž NAG-IoE |
Obsah |
Raspberry Pi - Introduction
IoT UPJŠ
DU: shlédnou videa (alt. z jiných zdrojů) o Raspberry. https://youtu.be/fdBSbarhAUY https://youtu.be/0VwchnogzuQ Potvrďte splnění
VNC: ssh pi@192.168.1.238 ifconfig
sudo raspi.config
rasbian na PC
create.withcode.uk
Raspberry Pi Python GPIO Quick start guide
Python
install GPIO: sudo apt-get install python-rpi.gpio python3-rpi.gpio
Running the Script: sudo python blinker.py
import RPi.GPIO as GPIO from time import sleep GPIO.setwarnings(False) GPIO.setmode(GPIO.BOARD) GPIO.setup(18, GPIO.OUT, initial=GPIO.LOW) while True: GPIO.output (18, GPIO.HIGH) sleep(0.2) GPIO.output (18, GPIO.LOW) sleep (0.2)
# https://learn.sparkfun.com/tutorials/raspberry-gpio#python-rpigpio-example import RPi.GPIO as GPIO # External module imports import time # Pin Definitons: ledPin = 23 # GPIO 23 = pin 16 butPin = 17 # GPIO 17 = pin 11 # choose BOARD or BCM GPIO.setmode(GPIO.BCM) # BCM for GPIO numbering GPIO.setmode(GPIO.BOARD) # BOARD for header pin numbering GPIO.setwarnings(False) GPIO.setup(ledPin, GPIO.OUT) # LED pin set as output GPIO.setup(23, GPIO.OUT) GPIO.setup(butPin, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Button pin set as input w/ pull-up GPIO.setup(butPin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) # Button pin set as input w/ pull-down # Initial state for LEDs: GPIO.output(ledPin, GPIO.LOW) # GPIO.output(23, 0) = GPIO.output(23, False) GPIO.output(ledPin, GPIO.HIGH) # GPIO.output(23, 1) = GPIO.output(23, True) time.sleep(0.01) # wait 10 ms to give CPU chance to do other things while True: print("Here we go! Press CTRL+C to exit") try: while 1: if GPIO.input(butPin): # button is released GPIO.output(ledPin, GPIO.LOW) else: # button is pressed: GPIO.output(ledPin, GPIO.HIGH) time.sleep(0.075) GPIO.output(ledPin, GPIO.LOW) time.sleep(0.075) except KeyboardInterrupt: # If CTRL+C is pressed, exit cleanly: GPIO.cleanup() # cleanup all GPIO
Wiring Pi
Blink
#include <wiringPi.h> int main (void) { wiringPiSetup () ; pinMode (0, OUTPUT) ; for (;;) { digitalWrite (0, HIGH) ; delay (500) ; digitalWrite (0, LOW) ; delay (500) ; } return 0 ; }
To compile and run:
gcc -Wall -o blink blink.c -lwiringPi sudo ./blink
Set up the ports
How to use WiringPi2 for Python on the Raspberry Pi in Raspbian part 1
# GPIO port numbers import wiringpi2 as wiringpi wiringpi.wiringPiSetupGpio() wiringpi.pinMode(25, 0) # sets GPIO 25 to input wiringpi.pinMode(24, 1) # sets GPIO 24 to output wiringpi.pinMode(18, 2) # sets GPIO 18 to PWM mode # wiringpi numbers import wiringpi2 as wiringpi wiringpi.wiringPiSetup() wiringpi.pinMode(6, 0) # sets WP pin 6 to input wiringpi.pinMode(5, 1) # sets WP pin 5 to output wiringpi.pinMode(1, 2) # sets WP pin 1 to PWM mode # Physical P1 header pin numbers import wiringpi2 as wiringpi wiringPiSetupPhys() wiringpi.pinMode(22, 0) # sets P1 pin 22 to input wiringpi.pinMode(18, 1) # sets P1 pin 18 to output wiringpi.pinMode(12, 2) # sets P1 pin 12 to PWM mode
Raspberry Pi with 7-segment display
Python
https://pypi.python.org/pypi/RPi.GPIO
/opt/nagioe/python_demo/blink.py /opt/nagioe/python_demo/push.py
blink.py
import RPi.GPIO as GPIO import time # blinking function def blink(pin): GPIO.output(pin,GPIO.HIGH) time.sleep(1) GPIO.output(pin,GPIO.LOW) time.sleep(1) return # to use Raspberry Pi board pin numbers GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) # set up GPIO output channel GPIO.setup(11, GPIO.OUT) # blink GPIO17 50 times for i in range(0,50): blink(11) GPIO.cleanup()
push.py
import RPi.GPIO as GPIO import time print GPIO.RPI_REVISION print GPIO.VERSION GPIO.setmode(GPIO.BOARD) pin=40 GPIO.setup(pin, GPIO.IN) GPIO.setup(pin, GPIO.IN, pull_up_down=GPIO.PUD_UP) while (1): print GPIO.input(pin) time.sleep(0.5) #GPIO.output(pin, False) GPIO.cleanup()
Control LED
import RPi.GPIO as GPIO import time # blinking function def blink(pin, pin2): GPIO.output(pin,GPIO.HIGH) time.sleep(0.1) GPIO.output(pin,GPIO.LOW) time.sleep(0.1) GPIO.output(pin2,GPIO.HIGH) time.sleep(0.1) GPIO.output(pin2,GPIO.LOW) time.sleep(0.1) return # to use Raspberry Pi board pin numbers GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) # set up GPIO output channel GPIO.setup(11, GPIO.OUT) GPIO.setup(13, GPIO.OUT) GPIO.setup(40, GPIO.IN, pull_up_down=GPIO.PUD_UP) blink(11, 13) while (1): if GPIO.input(40) == 0: blink(11, 13) time.sleep(0.1) GPIO.cleanup()
Turn LED
source: http://engr.uconn.edu/~song/classes/nes/RPi.pdf
import RPi.GPIO as GPIO import time def main(): GPIO.cleanup() GPIO.setmode(GPIO.BOARD) # to use Raspberry Pi board pin numbers GPIO.setup(11, GPIO.OUT) # set up GPIO output channel while True: GPIO.output(11, GPIO.LOW) # set RPi board pin 11 low. Turn off LED. time.sleep(1) GPIO.output(11, GPIO.HIGH) # set RPi board pin 11 high. Turn on LED. time.sleep(2) main()
RaspBian
Username: pi, password: NAGIoE2015
Re-mapping Keyboard: XKBLAYOUT=”gb” Change “gb” to “us”
sudo vi /etc/default/keyboard
Start the desktop by typing: (http://engr.uconn.edu/~song/classes/nes/RPi.pdf)
startx
Booting your Raspberry Pi for the first time
sudo raspi-config
Update apt-get package index files:
sudo apt-get update
Install SSH:
sudo apt-get install ssh
Start SSH server:
sudo /etc/init.d/ssh start
To start the SSH server every time the Pi boots up:
sudo update-rc.d ssh defaults
How To Autostart Apps In Rasbian LXDE Desktop
sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
Auto-run Python Scripts
@/usr/bin/python /home/pi/example.py