NAG-IoE: Porovnání verzí

Z MediaWiki SPŠ a VOŠ Písek
Skočit na navigaci Skočit na vyhledávání
Řádek 52: Řádek 52:
== Wiring Pi ==
== Wiring Pi ==


http://wiringpi.com/examples/blink/
{{#widget:YouTube|id=J6KsTz6hjfU|height=270|width=360|Popis|right}}
 
===[http://wiringpi.com/examples/blink/ Blink]===


[[Soubor:RB_LED.png|200px|link=http://wiringpi.com/examples/blink/]]
[[Soubor:RB_LED.png|200px|link=http://wiringpi.com/examples/blink/]]

Verze z 1. 11. 2015, 17:25

Raspberry Pi

Pomůcky:

Raspberry Pi 2

  • paměť 8GB
  • napájecí adaptér 5V, 2A
  • nepájivé pole
  • stabilizovaný zdroj pro nepájivé pole
  • napájecí adaptér pro nepájivé pole
  • propojovací kabely
  • WiFi modul ESP8266

WiFi modul ESP8266

  • pouzdro pro dvě AA baterie
  • barevné a RGB LED
  • teplotní čidlo DS18B20

DS18B20

  • teplotní čidlo s vlhkoměrem DHT11

DHT11

  • světelné čidlo
  • pohybové čidlo HC-SR501

HC-SR501

  • krokový motor

krokový motor

  • LCD display
  • mikrospínače
  • potenciometr
  • odpory 330 a 4k7 ohmů

Základní informace o soutěži

Jedná se o novou kategorii s možností hlavní výhry 20.000,- Kč. Název této nové kategorie je NAG-IoE (Networking Academy Games - Internet of Everything) v již 11. ročníku soutěže NAG. Tato nová kategorie je zaměřena na nejnovější trend v počítačovém světě a to Internet všech věcí. Jedná se o podporu a zatraktivnění výuky pro studenty zaměřené nejen na počítačové sítě ale i obecněji na základy elektroniky a operační systém Linux. Více: http://www.netacad-games.cz/ioe

  • 6 kol soutěže. Start 1.11.2015
  • každý tým vytvoří video představující tým, dále pak videa a PDF v každém kole soutěže
  • nejlepší tým v daném kole může získat další zajímavý rozšiřující HW
  • bonusové body za celoroční projekt (bez zadání, téma i obsah dle uvážení týmu)
  • 19.3.2016 Cisco Praha

1. tým

  1. Linhart Tomáš B2
  2. Hanušová Monika B2
  3. Frček Pavel B2

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

www

http://www.netacad-games.cz/nag-ioe-workshop

http://www.i-com-unity.cz/ioe

http://engr.uconn.edu/~song/classes/nes/RPi.pdf