전체 글 152

#12 라즈베리파이 온습도 센서

//일시 : 2018.01.11내용 : 온,습도 센서// I2C TEMP / HUMI온습도 센서Read_address와 Write_address가 다름Datasheet 참고 실습- 현재 온,습도 출력 import smbus2 as smbus import time ​ bus = smbus.SMBus(1) addr = 0x40 ​ cmd_temp = 0xf3 cmd_humi = 0xf5 soft_reset = 0xfe temp = 0.0 humi = 0.0 val = 0 data = [0, 0] ​ try: bus.write_byte (addr, soft_reset) time.sleep(0.05) ​ # myMotor = motor() while True: # temperature bus.write_byte..

#11 라즈베리파이 조도센서

//일시 : 2018.01.11내용 : I2C light (조도센서)// I2C light (조도 센서)주변의 빛을 감지하는 센서조도 측정 범위는 0 ~ 65535 룩스(lx)내부에 16비트 A/D(아날로그 디지털 변환기)가 내장 -> 디지털 출력아날로그는 전압값(0~3.3V) -> 디지털 값(0~65535) Low, High디지털 출력 방식은 I2C 표준스마트폰의 자동 밝기 조절 모드이 기능을 활용한 앱 Pocketmode (주변의 밝기를 감지해 벨소리 조절. 예를 들어 스마트폰이 주머니나 가방같은 어두운 곳에 있을 때는 벨소리를 크게) SMBusSystem Management Bus마더보드에 있는 저속도 장치들과 통신하는데 사용하는 간단한 I2C 버스 (마더보드에서 전원부와 CPU간 시스템 통신을 위..

#10 라즈베리파이 Ultrasonic (초음파 센서)

//일시 : 2018.01.10 내용 : Ultrasonic Sensor(초음파 센서)// Ultrasonic Sensor (초음파 센서)초음파를 방사한 후 물체에 반사되어 돌아오는 시간을 계산해 거리를 파악. (Peri0 2cm ~ 400cm 거리 측정 가능)10마이크로 초 동안 Trigger핀에 High 신호 전달(StartTime) -> 초음파 발생시킴되돌아온 초음파를 감지하면 echo핀은 high에서 low출력으로 변함(endTime)따라서 echo 핀의 high 레벨 펄스는 거리에 해당.초음파 수신 시간(duration) = endTime - startTime물체와의 거리 = duration * 17000 실습거리 측정하여 출력하기돌아온 시간을 초음파 센서는 알고 있음. echo 핀을 통해 ra..

#9 라즈베리파이 PWM

//일시 : 2018.01.10내용 : PWM// PWM(Pulse Width Modulation)Pulse Width Modulation : 펄스 폭 변조전압의 on(high)/off(low)를 이용해 가변 전압을 얻기 위한 기술period : 한 사이클의 시간Duration(pulse 시간) : 한 사이클에서 high 시간Duty Cycle(사용률): 주기에 대한 on/off 시간의 비예를 들어 Duty Cycle 20%는 high 20, low 80주파수(frequency) : 1초에 몇 개의 cycle이 반복되는가. 단위는 Hz.1Hz => 1초에 period 1번 반복 (1s, 1000ms)100Hz => 1초에 100번 반복. 이 때 1 pulse는 1/100 초 (0.01s, 10ms)같은 ..

#8 라즈베리파이 Piezo 센서

//일시 : 2018.01.10 15:00~18:00내용 : Piezo Sensor, 초음파 센서// GPIO Piezepiezo buzzer의 동작 전압은 4~8v이고 AP의 GPIO전압은 3.3v가 최대 -> 증폭기를 통해 5v전압을 piezo에 전달.주파수 조절을 통해 음의 높낮이를 조절Piezo 연결된 BCM 13핀의 ON/OFF일정한 시간 간격으로 High, Low 출력 실습- 도, 레, 미, 파, 솔, 라, 시, 도 소리 출력 import RPi.GPIO as GPIO import time ​ GPIO.setmode(GPIO.BCM) gpio_pin = 13 scale = [ 261, 294, 329, 349, 392, 440, 493, 523 ] #도 레 미 파 솔 라 시 도 (주파수) GP..

[Python] #16 if __name__ == "__main__" 의 의미

//일시 : 2018.01.17내용 : 파이썬 if __name__ == '__main__' 의 의미 동주와 스타벅스에서~ // if __name__ == '__main__' 의미__name__ 은 현재 모듈의 이름을 담고 있는 내장 변수다.해당 프로그램을 직접 실행했을 경우에는 참이 되어 main() 함수를 실행하고, 다른 프로그램에서 import하여 사용할 경우에는 간접 실행이 되어 거짓이 되어 main()함수가 실행되지 않는다.다른 모듈을 import하는 경우는 main안의 코드를 실행하기 보다, 함수나 클래스등만을 사용하는 경우가 대부분. if __name__ == '__main__' 을 사용하여 코드의 수정없이 바로 import하여 사용 가능.메인 프로그램으로 실행하기 위해 설정.다른 모듈에 의..

[Python] #15 파이썬 쓰레드(Thread) 개념과 예제

//일시 : 2018.01.17내용 : 파이썬 스레드(thread) 검색해보며 공부// 스레드(Thread)1개의 프로세스(컴퓨터에서 동작하고 있는 프로그램)는 한가지 일을 하지만, 스레드를 이용하여 2가지 이상의 일을 동시에 수행할 수 있다.예를 들어 실시간 채팅을 하는 코드를 만들 때, 송신하는 코드와 수신하는 코드를 별개로 작동시킬 수 있다.threading 모듈 이용. import threadingthreading에서 내장 모듈인 Thread를 상속받음.threading.Thread 클래스를 상속받는 클래스를 만들어서 run() 하여 객체 생성★★ Thread를 구동하기 위해서는 함수명을 run으로 해야함​MyThread로 생성된 객체를 start() 메소드를 실행할 때 run 메소드가 자동으로 ..

[Raspberry Pi/Python] 현재 시간 FND에 출력하기

//일시 : 2018.01.16내용 : 프로젝트 기능 1. 현재 날짜를 FND에 출력// ★★ 라즈베리파이 시간 설정 실패 $ sudo raspi-config를 이용해 라즈베리파이 내의 시간설정 시도했으나 변경 실패 $timedatectl 명령으로 현재 날짜 확인. 현재 시간을 나타내는 코드라즈베리파이의 현재 시간을 받아와서 리스트에 저장 후 returnimport time ​ def timeCheck(): while True : now = time.localtime() time_list = [] now_hour = str(now.tm_hour) if len(now_hour) == 1: time_list.append(0) time_list.append(now_hour) elif len(now_hour) ..