산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

WalaBeer 탱크

구성품 및 소모품

Walabot 생성기
× 1
Arduino MKR1000
× 1
라즈베리 파이 3 모델 B
× 1
Amazon Alexa Amazon Echo
또는 https://echosim.io/
× 1
SparkFun 모터 드라이버 - 듀얼 TB6612FNG(1A)
× 1
탱크 프레임(2개의 브러시 DC 모터 포함)
× 1
서보(타워 프로 MG996R)
× 3
메탈 빌더 게임 키트
× 1
스테퍼 모터 + 드라이버
28byj-48 스테퍼 모터와 X113647 모터 드라이버를 사용했습니다.
× 1
7.4V LiPo 배터리
× 1
7.4V LiPo 배터리 충전기
× 1
회전 전위차계(일반)
× 1
LED(일반)
LED 스트립의 한 부분을 사용했습니다.
× 2
낚시줄
× 1
덮개용 얇은 플라스틱 또는 단단한 종이
× 1
5V BEC 회로
× 1
저항 10k 옴
× 1
저항 22.1k 옴
× 1
저항 2.21k 옴
× 1
달링턴 고전력 트랜지스터
× 1
30cm 길이의 나무 자
× 2
전압계
선택 사항입니다
× 1
수신기가 있는 RC 송신기
탱크를 수동으로 제어하기 위한 선택적 부품입니다. 리모컨 없이도 작동할 수 있습니다.
× 1
맥주
× 1

필요한 도구 및 기계

납땜 인두(일반)
뜨거운 글루건(일반)
톱 도구
드릴
라스프

앱 및 온라인 서비스

Arduino IDE
Amazon Web Services AWS IoT
Amazon Web Services AWS Lambda
Amazon Alexa Alexa 기술 키트
Walabot SDK
파이썬

이 프로젝트 정보

초록

남자라면 누구나 갖고 싶어하는 것이 마음 속 깊은 곳에 있다. 맥주와 탱크를 결합하는 것은 이러한 것들 중 하나입니다! 이 프로젝트는 자율적인 "나를 따라와" 기능 또는 RC 제어로 맥주를 배달하는 음성 제어 탱크에 관한 것입니다. 꿈에 그리던 맥주 탱크를 만들자!

섀시

탱크를 위한 좋은 기반이 필요합니다. banggood에서 이 섀시를 찾았습니다. 가격도 저렴하고 너무 예뻐서 하나 사야할 것 같았어요.

제품을 받은 직후 첫 번째 문제가 발생했습니다. 부적절한 포장으로 인해 배송 중 심각한 부상을 입었습니다.

많은 시간과 많은 접착제가 필요했지만 다행히 대부분 수리할 수 있었습니다.

크레인

탱크 섀시에는 모터와 기어박스가 모두 포함되어 있으므로 다음 단계는 맥주를 제공하는 방법을 파악하는 것이었습니다. 수 많은 아이디어를 낸 끝에 맥주를 숨길 수 있는 가장 좋은 방법은 맥주를 숨긴 다음 크레인을 사용하여 높이는 것이라는 것을 알아냈습니다. 이것이 제가 생각해낸 기본 디자인입니다.

나는 강력하지만 수정하기 쉬운 스켈레톤이 필요했기 때문에 오래된 금속 빌더 키트를 사용했습니다. 크레인은 낚싯줄로 스테퍼 모터에 연결됩니다. 28byj-48 스테퍼 모터는 이러한 목적에 적합했습니다. 빠르지는 않지만 크레인과 맥주를 쉽게 들어 올릴 수 있습니다. 사실 모터가 너무 강해서 제때 멈추지 않으면 낚싯줄이 부러져 버렸어요.

그것은 훌륭하게 작동했지만 골격이 충분히 강하지 않았고 매우 일찍 구부러지기 시작했습니다. 이 문제를 해결하려면 구조적 무결성을 높여야 했습니다. 나는 두 개의 30cm 길이의 단단한 나무 통치자와 더 강하게 만들기 위해 몇 가지 추가 부품을 사용했습니다. 약간의 드릴링, 톱질 및 긁힘 후 다음 버전은 다음과 같습니다.

보시다시피 수정으로 인해 굽힘 문제가 해결되었으며 매우 안정적입니다.

