제 고양이는 제가 그녀를 위해 구입한 스크래치 보드를 사용하기를 거부하므로, 저는 그녀가 제 소파가 아닌 이 장치를 사용하도록 동기를 부여하기 위해 이 장치를 만들었습니다... 그게 어떻게 작동하는지 보자...
스크래치 보드에 붙어 있는 것은MPU6050보드와의 상호 작용을 모니터링하는 가속도계. 만약 고양이가 보드를 사용하면, 서보가 트리거되어 간식을 제공합니다.
여기는 그 장치의 WIP 프리뷰입니다. 전자 장치는 아직 통합되지 않았습니다.
부품 목록
- 아두이노 나노(저는 Nano Every를 사용했지만, 같은 크기의 다른 변형도 잘 작동될 것입니다. 다른 타사 대안은 심지어 더 작을 수도 있고, 그것들도 잘 작동될 것입니다)
- MPU6050관성 측정 장치(IMU).
- HW-085배터리 전압을 5V로 올리는 5V용 스텝업 컨버터로, 이것은 Arduino와 서보를 구동하는 데 사용됩니다(다른 것들도 잘 작동하지만, 저는 이것을 가지고 있었습니다).
- 리튬 이온 배터리(최대 40mm x 75mm x 22mm). 저는 배터리 홀더에 18650을 사용했습니다. 배터리 트레이는 두 개의 18650 배터리를 수용할 수 있을 정도로 큰 크기입니다.
- 피트치 FS90 마이크로 서보
- 전선과 커넥터들.
- 1,75mm 파일맨트의 짧은 조각(6-7mm)
- 이 목록의 모든 3D 인쇄된 부품들.
사용된 소프트웨어
- 프리CAD부품 디자인을 위해.
- 아두이노 IDE프로그래밍을 하고 코드를 마이크로컨트롤러에 업로드하려면
- 프리트징배선 도면을 위해
- 블렌더및크리타이 목록의 이미지를 만들기 위해서
- 코드 버전 관리를 위한 git/github
조립 개요
여기서 주요 코퍼스 부분들을 볼 수 있습니다.
- 전자 장치 보관함
왼쪽은 Arduino와 전압 조정기를 위한 것입니다. 거기에 조금 조ί하게 들어가네요. 되돌아보면, 조금 더 크게 만들었어야 했을 것 같아요. 측면의 구멍들은 Arduino와 전압 조정기를 두 개의 클립을 사용하여 부착하는 데 사용됩니다(사진에는 표시되어 있지 않습니다).
오른쪽의 더 큰 구멍은 2x18650 배터리 홀더를 수용하도록 설계되었습니다. - 베이스와 베이스 확장기
이 두 부분으로 구성된 복합체의 뒷면에는 서보를 받을 수 있는 슬롯이 있습니다. 서보 케이블을 전자 장치 내부로 연결할 수 있는 슬롯이 있습니다.
베이스의 하단 테두리에는 두 개의 구멍이 있고, 그 구멍에는 호퍼(사진에 나와있지 않음)가 끼워집니다. - 스레드
서보
산타클로스의 썰매는 약 6~7mm의 길이의 1.75mm 필라멘트로 서보에 연결될 것입니다. - 바닥
어셈블리의 하단 부분. 슬레드와 추트를 지원합니다. - 추락
그 트리트를 벽에서 멀리 재 방향을 바꾸어 버립니다.
단계 1 - 삽입하기추락إلى바닥
채트를 아래쪽의 구멍으로 기울어진 상태로 밀어넣으세요.
완전히 삽입되면, 채널의 전방 부분을 아래로 회전시키여 채널의 상부 가장자리를 바닥 표면과 평행하게 합니다.
서보가 그것을 움직일 수 없도록 스레드가 막히면 어떻게 되는지 보시려면 스레드의 상단 가장자리가 슬레드 가이드의 표면보다 아래에 있는지 확인하십시오. 그렇지 않으면 슬레드가 막히고 서보가 그것을 움직일 수 없을 것입니다.
단계 2 - 삽입하기스레드

