Using flat‎ > ‎

아마죤 에코 설치하기 (SenseHAT 필요)

posted Apr 3, 2018, 10:14 AM by Sundew Shin   [ updated Apr 15, 2018, 4:24 AM ]

(이미지 출처: lifehacker.com)

오늘은 다커 컨테이너화 시킨 AI Pi (인공지능 파이) 공개 프로젝트를 플렛을 이용해 가지고 있는 RPi에 설치 하는 방법을 알아 보겠습니다.
플렛 사용을 원하지 않으시는 분은 아래 첨부된 유튜브 비디오 전체 과정을 따라 설치하시면 됩니다.

준비물

  • 플렛 v0.1.1 이상
  • 아마죤 개발자 사용자 계정 (무료)
  • Sense HAT: 듣기/말하기 상태 표시, 음성입력용 버튼 사용
  • 스피커: 3.5mm 오디오 잭으로 연결
  • USB 마이크, 또는, 마이크 입력이 있는 USB 웹캠

설치

0. 먼저 다음 동영상을 시청 해 주세요.
사용방법 및 초기설정에 필요한 Alexa 개발자 정보를 얻는 방법이 나옵니다. (5분15초)

1. 'AI Pi' 템플릿을 선택 합니다.



2. 다음과 같이 앞서 생성한 alexa앱 설정 정보를 넣으시고 'Create' 버튼을 눌러주세요.
(처음 설치시 약 300MB 파일을 다운로드 받는 만큼의 시간이 소요 됩니다.)



3. 컨테이너가 만들어 졌으면 웹브라우져에서 주소, http://[RPi IP]:5000 를 입력하시면 다음과 같이 아마죤 사이트로 이동하게 됩니다. 개발자 계정으로 로그인을 완료 합니다.



4. 다음 화면에서 'Success:..' 메시지가 보이고 마이크에서 'Hello' 목소리가 들리면 설치가 완료 되었습니다.
처음에 놀라지 마세요. 사실 안놀라기가 쉽지 않습니다.

자, 이제 웹브라우져는 닫으시고 앞서 봤던 동영상대로 SenseHAT의 죠이스틱버튼을 눌러 알렉사를 만나보세요.
제가 좋아하는 입력문은 다음입니다:

"Can you sing a song for me?"

좋은 하루 되세요.

P.S: 시작에서 성공까지 총 소요된 시간을 댓글로 남겨 주시면 참고가 되겠습니다.

자주 묻는 질문들

  1. 영어만 되나요?
    -> 네. 아직은 그렇습니다.

  2. 날씨나 로컬(레스토랑) 정보를 물으면 시애틀 것을 알려줍니다. 제가 사는 곳으로 설정을 바꿀 수 없나요?
    -> 네. 아직 위치 수정이 불가능합니다. 대신 'weather in 서울?' 이런 식으로 묻습니다. 

  3. 음성명령을 통해 GPIO 신호 출력 등을 시킬 수 있나요?
    -> alexa의 모든 연산이 클라우드에서 이뤄지는 만큼 로컬의 RPi 리소스를 조작하는 것은 아직 불가능합니다.

  4. Sense HAT 없이 만들 수 있을까요?
    -> 네. 수정하면 가능합니다. 1) AlexaPi 프로젝트를 참고 해서 소스를 수정하시고 2) 탬플릿을 통한 컨테이너 생성시 디바이스 링크를 변경 해 주시면 됩니다. 즉, Sense HAT이 사용하는 /dev/i2c-1, /dev/fb1, 두 장치는 더이상 필요하지 않고, 보통 GPIO를 사용 하므로 /dev/gpiomem 장치를 추가 합니다.

  5. 호스트(RPi)에서 다른 프로그램으로 스피커나 마이크를 사용하고 있을 때도 동작하나요?
    -> 네. 충돌 없이 같이 잘 동작합니다. 참고로 AI Pi 컨테이너 안에서 호스트 장치로의 접근 권한은 mrw (mknode, read, write)입니다.

  6. 응답이 늦어서 다시 버튼을 누르다 보면 답변이 안나오다가 상태가 'Stopped'로 바뀌고 동작을 안합니다.
    -> Sense HAT의 디스플레이(LED matrix)에 물음표('?')가 표시 되면 입력된 이전 음성입력에 답변 할 것을 cloud에서 찾고 있다는 의미이고 답변이 나오는 중간에는 느낌표 ('!')가 표시되는데, 둘다 기다려줘야 하는 시간으로, 이런 중에 또 버튼을 누르면 프로그램이 비정상 동작 하게 됩니다. 원python프로그램의 버그이거나 alexa의 버그로 보여 집니다. 이럴때는 'Container'메뉴로 가서 다시 'Start'를 하던지, 아니면 호스트(RPi)에 부하가 너무 많이 걸리는지 확인하고 해결 합니다.

  7. 소리가 너무 작습니다 or 큽니다.
    -> 호스트 (RPi)나 컨테이너 명령줄에서 다음을 입력 합니다. 퍼센트값은 0~100 사이 값입니다.
    sudo amixer set PCM 0 100%

설치 문제해결

  1. 'linux runtime spec devices: error gathering device information while adding custom device "/dev/i2c-1": lstat /dev/i2c-1: no such file or directory'
    -> Sense HAT을 위한 i2c장치 활성화가 (enable)이 되어 있지 않습니다. 'sudo raspi-config'에 '5. Interfacing Option' > 'P5 I2C' > 'Would you like the ARM I2C interface to be enabled?' > '<Yes>'를 선택 합니다.


  2. 'Conflict. The container name "/alexa" (예) is already in use by container'
    -> 이전 컨테이너 생성작업의 결과물이 그래로 남아서 생긴 문제입니다. 컨테이너 이름을 다른 것으로 바꾸거나 아니면 'Containers' 메뉴에서 해당 이름의 컨테이너를 삭제하고 다시 시도 합니다.
Comments