아두이노 RC카를 키보드 터치가 아닌 음성 인식으로 제어해 보자. 아두이노 RC카의 구조와 아두이노 코드는 아래의 블로그 489 번에 올려둔 코드를 그대로 사용하기로 한다.
항상 아두이노 코드를 USB 케이블을 통해 업로딩할 때에는 블루투스 센서 보드 H-06의 TX,RX 핀을 뽑아두어야 한다. 업로딩이 완료되면 2개의 핀을 꽂은 후 블루투스 센서 보드의 LED 가 깜박인다. 스마트폰과 통신에 의해서 인식이 되면 깜빡임이 멈춘다.
아두이노 우노 코딩에 의한 L239D 모터 쉴드 DC모터 구동 RC카 주행
FOF4YFTIA0WX947_F
http://blog.daum.net/ejleep1/489
위 블로그에서의 RC카 제어상의 차이점은 블루투스 앱인벤터 코딩에서 문자 “F’, ‘B’,‘S’,‘L’,‘R’을 직접 버튼 터치에 의해 선택하여 송신하는 것 뿐만 아니라 음성인식에 의해 얻어진 텍스트를 보내도록 하는 것이다.
주의해야 할 점은 구글의 음성인식엔진이 콩글리쉬로 인식하기 때문에 글자 명령의 발음에 주의해야 하며 약간의 훈련이 필요하기도 하다. 몇 번의 경험에 의하면 엘이디라든지 엠비씨와 같이 세글자 콩글리쉬 인식율이 높으므로 필요하다면 아두이노 코드의 문자 인식 부분의 if 문을 약간 수정할 필요도 있을 것이다.
앱인벤터 코딩을 하도록 해보자. 코딩을 시작하기 전에 마이크 이미지로 사용하기 위한 그림 파일을 준비해둔다. 본 블로그에서는 가능한한 오픈소스라해도 베껴 쓰는 것 보다는 스스로 간단하게 해결하는 습관을 가지면 좋을 듯해서 그림판을 사용해 3 분 만에 직접 그려 png 파일로 저장하였다.
앱인벤터 콤포넌트 구성을 살펴보기로 하자. 핵심만 얘기하지면 블루투스 Connect 버튼과 전진 후진 좌회전 우회전 정지 버튼과 마이크 버튼이다, 아울러 Non visible 요소로는 음성인식(Voice recognizer), BluetoothClient 가 전부이다.
5개의 버튼 키는 RC카 움직임을 제어하기 위한 것이다.
음성 제어를 위해서는 아래의 마이크 이미지를 터치해서 입력해야 한다.
구글 음성 인식엔진은 콩글리쉬 기반의 음성엔진이므로 사용에 주의해야 한다. 전진 Go 의 경우 약간의 발음 훈련이 필요하다, 후진 Back의 경우는 BK로 명령하면 쉽게 인식된다. 좌회전 Left는 LT로 우회전 Right는 h 로 발음하도록 한다.
음성명령이 인식되면 마이크 이미지 하단에 텍스트가 출력된다.
이와같이 RC카 터치 명령 키보드와 음성명령 키보드와의 합성은 기존의 터치 명령 블록 코딩에 음성 부분을 추가하면 되므로 대단히 간단하다.
아래의 블록은 listPicker를 사용한 블루투스 검색 및 연결을 위한 퍼즐 코딩 부분이다.
아래의 코딩은 5개의 RC카 움직임 제어 명령 코딩이다. 버튼 키의 위치는 디자이너의 레이아웃 내부에서 3X3 TableArrangement를 사용하여 버튼들을 배치하면되며 퍼즐코딩과는 상관이 없다.
음성 명령은 마이크 버튼 클릭과 함께 음성인식 엔진으로부터 텍스트를 받아내어 블루투스로 송신하는 과정이다. 아래의 퍼즐 코딩을 단순히 추가하면 된다.
터치 명령과 음성 명령은 섞어 사용해도 무방하다.
한편 콤포넌트 구성과 블록에서의 퍼즐 코딩을 위한 디렉토리 구조를 참고하기 바란다.
아울러 블록 디렉토리의 TableArrangement 밑에 5개의 버튼 요소가 포함되어 있다.
'앱 인벤터 appinventor' 카테고리의 다른 글
앱 인벤터에 의한 나침판 코딩 업데이트 (0) | 2017.11.02 |
---|---|
게임 스페이스 인베이더 앱인벤터 코딩 (0) | 2017.10.31 |
CHATBOT 앱 인벤터 코딩과 음성 명령에 의한 라즈베리파이 LED ON OFF (0) | 2017.10.25 |
앱 인벤터에 의한 음성인식 앱 (0) | 2017.10.25 |
앱 인벤터에 의한 나침판 (0) | 2017.10.23 |