1. 개요
카미봇 파이는 종이 캐릭터와 로봇을 결합한 것으로 다양한 캐릭터의 모습으로 변신이 가능합니다.
기존 코딩 및 AI 교구가 가지고 있는 기본적인 특징 이외에 펜으로 그림을 그릴 수 있는 홀과, 로봇 상판이 회전하는 특징이 있습니다.
특히, 이 상판이 회전하는 것은 카메라 등 다양한 장치를 달 수 있기 때문에 엄청난 퍼포먼스를 제공합니다.
아래 영상으로 낚시하는 것 잠시 볼까요?^^
카미봇 파이 기능 요약을 하면 아래와 같습니다.
1. 순차/ 반복
-. 로코콘(Rococon) 이용 - 별매
-. 스마트기기의 카드코딩 앱 및 각종 맵보드 등을 이용
2. + 조건, 변수 등... (PC 연결 시에는 동글 필요)
-. 카미 블록3.0, 엔트리, PiBlock AI 등 이용
3. 인공지능 (동글 + 웹캠 필요)
- 엔트리 및 PiBlock AI 이용
기존 카미봇의 콘텐츠는 대부분 그대로 사용할 수 있습니다. 아래는 카미봇과 카미봇 파이의 차이점입니다.
2.2. 소프트웨어 설치 (PC)
카미봇 파이를 이용한 인공지능 코딩활동을 위해서는 아래 프로그램을 설치하여야 합니다.
다운로드 링크
http://kamibot.com/lib/
1. KamiBlock 3.0
다양한 함수를 이용하여 카미봇 파이를 제어하는 소프트웨어 입니다.
사용자의 수준에 따라 사용블록을 조절할 수 있으며, 최대 10대까지 카미봇 파이를 제어할 수도 있습니다.
기능은 계속 확장되니 새버전을 설치하시게 되면 어떤 것들을 할 수 있는지 미리 봐두면 좋겠지요.^^
2. PiBlock AI
KamiBlock 3.0 이 코딩교육에 특화되어 있다면 PiBlock AI는 인공지능 프로그램을 작성하는 것에 특화되어 있는 소프트웨어입니다.
다양한 인공지능 블록을 추가할 수 있습니다. 역시, 기능은 계속 확장되니 새버전을 설치하시게 되면 어떤 것들을 할 수 있는지 미리 봐두면 좋겠지요.^^
2. PiLink
프로그램과 카미봇 파이를 연결해주는 하드웨어 연결프로그램입니다.
엔트리처럼 프로그램을 실행놓고 KamiBlock 3.0 이나 PiBlock AI 를 실행하여야 카미봇 파이와 연결이 됩니다.
4. CDM 드라이버
카미봇 파이 USB 동글을 사용하기 위한 USB to SERIAL 컨버터 입니다.
설치는 특별한 것 없이 그냥 '다음'을 계속 누르시면 되며, 자동 업데이트가 아직 지원되지 않으니 최신 버전이 나오면 이전 버전을 삭제 후 설치하시면 됩니다~^^
설치가 완료되면 한글로 바로가기가 생깁니다^^
5. WiFi Dongle Driver
IP 카메라를 이용할 경우 WiFi 동글로 PC와 연결해야 합니다. 각 제품의 제조사에서 제공하는 드라이버를 설치합니다.
보통 윈도우10의 경우 드라이버 설치없이 작동되는 경우가 많은데, 작동되더라도 제조사에서 제공하는 드라이버를 설치하는 것이 좋습니다.^^
=> IP 카메라 설치관련 정보 보기
간혹 윈도우에서 PC 보호 창이 뜨면 '추가정보'를 클릭하여 '실행' 합니다.
2.3. PC와 카미봇 파이 연결
아래의 순서에 따라 준비를 합니다.
카미봇 파이는 PC 소프트웨어로 카미블록 3.0과 파이블록 AI 2개의 소프트웨어를 사용하며, 연결 방법이 조금 다릅니다.
카미블록 3.0은 블루투스 4.0 이상의 모든 블루투스 동글과 호환이 됩니다. 따라서, PC에 장착되어 있는 블루투스를 이용하면 됩니다.
파이블록 AI는 전용 동글이 필요합니다.
1. 카미블록 3.0 연결하기
1) 카미블록 3.0은 카미봇 파이용 블루투스 동글을 사용하지 않습니다. (노트북은 내장 블루투스, 데스크탑은 일반 블루투스 동글)
2) 카미블록 3.0과 스크래치 링크를 실행합니다.
3) 화면 좌측 하단에 "확장기능 추가하기" 버튼을 클릭합니다.
4) 카미봇 파이 확장 기능 중 하나 선택합니다.
5) 카미봇 파이 목록이 나오면 연결을 클릭합니다. 연결이 되면 X를 눌러 창을 닫고 프로그래밍을 시작합니다.^^
2. 파이블록 AI 연결하기
1) 컴퓨터에 USB 동글을 꽂은 뒤, PiLink, PiBlock AI 소프트웨어를 실행합니다.
2) 카미봇 파이를 동글이와 10cm 이내로 아주 가까이 놓은 뒤 동글 버튼을 누릅니다. 여러가지의 색이 나오다가 연결이 되면 파란색으로 색이 고정이 됩니다.
3) 실행한 PiBlock AI 프로그램의 왼쪽 하단, 확장 기능 추가 버튼을 클릭한 뒤 '카미봇 파이'를 선택합니다.
4) 카미봇 파이 연결차이 나오면 '연결하기'를 눌러 프로그램과 카미봇 파이를 연결합니다. 연결이 되면 '연결됨이라고 표시가 뜨고, '편집기로 가기'를 클릭하여 프로그램 화면으로 돌아옵니다.
프로그램 중 체크표시가 느낌표로 바뀌면 연결이 끊어진 것이니 다시 연결을 진행합니다.
카미봇 파이를 동작시키는 함수는 맨 아래쪽에 있습니다. 사용환경을 보면 엔트리와 비슷하지요^^
함수는 카미봇 파이를 이동하기, 속도 조절하기, 각각의 모터의 속도 제어하기, 머지 회전하기, LED 제어하기, 소리 제어하기, 근접, 바닥 및 컬러센서 사용하기, 라인 트레이싱 하기 등이 있습니다.
2.4. 펌웨어 업데이트
카미봇 파이의 업데이트는 카미블록 3.0에 연결하여 진행합니다.
최신 버전의 펌웨어 설치를 위해서는 가장 최신 버전의 카미블록 3.0을 설치한 후 진행하여야 합니다.
카미블록 3.0 기존 버전이 설치되어 있다면 삭제 후 재설치 합니다.
=> 스크래치 링크도 삭제 후 재설치 합니다. (기존 설치 버전이 V1.2.0 이후 버전이면 재설치를 안해도 됩니다^^)
다운로드 링크 -> http://kamibot.com/lib/kamiblock-3-0/
1. 카미블록 3.0에 카미봇 파이를 연결합니다.
연결방법 -> https://www.happycreative.co.kr/manual/detail.php?idx=37#428
2. 설정 버튼을 클릭한 후, '펌웨어 업데이트 (카미봇파이)' 를 선택합니다.
3. 펌웨어 업데이트 창이 뜨면 업데이트 가능 버전을 확인하고, 업데이트 버튼을 클릭하여 업데이트를 진행합니다.
1) 모터 펌웨어 업데이트
-. 업데이트 버튼을 클릭한 뒤, 업데이트 진행 여부를 묻는 창에서 예를 선택합니다.
-. 업데이트 중 카미봇 파이는 파란색 LED를 점멸하고, 완료가 되면, 점멸을 멈춥니다.
-. 업데이트가 완료 후 카미봇 파이를 껏다가 켭니다(재부팅).
2) 무선 펌웨어 업데이트
-. 카미블록 3.0과 카미봇 파이를 연결합니다.
-. 머리부분 스위치를 누르면서 업데이트 버튼을 클릭 후, LED가 꺼지면 버튼에서 손을 뗍니다.
-. 자동으로 카미봇 파이와 연결이 해제된 후 DFU 모드로 재 연결이 되어 업데이트가 진행됩니다.
-. 업데이트가 완료되면 음악소리와 함께 LED가 켜집니다.
-. 업데이트 완료가 되면 카미봇 파이의 전원을 껏다가 켭니다(재부팅).
3.1. 기본 언플러그드 모드
카미봇만 있을 때 활용할 수 있는 모드입니다.
2022년 7월 21일 현재 라인트레이싱 모드와 손 따라가기 모드가 있습니다.
언플러그드 모드는 무선펌웨어 29, 모터 펌웨어 26 버전부터 가능합니다.
=> 카미블록 3.0 V1.2.1 이후 버전에서 업데이트 가능
=> 업데이트 하는 방법 https://www.happycreative.co.kr/manual/detail.php?idx=37#438
1. 언플러그드 모드 진입 및 선택
1)전원을 켠 후 카미봇 파이 LED 색상이 연한 보라색이 될 때까지, 버튼을 2초 이상 누릅니다.
2) 연보라색 LED는 대기 모드 입니다. 버튼을 한 번 누를 때마다 라인트레이싱 -> 대기 -> 손따라가기 -> 대기... 가 반복됩니다.
2. 라인트레이싱 모드
1) 색상에 따른 방향 전환
3. 손 따라가기 모드
1) 방향에 따른 색상 변화
사용법 영상^^
3.2. 로코콘(Rococon)
로코콘은 App의 무선조종 모드와 프로그래밍 모드가 있습니다.
모드는 로코콘 우측 상단의 모드 선택 버튼을 눌러할 수 있으며, 좌측 상단 모드 표시에 LED가 들어옵니다.
1. 조종 모드
조종 모드에서 스타트를 누르면 라인트레이서가 시작됩니다.
2. 프로그래밍 모드
3. 로코콘 업데이트
-. 모드 전환 스위치를 누른 상태로 전원을 켠다
-. 앱에서 업데이트를 진행한다.
-. 완료 후 소리가 나면서 자동 종료된다.
3.3. 카미카드
총 18개의 명령 카드가 있습니다.
※ 컬러카드, 음계카드, 숫자카드는 하나의 카드로 이용합니다^^
1. 전원켜기
2. 카드위에 로봇 놓기 (센서에 색이 인식 될 수 있도록)
-> 꼭 '시작카드'로 시작하여 '완료카드'로 마무리
3. 로봇의 스위치 누르기 (인식이 되면 음악소리가 납니다.)
4. 모든 카드를 인식시킨 후 스위치를 누르면 약 2초 뒤 명령을 실행합니다.
간단히 코딩하는 방법의 예시입니다.
4.1. 카미리모콘 App
카미리모콘 App으로 로봇을 무선 조종하며 활동을 합니다.
연결 방법은 카미카드와 같습니다.
로봇의 전원을 켜고, App 위쪽에 블루투스 아이콘을 클릭하면 연결이 됩니다. 연결이 되면 (카미봇의 컬러가 파란색으로 고정이 됩니다.)
리모콘 위부터 보면
LED 색상, 속도, 머리 방향, 이동을 제어할 수 있습니다.
4.2. 카미카드 App
실제 카미카드로 할 수 없는 더 많은 기능을 사용할 수 있습니다.
1. 모드 선택
App을 실행하면 맵보드 모드와 그냥 로봇 모드가 있는데, 이는 동작 명령 카드들에 차이가 있습니다.
맵보드 모드는 방향은 각각 맵보드의 사각형 한 칸을 기준으로 이동하며, 로봇 모드는 바닥의 사각형과 관계없이 움직이게 됩니다.
2. 로봇 연결
로봇의 전원을 켠 후 앱 좌측 상단의 블루투스 아이콘을 클릭하고, 잠시 기다리면 연결이 됩니다.
연결 전에는 로봇의 LED의 색이 변하는 상태였다가, 연결이 되면 파랑색으로 고정이 됩니다.
3. 언어 설정
카미카드 App은 한국어, 영어, 일본어, 중국어 4개의 언어를 지원합니다.
설정 -> 언어 선택에서 바꾸실 수 있습니다.
4. 사용법
명령 카드를 터치하면 입력이 시작됩니다. 삭제는 터치 후 X를 터치하면 됩니다.
모든 카드는 원하는 위치로 드래그 하여 이동할 수 있습니다.
단, 이동하려고 할 때는 터치를 먼저 하여 선택이 된 후 (삭제 X 표시로 확인 가능) 이동이 됩니다.
4.3. 비트블록 AI
스마트기기에 설치하여 로봇을 블록 코딩하여 제어하는 앱입니다.
태블릿의 카메라 등을 이용하여 인공지능 학습을 할 수 있습니다.
1. 이미지 학습(AI)
이미지 학습 후 이미지 분류를 통한 카미봇 파이 제어입니다.
클래스를 만들고, 클래스별 이미지를 추가한 뒤, 학습하면 됩니다.
클래스는 스프라이트로 만들어지게 되고, 학습될 이미지는 각각의 스프라이트에 포함되도록 되어 있습니다.
'모양' 탭에서 편집 및 수정이 가능합니다.
아래 영상은 코드처럼 배경 이미지에서는 멈추어 있고, 손 이미지에서는 좌회전하는 방법을 설명하였습니다.
5.1. 엔트리 연결하기
카미봇 파이는 아직 엔트리에 등록이 되어 있지 않습니다.
아래 방법은 엔트리에 등록된 카미봇을 이용하여 연결을 하는 임시 방법으로, 추후 정식 동글이 펌웨어 업데이트를 통해, 아래 과정 없이 바로 엔트리와 연결될 수 있도록 될 예정입니다.
1. 자료실에서 USB 동글이 - 엔트리 연결프로그램을 다운받습니다.
-> 다운 받기 링크 클릭
2. USB 동글이를 PC에 연결하고, 카미봇 파이와 연결을 합니다. 카미봇 파이와 동글이는 10cm 이내로 가까이 놓습니다. (연결이 되면 카미봇 파이의 LED가 파랑색으로 고정)
3. 장치관리자에서 USB Serial Port(COM??) 의 포트번호를 확인합니다. 포트번호는 컴퓨터마다 다를 수 있습니다.
저는 5번이네요^^
3. 다운받은 파일의 압축을 해제한 후, 프로그램을 실행합니다. 포트번호를 맞추어 설정한 후 아래 순서대로 클릭합니다.
실행 후 꼭 프로그램을 종료해야 합니다.
4. 엔트리와 엔트리 하드웨어 연결 프로그램을 실행 후, '카미봇'을 선택하여 연결을 진행합니다.
연결이 안되면, '드라이버 설치'를 한 후 엔트리 하드웨어 연결 프로그램을 재실행하여 카미봇을 선택합니다.
5. 연결이 되면 하드웨어 탭에서 명령블록을 실행하여, 카미봇 파이를 동작하여 봅니다.
※ 아직 카미봇 파이는 엔트리에 정식 등록을 한 상태가 아니여서, 임시 방법입니다. 곧 동글이 펌웨어가 업데이트되면 위 프로그램 실행 없이 바로 엔트리 하드웨어 연결프로그램으로만 연결이 되겠지요^^.
7.1. 이미지 분류/ 예측/ 얼굴인식(AI)
7.3. 티처블머신 - 이미지,소리,자세
티처블 머신으로 기계학습한 내용을 가지고 다양한 활동을 할 수 있습니다.
티처블 머신을 처음 사용하시는 분은 아래 링크를 통해 티처블 머신 사용법을 먼저 확인하세요^^
=> 티처블 머신 사용법 보기
https://happycreative.co.kr/manual/detail.php?idx=28#315
1. 학습한 정보 불러오기
티처블 머신에서 학습한 정보를 카미봇 파이로 불러오는 방법은 학습 결과를 티처블 머신 서버에 올리고 URL로 가지고 오는 방법과 다운로드 받아 사용하는 방법 2가지입니다
가) 학습 후 모델 내보내기 클릭
나) 업로드 하여 공유 가능한 링크 가지고 오기
=> 티처블 머신 확장기능에서 '학습된 이미지 분류 모델 URL' 에 넣고 블록 클릭하여 학습모델 다운로드 받기
다) 학습된 정보를 다운로드 받기
=> 바탕화면에 'kamibot' 폴더를 생성하고, 그 폴더안에 프로젝트명을 기재한 폴더를 만들어 압축파일을 해제하여 넣습니다.
(OneDrive를 사용하시는 분은 아래 폴더 주소에 OneDrive가 추가되어 PiBlock AI 소프트웨어에서 경로를 찾지 못하니 꼭 경로를 확인하세요!!^^)
=> 티처블 머신 확장기능에서 '모델 불러오기 폴더명' 에 폴더 이름 적고 블록 클릭하여
프로젝트를 다운 받으면 다음에 불러와서 학습 데이터를 수정할 수도 있습니다^^
2. 기본 사용법 이해
우리가 코딩할 때 간단한 아래와 같이 간단한 예를 프로그래밍은 쉽게 할 수 있겠지요. 티처블 머신을 이용한 인공지능 코딩도 같은 방식으로 이해하시면 됩니다.
센서는 쉽게 스위치와 같은 것인데, 우리는 카메라를 보여지는 이미지, 소리, 포즈 등을 기계학습을 통해 분류하여 스위칭을 할 뿐이라고 생각하면 쉽습니다.
큐브와 주사위를 이용하여 큐브를 보면 빨간 LED를 주사위를 보면 파랑 LED를, 아무것도 없으면 노랑 LED를 켜보도록 하겠습니다.
먼저 티처블 머신에서 학습합니다.
학습된 결과를 다운로드 받아 아래처럼 프로그래밍합니다.
컴퓨터에 따라 학습된 결과와 이미지 연속 분류 사이에 1초 기다리기를 넣어주어야 하는 경우가 있습니다. 이 1초 기다리기 함수를 넣지 않아도 되도록 수정 중 입니다.
동작영상
자, 이제 무엇을 분류해서 카미봇에서 어떻게 동작 시킬 것인지는 여러분의 상상속에 있습니다^^
7.7. 기타
자료실에서 다양한 활동을 할 수 있는 PDF 교안을 다운받으실 수 있습니다.^^
PDF 교안 다운로드 링크 클릭!!
8. 파이썬 - 아나콘다
아나콘다의 가상환경으로 라이브러리를 설치 중 각 패키지들이 버전 업이 되어 의존 패키지들과 연동의 문제가 발생할 수 있습니다.
이 게시글은 2024. 7.10 기준으로 작성이 되었습니다. PC환경에 따라 다를 수 있으며, 업데이트를 통해 일부 명령어도 변경된 부분이 있을 수 있으니 꼭 확인하세요.
또한, Tonny를 이용한 방법을 업데이트하니, 파이썬 패키지 및 라이브러리 설치 시 오류가 나면 Thonny로 사용하여 주시기 바랍니다.
8.1. 소프트웨어 설치
1. 소프트웨어 설치
카미봇 파이를 파이썬을 동작하기 위해서는 아래 3가지의 소프트웨어가 설치되어 있어야 합니다.
1) anaconda Individual Edition 설치 (가상환경)
다운로드 URL : https://www.anaconda.com/products/individual
- 파이썬 패키지 설치 (Ver 3.11) ,kamibotpi , 시리얼통신 라이브러리 설치
- HelloAI, Tensorflow, OpenCV, matplotlib 라이브러리 설치
2) PyCharm Community 버전 다운로드
다운로드 URL : https://www.jetbrains.com/ko-kr/pycharm/download/#section=windows
3) 카미봇 동글 드라이버
다운로드 URL : http://kamibot.com/lib/piblock-ai/
2. Anacond 가상 환경 설치
1) 'Anaconda Prompt (anaconda3)' 관리자 권한 실행
2) 가상환경 생성
- conda create --name kamibotpi python==3.11 입력 -> 엔터 -> y 입력.
2) 가상환경에 파이썬 라이브러리 설치
- pip install --upgrade pip 입력 -> 엔터
3) 가상환경 활성화
- conda activate kamibotpi 입력 -> 엔터 -> kamibotpi 로 변경 확인
4) 카미봇 파이 라이브러리 설치
- pip install pyKamipi 입력 -> 엔터
5) 시리얼통신 설치
- pip install pyserial==3.5 입력 -> 엔터
6) Tensorfow 설치
- pip install tensorflow 입력 -> 엔터
7) Tensorflow 데이터셋 설치
- pip install tensorflow-datasets 입력 -> 엔터
8) OpenCV 설치
- pip install opencv-contrib-python 입력 -> 엔터
9) matplotlib
- pip install matplotlib 입력 -> 엔터
10) HelloAI 설치
- pip install helloai==2.3.2 입력 -> 엔터
3. PyCharm 실행 확인
1) New Project
2) Previously configured interpreter 체크
3) Conda Environment -> “kamibotaipyton.exe” 확인
4) Create 클릭
5) COM 포트 번호 확인 (장치관리자)
6) 테스트 코드로 실행 확인
- 테스트 코드 (8번 라인 내 PC 포트 번호 확인!!!) 입력 후 아래 사진의 '3번' 내용 확인.
| import cv2 import tensorflow as tf import sys import numpy as np from pyKamipi.pibot import * kamibot = KamibotPi('COM3',57600) print(cv2.__version__) print(tf.__version__) print(np.__version__) print("test") kamibot.close() | cs |
8.2. 카미봇 파이 라이브러리
아래 링크로 접속하여 카미봇 파이 라이브러리를 참조합니다.
https://pypi.org/project/pyKamipi/
8.2.1. RGB LED 제어
1. LED 제어 함수
kamibot.turn_led(R,G,B)
R : Red 값, 0~255
G : Green 값, 0~255
B : Blue 값, 0~255
2. 예제 1 - 빨간 LED 8번 깜빡이기
| from pyKamipi.pibot import * # 객채생성, 동글 COM 포트 설정 , 통신속도 57600 kamibot = KamibotPi('COM3',57600) for i in range(8): kamibot.turn_led(255,0,0) kamibot.delay(0.5) kamibot.turn_led(0,255,0) kamibot.delay(0.5) #카미봇 연결 해제 kamibot.close() | cs |
3. 예제 2 - RGB LED 밝기를 최소~최대~최소로 변경 (최소로 변경 되면 색상이 변경되도록)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | from pyKamipi.pibot import * # 객채생성, 동글 COM 포트 설정 , 통신속도 57600 kamibot = KamibotPi('COM3',57600) while True: for i in range(0,255,5): kamibot.turn_led(i,0,0) for i in range(255, 0,-5): kamibot.turn_led(i, 0, 0) for i in range(0, 255, 5): kamibot.turn_led(0, i, 0) for i in range(255, 0, -5): kamibot.turn_led(0, i, 0) for i in range(0, 255, 5): kamibot.turn_led(0, 0, i) for i in range(255, 0, -5): kamibot.turn_led(0, 0, i) #카미봇 연결 해제 kamibot.close() | cs |
8.2.2. 피에조 부저 제어
1. 피에조 부저 제어 함수
kamibot.melody(scale,sec)
scale : 건반 숫자
sec : 연주 시간
2. 건반 숫자
3. 예제 - 학교종이 땡땡땡 연주
| from pyKamipi.pibot import * # 객채생성, 동글 COM 포트 설정 , 통신속도 57600 kamibot = KamibotPi('COM3',57600) # 3옥타브 도 -> 48 #학교종이 땡땡땡 melody = [55,55,57,57,55,55,52,55,55,52,52,50,55,55,57,57,55,55,52,55,52,50,52,48] for i in melody: kamibot.melody(i,0.5) #카미봇 연결 해제 kamibot.close()
| cs |
8.2.3. 머리 회전 모터 제어
1. 머리 회전 제어 함수
1) 상대 각도 이동 제어
kamibot.top_motor_degree(dir, value, speed)
dir : 회전 방향 “l”( 왼쪽), “r”(오른쪽)
value : 각도값 0~360
speed : 회전속도 1~9
2) 절대 각도 이동 제어
kamibot.top_motor_abspos(degree,speed)
degree : 각도 값 0~360
speed : 회전속도 1~9
2. 예제
8.2.4. 이동 제어
1. 이동 제어 함수
1) 왼쪽, 오른쪽 모터 속도, 방향 제어
kamibot.go_dir_speed(ldir,lspeed,rdir,rspeed)
ldir : 왼쪽 모터 방향 “f” 앞으로 회전, “b” 뒤로 회전
lspeed : 왼쪽 모터 속도 조절 0~200
rdir : 오른쪽 모터 방향 “f” 앞으로 회전, “b” 뒤로 회전
Rspeed : 오른쪽 모터 속도 조절 0~200
2) 이동 단위 설정 후 앞/ 뒤로 이동
- 앞
kamibot.move_forward_unit(value,opt,speed)
- 뒤
kamibot.move_backward_unit(value,opt,speed)
value : 해당 단위의 이동할 값 (거리, 초, 스텝)
opt : “-l”-> cm,
“-t”-> 시간(초) 단위
“-s”-> step 단위 (1step=0.0471cm)
speed: 0~200
3) 제자리 좌, 후 회전
- 좌
kamibot.turn_left_speed(value,speed)
- 우
kamibot.turn_right_speed(value,speed)
Value : 회전각 0~360
speed: 0~200
2. 예제 - 별 그리기
| from pyKamipi.pibot import * # 객채생성, 동글 COM 포트 설정 , 통신속도 57600 kamibot = KamibotPi('COM3',57600) # 별 그리기 for i in range(0,5): kamibot.move_forward_unit(7, "-l",70) # 속도 70으로 앞으로 7cm 이동 kamibot.turn_right_speed(144,100) # 오른쪽을 144도 회전 #카미봇 연결 해제 kamibot.close()
| cs |
3. 예제 - 삼각형 그리기
| from pyKamipi.pibot import * # 객채생성, 동글 COM 포트 설정 , 통신속도 57600 kamibot = KamibotPi('COM3',57600) # 삼각형 그리기 for i in range(0,3): kamibot.move_forward_unit(7, "-l",70) # 속도 70으로 앞으로 7cm 이동 kamibot.move_right_unit(120, "-l") # 오른쪽을 120도 회전 #카미봇 연결 해제 kamibot.close() | cs |
8.2.5. 컬러 센서
1. 컬러 센서 함수
1) 컬러 색상 인덱스 값을 반환
kamibot.get_color_sensor()
인덱스: 1~8 빨강, 오렌지, 노랑, 초록, 파랑, 하늘, 보라, 흰색
ex)
color = kamibot.get_color_sensor()
print(f"color={color}")
2) 컬러 색상 RGB 값을 반환
kamibot.get_color_elements()
R,G,B 값 각각 0~255
2. 예제 - 빨간색을 인식하면 정지하는 로봇 (인덱스 활용)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | from pyKamipi.pibot import * kamibot = KamibotPi('COM3',57600) while True: color = kamibot.get_color_sensor() print(f"color={color}") if color == 1: kamibot.stop() else: kamibot.go_forward_speed(50, 50) # 센서 닫기 kamibot.get_color_sensor(False) #카미봇 연결 해제 kamibot.close() | cs |
3. 예제 - 빨간색을 인식하면 정지하는 로봇 (RGB값 이용)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | from pyKamipi.pibot import * kamibot = KamibotPi('COM3',57600) while True: color = kamibot.get_color_elements() print(f"color={color}") if color[0] >215 and color[1] <45 and color[2] <50: kamibot.stop() else: kamibot.go_forward_speed(50, 50) # 센서 닫기 kamibot.get_color_sensor(False) #카미봇 연결 해제 kamibot.close() | cs |
8.2.6. 라인 인식 센서
1. 라인 센서 함수
kamibot.get_line_sensor()
왼쪽, 중앙, 오른쪽 센서의 값을 받는 함수
: left, center, right
검은색 = 1, 흰색 = 0
2. 예제 - 라인트레이서 로봇
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | from pyKamipi.pibot import * kamibot = KamibotPi('COM3',57600) while True: left, center, right = kamibot.get_line_sensor() # 왼쪽, 중앙, 오른쪽 센서 값 읽기 print(f"left={left}, center={center}, right={right}") # 왼쪽, 중앙, 오른쪽 센서 값 출력 if center == 1: kamibot.go_forward_speed(30, 30) elif left == 1: kamibot.go_forward_speed(0, 30) elif right == 1: kamibot.go_forward_speed(30, 0) #카미봇 연결 해제 kamibot.close() | cs |
8.2.7. 근접 센서
1. 근접 센서 제어 함수
kamibot.get_object_detect()
왼쪽, 오른쪽 근접센서의 값을 받는 함수
: left, right
가까울수록 값이 높아짐, 장애물이 없을때는 0
2. 예제
1) 장애물을 만나면 멈추기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | from pyKamipi.pibot import * # 객채생성, 동글 COM 포트 설정 , 통신속도 57600 kamibot = KamibotPi('COM3',57600) while True: left, right = kamibot.get_object_detect() # 근접센서 왼쪽, 오른쪽 값 읽기 print(f"left={left}, right={right}") # 근접센서 값 출력 하기 if left > 20: kamibot.stop() else: kamibot.go_forward_speed(50,50) #카미봇 연결 해제 kamibot.close() | cs |
2) 손 따라다니기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | from pyKamipi.pibot import * # 객채생성, 동글 COM 포트 설정 , 통신속도 57600 kamibot = KamibotPi('COM3',57600) while True: left, right = kamibot.get_object_detect() # 근접센서 왼쪽, 오른쪽 값 읽기 print(f"left={left}, right={right}") # 근접센서 값 출력 하기 if left > 20 or right >20: kamibot.go_backward_speed(50, 50) else: kamibot.go_forward_speed(50, 50) #카미봇 연결 해제 kamibot.close() | cs |
8.2.8. Hello AI
1. 마스크 착용 확인 시스템 만들기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | from helloai import * from pyKamipi.pibot import KamibotPi kamibot = KamibotPi('COM3', 57600) wnd = Window('main’) # Windows 창 Model = TMImageProject() # 티쳐블머신 프로젝트 설정 camera = Camera(num=0, crop=True, flip=1) # 카메라 객체 생성 def setup(): # 티쳐블 머신 학습 모델 불러오기 model.load_model('C:/workspace/model/mask') model.summary() def loop(): img = camera.read() # 카메라 이미지 읽기 lbl = model.process(img) # 모델에 이미지 입력하고 분류 값 받기 print(lbl) # 결과 값 출력 wnd.show(img) # 카메라 이미지 Window 출력 if lbl == "마스크착용": # 분류된 값이 “마스크착용”이면 파란색 kamibot.turn_led(0,0,255) elif lbl == "마스크미착용": # 분류된 값이 “마스크미착용”이면 빨간색 kamibot.turn_led(255, 0, 0) # HelloAI의 기능을 사용하기 위한 실행 방법 if __name__ == '__main__': run() | cs |
2. 포즈
1) 포즈 인식
2) 기본 사용
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | from helloai import * from pyKamipi.pibot import KamibotPi kamibot = KamibotPi('COM3', 57600) wnd = Window('wnd') # 카메라 객체 camera = Camera() # 포즈를 인식하기 위한 객체 detector = PoseDetector() def loop(): # 카메라 영상 읽기 img = camera.read() # 인식하기 img, landmarks = detector.process(img, draw=True) # 인식된 포즈 정보 표시 print(landmarks) # 이미지 표시 wnd.show(img) if __name__ == '__main__': run() | cs |
3) 오른손이 어깨보다 높으면 로봇 전진, 낮으면 정지.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | from helloai import * from pyKamipi.pibot import KamibotPi kamibot = KamibotPi('COM3', 57600) wnd = Window('wnd') # 카메라 객체 camera = Camera() # 포즈를 인식하기 위한 객체 detector = PoseDetector() def loop(): img = camera.read() img, landmarks = detector.process(img, draw=True) x1, y1 = landmarks[15][1:3] x2, y2 = landmarks[11][1:3] if y1<y2: kamibot.go_forward_speed(50, 50) else: kamibot.stop(); wnd.show(img) if __name__ == '__main__': run() | cs |
9.1. 개발환경 구축
1. Thonny 설치
1) 카미봇 파이 Tonny IDE 설치 => https://kamibot314.github.io/
-. 압축 해제 후 C 드라이브로 이동. (경로 및 폴더명 한글X)
압축 해제에 상당한 시간이 소요되니. 수업 전 미리 준비를 하는 것이 좋습니다;;
-. thonny.bat 실행
2) USB 드라이버 설치 => http://kamibot.com/lib/piblock-ai/
-. 압축 해제 후 CDM21228_Setup.exe 실행
2. 동작 확인
1) 카미봇 파이와 동글 연결
2) 카미봇 파이 포트 번호 확인 (저는 com4로 연결)
3) 아래 프로그램 실행 (포트 번호!!!) 하여 LED가 빨간색으로 바뀌면 준비 완료.
| from pyKamipi.pibot import * # 객채생성, 동글 COM 포트 설정 , 통신속도 57600 kamibot = KamibotPi('COM4',57600) kamibot.turn_led(255,255,0) | cs |
10.1. 표지판 인식 자율주행 로봇 만들기
[ 기본 개요~~^^]
1. 준비물
카미봇 파이 + 동글, 무선IP카메라 + 동글, 컴퓨터(윈도우), 자율 주행 맵
사용한 자율주행 맵 링크 클릭!!
2. 주제 및 학습 목표
- 이미지 분류를 이용하여 카미봇 파이가 도로의 이미지를 학습 하고, 학습된 결과를 바탕으로 자율 주행하는 로봇을 만든다.
3. 학습 진행 순서
[ 수업 시작 ~~]
1. 소프트웨어 및 로봇 준비
1) 파이블록 실행
2) 확장기능 추가 -> 카미봇 파이, Teachable Machine (이미지), 카메라 선택하기
3) 카미봇 연결 후 LED 색상 변경 클릭하여 연결 확인
4) 카메라 연결 확인
2. 데이터 설계하기
1) 앞으로를 인식할 이미지 데이터
2) 오른쪽으로를 인식할 이미지 데이터
3) 왼쪽으로 인식할 이미지 데이터
4) 횡단보도, 표지판 등 기타 이미지 데이터
3. 이미지 촬영 및 데이터 학습
1) 티처블머신 -> 이미지 학습 접속
-. 화면이 반대로 보이니 카메라 전환을 통해 좌우를 바꾼다. (파이블록에서는 좌우반전 블록이 아직은 없습니다;;;)
2) 2인 1조로 한 명은 카메라, 한 명은 PC에서, 설계된 데이터에 맞도록 맵보드와 표지판 등을 촬영하며 데이터 넣기
- 인식률을 높이기 위해 도로 양쪽의 색상을 다르게 했으므로, 주행 방향은 한쪽으로만 합니다.
-. 반시계 방향으로 정했을 때, 좌회전은 직진도로와 코너 부분의 도로(더 좌측으로 많이 휘어 움직여야하는 곳)로 나누어서 학습을 했습니다.
3) 데이터 학습 후 카메라를 맵보드와 표지판에 위치하여 티처블 머신에서 학습된 결과가 정확하게 나오는 지 확인
4. 스크래치 코딩
1) 학습된 결과 가지고 오기
-. URL로 가지고 오기
-. 저장하여 가지고 오기
2) 각각의 상황에 맞는 동작을 하도록 코딩
3) 더 복잡한 맵이나, 장매물 등을 추가 학습하여 다양한 미션을 해봅니다^^