CanMV에서 print() 함수를 활용한 데이터 출력 실습

이번 실습은 CanMV 환경에서 print() 함수를 사용하여 데이터를 출력하는 기본 방법을 다룹니다. 터미널이나 파일에 텍스트를 기록하는 방법을 익히면 이후 복잡한 프로젝트에서 디버깅과 데이터 로깅에 활용할 수 있습니다.

1. print() 함수 개요

CanMV에서 print()는 지정된 객체를 문자열로 변환하고, 구분자(sep)로 나누고, 끝문자(end)를 추가하여 특정 출력 대상(file)으로 전송합니다. 기본 설정은 다음과 같습니다:

print(*objects, sep=' ', end='\n', file=sys.stdout)
  • objects: 출력할 데이터(하나 이상 가능).
  • sep: 객체 사이의 구분자(기본값: 공백).
  • end: 출력 끝에 추가할 문자열(기본값: 줄바꿈).
  • file: 출력 대상. sys.stdout는 UARTHS(시리얼 포트)로 출력하며, 파일 객체로 변경 가능.

예제:

>>> print('Hello, World!')
Hello, World!

>>> print('Hello', 'World', sep=', ', end='!\n')
Hello, World!

>>> f = open('/flash/log.txt', 'w')
>>> print("Hello, World!", file=f)
>>> f.close()
>>> f = open('/flash/log.txt', 'r')
>>> print(f.read())
>>> f.close()
Hello, World!

2. 하드웨어 구성

이 실험은 순수 소프트웨어 기능을 테스트하므로 별도의 하드웨어 회로나 핀 연결이 필요하지 않습니다. DNK210 보드와 USB 케이블만 준비하면 됩니다.

3. 소프트웨어 설계

프로그램 흐름도
실행 순서: 문자열 출력 → 파일 열기 → 파일에 쓰기 → 파일 닫기

main.py 코드

# 시스템 표준 출력(시리얼 터미널)으로 출력
print('Hello, DNK210!')

# 파일에 출력
file_handle = open('/flash/test.txt', 'w')
print('Hello, DNK210!', file=file_handle)
file_handle.close()

위 코드는 먼저 시리얼 터미널에 "Hello, DNK210!"을 표시하고, 동일한 문자열을 /flash/test.txt 파일에 저장합니다. 파일 쓰기 후 반드시 close()를 호출해야 데이터가 안전하게 기록됩니다.

4. 실행 확인

  1. DNK210 보드를 CanMV IDE에 연결합니다.
  2. IDE에서 "Start(실행)" 버튼을 누릅니다.
  3. 시리얼 터미널 창에 "Hello, DNK210!"이 출력됩니다.
  4. 파일 내용을 확인하려면 다음 스크립트를 실행하세요:
f = open('/flash/test.txt', 'r')
content = f.read()
print(content)
f.close()

터미널에 "Hello, DNK210!"이 다시 출력되면 파일 쓰기가 정상적으로 동작한 것입니다.

태그: CanMV print MicroPython 시리얼통신 UARTHS

5월 25일 16:41에 게시됨