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

엄격한 15달러 벽 플로터

구성품 및 소모품

Arduino UNO
× 1
28BYJ-48 드라이버가 있는 스테퍼 모터
× 2
TSOP 4838 IR 수신기
× 1
SPI 리더 마이크로 SD 메모리 카드 리더
× 1
SG90 마이크로 서보 모터
× 1

필요한 도구 및 기계

3D 프린터(일반)
납땜 인두(일반)

앱 및 온라인 서비스

Arduino IDE

이 프로젝트 정보

배경

언제 시작되었는지는 잘 기억나지 않지만 대략 1999년 전후로 생각됩니다. 로봇과 전자공학에 관심이 많은 저와 친구는 화이트보드에 그림을 그리는 로봇을 만드는 것에 대해 논의하고 있었습니다. 물론 그 당시에는 진지한 작업을 할 시간이 없었습니다. 취미로 즐기는 마이크로 컨트롤러를 위한 생태계는 오늘날과 같은 환경이 아니었습니다.

2002년에 내 친구가 Jürg Lehni와 Uli Franke - Hektor의 멋진 작품을 보여주었습니다. 우리가 꿈꾸던 것과 비슷한 것이 실제로 건설되어 세계와 공유되는 것을 보게 되어 매우 기뻤습니다! 나는 평화로웠다.

얼마 후 나는 Hektor 프로젝트 웹사이트를 누군가에게 보여줬던 것이 내가 생각하기에 얼마나 환상적인지 보여줬던 것을 기억합니다. 이번에는 내가 처음에 벽 플로터가 가질 것으로 생각했던 속성이 하나 부족하다는 것을 깨닫고 세부 사항을 더 자세히 살펴보기 시작했습니다. 벽에 전선을 연결하는 것만으로 모든 것이 하나의 장치에 들어 있는 자급식을 원했습니다. 제 기억이 맞다면 이 시점에서 스테퍼 모터 웨이트를 살펴보니 제 아이디어가 실현되지 않을 것 같았습니다.

시간이 흐르고 취미 로봇의 공간에서 일이 일어났습니다. 2014년이었고 다양한 카메라 제어 프로젝트에 Arduino와 RC-servos를 사용하고 있었고 3D 프린팅에 액세스할 수 있었고 실제로 약간의 여가 시간(!?!)이 있었습니다. 싸구려 28BYJ-48 스테퍼 모터를 우연히 만난 후 나는 무엇을 만들지 정확히 알았습니다.

가장 저렴한 최소한의 벽 플로터입니다.

첫 번째 시도

5주 정도의 긴 기다림 끝에 중국에서 주문한 부품을 찾기 위해 플로터를 만들기 시작했습니다. Arduino Uno, 스테퍼, 서보 및 배터리에 맞게 가능한 한 컴팩트한 골격을 만들려고 했습니다. 1페니가 떨어지기 전에 OpenSCAD에서 얼마나 멍청하고 덜 똑똑한 디자인을 만들었는지 기억이 나지 않습니다. 줄을 건너야 합니다!

교차 지오메트리를 사용하면 벽에서 올바른 위치를 유지하는 데 큰 이점이 있습니다. 단점은 수직 축을 중심으로 회전하여 안정성이 떨어진다는 것입니다. 이것은 회전을 방지하도록 조정된 플로터의 모서리에 몇 가지 지퍼를 추가하여 수정되었습니다.

첫 번째 플로터 하드웨어는 아래 그림과 같이 생겼습니다. 가장 저렴한 부품을 찾기 위해 탐색 및 중력 제거를 위해 재봉실을 사용하기로 결정했습니다. 3D 프린팅된 섀시 상단의 나사산이 프린트의 작은 구멍을 통해 교차했습니다. (거의) 볼 수 있듯이 펜과 전선에서 스레드를 깨끗하게 실행하는 것은 어려운 기하학입니다(Arduino에서 오른쪽 스테퍼 드라이버로의 케이블 연결이 그림에서 누락되어 실제보다 덜 나빠 보입니다). RC 서보가 플로터 전체를 벽에서 밀어서 펜을 드로잉 표면에서 들어 올립니다.

