전체 글 152

#7 라즈베리파이 I2C 통신

//일시 : 2018.01.11 14:00 ~ 18:00내용 : I2C 조도센서, 온습도센서부저, 초음파, 소리내기 집에서 해보기// I2C 통신 (Inter Integrated Circuit)Inter Integrated CircuitI-Square-C 라고도 부르며 필립스에서 제안한 통신 방식두 개의 신호(SDA, SCL)를 사양하는 양방향 직렬 통신 방식하나의 Master, 다수의 Slave일반적으로 7-bits 주소 사용. 하나의 I2C 버스에 연결되는 개별 장치의 식별 용도로 활용세계 표준 프로토콜cpu 모듈 두 개의 선으로 여러 개의 디바이스를 제어하기 위한 인터페이스 (1:N 통신)하나의 Master와 다수의 Slave-> I2C 버스를 통해 많은 외부 장치들과 연결 OSDA(Serial D..

[Jongol] 기초다지기 : 반복제어문2

//일시 : 2018.01.04내용 : Jongol 반복제어문2// hw 소수 프로그램 num = input("# 양수 입력 : ") num = int(num) flag, count = 0, 0 str = '' ​ for i in range(2, num+1): if i == 2 : str += ("%3d " % i) count += 1 else : for j in range(2, i): if i % j == 0 : flag = 1 break flag = 0 ​ if flag == 0 : count += 1 if count % 5 == 0: str += ("%3d \n" % i) else : str += ("%3d " % i) print(str) 129 ※ base, height, width = 0, 0,..

[Python] 전등 관리 프로그램

//일시 : 2018.01.09 9 : 00 ~ 11 : 00내용 : 2018.01.08 클래스 예제 연습 후 나온 hw​수정// 전등 lightFixturelightFixtureList = [] 리스트에lF = lightFixture() 로 인스턴스 객체를 만든 후lightFixtureList.append(lF) 리스트 항목에 넣어줌리스트 안 객체의 변수에 접근하기 위해서 lightFixtureList[index].필드=> 결과적으로 lightFixtureList[0] 과 lF의 타입이 같음 class lightFixture : machineName = "" powerState = False ​ def setPowerOn(self): self.powerState = True def setPowerOff..

#6 라즈베리파이 PIR 센서 (움직임 감지)

//일시 : 2018.01.10 13:00 ~내용 : PIR Sensor// PIR(Passive Infrared) sensor물체에서 방출되거나 반사되는 적외선 파장의 움직임에 반응하는 센서24번 핀을 input으로 설정하여 주기적으로 검사 실습단순 움직임 감지 - 움직임을 감지하면 감지된 횟수를 출력 import RPi.GPIO as GPIO import time ​ GPIO.setmode(GPIO.BCM) ​ pir = 24 GPIO.setup(pir, GPIO.IN) ​ def loop(): cnt = 0 while True: cur_stat = GPIO.input(pir) if cur_stat == 1: cnt += 1 print("%d번 감지됨" % cnt) try : loop() except..

#5 라즈베리파이 GPIO 조이스틱

//일시 : 2018.01.10 10 : 20AM ~ 12 : 00PM내용 : 오전 파이썬 시험 후 GPIO 복습, 조이스틱.// GPIO 조이스틱4방향(up, down, left, right) 와 center 감지 O풀업 저항스위치를 눌렀을 경우(버튼이 감지될 경우) LOW 상태 => Low active입력 회로의 초기 상태를 HIGH로 해주기 위함.73HC14MTC : 채터링(high->low로 변할 때 전류가 순간적으로 요동치는 현상) 을 방지하기 위한 칩 풀업, 풀다운 저항전류는 전압도 중요하지만 전항이 있어야 한 방향으로 잘 흐를 수 있음MCU나 임베디드 시스템 구상 시, 버튼이나 스위치같은 물리적인 입력이 일어나는 곳에 풀업(Pull-up) 저항이나 풀다운(Pull-down) 저항을 단다.풀업..

#4 라즈베리파이 DC Motor

