[IoT Project] 나만의 비서 로봇, J-bot 만들고 있습니다.

in kr-dev •  last year  (edited)

로봇 소개

오늘 소개할 로봇은 나만의 비서 로봇!

제 이름이 Jacob이라.. 이름은 J-bot이라고 지었습니다.

image.png

아직은 볼품없지만, 외형도 갖추고 기능도 하나하나 넣다보면

멋진 로봇이 될거라 믿습니다.


설명

지난 글들에서 google-aiy-voice-kit 를 구매하고 가지고 논 것으로 글을 썼습니다.
google-aiy-voice-kit 활용기
google-aiy-voice-kit 셋팅

이어서 이 로봇도 voice-kit를 활용하여 개발하고자 합니다.

먼저 동영상부터 보시죠!

구현한 기능은 아래와 같습니다.

  • Google assistance 연동
  • 나만의 명령 수행
  • 카메라 촬영
  • 초음파 센서로 가까이 오면 로봇 팔 움직이기
  • 대답 후에 팔 흔들기

구현

하드웨어는 아래와 같이 구성돼있습니다.

  • Voice-kit with 라즈베리파이
  • 카메라
  • Arduino
  • 초음파 센서
  • 서보모터

image.png

코드는 아래와 같습니다.

  • main.py
  • serial_comm.py : arduino와 serial 통신 하는 부분
  • vision.camera.py : camera 이미지 가져오는 부분
  • vision.face_detector.py : face detector하는 부분, 라즈베리파이에서는 너무 느리다.
  • j-bot-arduino : 아두이노에서 모터와 초음파센서를 활용하는 부분

아래 저장소에 업데이트하고 있습니다.
https://github.com/passionbull/J-bot

몇 개 중요한 부분에 대해서만 설명을 하자면..


PC

PC에서 중요한 부분은 아래의 루프이다.

    with aiy.audio.get_recorder():
        while True:
            status_ui.status('ready')
            print('Press the button and speak')
            button.wait_for_press()
            status_ui.status('listening')
            # text is what I said (speech to text)
            # audio is answer of assistant
            text, audio = assistant.recognize()
            local, answer = local_commands(text)
            if local is False:
                aiy.audio.play_audio(audio, assistant.get_volume())
            sc1.action()
  • 버튼이 눌리고 나서 음성을 인식한다.
  • 인식한 음성이 local 명령어인지 체크한다.
  • 아니라면 google_assistant의 답변을 재생한다.
  • 다음으로 아두이노에게 팔을 흔들라고 명령한다.

아두이노

아두이노는 pc로부터 특정 신호를 받을 때, 모터를 제어해야한다.

void setup() {
  Serial.begin(9600);
  leftArm.attach(9);  // attaches the servo on pin 9 to the servo object
  int ultraEvent = timer.every(50, doUltra, (void*)0); //do function per 1sec
  int motorEvent = timer.every(10, doMotor, (void*)0);
  inputString.reserve(200);
  servo_val = 90;
  goal_servo_val = 90;
}
  • 또한, 주기적으로 pc에게 거리 정보와 모터의 각도를 전송한다.
  • 아래 코드는 이를 위한 셋업 코드이다.
  • timer를 사용하여 주기적으로 모터 제어와, 초음파 센서 거리 측정을 수행한다.
  • 시리얼 통신 초기화, PC로부터 데이터를 받는 부분, 보내는 부분 모두 필요하다.

계획

  • 3D 프린터로 외형 제작
  • 로봇 얼굴 달기
  • 근처에 사람이 오면, 푸쉬 알림

관심이 있으신 분들은 언제든 환영입니다.

제가 외형 설계에는 좀 약한 부분이라..

혹시나 로봇의 외형을 해보고 싶으신 분들 있다면 너무 좋을것 같아요!

이 로봇을 만들기 위해 필요한 재료는 voice-kit이 전부입니다!

많은 관심 부탁드립니다!!

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

(jjangjjangman 태그 사용시 댓글을 남깁니다.)
호출에 감사드립니다! 즐거운 스티밋하세요!

스티미언들은 없으면 만드네요... 비서가 없으면 비서 로봇을, 페이가 없으면 스팀페이를 ... ㄷㄷㄷ 다음은 뭘 만들까요

ㅋㅋㅋ 네 비서가 없어서 만듭니다!
감사합니다 ㅎㅎ

I usually browse steemit from my smartphone while on the can

시두이노 쓰시나보네요 저게 전선 핀 꼽을때도 좋던데 ㅎㅎ

멋진 거 함 기대해 봐요

네 몇개 사논게 있어서 ㅎㅎ
외형을 잘 꾸며보고 싶어요

이벤트 참여 감사합니다ㅎㅎ
보팅 꾹 누르구 가용~^^

카일의 보팅이벤트III 당첨!!! 축하드려욧!

와우 운이좋네요 ㅎㅎ