단계 3 - 부착하기베이스
마지막 두 부분인 두 개의 긴 레일이 아니고, 이 연결에서는 단지 4개의 짧은 스터드가 있습니다. 그것들이 정렬되어 있는지 확인하십시오. 한 번에 그것들을 모두 넣는 것이 조금 어려울 수 있습니다. 저는 약간의 힘이 필요했습니다(부품들을 테이블 위에 직립으로 두고 손바닥으로 부드럽게 두드려주었습니다
그것은스레드이 시점에서 그것은 부드럽게 슬롯에 들어가야 합니다.
단계 4 - 부착하기베이스 확장그리고전자 장치 보관함
전 단계와 마찬가지로, 조각들을 함께 끼우려면 약간의 힘이 필요할 수 있습니다. 하지만 여기서는 두 개의 구멍만 정렬되어야 하기 때문에 정렬이 그닥 어렵지 않습니다.
완전히 조립되면, 모든 개별 부품의 뒷면이 정렬되어 있는지 확인하십시오.
아직 네 개의 작품이 설명되지 않았습니다:
- 아두이노 나노 클립과 전압 조정기 클립.
이 부분들은 Arduino와 전압 조정기를 받칩니다. 먼저 보드를 부착하고(단순히 클립에 끼워 넣기), 그런 다음 전자 장치 내부 벽에 그것들을 넣으십시오.
거기는 공간이 매우 협소하기 때문에, 저는 그것들을 넣는 데 트위저를 사용하는 것을 추천합니다.

- 전자제품 커버
그저 전자 장치 컴파트먼트에 쓰이는 커버입니다. 모든 것이 설치되어 있는 상태에서 그것을 배치하세요. - 호퍼
호퍼는 간식을 수용하는 두 개의 파이프로 구성되어 있습니다. 그것은 단순히 베이스 부분의 사각형 구멍 안으로 미끄럽게 들어갑니다. 마지막으로 이것을 부착하고 호퍼를 간식으로 채워주세요.
서보를 설치하기
아래 리포지토리의 코드를 실행하는 아두이노에 서보를 연결하고 전원을 켜주세요. 서보는 이제 90° 위치로 회전할 것입니다. 서보를 분리하고 서보 호른을 설치하세요.
서보가 측면으로 놓여 있을 때 호른은 직접 위로 향해야 합니다. 올바른 방향으로 배치해야 합니다. 아래의 두 그림에서 이를 확인할 수 있습니다. 3D 프린트된 케이스의 뒷면에 있는 슬롯에 넣었을 때 호른은 그 부분을 향해야 합니다.
지금 필라멘트 조각을 서보 호른의 큰 구멍에 넣으십시오. 호른을 Sled의 구멍과 정렬하여 필라멘트가 두 개를 연결하게 하십시오. 이제 서보를 다시 미끄러뜨리고 그것을 구멍에 끼십시오.
만일 이것이 작동하지 않는다면, 바닥을 제거한 다음, 서보를 그 슬롯에 설치하고 바닥을 다시 부착하세요. 그리고 필라멘트 핀이 제대로 배치되어 있는지 확인하세요.
배선
권력
- 연결하세요.배터리+그것으로인+전압 조정기의 핀.
- 연결하세요.배터리-그것으로인-전압 조정기의 핀.
- 전압 조정기를 연결하세요.아웃+إلى 핀하기서보의 빨간색 전선.그리고 그것은아두이노의 Vin연락처
- 전압 조정기를 연결하세요.아웃-إلى 핀하기서보의 검은색/갈색 전선.그리고 그것은아두이노의 GND연락처
- 연결하세요.MPU의 VCC연락처로 가기아두이노의 5V연락처
- 연결하세요.MPU의 GND연락처로 가기아두이노의 GND연락처
로직
- 연결하세요.서보의 데이터 핀.(보통 노란색이나 오렌지 색상)아두이노의 D9연락처. 이것은 PWM 핀입니다. 다른 핀을 사용해야 하는 경우에는 그것이 PWM 핀인지(보통 ~로 표시되어 있습니다) 확인하고 코드 내에서도 그 핀을 변경해야 합니다(PIN_SERVO)
- 연결하세요.MPU's....
- SCLإلى아두이노의 A5
- SDAإلى아르두이노의 A4
이 그래픽의 SVG 버전은 다른 파일 섹션에서 찾을 수 있습니다.
시운전
서보를 설치하는 데 필요하기 때문에, 코드를 아두이노에 쓰는 것은 조립 단계에서 이미 완료되어야 했습니다.
아두이노가 전원이 켜지면, 기기가 안정되고 진동이 사라질 수 있도록 잠시(5초) 기다릴 것입니다.
그런 다음, 장치를 움직이지 않은 상태에서 센서 소음을 검출하기 위해 가속도계의 데이터를 분석하는 간단한 보정 절차가 있습니다. 그 동안 센서를 움직이지 마세요. 이는 나중에 민감도를 줄일 수 있기 때문입니다.
교정이 완료되면, 서보는 교정이 완료되었음을 보여주기 위해 살짝 움직일 것입니다. 이제 MPU를 움직이면 간식 제공이 트리거됩니다.
동작을 조정하려면 코드에서 변경할 수 있는 몇몇 매개변수가 있습니다. 이들은 다음과 같습니다:
- 디스펜스 쿨다운:분출이 트리거되었을 때, 다음 트리거는 이 쿨다운이 끝날 때까지 발생하지 않습т. 기본값: 5초
- 분출량:트리거되었을 때 제공되는 간식의 수. 기본값: 1
- 분배 기간의 길이및기간당 분배 양기간은 시간이 지남에 따라 제공되는 보상의 수를 제한하는 방법입니다. 기간 동안에는 기간당 설정된 양만 제공됩니다. 예를 들어, 기간 길이가 60분으로 설정되고 기간당 양이 3으로 설정되어 있는 경우(이는 기본값입니다), 첫 번째 제공이 트리거된 후 60분 안에 총 3개의 보상이 제공됩니다. 이
- 분출 상호 작용 기간:이것은 트리거를 활성화할 때의 민감도를 제어하는 방법입니다. 트리트가 제공되기 전에 최소한 이 정도의 시간 동안 MPU와의 상호 작용을 기록해야 합니다. 더 높은 값은 더 오랜 상호 작용이 필요합니다. 기본값: 3초
- 분배 상호 작용 타임아웃:상호 작용은 지속적인 장시간의 상호 작용뿐만 아니라 여러 번의 작은 상호 작용으로 구성될 수 있습니다. 이는 상호 작용이 타임아웃되기 전의 시간입니다. 이 기간 내에 다른 상호 작용이 기록되면 동일한 상호 작용으로 간주됩니다. 기본값: 2초
코드
아두이노 코드는 여기에서 찾을 수 있습니다.깃허브 리포지토리..
위 절에서 언급된 매개변수는 다음과 같습니다:
- 재생 시간 제한
- 분출량
- 분배 기간의 길이
- 기간당 분배 금액
- 분출 상호 작용 기간
- DISPENSE_INTERACTION_TIMEOUT
그 값들은 밀리초 단위입니다.
보정은 모든 관련 센서 읽기에서 마지막 50개의 샘플을 저장하기 위해 링 버퍼를 사용합니다. 링 버퍼에 저장된 값들은 모든 값의 평균을 계산하는 데 사용됩니다. 이 평균은 움직임을 감지하는 기준선으로 사용됩니다.
현재 가속도의 값이 센서의 평균 + 임계값을 초과할 때 상호 작용이 기록됩니다. 임계값은 시작 기간 동안 측정된 노이즈에서 계산됩니다.
이 방식에서는 센서 값이 천천히 변하는 한 드리프트가 문제가 되지 않습니다.
인쇄 지침
부품들은 이미 인쇄되어야 할 방식으로 배열되어 있습니다.
- 재료: PLA
- 레이어 높이: 0.2 mm
- 채우기: 15%
- 나는 모든 부분에 브림을 사용했지만, 더 큰 부분에는 필요 없을 수도 있습니다. 특히 Sled를 인쇄할 때 베드 부착에 문제가 있었습니다. 브림 없이 그것은 그저 달라붙지 않았습니다. 두 개의 작은 클립의 경우 브림을 사용하는 것이 강력히 권장됩니다.
- 오직 그것만이베이스 확장- 서보와 서보 케이블의 큰 오버행 때문에 부품은 지원이 필요합니다. 저는 오토 트리 지원을 사용했습니다. 이것이 제가 오르카 슬라이서에서 지원을 그린 방법입니다(그린: 지원, 레드: 지원 없음).

개선의 여지가 있습니다.
- 전원 스위치 추가 - 이 프로젝트를 위해 시간이 조금 부족했습니다. 그래서 저는 이것을 고려하는 것을 단순히 잊어버렸습니다.
- 필요 없을 때 서보의 전원을 차단하세요.
- 아두이노 전력 관리. 사용되지 않을 때 잠자리에 들어가기
- 문에 장착되어 움직이는 경우에 트리거되지 않도록 모션 검출을 개선하십시오.
- 전자 커버를 개선하여 스냅으로 닫을 수 있게 하세요. 그대로 작동하긴 하지만, 저는 더 스냅이 되는 애타치먼트를 선호합니다.
- 먼지와 (적어도 조금의) 습기로부터 간식을 보호하기 위해 호퍼 캡을 추가하세요.
Etiquetas
Fuente del modelo