케이스

Walabot(개발자 버전)은 탱크의 '눈'이 될 것입니다. Walabot 섹션에서 Walabot에 대해 자세히 알아보세요. 프런트 장소에는 Walabot용 홀더 부분이 있습니다. Walabot의 자석 홀더를 사용하기에 완벽한 크기의 금속 부품이 있었습니다. 또한 Walabot이 둥근 부분에서 회전하는 것을 방지하기 위해 뜨거운 접착제로 Walabot 로고 모양을 만들었습니다.

마그네틱 마운팅은 심각한 분해 없이 여러 프로젝트에서 하나의 Walabot을 쉽게 사용할 수 있고 충분히 강력하기 때문에 훌륭합니다.

부품을 숨기기 위해 프레임 주위에 덮개를 만들기 시작했습니다. 표지는 검은색 판지와 플라스틱 시트를 사용했습니다.

이 시점에서 앞과 중간 부분은 덮이지 않았습니다. 나는 또한 맥주를 완전히 숨기기 위해 상단에 해치가 필요했습니다. 해치를 이동하기 위해 두 개의 서보, 일부 핫 블루와 절연 테이프를 사용했습니다. 디자인용으로만 사용되는 이 상단 도어는 실제로 맥주를 보호하지 않습니다. 하지만 뚜껑을 열고 맥주를 부풀리면 아주 시원합니다.

문은 두 개의 플라스틱 시트, 나무 막대기 및 일부를 풀로 말아서 만든 종이로 만들어지며 뜨거운 접착제로 함께 접착됩니다. 가장 예쁜 것은 아니지만 실제로는 그렇게 나빠 보이지 않습니다. 전부 검은색으로 칠했습니다. 실생활에서는 검은색 부분의 차이를 확인하기가 훨씬 더 어렵습니다.

크레인 - Vol. 2

다시 크레인으로 돌아가 보겠습니다. 안정적으로 사용하려면 피드백이 한 가지 더 필요했습니다.

원래 나는 이것을 위해 간단한 바이너리 피드백을 사용하고 싶었습니다. 크레인이 하강 상태에 있으면 회로가 닫힙니다. 올리면 열릴 것입니다. 빨간색 원 안의 나사와 스프링이 그 스위치였을 것입니다. 타이머를 사용하여 최상위 위치를 결정했을 것입니다.

너무 정교하지는 않았지만 아이디어는 성공했습니다. 불행히도 그것은 전혀 신뢰할 수 없었기 때문에 쉽게 크레인을 손상시킬 수 있었습니다.

나는 파란색 직사각형 안에 있는 훨씬 더 나은 또 다른 솔루션을 생각해 냈습니다. 나는 10K 전위차계를 기중기 축에 붙였으므로 기중기의 현재 각도에 대한 신뢰할 수 있는 피드백을 얻었습니다. 이러한 방식으로 상단 및 하단 위치를 결정하는 것은 매우 쉽습니다. 참고:이 시점까지는 프로토 쉴드가 매우 편리하기 때문에 테스트를 위해 오래된 Arduino Uno를 사용했습니다.

사실 저는 이 피드백 부분을 정말 좋아합니다. 계획에 없었지만 탱크의 룩에 시원함을 더해줍니다.

회로

좋습니다. 탱크 본체는 완성되었지만 이동하려면 전자 장치가 필요합니다!

또한 이 이미지를 Schematics 섹션에 배치했지만 여기에서 다운로드하지 않고 확대할 수 있습니다. 회로는 처음에는 약간 복잡해 보일 수 있지만 실제로는 매우 간단합니다. 첨부된 메모는 설명이 필요한 모든 경우에 도움이 될 것입니다.

이 프로젝트는 현재 아두이노 MKR1000의 WiFi 기능을 사용하고 있지는 않지만, 제가 알기로는 RC 트랜스미터를 사용하여 탱크를 제어하고 싶다면 아두이노 우노로 교체할 수 없습니다. 내 프로젝트는 속도, 회전 및 크레인 제어를 위해 3개의 채널을 사용하고 있습니다. 외부 인터럽트 기능이 있는 3개의 핀이 필요합니다. Arduino Uno에는 이 목적을 위해 2개의 핀만 있습니다. RC 수신기의 해당 채널의 PWM 값을 읽으려면 해당 핀이 필요합니다.

