라즈베리파이:파이썬 제어: 두 판 사이의 차이

학교의 모든 지식. SMwiki
둘러보기로 이동 검색으로 이동
(새 문서: {{라즈베리파이}} == 개요 == 일반적으로 하드웨어 등을 파이썬으로 제어한다. <br /> == 스위치 == === Event알림 방식 === {| class="wikitable" !의도...)
 
편집 요약 없음
 
(같은 사용자의 중간 판 2개는 보이지 않습니다)
1번째 줄: 1번째 줄:
{{라즈베리파이}}
{{라즈베리파이}}


== 개요 ==
==개요==
일반적으로 하드웨어 등을 파이썬으로 제어한다.
일반적으로 하드웨어 등을 파이썬으로 제어한다.<br />
<br />


== 스위치 ==
==스위치==


=== Event알림 방식 ===
===Event알림 방식===
{| class="wikitable"
{| class="wikitable"
!의도
!의도
23번째 줄: 22번째 줄:
|}
|}


== PWM ==
===에러 방지 설정===
코드의 초반부에 <code>GPIO.setwarnings(False)</code>를 넣어주면 불필요한 경고는 뜨지 않는다.
 
==PWM==
하드웨어에서 내보낼 수 있는 신호는 1 아니면 0이다. 이 둘 사이의 중간값을 갖게 하기 위해(LED의 밝기를 조절한다든가) 디지털신호가 켜지는 시간의 비율을 조정하는 전략을 사용한다. 이를 Pulse Width Modulation제어라 한다.
하드웨어에서 내보낼 수 있는 신호는 1 아니면 0이다. 이 둘 사이의 중간값을 갖게 하기 위해(LED의 밝기를 조절한다든가) 디지털신호가 켜지는 시간의 비율을 조정하는 전략을 사용한다. 이를 Pulse Width Modulation제어라 한다.


=== 사용법 ===
===사용법===
{| class="wikitable"
{| class="wikitable"
!의도
!의도
40번째 줄: 42번째 줄:
pwm.ChangeFrequency(frequency)  # 주파수 변경
pwm.ChangeFrequency(frequency)  # 주파수 변경
pwm.ChangeDutyCycle(숫자)  # 0~100 사이로 변경
pwm.ChangeDutyCycle(숫자)  # 0~100 사이로 변경
</syntaxhighlight>
|-
|듀티사이클로 조정
|신호가 켜져 있는 시간을 0~100 사이로 조절한다.
|<syntaxhighlight lang="python">
pwm = GPIO.PWM(channel, frequency)  # 인스턴스 생성.
pwm.ChangeDutyCycle(100)  # 0~100 사이의 값을 넣는다.
</syntaxhighlight>
</syntaxhighlight>
|}
|}
63번째 줄: 72번째 줄:
|
|
|
|
|}
= 각종 활용 =
=== 부팅 시 자동실행 ===
{| class="wikitable"
!의도
!설명
!방법
|-
|
|<code>sudo nano /etc/sdg/lxsesion/LXDE-pi/autostart</code> 등의 명령어로 조작하여 우측과 같이 작성한다.
|가장 아래에 써주자.<syntaxhighlight lang="bash">
lxterminal -e sudo python3 /파일경로.py
</syntaxhighlight>
|}
|}

2022년 11월 3일 (목) 09:38 기준 최신판

틀:라즈베리파이

  1. 라즈베리파이:개요
    1. 틀:우분투
    2. 라즈베리파이:무선랜
    3. 라즈베리파이:블루투스
  2. 라즈베리파이:파이썬 제어
  3. 라즈베리파이:하드웨어
    1. 라즈베리파이:GPIO
      1. 라즈베리파이:시리얼 통신
    2. 라즈베리파이:카메라
    3. 라즈베리파이:서보모터
    4. 라즈베리파이:모터

개요[편집 | 원본 편집]

일반적으로 하드웨어 등을 파이썬으로 제어한다.

스위치[편집 | 원본 편집]

Event알림 방식[편집 | 원본 편집]

의도 설명 방법
감지했을 때 함수 실행 GPIO핀이 상승하는 것을 감지하면(0이 1로 변하면) 미리 정의해둔 함수를 실행한다.

신호가 들어오면 곧장 함수를 1회 실행한다. 스레드로 작동하는 듯하다.

GPIO의 신호는 작동할 때 순간적으로 전기신호가 여러번 튀는 바운스 현상이 나타나는데, 이러면 함수가 여러번 실행된다. 이를 방지하기 위해 bouncetime=300 옵션을 주면 300ms동안 반복된 신호는 무시해 예상치 못한 작동을 방지할 수 있다.

GPIO.add_event_detect(channel, GPIO.RISING, callback=함수, bouncetime=300)

에러 방지 설정[편집 | 원본 편집]

코드의 초반부에 GPIO.setwarnings(False)를 넣어주면 불필요한 경고는 뜨지 않는다.

PWM[편집 | 원본 편집]

하드웨어에서 내보낼 수 있는 신호는 1 아니면 0이다. 이 둘 사이의 중간값을 갖게 하기 위해(LED의 밝기를 조절한다든가) 디지털신호가 켜지는 시간의 비율을 조정하는 전략을 사용한다. 이를 Pulse Width Modulation제어라 한다.

사용법[편집 | 원본 편집]

의도 설명 방법
기초 사용
pwm = GPIO.PWM(channel, frequency)  # 인스턴스 생성.
pwm.start(숫자)  # 0~100 사이
pwm.stop()  # 종료
pwm.ChangeFrequency(frequency)  # 주파수 변경
pwm.ChangeDutyCycle(숫자)  # 0~100 사이로 변경
듀티사이클로 조정 신호가 켜져 있는 시간을 0~100 사이로 조절한다.
pwm = GPIO.PWM(channel, frequency)  # 인스턴스 생성.
pwm.ChangeDutyCycle(100)  # 0~100 사이의 값을 넣는다.

각종 활용[편집 | 원본 편집]

부팅 시 자동실행[편집 | 원본 편집]

의도 설명 방법
sudo nano /etc/sdg/lxsesion/LXDE-pi/autostart 등의 명령어로 조작하여 우측과 같이 작성한다. 가장 아래에 써주자.
lxterminal -e sudo python3 /파일경로.py