프로젝트를 위해 특정 깊이를 드릴해야 하는 경우 깊이 표시가 있는 벤치 드릴이 필요합니다. 대부분의 벤치 드릴에는 읽기용 화살표가 있는 눈금자가 있습니다. 드릴링의 성공 여부는 원하는 위치를 얼마나 정확하게 읽을 수 있는지에 달려 있습니다. 이 Arduino 프로젝트에서 저는 자이로 센서가 있는 드릴링 깊이 디스플레이와 Arduino를 지원하는 7-세그먼트 디스플레이를 제안합니다.
작업장에서 가장 자주 사용하는 기계는 톱이나 연삭기가 아닙니다. 바로 벤치 드릴입니다. 프로젝트에 관계없이 실제로 항상 사용됩니다. 특정 드릴링 깊이가 필요한 경우 기계에 내장된 눈금자를 사용할 수 있습니다. 그리고 내가 뚫어야 할 깊이를 기억하십시오. 실제로 잘 작동합니다.
그러나 나이가 들면서 - 예, 예, 예 - 밀리미터 정확도로 깊이를 읽는 것이 점점 더 어려워집니다. 그리고 빛이 충분히 밝지 않으면 그것을 읽는 것이 거의 불가능합니다. 근데 이거 그냥 안경쓰냐? 드릴링 후 안경은 어디에 보관합니까? 저는 아직 멀었습니다.
"2 Secon Lean"의 Paul Akers의 모토에 충실:
더 나은 솔루션이 있어야 합니다. 생각하고 실행하기만 하면 됩니다.
가능성 측정
물론 눈금자를 읽기 쉽게 하기 위해 눈금 앞에 돋보기를 둘 수도 있습니다. 그것은 판독을 향상시킬 것이지만 각각의 경우에 측정을 기억해야 하는 것은 도움이 되지 않을 것입니다. 그리고 수공예품을 하는 것도 재미있을 것입니다.
그렇기 때문에 전자 솔루션이 훨씬 더 좋습니다. 드릴의 온/오프 스위치 옆에 모든 것이 맞도록 작은 공간에 두는 것이 좋습니다. 이러한 경우 Arduino Nano를 사용하고 싶습니다. 거의 모든 것을 제어할 수 있는 충분한 핀이 있으며 그에 따라 작습니다.
그러나 드릴링 깊이는 어떻게 측정합니까? 길이 측정에는 여러 가지 가능성이 있습니다. 초음파 측정을 설치하시겠습니까? 작동할 수 있지만 드릴과 함께 반사 표면으로 움직이는 약간의 역학으로만 가능합니다. 아니면 전선 작동식 인코더를 사용합니까? 턴테이블, 포크 라이트 배리어 및 스프링 리턴을 사용하여 직접 제작하면 가능하지만 매우 복잡합니다. 로터리 엔코더를 바로 사용하는 것이 더 낫습니까? 이는 훨씬 적은 수의 구성 요소를 의미합니다. 예, 하지만 너무 조잡하므로 번역을 위해 기어를 설치해야 합니다.
자, 더 생각해보세요.
내 드릴은 대부분의 경우와 마찬가지로 측면에 깊이를 조정할 수 있는 핸드휠이 있습니다. 약 회전할 수 있습니다. 270 °. 따라서 완전히 회전하지도 않습니다.
자이로 센서로 각도 측정에 최적입니다. 케이블 연결은 꼬일 수 없으며 저렴한 부품 하나만 있으면 됩니다. 자이로 센서는 핸드휠의 회전축에 매우 쉽게 직접 부착할 수도 있습니다.
개념
저는 드릴링 깊이를 지정할 때 항상 같은 방식으로 진행합니다. 드릴로 표면을 긁고 좌표를 기록한 다음 원하는 드릴링 깊이를 추가하고 마지막으로 깊이에 도달할 때까지 드릴링합니다.
기본적인 절차를 지키고 싶습니다. 너무 깊게 드릴하지 않기 위해 드릴링 깊이에 도달한 시점에 대한 정보를 받고 싶습니다.
그림>
버튼이 이 기능을 대신합니다. 누르면 아두이노는 현재 드릴 위치를 정지 값으로 저장하고 나중에 도달하면 항상 알려줍니다.
나머지 구성 요소는 더 많은 공간을 차지하고 훨씬 더 무겁습니다. 다행히도 내 기계의 하우징은 금속으로 만들어졌습니다. 그래서 네오디뮴 자석을 사용하여 고정합니다.
문제는 센서를 기계에 어떻게 부착해야 하느냐는 것입니다.
드릴 축에는 SW17 육각 너트가 있습니다. 따라서 센서를 수용하고 육각 너트에 꽂을 수 있는 3D 인쇄 부품만 있으면 됩니다.
필수 구성 요소 <울>
아두이노 나노
자이로 센서 GY-521
8자리 7세그먼트 모듈(MAX7219 IC가 있는 SPI 버전)
푸시버튼
켜기/끄기 스위치
전원 공급 장치:AA 또는 AAA 배터리 또는 보조 배터리용 배터리 클립
3D 인쇄 주택
네오디뮴 자석
자이로 센서 연결
자이로 센서는 I2C를 통해 연결됩니다. 따라서 Nano에는 A5와 A4를 사용해야 합니다.
<울>
VCC -> 5V
GND -> GND
SCL -> A5
SDA -> A4
XDA -> 연결되지 않음
XCL -> 연결되지 않음
ADO -> 연결되지 않음
INT -> 연결되지 않음
7-세그먼트 모듈
7-세그먼트 모듈을 연결할 때 모든 디지털 핀을 사용할 수 있습니다. 핀은 Arduino 스케치를 사용하여 설정됩니다.
<울>
VCC -> 3.3V
GND -> GND
DIN -> D12
CS -> D10
CLK -> D11
버튼
버튼의 입력 핀도 자유롭게 선택할 수 있습니다. 핀 D9를 사용하고 있습니다.
전원 공급 장치
전원 공급 장치에는 6개의 AA 배터리를 사용합니다. on/off 스위치 후에 전체 시스템에 전기를 공급합니다.
정지 위치에 도달하면 디스플레이에 "StOP"가 나타납니다. setRow 를 사용하여 작은 "t"를 생성할 수 있습니다. 절차 및 해당 비트 패턴 B00001111.
자이로 센서를 읽는 것은 와이어 라이브러리의 기능을 통해 작동합니다. 저는 가속도계만 사용합니다. 각도 위치를 결정합니다.
USB를 Arduino IDE에 연결하여 작업할 때 모든 것이 완벽하게 작동했습니다. 플러그를 뽑고 외부 전원에 연결한 후 센서는 데이터를 제공하지 않았습니다. Arduino를 재설정한 후에야 다시 작동했습니다.
그것은 전체 프로젝트에서 가장 골치 아픈 일이었습니다. 드릴 깊이 표시기가 내 눈을 구했다고 말할 수 있지만, 그래서 거의 모든 머리카락을 뽑았습니다!
긴 검색 끝에 센서를 깨운 후 대기 시간을 설정하는 것이 해결책이었습니다. 이렇게 하면 지연(1000) 전체 소스 코드에서 가장 중요한 명령입니다.
//GY-521 센서 준비 //가속기 데이터만 사용 Wire.begin(); Wire.beginTransmission(MPU); Wire .write(0x6B); Wire.write(0x00); // Wake up MPU Wire.endTransmission(true);
//이 지연은 제 경우에 매우 필요했습니다! delay(1000);
Wire.beginTransmission(MPU); Wire.write(0x1C); //ACCEL_CONFIG 등록 Wire.write(0x10); //+/- 8g 전체 스케일 범위에 대해 00010000으로 설정 Wire.endTransmission(true);
오프셋 값은 처음에 센서에 대해 결정되어야 하며, 그렇지 않으면 값이 변동합니다. 설정 부분에서는 100개의 값을 측정하고 편차를 평균합니다.
센서 데이터에서 각도를 계산하는 것은 그리 쉬운 일이 아닙니다. 하지만 계산 방법에 대한 지침이 많이 있습니다.