GPIO RaspberryPi Sejin Oh.

Slides:



Advertisements
Similar presentations
Python RaspberryPi Sejin Oh. Raspberry Pi Python  참과 거짓  Python 자료형의 참과 거짓을 구분 짓는 기준은 다음과 같다. 2 참과 거짓 자료형참 or 거짓 “” 가 아닌 문자열 ( 예 : “python”) 참 “” 거짓.
Advertisements

제어기 활용 -GPIO Ch.05 RaspberryPi Sejin Oh. Raspberry Pi 제어기 활용 -GPIO  GPIO (General Purpose Input Output)  마이크로프로세서가 주변장치와 통신하기 위해 범용으로 사용되는 입출력 포트 
시스템소프트웨어 김 영욱 양 오석. 목적  라즈베리파이에서 GPIO 를 이용하여 초음파 센서를 연결하고 거리를 측정해 일 정한 거리안에 사람이 들어오면 파이 카메라를 이용하여 사진을 찍고 데이터 베 이스에 올려 웹에서 사진을 보고 검색을.
성동구 성수동 지역 답사 및 투자가치 분석 1. 성수동 주요지표 및 재개발 개요 2. 뚝섬 서울숲 시민공원 개요와 영향 3. 신분당선 연장 노선과 영향 4. 성수동 랜드마크 아파트 동향 ( 롯데 캐슬, 현대 아이파크 ) 5. 성수동 지역 재개발 동향 ( 아파트, IT 공업단지,
고출력 LED를 이용한 UV GUN 팀장:김동근 팀원:김중호 노현우 손주암.
인적사항 기재요령 ▣ 주민등록번호, 주소 반드시 확인 (주민등록 등본과 일치 원칙)
강의 기법과 상황대처 경기도 마약퇴치운동본부 김이항 약사 10.
Vision System Lab, Sang-Hun Han
IoT(사물인터넷) 보안 2016년 2학기 3. 라즈베리파이 gpio.
IoT(사물인터넷) 보안 2016년 2학기 4. 라즈베리파이 카메라.
개발 환경 설치 Embedded System Software
ARDUINO (센서활용프로그래밍/ICT융합실무) - 아두이노 활용 > 전자 주사위 제작
아두이노 활용 SW코딩 시작하기 아두이노 소개 개발툴 다운로드 USB 드라이버 설치하기 개발툴 실행하기
PIC는 우리의 친구 한국정보통신대학교 디지털미디어연구소.
Smart IoT 설계 시스템 Lecture 07. 센서와 액츄에이터 실습.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 1-1 C 언어의 개론적 이야기 프로그래밍 언어란 무엇인가? 컴파일이란 무엇인가? 사람과 컴파일러가 이해할 수 있는 약속된 형태의 언어 C 언어도 프로그래밍 언어 중 하나이다. 컴파일이란 무엇인가? 프로그래밍.
IoT(사물인터넷) 보안 2016년 2학기 3. 라즈베리파이와 node.js.
아두이노 프로그래밍 1일차 – Part2 아두이노 사양 강사: 김영준 목원대학교 겸임교수.
BIG Data 컴퓨터응용과학부 박진완.
임베디드 프로그래밍 Lecture #
제5장 제어명령
GPIO RaspberryPi Sejin Oh.
누구나 즐기는 C언어 콘서트 제4장 수식과 연산자.
12. 아두이노와 센서를 이용한 제어 - 스마트 폰으로 제어하는 아두이노 -.
Raspberry Pi RaspberryPi Sejin Oh.
IPython Notebook + Spark + TensorFlow on Linux
연산자 대입 연산자 산술 연산자 관계 연산자 논리 연산자 비트 연산자 콤마 연산자 축약 연산자 sizeof 연산자
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
제 3 장 아두이노 무조건 따라하기 - 스마트 폰으로 제어하는 아두이노 -.
사물인터넷(IoT) 융합실습을 위한 교육용 실습장비
아두이노 프로그래밍 2일차 – Part4 아날로그 키패드 활용하기 강사: 김영준 목원대학교 겸임교수.
adopted from KNK C Programming : A Modern Approach
RPi2 SPI 8x8 Dot Matrix LED
컴퓨터의 기초 제 2강 - 변수와 자료형 , 연산자 2006년 3월 27일.
강의 소개, 자료구조의 개념, SW 개발과 자료구조
웹 서버 활용 RaspberryPi Sejin Oh.
Raspberry Pi GPIO PWM Servo Motor
컴퓨터 프로그래밍 기초 - 4th : 수식과 연산자 -
라즈베리파이 기초과정 (1차시) ㈜헬로앱스 강사: 김영준 목원대학교 겸임교수.
IoT(사물인터넷) 보안 2016년 2학기 3. 라즈베리파이와 node.js.
[CPA340] Algorithms and Practice Youn-Hee Han
제어문 & 반복문 C스터디 2주차.
2015년 2학기 PULSE 4 전자물리실험 09-Servo Motor 제어 - DSU 메카트로닉스 융합공학부 -
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
마이크로소프트 박종호.
운영체제 RaspberryPi Sejin Oh.
02강 아두이노 LED 기본 개념 LED Example1 LED Example2 LED Example3
디지털공학 및 실험 디지털 공학: 부울대수를 기반으로 하는 논리적인 회로의 입출력에 대하여 공부하고 이를 응용한 기능을 설계하는 과목. 부울대수: 참, 거짓 두 종류의 입력(출력)데이터와 AND, OR, NOT 등의 연산자사이의 관계를 정의해 놓은 학문분야. 값의 명칭:
[INA470] Java Programming Youn-Hee Han
8. 아두이노를 이용한 아날로그 제어 - 스마트 폰으로 제어하는 아두이노 -.
4. 아두이노로 LED 제어하기 - 스마트 폰으로 제어하는 아두이노 -.
Fflush 사용이유 및 방법 [이유] 키보드에서 입력된 내용은 입력버퍼에 저장되었다가 Enter 키가 들어오면 프로그램으로 전달됨 이 때 입력버퍼에 있는 Enter 키도 프로그램으로 전달됨 그러므로 아래와 같은 프로그램에서 문자 하나를 입력해도 Enter키도 입력된 것으로.
#1 배열 활용 #include int main(void) { int i; int grade[5]; grade[0] = 10; grade[1] = 20; grade[2] = 30; grade[3] = 40; grade[4] = 50; for(i=0;i.
-Part2- 제1장 1차원 배열이란 무엇인가.
6장 반복제어문 for 문 while 문 do while 문 기타 제어문.
18장. 다차원 배열 그리고 포인터.
-Part1- 제8장 조건문이란 무엇인가 (교재 199페이지 ~ 224페이지)
Command line tools 한국어 정보의 전산 처리
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express Slide 1 (of 25)
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express Slide 1 (of 28)
제1회 PNU 코딩경진대회 부산대학교 소프트웨어교육센터.
GDB - GNU Debugger 김진용.
코딩체험교실 아두이노 로봇 코딩 4차산업기술 체험 (SW코딩/자율주행기술).
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express.
1학기 정리 지난 학기에 배운 내용을 복습해 본다..
반복문의 기능 반복문 반복문 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장 while문
어서와 C언어는 처음이지 제16장.
인천SW교육지원센터 체험프로그램 라즈베리파이 이용 포토부스 만들기.
C.
3. Arduino 실습 – 아날로그 입력(1) 아날로그 입력 – 먼지 센서 먼지 센서 개요 먼지 센서 특징 먼지 검출 센서
Presentation transcript:

GPIO RaspberryPi Sejin Oh

GPIO

GPIO GPIO GPIO (General Purpose Input Output) 마이크로프로세서가 주변장치와 통신하기 위해 범용으로 사용되는 입출력 포트 입력과 출력을 마음대로 선택할 수 있고, 0과 1의 출력 신호를 임의로 만들어줄 수 있는 구조를 가진다. GPIO 라이브러리 라즈베리 파이의 GPIO를 제어할 수 있는 언어 C, C++, C#, Python Perl, Ruby, Java등 매우 다양함 각 언어에 따라 사용자들이 GPIO 라이브러리를 제작하여 공유하고 있다. wiringPi : 공개된 라이브러리 중 GPIO 제어 속도가 빠름

GPIO GPIO Raspberry Pi b+ GPIO 핀 배치

GPIO GPIO Library 설치 라즈베리 파이의 업데이트 및 업그레이드 실시 소스 관리 툴인 git을 다운로드 Git을 이용하여 “Wiring Pi” 라이브러리를 다운로드 $ sudo apt-get update $ sudo apt-get upgrade $ sudo apt-get install git-core $ git clone git://git.drogon.net/wiringPi

GPIO GPIO Library 설치 빌드 및 설치 진행 설치 확인 $ cd wiringPi $ ./build $ gpio -v 설치 확인 (예시) Gpio version: 2.08 Copyright © 2012-2013 Gordon Henderson This is free software with ABSOLUTELY NO WARRANTY For details type: gpio –warranty This Raspberry Pi is a reversion 2 board

GPIO GPIO 출력 테스트 GPIO의 출력을 이용하여 LED on/off 제어 테스트 LED 회로를 구성하여 GPIO에 High 값을 출력해주면 LED는 켜짐 GPIO에 Low 값을 출력하게 되면 LED는 꺼짐 LED 2개, 저항 220Ω 2개, GPIO 23번 핀 이용

GPIO GPIO 출력 테스트 작업 폴더 생성 및 이동 프로그램 작성 $ mkdir led $ cd led $ sudo nano led.c

GPIO GPIO 출력 테스트 #include <stdio.h> #include <wiringPi.h> #define LED 23 int main(void) {   if(wiringPiSetupGpio()==-1)     return 1;   pinMode(LED, OUTPUT);   while(1)   {     digitalWrite(LED, 1);     delay(500); // ms     digitalWrite(LED, 0);     delay(500);   }   return 0; }

GPIO GPIO 출력 테스트 프로그램 빌드 프로그램 실행 $ sudo gcc –o led led.c -lwiringPi $ sudo ./led

GPIO GPIO 출력 테스트 GPIO의 출력을 이용하여 LED on/off 제어 테스트 LED 회로를 구성하여 GPIO에 High 값을 출력해주면 LED는 켜짐 GPIO에 Low 값을 출력하게 되면 LED는 꺼짐 LED 2개, 저항 220Ω 2개, GPIO 23번 핀, 24번 핀 이용

GPIO GPIO 출력 테스트 작업 폴더 생성 및 이동 프로그램 작성 $ mkdir led2 $ cd led2 $ sudo nano led2.c

GPIO GPIO 출력 테스트 #include <stdio.h> #include <wiringPi.h> #define LED1 23 #define LED2 24 int main(void) {   if(wiringPiSetupGpio()==-1)     return 1;   pinMode(LED1, OUTPUT);   pinMode(LED2, OUTPUT);   while(1)   {     digitalWrite(LED1, 1);     digitalWrite(LED2, 1);     delay(500); // ms     digitalWrite(LED1, 0);     digitalWrite(LED2, 0);     delay(500);   }   return 0; }

GPIO GPIO 출력 테스트 프로그램 빌드 프로그램 실행 $ sudo gcc –o led2 led2.c -lwiringPi $ sudo ./led2

GPIO Five LED Lighting

GPIO Five LED Lighting 결과확인

GPIO 응용 – Five LED Lighting 5개의 LED 순차적으로 ON/OFF

응용 – Five LED Lighting – (1) GPIO 응용 – Five LED Lighting – (1) #include <stdio.h> #include <wiringPi.h> #define LED1 17 #define LED2 27 #define LED3 13 #define LED4 19 #define LED5 26 int main(void){ int i=1; if (wiringPiSetupGpio() == -1) return 1; pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT); pinMode(LED3, OUTPUT); pinMode(LED4, OUTPUT); pinMode(LED5, OUTPUT); printf("progress LED START\n”);

응용 – Five LED Lighting – (2) GPIO 응용 – Five LED Lighting – (2) for (;;i++){ switch (i){ case 1: digitalWrite(LED1, 1); delay(500); //i++; break; case 2: digitalWrite(LED2, 1); ///i++; case 3: digitalWrite(LED3, 1); case 4: digitalWrite(LED4, 1);

응용 – Five LED Lighting – (3) GPIO 응용 – Five LED Lighting – (3) case 5: digitalWrite(LED5, 1); delay(500); //i++; break; case 6: digitalWrite(LED1, 0); digitalWrite(LED2, 0); digitalWrite(LED3, 0); digitalWrite(LED4, 0); digitalWrite(LED5, 0); digitalWrite(LED1, 1); digitalWrite(LED2, 1); digitalWrite(LED3, 1); digitalWrite(LED4, 1);

응용 – Five LED Lighting – (4) GPIO 응용 – Five LED Lighting – (4) digitalWrite(LED1, 0); digitalWrite(LED2, 0); digitalWrite(LED3, 0); digitalWrite(LED4, 0); digitalWrite(LED5, 0); delay(500); i = 0; break; } return 0;

GPIO GPIO 출력 테스트 python을 이용한 LED on/off 테스트 $ sudo python import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) GPIO.setup(23, GPIO.OUT) GPIO.setup(24, GPIO.OUT) while (True): GPIO.output(23, True) GPIO.output(24, True) time.sleep(0.5) GPIO.output(23, False) GPIO.output(24, False)

GPIO GPIO 입력 테스트 스위치 회로 스위치의 on/off 신호에 따라 LED가 켜지고 꺼지는 실습 스위치에 10KΩ 연결

GPIO GPIO 입력 테스트 LED : 220Ω Button : 10KΩ 스위치 회로 - 회로도

GPIO GPIO 입력 테스트 프로그램 작성 작업 폴더로 이동 $ sudo cd ~/gpio $ sudo nano input.c pinMode(SW, INPUT); while(1) { digitalWrite(LED1, 0); digitalWrite(LED2, 0); if(digitalRead(SW) == 1) digitalWrite(LED1, 1); digitalWrite(LED2, 1); delay(1000); } return 0; #include <stdio.h> #include <wiringPi.h> #define LED1 23 //gpio 23 #define LED2 24 //gpio 24 #define SW 25 //gpio 25 int main(void) { if(wiringPiSetupGpio() == -1) return 1; pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT);

GPIO GPIO 입력 테스트 프로그램 작성 프로그램 빌드 프로그램 실행 $ sudo –o input input.c -lwiringPi 프로그램 실행 $ sudo ./input

GPIO 안전 종료를 위한 매크로 버튼 종료 버튼 실습에서는 GPIO 입력으로 23, 16번을 사용, 스위치에 10KΩ 연결

안전 종료를 위한 매크로 버튼 – buttonforhalt.c GPIO 안전 종료를 위한 매크로 버튼 – buttonforhalt.c #include <stdio.h> #include <wiringPi.h> #define BT1 23 #define BT2 16 int main(void){ if (wiringPiSetupGpio() == -1){ return 1; } pinMode(BT1, INPUT); pinMode(BT2, INPUT); while (1){ if (digitalRead(BT1) == 1){ printf("POWER OFF\n"); system("sudo poweroff"); delay(1000); } if (digitalRead(BT2) == 1){ printf("System Restart\n"); system("sudo reboot");