본문 바로가기
인공지능 기초

pyserial 라이브러리로 AI 가위, 바위, 보 핸드이노 만들기

by SwMaker_Jun 2023. 5. 29.
728x90
반응형

1. pyserial 

     PySerialPython에서 시리얼 통신을 다루기 위한 라이브러리입니다.

    이 라이브러리를 사용하면 컴퓨터와 시리얼 포트를 통해 다른 장치 또는 마이크로컨트롤러와 통신할 수 있습니다.

 

    PySerial은 시리얼 포트로 데이터를 송수신하는 데 사용되는 다양한 기능과 도구를 제공합니다.

    주요 기능은 다음과 같습니다.

 

    - 시리얼 포트 설정 : PySerial을 사용하여 시리얼 포트의 속도, 비트 전송률, 플로우 컨트롤 등을 설정할 수 있습니다.

    - 데이터 송수신 : PySerial을 사용하여 시리얼 포트를 통해 데이터를 송 수신할 수 있습니다.

                                이를 통해 다른 장치로부터 데이터를 읽어올 수도 있고, 데이터를 다른 장치로 전송할 수도 있습니다.

    - 이벤트 처리 : PySerial은 시리얼 포트로부터 이벤트를 처리할 수 있는 기능도 제공합니다. 예를 들어, 데이터 수신

                            또는 송신 시 이벤트를 처리하여 특정 동작을 수행할 수 있습니다.

 

가상환경에서 시리얼 통신을 위한 준비

          - PySerial 라이브러리가 설치 되어 있는지 확인

          - 만약, import serial 에서 에러가 나면   위 사진 1번과 같이 '   !pip install pyserial   ' 명령으로 라이브러리 설치

          - serial.Serial(' 포트번호 ' , 통신속도)  명령에서 실제 아두이노 포트번호와 통신속도를 맞게 세팅해주자.

 

   ※  시리얼 통신 복습하기

         - 인공지능 핸드이노 로봇손이 가위 바위 보 게임을 무조건 이기는 코드를 만들어 보자.

 

https://swmakerjun.tistory.com/31

 

아두이노와 파이썬 시리얼 통신

1. LED (light emitting diode) https://swmakerjun.tistory.com/7 아두이노 메이커_01_ led 제어하기 1. LED (light emitting diode) - LED는 다이오드의 한 종류로 빛을 내는 기능을 가지고 있어 "발광다이오드"라 한다. - LED

swmakerjun.tistory.com

 

아두이노 코드는 시얼통신으로 r, p, s, n  문자를 받으면 실행하는 코드

 

 

- 가위일때 주먹을 내고, 바위일때 보를 보 일때 가위를 내게 만들고 아무것도 아닐때는 보 형태를 유지

 

 

 

 

https://swmakerjun.tistory.com/41

 

핸드이노 시리얼 통신으로 가위, 바위, 보 제어하기

1. 핸드이노 시리얼 통신으로 무조건 이기는 가위, 바위, 보 코드 만들기 - 아두이노 시리얼 통신을 통해 문자가 전송되어 올때 그것을 읽어 각 문자에 대해 조건문으로 핸드이노 손동작을 만들

swmakerjun.tistory.com

 

★ 핸드이노가 없을시에는 가위일때 빨강 LED,   바위일때 초록 LED,  보일때는 파랑 LED를

     켜지게 하자  (none일때는 모든 불 끄기)

 

     또는, 서보모터를 가지고 각도로 가위, 바위, 보 그림(사진)쪽을 향하게 만들기.

 

 

 

 

2. 아두이노로 보내기 위한 조건문 만들기.

     아래 사진과 같이 label 자료형에는 모델에서 학습된 분류가 70% 이상인 데이터셋 명이 저장된다.     

labels.txt 를 열어 label명을 확인하자.

 

     ※ 우리가 티처블 머신에서 학습하여 다운받은 파일중 labels.txt 파일을 열어보면 label 명을 확인할 수 있음.     

    

 

 

     class_name[ 2 : -1 ]  명령 : 자료형 텍스트를 슬라이싱하여 label 이름만 출력  

                                                 ex )  0 rock    -->     o rock         초록부분만 슬라이싱

 

   

★ 신뢰도가 70% 이상인 가위, 바위, 보를 판별하여 각 인식에 따라 ' r ' , ' s ', ' p ', ' n '  문자를 시리얼 통신으로 보내기 

각 레이블 명칭일때 시리얼 통신 보내기

 

 

3. 핸드이노와 연결하여 테스트 하기.

티처블머신 모델로 예측하여 핸드이노 제어

 

 

 

728x90
반응형