나는 프로토 PCB에 회로를 만들었습니다. 상당히 컴팩트해졌습니다. 왼쪽의 파란색 LED는 디버깅을 위한 단순한 '내장' LED였겠지만 실제로 사용한 적은 없습니다. 녹색 커넥터는 LiPo 배터리를 연결하는 데 사용됩니다.

이 보드에 연결되는 대부분의 전선은 탱크 상단에 있습니다. '와이어 지옥'을 피하기 위해 거기에 보드를 접착하는 것이 분명했습니다.

이미지에서 보시다시피 원래는 Raspberry Pi Zero W로 시작했는데 전원이 부족해서 Raspberry Pi 3 B를 사용하게 되었습니다.

이 시점에서는 완벽하게 작동했지만 숨겨진 헤드램프라는 멋진 기능을 추가했습니다. 오른쪽의 검은색 플라스틱 부분은 쉽게 이동할 수 있습니다. 나는 그것을 위아래로 움직이기 위해 서보를 부착했고 12V LED 스트립의 한 부분도 사용했습니다. 7.4V LiPo 배터리에서 12V LED 스트립에 전원을 공급하는 것은 좋은 생각이 아닙니다. 조명이 매우 약할 것입니다. 나머지 LED를 밝게 하기 위해 중간 LED를 와이어로 교체했습니다. 완벽하게 작동했습니다.

전면 LED는 파란색 표시 LED와 동일한 핀으로 제어됩니다. 헤더와 트랜지스터를 추가하여 보드를 약간 수정해야 했습니다. 결과는 굉장합니다:

Arduino - 하드웨어

탱크를 제어하기 위해 Arduino MKR1000을 사용했습니다. 이것은 3개의 외부 인터럽트를 처리할 수 있고 이 프로젝트에 충분한 핀이 있는 내 컬렉션에서 가장 작은 Arduino 또는 Arduino IDE 호환 장치입니다. WiFi 기능도 있지만 지금은 사용하지 않겠습니다.

탱크에는 5개의 PWM 가능 핀이 필요합니다. 3은 서보용이고 2는 모터용입니다. 기능을 확인하면 12개의 PWM 가능 핀이 있음을 알 수 있습니다. 그 정도면 충분하지? 예, 아니요.

핀 2-5에는 ~ 표시가 있습니다. 이 4개의 핀만 하드웨어 PWM 신호를 생성할 수 있다는 의미라고 생각합니다. 다른 핀은 소프트웨어 PWM 신호만 생성할 수 있다고 생각합니다. 기술 사양에는 이에 대해 기록되어 있지 않지만, 내가 처음으로 프로토타입 MKR1000을 얻었을 때 문서에는 4개의 PWM 가능 핀만 언급되어 있었습니다. 그 네. 원래 나는 이 소프트웨어 PWM 핀 중 2개를 통해 해치 서보를 제어했습니다. 소프트웨어 PWM 생성과 하드웨어 인터럽트 기반 PWM 신호 판독의 조합으로 인해 다음과 같은 문제가 발생했습니다.

서보용 하드웨어 PWM 핀을 사용하여 이 문제를 해결했습니다. 불행히도 다른 두 개의 하드웨어 핀이 모터를 제어하는 ​​데 필요했기 때문에 LED 도어의 서보에 해당 핀 중 하나를 사용해야 했습니다. TB6612FNG 모터 드라이버 덕분에 모터를 제어하는 ​​데 2개의 PWM 핀(및 4개의 다른 디지털 핀)만 필요했습니다. 'LED 도어' 서보는 다른 서보보다 훨씬 느리기 때문에 가끔 조용한 윙윙거리는 소리가 납니다. 2개가 아닌 1개의 소프트웨어 PWM 핀만 사용하는 것도 도움이 되었습니다. 앞으로는 LED 문을 여는 다른 방법을 사용하기 위해 해당 부품을 다시 만들 수도 있습니다. 솔레노이드가 트릭을 수행할 수 있습니다.

Arduino는 배터리의 전압을 측정한 다음 직렬로 보낼 수 있습니다. 또한 탱크 뒷면에 간단한 전압계를 통합했습니다. 배터리 상태에 대한 사용자 피드백으로 사용됩니다. 아두이노에 의해 제어되지 않는 별도의 회로입니다.