//일시 : 2018.01.09 16:00 ~ 18:00내용 : DC모터// GPIO 모터DC MotorDC Motor는 공급 전류에 비례하여 회전 속도 및 회전력 증가DC Motor 내부 저항 고정 -> 공급 전압에 따라 전류 비례 --> 공급 전압에 따라 회전력, 회전 속도 변화 한 pulse에서 high와 low구간을 달리하여 전압 가변 -> 회전속도 제어캐패시터 : 갑자기 최대 속도로 모터를 회전시키면 순간적으로 전류 소비 ↑ -> 전류가 부족해지는 것을 막기 위해 전류를 일정 용량 저장하여 공급 전원의 안정화 역할.회전 방향을 바꾸려면 공급 전원의 극성을 변경short brake 모드 : 브레이크stop 모드 : 관성에 따라 멈출때까지 기다림, 브레이크보다 멈추는데 오래걸림DC Motor는 DC..

#3 라즈베리파이 GPIO LED

//일시 : 2018.01.09 14:00 ~ 16:00내용 : 라즈베리파이 하드웨어 장치 제어 시작​ Sensor Programming // MCU 모듈에 연결해서도 사용 가능GPIOI2C통신 : 온/습도, 빛 감지, FND(시간) ​ GPIO(General Purpose Input/Output)General Purpose Input and Output (범용 입/출력 장치)컴퓨터와 주변 장치를 연결하기 위해서는 입출력 인터페이스가 필요.컴퓨터는 USB포트, HDMI 포트등을 통해 주변 장치를 연결하고,임베디드 시스템에서는 다양한 하드웨어(센서)를 연결하기 위해 GPIO핀들을 제공.CPU의 GPIO 핀에 연결되어 있음 -> GPIO 커넥터 셋팅을 통해 장치 제어 가능AP(Application Proce..

[Python] #14 파이썬 객체 지향 : 생성자와 상속

//일시 : 2018.01.09 11 : 20 ~ 14 : 00내용 : chap 11 객체지향 中 생성자, 변수, 상속// 객체 지향생성자myCar = Car() 로 인스턴스를 생성하면 무조건 호출(init)되는 메소드_init_() 라는 이름 가짐. 인스턴스 생성과 동시에 필드값 초기화기본 생성자 : 매개변수가 self만 있는 생성자 def _init_(self) :​self.color = "red"​self.speed = 0매개 변수가 있는 생성자 : 매개변수로 초기값을 넘겨서 인스턴스 생성def _init_(self, value1, value2) :​self.color = value1​self.speed = value2메인코드에서 myCar = Car("red", 0) 으로 매개변수로 초기값 넘겨줌..

[Python] #13 파이썬 객체 지향 : 클래스

//일시 : 2018.01.08 16:30 ~ 18:00내용 : chap 11 객체 지향// 객체 지향 (OOP:Object Oriented Programming)클래스파이썬은 객체 지향을 적용할 수 있는 언어class 클래스이름 :​##코드 작성클래스 안에 정의된 속성은 필드(Field), 함수는 메소드(Method)self는 클래스 자신을 가리킴self.speed는 자신의 클래스에 정의된 speed 변수 (클래스 안에 argument들을 사용하기 위함)안 쓰면 메소드 안에 있는 필드에 접근 Xself 매개변수를 전달받지는 X클래스를 설계하여 여러개의 '인스턴스'를 생성class 자동차 : => myCar1 = Car() : 인스턴스1​색상, 속도 등 속성 myCar2 = Car() : 인스턴스2각 인..

[Python] #12 파이썬 파일 입출력

//일시 : 2018. 01. 08 내용 : chap 10 파일에 읽고 쓰는 방법(파일 처리)// 파일 입출력콘솔(모니터, 키보드)의 표준 입출력과 비슷표준 입력 input() : 키보드로 입력받음 -> 표준 출력 print() : 모니터로 출력파일 입력 read(), readline(), readlines() : 파일의 내용을 읽어오기파일 출력 write(), writelines() : 파일에 내용을 쓰기파일을 이용한 입력을 하는 이유?=> 입력할 데이터의 분량이 많을 경우, 파일에 데이터를 저장해두고 사용하는 것이 효율적.파일을 이용한 출력을 하는 이유? => 모니터 출력은 결과를 한 번만 볼 수 있음. 파일 입출력 과정파일 열기 변수 = open("파일명", "모드(Mode)")마지막 매개변수 mo..