이 첫 번째 플로터는 Arduino의 프로그램에 하드 코딩된 설계를 작성했습니다. 플로터의 설정은 양쪽에 1미터의 실을 펴고 1미터 간격으로 고정하여 수행되었습니다. 이 설정으로 플로터는 전원을 켤 때 좌표계를 알고 메모리에 경로를 그리기 시작할 수 있습니다. 작동했지만 사용하기에는 엉망이었습니다. 디자인을 변경할 때 아두이노를 다시 플래싱해야 하는 것이 즐겁지 않았습니다. 또한 1미터의 시차 설정으로 제한되는 것이 답답했습니다.

하지만 문제 영역을 더 잘 이해할 수 있는 좋은 플랫폼이었습니다. 몇 가지 빠른 학습:

<울>
  • 스테퍼 모터가 그렇게 강하지 않음 - 스풀이 너무 컸음 .
  • 줄 교차로 인한 펜 끝 오프셋 - 심각한 흔들림
  • 이러한 문제의 좋은 점은 합리적인 가속과 제동을 구현하기 위해 약간의 노력을 기울였다는 것입니다...

    진화

    플로터 2번 (표지 이미지의 흰색) 몇 가지 개선 사항:

    <울>
  • 작은 스풀.
  • 실을 더 잘 배선하고 진자의 움직임을 줄이기 위해 스풀을 펜 위로 이동했습니다.
  • 전자제품의 접근성 향상
  • 계획할 내용을 저장하기 위한 SD 카드.
  • 앵커 포인트 사이의 다양한 거리를 허용하는 새로운 설정 프로세스
  • 리모컨에서 모든 것을 제어할 수 있는 IR 수신기
  • SD 카드 리더와 IR 수신기를 추가하는 것은 처음 예상했던 것보다 훨씬 쉬웠습니다. "내가 왜 처음부터 이 일을 하지 않았을까"라는 순간들 중 하나였습니다. 새로운 설정 프로세스는 아주 잘 작동했고 크고 작은 드로잉에 대해 훨씬 더 많은 유연성을 제공했습니다. 지금까지 이루어진 가장 큰 플롯은 폭이 약 2.5미터였습니다.

    설정은 리모콘으로 플로터를 탐색하여 수행됩니다. 첫 번째 표시 위치 A , 위치 B로 이동 그리고 그것을 표시합니다. 수동 측정이 필요하지 않도록 왼쪽 및 오른쪽 재봉실에 20cm 마커를 배치했습니다. 거리 m A에서 이동하는 동안 왼쪽 스테퍼의 걸음 수를 세는 것만으로 주어집니다. B에게 . 플로터가 d를 알게 되면 현재 위치는 B입니다. 앵커 포인트 사이 및 아래 공간에서 원하는 위치로 이동하고 플롯할 수 있습니다.

    플로터 3번 (아래 비디오의 주황색)은 이전 버전과 매우 유사하지만 몇 가지 변경 사항이 있습니다.

    <울>
  • Arduino용 보호막으로 제작된 모든 전자 제품입니다.
  • 배터리 잔량 감시, "일시 중지 - 배터리 교체 - 재개" 허용
  • 모두 좋은 의도였지만. 스테퍼 드라이버 IC를 실드에 직접 놓고 스테퍼와 함께 제공되는 드라이버를 건너뛰면 더 이상 LED가 깜박이지 않습니다. 보는 것은 슬프다. 매우 지루합니다. 또한 Arduino의 온보드 LED는 IR 수신기가 수신할 때 얻을 수 있는 편리한 깜박임을 숨기는 실드 뒤에 숨겨져 있으므로 해당 보정 버튼을 눌렀는지 여부를 불확실하게 만듭니다. 배터리 잔량 측정은 좋은 생각인 것 같았지만 실제로는 항상 케이블로 연결된 전원으로 장기 실행 플롯을 수행하는 데 의존했습니다.

    4번 플로터 (멋진 것!) 내 동생에게 생일 선물로 지어졌습니다. 그것은 방패 스타일의 전자 장치로 제작되었지만 깜박이는 드라이버를 모든 영광에서 볼 수 있게 하는 가장 보기 좋은 것입니다. 케이블은 외관상 불필요하게 길게 남겨져 있습니다.

    플로터 5번 (MacGyver 에디션)은 실제로 이 프로젝트 설명에 대한 개념 증명으로 구축되었습니다. 멋진 도구 없이도 이와 같은 플로터를 만들 수 있다는 것을 보여주고 싶었습니다. 나는 차고에 앉아서 무엇을 만들 수 있는지 둘러보았다. 타이 와이어(철근을 연결하는 데 사용되는 부드러운 금속 와이어)가 첫 번째 확실한 선택이었습니다. 그것을 찾을 때 나는 덕트 스트랩 롤을 찾았고 그것이 시간을 절약하고 더 많은 안정성을 줄 것이라고 생각했습니다. 집-타이와 개프 테이프도 내 목록에 있었지만 필요하지 않았습니다. 내가 정말로 알아낼 수 없었던 유일한 것은 너무 많은 작업 없이 좋은 스풀을 만드는 방법이었습니다. 나는 커피를 마시기 위해 집에 다시 갔고 거기에는 우유 용기 뚜껑이 있었습니다! 원래 디자인을 3D 인쇄하는 데 걸리는 시간보다 솔직히 플로터 5의 프레임을 만드는 데 시간이 덜 걸렸습니다. 그리고 그것은 내가 만든 다른 것들만큼 (적어도) 잘 작동합니다.

    6번 플로터

    무엇을 기다립니다? 어쩌다 보니 하나 더 만들게 되었습니다. 도움이 되지 못했습니다. 나를 괴롭히는 몇 가지 문제를 해결해야 했습니다. 또한 여기에 몇 가지 의견 덕분에 개선되었습니다.

    <울>
  • 플로터의 3D 인쇄 크기가 너무 크고 느렸습니다.
  • 플로터 전체가 아닌 펜을 움직이는 것은 시도해 볼 가치가 있는 것 같습니다.
  • 서보와 IR 수신기를 "아날로그" 핀으로 옮기면 직렬 디버깅이 가능합니다! (제가 할 수 있다고 지적해 주신 jrcTexas에게 감사드립니다!)
  • 결과는 다음과 같습니다.

    그렇다면 이 새로운 기능은 얼마나 잘 작동합니까? 좋은것과 나쁜 것. 변화는 전반적으로 좋은 느낌을 주지만 한 가지 문제가 있습니다. 펜이 프레임에 고정되어 있지 않기 때문에 플로팅할 때 약간 흔들립니다. 이로 인해 이전 세대보다 정확도가 떨어집니다. 큰 이점은 디지털 IO 핀 0-1을 지워서 디버깅에 사용할 수 있다는 것입니다. 이것은 삶을 훨씬 쉽게 만듭니다!

    또한 단계를 놓치지 않는 방법을 알아내기 위해 스테퍼에 대한 몇 가지 스트레스 테스트를 시작했습니다.

    스트레스 테스트에서 알아낸 것은 충분한 토크를 얻기 위해 속도를 약간 줄여야 한다는 것이었습니다. 또한 플로터가 벽에 있는 위치에 따라 현이 실제로 당기는 힘도 계산했습니다.

    다른 단계 순서와 전압이 어떻게 작용하는지 알아내기 위해 스트레스 테스트에 대한 후속 조치를 취할 수도 있습니다. 언젠가.

    플로터 사용

    설정과 플로팅이 실제와 실시간으로 어떻게 작동하는지 보여주는 동영상을 만듭니다.

    비디오에서 볼 수 있듯이 설정은 매우 간단하고 시간이 거의 걸리지 않습니다. 일반적인 도전 설정은 좋은 기준점을 찾는 것입니다. 화이트보드의 경우 저는 주로 작은 흡입 컵에 재봉실 루프를 붙인 다음 종이 클립으로 플로터를 걸어두는 것과 유사한 것을 사용했습니다. 앵커 포인트의 한 가지 중요한 측면은 펜에서 벽으로 더 나은 압력을 얻기 위해 가능한 한 벽에 가깝게 실을 넣는 것입니다.

    또 다른 주의 사항은 넓은 부지에 높은 곳에 계획을 세우는 것입니다. 스레드를 당기는 데 너무 많은 토크가 필요한 경우 스테퍼는 누락된 단계를 시작하므로 도움을 줄 인코더가 없기 때문에 플로터가 정확한 위치를 느슨하게 추적하게 됩니다. 따라서 일반적인 조언은 높이 걸고 낮게 인쇄하는 것입니다.

    플로터 하드웨어

    플로터를 만드는 것은 매우 간단하며 대부분의 다른 Arduino 프로젝트와 매우 유사합니다. Arduino Uno, 사용하려는 일부 구성 요소 및 이 모든 것을 연결하기 위한 케이블 묶음이 있습니다.

    회로도에서 볼 수 있듯이 거의 모든 디지털 핀을 사용한 다음 일부 아날로그를 사용할 수 있습니다. 배터리 잔량을 모니터링하고 싶습니다. 이것에 대한 한 가지 주의 사항은 TX/RX의 두 배인 핀 0-1을 사용하게 된다는 것입니다. 튀기는 것을 피하려면 연결한 모든 것을 연결 해제해야 합니다. Arduino를 프로그래밍 할 때 거기! 이것이 내가 프로그래밍할 때 분리할 수 있는 방패에 모든 전자 장치가 있는 최신 플로터를 만든 이유입니다.

    RC-servo는 모든 차원의 거의 모든 서보가 될 수 있습니다. 창의력을 발휘하여 플로터를 벽에서 밀어낼 수 있는 방식으로 장착해야 합니다.

    스테퍼 모터와 드라이버는 잠재적으로 다른 종류로 전환될 수 있지만 작은 28BYJ-48 모터는 매우 편리합니다. 그것들은 그렇게 강력하지 않으며 언젠가는 훨씬 더 빠른 플로터를 만들고 싶습니다. 모터의 정격은 5V이지만 나는 기쁘게 이것을 무시하고 문제 없이 5-9V 사이의 모든 것을 제공했습니다. 뜨거워지긴 하지만 아직 튀긴 적은 없습니다.

    마이크로 SD 카드 모듈은 SPI 인터페이스 핀 또는 디지털 핀 10-13을 통해 Arduino에 연결하는 데 간단합니다.

    IR 수신기 TSOP 4838도 Arduino에 직접 연결하여 훌륭하게 재생됩니다.

    내 세 번째 및 네 번째 플로터에는 아날로그 입력에 추가된 저항 전압 분배기로 배터리 수준 감시 장치가 있었습니다. 나는 또한 비슷한 방식으로 추가된 스테퍼의 온도 모니터링을 할 것이라고 생각했습니다. 내 충고, 그냥 건너 뜁니다.

    한 번에 하나씩 빌드하고 테스트하는 것이 좋습니다. 모든 것을 모으지 말고 SD에 그래픽을 넣고 즉시 플롯하기를 바랍니다. 다음을 수행하는 것이 좋습니다.

    <울>
  • IR 수신기를 테스트하여 시작합니다. IRRemote 라이브러리와 함께 제공되는 IRRecvDump 예제를 사용하십시오. 어쨌든 원격 키의 코드를 기록하려면 이 정보가 필요합니다.
  • 서보를 테스트합니다. 예를 들어 Servo 라이브러리의 Sweep 예제를 사용하십시오.
  • SD 카드를 테스트합니다. SD 라이브러리에 대한 예제를 가지고 놀아보세요.
  • 스테퍼 제어를 테스트합니다. Stepper 라이브러리에 대한 샘플을 가지고 놀아보세요.
  • 위의 부분에 익숙해지면 플로터 프로그램을 Arduino에 플래시한 다음 모든 구성 요소를 연결합니다. (아직 조립하고 예쁜거 만들지 마세요)
  • Arduino의 전원을 켜고 무슨 일이 일어나는지 보십시오. 모든 것이 작동한다면 서보는 전원을 켠 직후 약간의 스위프를 해야 합니다.
  • 리모컨에서 스테퍼를 제어해 보세요. 어떤 스테퍼가 왼쪽이고 어느 것이 오른쪽인지 확인하십시오. "REEL_IN" 버튼이 실제로 문자열을 당기고 그 반대가 되지 않도록 배선했는지 확인하십시오. 소프트웨어나 하드웨어에서 핀 순서를 바꿔야 할 50%의 기회를 제공합니다. (너무 귀찮게 할 가치가 없습니다. 커넥터를 돌리기만 하면 됩니다. 신뢰하되 확인하십시오!
  • 위의 모든 것이 효과가 있다고 확신하면 모든 것을 플로터와 같은 형태로 조립하고 벽에 걸어 놓을 준비가 된 것입니다!
  • 여기서는 부품 조립에 대한 자세한 지침을 제공하지 않겠습니다. 하드웨어를 탐색하고 자신에게 적합한 솔루션을 찾는 것이 좋습니다. 위의 "MacGyver" 플로터에서 영감을 받아 단순하게 유지하십시오. 나중에 항상 멋지고 완벽하게 갈 수 있습니다. 아래는 제가 하드웨어에 대해 이야기하는 매우 일관성이 없는 비디오입니다. 또한 소프트웨어에 익숙해지고 플로팅을 위한 파일을 만들어야 합니다(아래에서 자세히 참조).

    플로터 소프트웨어

    모든 소프트웨어는 여기 GitHub에서 사용할 수 있습니다. 코드 상태에 대해 사과드립니다. 정말 해킹입니다. 시간을 내어 청소를 하겠지만, 그 전에 당신이 보게 될 가능성이 매우 큽니다. 죄송합니다.

    플로터의 소프트웨어는 거의 두 가지 기능을 수행합니다.

    <울>
  • 리모컨에서 탐색 및 설정 허용
  • SD 카드에 저장된 .svg 파일의 내용을 그립니다.
  • Arduino Uno의 프로그램 메모리는 상당히 제한적이기 때문에 코드를 메모리에 맞추기 위해 사용되는 못생긴 단축키가 많이 있습니다. 이것은 SD 카드가 없고 그래픽도 Arduino에 직접 프로그래밍해야 하는 첫 번째 플로터의 경우 특히 그렇습니다. .svg의 구문 분석은 매우 제한적이며 선(곡선 없음)이 있는 경로만 처리할 수 있으며 INKSCAPE를 사용하여 출력한 .svg의 특정 방언이어야 합니다.

    .svg 파일은 SD 카드의 최상위 폴더에 1.svg, 2.svg 등으로 저장됩니다. 그릴 파일은 리모콘의 해당 버튼을 눌러 선택합니다. 이를 통해 사람들의 화이트보드를 빠르게 풍부하게 할 수 있는 몇 가지 즐겨찾기로 플로터를 준비할 수 있습니다.

    Arduino IDE는 컨트롤러를 구축하고 프로그래밍하는 데 사용되었습니다. 사용된 유일한 추가 라이브러리는 IRRemote(by shirriff)입니다.

    플롯 가능한 파일 생성

    플롯할 .svg 파일을 만드는 방법은 수백 가지가 있을 수 있지만 여기서는 하나만 설명하겠습니다.

    <울>
  • INKSCAPE 사용
  • 원하는 것을 그리고 "경로->개체를 경로로" 경로로 변환하십시오.
  • "노드별 경로 편집(F2)" 선택
  • 모든 개별 경로와 노드를 선택합니다. Ctrl-A 시간
  • "Extensions->Modify Path->Flatten Beziers"를 통해 라인으로 변환
  • "Inkscape SVG"로 저장
  • 시뮬레이터에서 실행, 아래 참조
  • 시뮬레이터

    하나 더! 시뮬레이터가 있습니다. 인쇄를 시도하기 전에 시뮬레이터를 통해 수행하려는 플롯을 실행하는 것은 거의 필수입니다. 이것은 .svg-parsing이 너무 나빠서 무언가가 플로터에서 제대로 해석되지 않을 가능성이 높기 때문에 주로 필요합니다.

    시뮬레이터는 osx 또는 linux용 플로터 코드를 컴파일하고 "digitalWrite" 호출을 stdout(타임스탬프, 핀, 상태)에 대한 인쇄물로 교체한 다음 시각화 UI로 파이프되는 방식으로 작동합니다.

    시뮬레이터는 95% 정도 후에 2시간 인쇄가 비참하게 엉망이 되는 버그가 발생한 후에 작성되었습니다. 나는 무슨 일이 일어났는지 완전히 상실했고 그것을 디버깅할 어떤 방법이 필요하다는 것을 깨달았습니다. .svg의 숫자 하나에 엄청난 양의 소수가 있어서 부동 소수점 구문 분석 버그로 판명되었습니다. (라이브러리 함수가 메모리에 맞지 않기 때문에 자체 구문 분석을 수행했습니다). 시뮬레이터를 만들어야 했기 때문에 큰 버그였습니다.

    개발하는 동안 시뮬레이터를 사용하면 많은 도움이 될 수 있습니다. 그것은 매우 편리한 실시간보다 훨씬 빠르게 실행할 수 있습니다. 또한 플롯이 실시간으로 실행될 때 실제로 걸리는 시간을 출력합니다. 시뮬레이터 코드 옆에 사용 방법에 대한 추가 정보가 있습니다.

    향후 개선 사항

    다음은 개선할 수 있는 사항에 대한 제 생각의 목록입니다.

    <울>
  • 플로터에서 parsing.svg를 중지하고 컴퓨터에 실제 파서를 설치하고 대신 플로터에 적합한 형식을 만드십시오.
  • 더 나은 브레이킹, 현재 소프트웨어는 약간의 회전이 급격한 회전으로 바뀌면 때때로 너무 적은 한 줄의 선분을 미리 읽습니다.
  • 단계를 놓쳤을 때 길을 잃는 것을 방지하기 위한 인코더 또는 일부 유형의 피드백..
  • 적절한 클린 소프트웨어를 작성하십시오.
  • WiFi 지원 컨트롤러를 사용하고 리모컨 대신 전화를 사용합니다.
  • 마지막 몇 마디

    지금쯤이면 이해하시겠지만 저는 이 프로젝트에 꽤 오랜 시간을 보냈습니다. 나는 여전히 가지고 노는 것이 재미있다고 생각하고 무엇을 개선할지, 새로운 변형과 장식할 새로운 벽에 대한 수많은 아이디어가 있습니다. 하지만 시간이 없습니다. 다른 프로젝트와 가족, 직장 같은 것들이 너무 많습니다.

    내가 정말 좋아하는 것은 인터넷의 일부 훌륭한 사람들이 이 글을 읽고 자신의 프로젝트에 대한 영감을 얻는 것입니다. 여러분 중 일부가 자신만의 플로터를 만들어 작동하게 해준다면 저도 기쁠 것입니다!

    미니멀한 플로터를 만드는 데 성공한 것 같지만, 스스로 목표를 설정했기 때문에 10달러 미만의 비용은 들이지 못했습니다. 하지만 부품이 계속 저렴해지면서 아마 1년 정도 후에는 나올 것입니다...

    아, 한 가지 더. 스파게티 코드 때문에 절 죽이지 마세요. 공유하기 위해 작성된 것이 아니며 당시에는 벽에 그림을 그리는 데 바빴고 코드에 대해 덜 신경을 쓸 수 없었습니다. 어쨌든 공유하기로 결정했으므로 대신 행복합니다.

    본 보야지,

    프레드릭

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

    코드

    엄격
    월 플로터 Stringent.https://github.com/snebragd/stringent
    에 대한 코드, 문서 및 CAD 도면

    맞춤형 부품 및 인클로저

    기지에 대한 새 stl을 업로드했는데 이전 stl이 어떻게든 손상되었습니다.플로터의 새 기지입니다. 더 작은 설치 공간 -> 인쇄할 양이 적습니다. 서보 동작은 이제 플로터를 벽에서 밀지 않고 펜을 움직이는 것입니다.

    회로도

    간단한 전자 회로도

    제조공정

    1. 유지 관리를 위한 다양한 기술 노력
    2. 품질 관리는 모터 신뢰성의 첫 번째 단계입니다
    3. 전기 모터 신뢰성 동향의 중요성
    4. 플랜트 기계의 상태 모니터링
    5. 모터 권선:차이점은 무엇입니까?
    6. 방폭 모터 선택에 대한 전체 안내서
    7. 적절한 전기 모터 보관에 대한 완전한 안내서
    8. DC 대 AC 모터:차이점은 무엇입니까?
    9. AC 대 DC 모터:차이점은 무엇입니까?
    10. 올바른 기어헤드 선택 방법