Arduino - 무선 제어

MKR1000은 외부 인터럽트로 3개의 개별 PWM 신호를 처리합니다. 신호의 펄스 시간은 약 1000~2000us 범위에 있습니다. 첫 번째 채널은 motorSpeedBase라는 변수를 계산하는 데 사용됩니다. 모터의 기본 속도이며 다음과 같이 계산됩니다.

motorSpeedBase =(vertical_pulse_time - 1500) / 2; 

모터를 제어하기 위해 8비트 PWM 신호를 사용했으므로 값을 -255에서 255 범위로 조정했습니다. MKR1000은 8비트보다 더 잘할 수 있지만 이러한 모터에는 충분합니다.

motorSpeedChange 변수는 교반에 사용되며 두 번째 채널에서 계산됩니다. motorSpeedBase와 유사하게 계산됩니다. 차이는 2가 아닌 3으로 나눈 것입니다. 이 차이는 탱크를 제어하는 ​​데 도움이 됩니다.

motorSpeedChange =(horizontal_pulse_time - 1500) / 3; 

세 번째 채널은 단일 스위치에서 사용됩니다. 크레인과 해치 도어의 움직임을 제어합니다. 다음과 같이 계산됩니다.

상승 =state_switch_pulse_time <1500; 

그 값은 스위치를 껐을 때 1000us이고 스위치를 켰을 때 2000us입니다. 결과는 부울입니다.

최종 모터 속도는 다음과 같이 계산됩니다.

int rightMotorSpeed ​​=motorSpeedBase + motorSpeedChange; int leftMotorSpeed ​​=motorSpeedBase - motorSpeedChange; 

결과가 최대값/최소값보다 높거나 낮으면 값이 최대값/최소값(255 또는 -255)으로 설정됩니다. 관련 핀은 motorSpeed ​​값에 따라 업데이트됩니다. 속도 값이 최소값에 도달하지 않으면 해당 모터가 비활성화됩니다.

크레인과 해치는 이 기능에 의해 처리됩니다.

