예 1: Raspberry Pi 온보드 LED 조명의 깜박임 제어

예 1: Raspberry Pi 온보드 LED 조명의 깜박임 제어

목적

  1. 배경 지식 학습을 통해 4족 로봇 미니 퍼퍼에 장착된 마이크로 제어 컴퓨터인 라즈베리파이에 대해 알아보세요.
  2. Raspberry Pi의 온보드 LED 조명 상태를 제어함으로써 Raspberry Pi 자체의 작동과 Linux 시스템에서 파일 읽기 및 쓰기에 익숙해질 수 있습니다.
  3. 공통 함수 time.sleep()의 사용법을 익히십시오.

실험적 요구 사항

Python 언어 프로그래밍을 사용하여 Linux 파일 읽기 및 쓰기를 통해 Raspberry Pi 상태 표시등의 켜짐 및 꺼짐 상태를 주기적으로 변경하여 1초 동안 지속적으로 밝고 어둡게 깜박이게 합니다.

실험적 지식

1. 라즈베리파이란 무엇인가요?

라즈베리파이(Raspberry Pi)는 영국 라즈베리파이재단(British Raspberry Pi Foundation)이 개발한 저가형 마이크로 싱글보드 컴퓨터로, 하드웨어는 SoC(System on a Chip), GPU, RAM을 탑재하고 유무선 연결 솔루션을 지원한다. Raspberry Pi가 완전한 커뮤니티와 소프트웨어 지원을 갖추고 있어 로봇 개발 초보자의 초급 학습을 크게 촉진한다는 점은 칭찬할 만합니다.
라즈베리파이는 카드 크기를 유지하면서 컴퓨터의 기본 기능을 갖췄기 때문에 쉽고 편리하게 나만의 로봇 프로그래밍 플랫폼을 구축하고 이 마이크로컴퓨터를 작고 귀여운 네발 달린 로봇견 미니에 탑재할 수 있다.
이미지 설명을 추가해주세요
그림 1: Raspberry Pi 4B
참조 링크: Raspberry Pi

2. 라즈베리 파이 상태 표시등

Raspberry Pi 4B에서 상태 표시등에 해당하는 파일은 다음과 같으며 Linux 시스템에서 해당 파일을 읽고 쓰면 상태 표시등의 켜짐 및 꺼짐 상태를 변경할 수 있습니다.

#	树莓派4B状态灯
/sys/class/leds/led0/brightness	#	灯1二进制亮灭开关
/sys/class/leds/led1/brightness	#	灯2二进制亮灭开关

이 예에서는 다음을 사용했습니다.

status_led = open('/sys/class/leds/led1/brightness', 'wb', 0)

이미지 2: Raspberry Pi 보드의 LED 조명

3. Python open() 함수의 사용법

파일을 열려면 Python open() 함수를 사용하는데, 리눅스에서는 파일을 읽고 쓰는 것으로 꽤 많은 작업이 완료된다.

varible_name = open(file_name,mode,buffering)
#	name : 要访问的文件名,需以字符串形式表现,比如'/sys/class/leds/led1/brightness'
#	mode : 打开文件的模式,写入的模式为:'wb' 意为以二进制方式写入
#	buffering :缓冲,为了不调用close方法,实现无缓冲写入,此处为:0

이 예에서는 다음을 사용했습니다.

status_led = open('/sys/class/leds/led1/brightness', 'wb', 0)

참조 링크: Python open() 함수

4. Python sleep() 함수의 사용법

Python sleep() 함수는 호출 스레드의 실행을 지연시키고 지연 기능을 구현할 수 있습니다. 이를 통해 상태 변경 후 다음 상태 변경이 발생하기 전에 LED 조명이 일정 시간 동안 유지될 수 있습니다.
sleep() 함수를 호출하려면 먼저 시간 라이브러리의 sleep 함수를 도입해야 합니다.

from time import sleep
#	引入time库的sleep函数
time.sleep(time)
#	暂缓延时,长达time

이 예에서는 다음을 사용했습니다.

from time import sleep	#	在文件头引入time库的sleep函数
sleep(0.5)	#	用于延时,保持灯的状态

참조 링크: Python time.sleep() 함수

5. 파일에 쓰기

Python의 file.write() 함수는 지정된 문자열을 파일에 쓰는 데 사용됩니다.
파일이 닫히고 버퍼가 새로 고쳐지기 전에 문자열은 아직 파일에 기록되지 않았지만 버퍼에 존재합니다.라즈베리 파이가 조명 켜짐 및 꺼짐 상태를 빠르게 변경하도록 하기 위해 버퍼링되지 않은 쓰기를 사용하므로 열려 있습니다. () 버퍼링은 0이므로 버퍼링되지 않은 쓰기가 가능합니다.
파일이 바이너리로 작성된 경우 encode() 메서드를 사용하여 바이트 형식으로 변환하거나 앞에 b를 추가해야 합니다.

status_led.write(b'1')	#	LED熄灭 b为指定二进制
status_led.write(b'0') 	#	LED开启

실험 단계

1. Python 프로그램 led_blink.py 작성

#!/usr/bin/python
#coding:utf-8
#	led_blink.py 
#	使树莓派状态指示灯的亮灭状态周期性地改变,发生周期为一秒的持续明暗闪烁。

from time import sleep
status_led = open('/sys/class/leds/led1/brightness', 'wb', 0)
#	mini pupper 默认禁用了开启后的指示灯,如led1无法闪烁,此处可改为led0
#	如果你希望启用指示灯,请修改/boot/firmware/config.txt
#	修改config.txt的具体方法可查看课程的进阶参考文档中实例1部分
while True:
    status_led.write(b'0')	#	Turn on
    sleep(0.5)
    status_led.write(b'1')	#	Turn off
    sleep(0.5)

2. 프로그램을 실행하고 효과를 관찰하세요

led_blink.py 디렉터리에서 다음 명령을 실행합니다.

sudo python led_blink.py

이때, 라즈베리 파이 상태 표시등의 켜짐 및 꺼짐 상태가 1초 동안 계속 켜졌다가 어두워졌다가 깜박이면서 주기적으로 바뀌는 것을 관찰해야 합니다.

그림 3: 온보드 LED 표시등 깜박임

실험 요약

이 지식 포인트를 연구하고 실험한 후에는 다음 수준에 도달할 수 있습니다.

지식 포인트 콘텐츠 배우다 친숙한 주인
라즈베리 파이 Raspberry Pi의 기원, 목적 및 기본 하드웨어 성능
라즈베리 파이 라즈베리 파이 상태 표시기
리눅스 Linux 파일 읽기 및 쓰기
언어 지연 함수 time.sleep() 사용

저작권 정보: 교재가 아직 완성되지 않았습니다. 저작권 정보 처리 방법은 여기에 있습니다. 미니퍼퍼 관련 컨텐츠는 https://github.com/mangdangroboticsclub
에서 보실 수 있습니다.

Guess you like

Origin blog.csdn.net/m0_56661101/article/details/129113516