void handleCrane() { int craneValue =analogRead(CRANE_FEEDBACK_PIN); if (상승) { if (craneValue  

크레인의 현재 상태를 확인하는 것부터 시작됩니다. 올려야 하지만 그렇지 않은 경우 해치 도어의 서보를 업데이트하고 크레인을 위로 이동합니다. 낮추어야 하지만 그렇지 않은 경우 크레인을 낮추고 해치를 닫습니다. 스테퍼 모터의 코일은 그대로 두면 배터리가 심각하게 뜨거워지고 소모될 수 있으므로 프로세스가 끝나면 비활성화해야 합니다.

Arduino - Raspberry Pi 통신

Arduino는 USB-micro USB 케이블을 사용하여 Raspberry Pi에서 연결되고 전원이 공급되며 직렬을 통해 통신합니다. Raspberry는 다음 명령으로 Arduino를 제어합니다.

<울>
  • --> 무선 제어를 끄고 직렬 명령만 수락합니다. Arduino는 이에 대해 '확인'으로 응답하고 무선 제어를 비활성화합니다. 이 OK는 Rpi가 Arduino를 인식하는 방법의 일부입니다.
  • <울>
  • r --> 라디오 컨트롤 다시 켜기
  • <울>
  • --> 크레인을 들어올려 해치를 엽니다.
  • <울>
  • d --> 크레인 내리기
  • <울>
  • m X Y -> 모터의 속도를 설정합니다. X는 motorSpeedBase이고 Y는 motorSpeedChange입니다. X와 Y는 모두 정수여야 합니다.
  • <울>
  • b --> arduino는 정수로 응답합니다:배터리 전압 * 100
  • <울>
  • l --> 조명 켜기
  • <울>
  • o --> 조명 끄기
  • 직렬 제어의 경우 Arduino는 RC 채널 1과 2에서는 인터럽트를 비활성화하지만 3에서는 인터럽트를 비활성화하지 않는다는 점에 유의해야 합니다. 채널 3(스위치)은 안전 스위치로 사용되어 미친 짓을 시작하면 WalaBeer Tank를 비활성화합니다 자율 모드의 것들.

    왈라봇

    여기에서 Walabot이 등장하는 부분이 있습니다. Walabot은 이미징을 위해 마이크로웨이브를 사용하는 3D 센서입니다. 벽을 통해 보기, 멀리서 호흡 감지, 어둠 속에서 보기 등과 같은 놀라운 일을 할 수 있습니다. 다른 사람들이 그 일을 훌륭하게 수행했기 때문에 다른 기능에 대한 페이지를 쓰고 싶지 않습니다. 그러나 나는 그들에 대해 읽는 것을 정말로 추천합니다.

    탱크의 유일한 탐색 센서로 Walabot을 사용하겠습니다. Walabot을 Raspberry Pi와 함께 사용하려면 먼저 Walabot SDK를 설치해야 합니다. 여기에서 SDK를 다운로드할 수 있으며 Walabot API 사이트에서 설치를 도와드립니다. Walabot을 사용하는 방법에 대한 유용한 정보와 예제가 많이 있습니다. 사이트 확인을 권장합니다.

    Walabot의 전력 소비는 0.4-0.9A입니다. 이는 기본적으로 Raspberry Pi가 Walabot에 전원을 공급하기에 충분한 에너지를 제공할 수 없음을 의미합니다. 운 좋게도 다음 줄을 추가하여 rpi USB 포트의 전력 출력을 높이는 방법이 있습니다. `max_usb_current=1`을 /boot/config.txt에 추가합니다. 내가 아는 한 전력 출력이 600mA에서 1200mA로 증가합니다.

    그것은 좋겠지만 여기에 문제가 있습니다. 나는 또한 Raspberry의 Arduino와 서보에 전원을 공급합니다. 탱크의 모터와 스테퍼 모터는 배터리로 구동되기 때문에 문제가 되지 않는다고 생각했습니다. 그러나 그것은 않습니다. 이 상태에서 Walabot을 시작하면 WALABOT_ERR_PROTOCOL 메시지와 함께 중지됩니다. 시작하려고 하면 절전 모드가 발생할 수 있습니다.

    배터리 제거기 회로는 최대 3A를 제공할 수 있으므로 여기에서 충분합니다. Walabot에는 2개의 마이크로 USB 포트가 있습니다. 중간 포트는 다른 포트와 통신하면서 거기에서 전원을 공급받을 수 있기 때문에 이 상황에서 저를 도울 것입니다. 이렇게 하려면 이 점퍼를 움직이기 위해 수정을 하고 Walabot의 덮개를 제거해야 했습니다.

    그 후 Walabot은 완벽하게 작동했으며 더 이상 WALABOT_ERR_PROTOCOL이(가) 없습니다.

    뒷면의 로고(매끄러운 부분이 앞면)에는 매우 강력한 4개의 자석이 내장되어 있습니다. 추가 하드웨어 없이 Walabot을 탱크의 금속 전면에 쉽게 부착하는 데 사용되었습니다.

    나를 팔로우하세요

    탱크의 '판매 포인트' 중 하나는 팔로우 미 모드입니다. 맥주 탱크에 당신을 따르라고 요청하면 최선을 다해 당신을 따릅니다. 목적지에 도착하면 안에 있는 맥주를 달라고 하면 됩니다. 훌륭한 파티 트릭입니다!

    Walabot SDK는 Walabot과 상호 작용할 수 있는 모든 종류의 방법을 제공합니다. 내 프로젝트는 getTargets 를 사용합니다. 움직이는 타겟 식별 기능 (MTI) 모드. Walabot 앞에서 움직이는 물체를 감지하는 데 사용됩니다. 내 구성으로 getTargets는 최대 4개의 대상을 반환하고 최대 1.5미터 거리에 있는 개체를 볼 수 있습니다.

    대상에는 XYZ 좌표와 진폭 매개변수가 있습니다. 여기서는 높이(X)가 중요하지 않기 때문에 Y 및 Z 좌표만 사용합니다. 문제는 어떤 대상이 무엇인지 알 수 있는 방법이 없다는 것입니다.

    초기 버전에서는 목표 목록에서 인간을 찾기 위해 규칙을 만들었습니다. 당신을 따르도록 명령하기 전에 80cm 거리에서 Walabot 앞에 서 있어야 합니다. 그 후 내 코드는 진폭이 충분히 높은 가장 가까운 물체가 사람이라고 가정합니다. 사람이 감지되면 탱크는 사람을 움직여 원하는 위치에 유지하기만 하면 됩니다.

    불행히도 그것은 완벽하지 않았습니다. 다행히 다른 접근 방식에 대한 제안을 받았습니다. 시작은 동일합니다. Walabot 앞에 80cm 거리에 서 있어야 합니다. 탱크에 가장 가까운 목표는 인간으로 간주됩니다. 그 후, 각 반복에서 사람의 위치는 이전 위치에 가장 가까운 대상이 됩니다. 새 위치와 이전 위치 사이의 거리가 너무 높으면 탱크가 사람의 위치를 ​​업데이트하지 않고 정지합니다. 탱크는 이전 위치 주변에 있는 사람을 찾으려고 하므로 사람을 찾으면 계속 따라갑니다. 꽤 간단한 아이디어입니다.

    아레나 뷰에 대한 몇 가지 사례를 살펴보겠습니다. 탱크의 목표는 목표 지역(빨간색 사각형)에 사람을 유지하는 것입니다. 파란색은 다음과 같은 경우 가장 가깝고 사람입니다.

    <울>
  • 사례 1:사람이 대상 영역에 있으므로 이동할 필요가 없습니다.
  • <울>
  • 사례 2:사람이 오른쪽에 있고 탱크에 너무 가까이 있습니다. 처음에는 탱크가 우회전한 다음 뒤로 이동하여 사람에게서 멀어집니다.
  • <울>
  • 사례 3:탱크가 회전할 필요가 없지만 사람이 너무 멀리 있습니다. 앞으로 나아갈 것입니다. 내가 이 사진을 찍을 때 Walabot은 3개의 표적을 보았습니다.
  • <울>
  • 사례 4:이 사진에는 대상이 하나만 있고 왼쪽에 있습니다. 탱크가 왼쪽으로 이동한 다음 앞으로 이동합니다.
  • <울>
  • 사례 5:탱크는 사람이 빨간색 직사각형 안에 있을 때까지 뒤로 이동합니다.
  • 이 이미지는 Walabot-SensorTargets 데모의 약간 수정된 버전에서 Arena 보기의 인쇄 화면입니다. 내 프로젝트는 필요하지 않으므로 GUI가 없지만 동일한 주체를 사용합니다. github 페이지에서 다른 데모 프로젝트를 확인하는 것이 좋습니다.

    현재 설정의 움직임이 너무 유동적이지 않습니다. 앞으로 나아가면서 동시에 자율 모드로 전환할 수 없습니다. 그 주된 이유는 Walabot의 프레임 속도입니다. 현재 설정으로 약 6 FPS입니다. 이는 Raspberry가 0.16초마다 하나의 업데이트를 받는다는 것을 의미합니다. 이것은 문제입니다. 0.16초 동안 많은 일이 일어날 수 있습니다. 이 문제를 극복하기 위해 탱크 속도를 늦췄습니다. 나는 가능한 한 최소한의 속도를 사용하여 전진하고 회전했습니다. 또한 내 추적 설정에서는 이러한 움직임이 신뢰할 수 없었기 때문에 회전과 이동의 조합을 제거했습니다. 더 높은 속도에서는 많이 오버슛했고 낮은 속도에서는 현재 버전보다 덜 안정적이었습니다.

    음성 제어

    자율 모드에서는 탱크를 제어할 멋진 방법이 필요했습니다. 이를 위해 Amazon의 Alexa Skill Kit를 사용했습니다. 초기 버전에서는 ngrok과 함께 사용하여 Raspberry를 직접 제어했습니다. 일반적으로 사람들은 이를 위해 Amazon Echo 버전을 사용하지만 불행히도 저는 그러한 장치가 없습니다. 이 작업을 수행하려면 Google Play에서 echosim과 Amazon Alexa 앱을 사용해야 했습니다. WalaBeer는 Alexa가 인식하지 못하는 것이기 때문에 스킬 이름은 Beer Tank입니다. 맥주를 사거나 맥주를 좋아하는 등이지만 WalaBeer는 아닙니다. 다음 명령을 사용하여 Alexa와 상호 작용할 수 있습니다.

    <울>
  • 맥주 탱크 시작
  • <울>
  • 조명 켜기/끄기
  • <울>
  • 화물칸을 {열기/닫기}
  • <울>
  • 나를 팔로우 {시작/중지}
  • <울>
  • [중지/취소]
  • 다음은 처음 두 가지 기능에 대한 동영상입니다.

    Some of the voice commands in the video might differ from the current commands due to some requirements during the publishing process (e.g:'stop' changed to 'stop following me'). Controlling a Raspberry Pi using Alexa is very easy, however to get the knowledge to do that is not. For the first time I used ngrok and it was super easy to do this but ngrok is only good for testing purposes. The URL provided by ngrok will change after every restart and there are other problems too. Long story short, I needed a better solution.

    I moved on to using AWS Lambda and AWS IoT. They are perfect for my purpose but it was quite difficult to find useful information about how to use them. I mean I found lots of partial tutorials and documentation but usually they were missing some crucial information and/or just didn't work. Finally, I found the youtube channel of Kurt Braun. He made an excellent tutorial that helped me a LOT. I really recommend his videos if you want to use AWS Lambda and AWS IoT:

    This other video also helped me when I did the experimenting part. I won't go into details about configuring Lambda and AWS IoT, these videos are containing every necessary information about this topic.

    He used Node-RED in his videos. That is a very useful tool, however I needed to use Python instead of JavaScript. Amazon provides an SDK for Python, but I used Paho MQTT Client to make the Raspberry Pi subscribe to my 'wbt' topic's messages. It was easier for me to use.

    Finally, here's a video about the current status of the prototype:

    As you can see the "follow me" mode is working quite well, but the tank is very slow in this mode. Possibly it is capable of slightly higher speeds but I wanted to be sure that it doesn't do crazy things. Slowing the tank down was needed because at higher speeds it can easily lose me, mostly when it is turning. I've got a couple of ideas how I can significantly increase the speed in "follow me" mode but it will take some time and possibly some extra hardware to implement a solution for that.

    You can access my skill here and this is its id:

    amzn1.ask.skill.a7453502-b1aa-47fa-a552-ed8e2c792b2e

    If you want to publish your skill it might be a good idea to you authentication to differentiate the devices. For that follow this great tutorial.

    Canceled

    I'd like to write some words about another part that is on the "Most of the electronics are integrated onto the top part" image. I'm talking about these:

    These are tachometers. I didn't use them in the final version, but they are still there.

    A tachometer like this is made of two parts:a black and white paper on the main wheel and a reflective IR sensor in front of it. The reflected light depends on the color of the object. The difference is very big so distinguishing the states is very easy and thus you can easily calculate the speed of rotation. The only problem of this setup is the low sample rate in case of slow movement, however they work quite well on higher speeds.

    The tachometers worked great, but I realized that I don't need them for the project and I also needed the GPIO pins on the Arduino for other purposes. This is their story.

    결론

    The end result is great, useful and fun! It is also a good platform for other future projects. With hard work I managed to make the voice control work and Walabot proved to be a great sensor for this purpose, too. I see numerous ways to improve this tank so it is likely that you'll see more about it in the future!

    This is my best and most successful project so far. And also the longest. To keep it from getting even longer I'd like to thank for all the help that I got and I also thank you for reading! As a prize here's a picture about a strange dog:

    <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    Codes for the Arduino and Raspberry Pi
    This repository contains the codes that are running on the MKR1000 and the Raspberry Pi 3 Bhttps://github.com/abysmalsb/Beer-Tank

    회로도

    If I couldn't find a part then I replaced it with something similar. See notes for more info. Walabot is connected to the Raspberry Pi with and USB cable. If I couldn't find a part then I replaced it with something similar. See notes for more info. Walabot is connected to the Raspberry Pi with and USB cable. beer_tank_YN88vVuS9b.fzz

    제조공정

    1. 회로 구성요소
    2. 산소 탱크
    3. 집적 회로
    4. Amazon Alexa Chromecast 제어
    5. 자율 탱크
    6. MOSMusic
    7. 마이크로일렉트로닉스란 무엇입니까?
    8. 예비 탱크란 무엇입니까?
    9. 드릴링 머신의 구성 요소
    10. 내연 기관의 구성 요소