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

Avenger Assembled:Iron Man 헬멧 및 아크 원자로

구성품 및 소모품

Arduino UNO
× 1
Adafruit NeoPixel 링:WS2812 5050 RGB LED
× 1
Adafruit 정전식 터치 센서 브레이크아웃 - MPR121
× 1
서보(타워 프로 MG996R)
× 1
4xAA 배터리 홀더
× 1
9V 배터리 클립
× 1
점퍼 와이어(일반)
× 1

필요한 도구 및 기계

3D 프린터(일반)
우리는 1년 이상 완벽하게 작동한 Lulzbot Mini를 사용했습니다. 일한 적 없음 :( )

앱 및 온라인 서비스

Arduino IDE
Autodesk Netfabb
프리징

이 프로젝트 정보

Avenger Assembled:3D 인쇄 및 Arduino 제어 아이언맨 헬멧 및 아크 리액터

소개 및 동기:

이 헬멧을 만든 동기는 내가 만든 첫 헬멧에서 시작되었습니다. 온라인에서 찾은 몇 가지 비디오에서 골판지 Antman 헬멧이었습니다. 정말 멋있어서(마블 팬으로서) 정말 아이언맨 헬멧을 만들고 싶다고 결심했습니다. 방금 워싱턴 D.C.에서 열린 National Maker Faire에 갔을 때 모두가 Antman 헬멧을 좋아했습니다. 이것이 내가 아이언맨을 하나 만들게 된 동기를 더욱 자극했습니다. 다른 카드보드 헬멧부터 시작하여 여러 프로토타입을 살펴보았습니다. 그 헬멧이 너무 작아서 제가 직접 디자인한 헬멧이었는데, 이번에 조립을 해보니 영화에 나오는 것보다 머리에 공처럼 꽂힌 것 같았어요. 드디어 종이모형에 갔습니다. 이 종이 모델은 정말 멋지게 나왔지만 한 가지 문제가 더 생겼습니다. 종이 모델은 너무 어설펐습니다. 고치려고 했으나 잘 되지 않아 헬멧을 3D 프린팅하기로 결정했습니다. 나는 마침내 충분히 안정적이고 내 머리와 모터에 맞을 만큼 충분히 큰 것을 만들었습니다.

<울>
  • 헬멧 및 아크 원자로 만들기:
  • 3D 프린트:

    1) 조각으로 나누기 - 소프트웨어

    이 헬멧을 만드는 첫 번째 단계는 온라인에서 파일을 찾은 다음 인쇄하는 것이었습니다. 내가 찾은 파일은 전동 아이언맨 헬멧이었다. 싱기버스에서 다운받은 파일은 본체, 턱, 페이스플레이트 3개로 구성되어 있습니다. 세 조각 모두 내 프린터의 빌드 플레이트에 비해 너무 커서 헬멧을 여러 부분으로 절단할 수 있는 소프트웨어를 찾아야 했습니다. 온라인을 보다가 netfabb basic이라는 무료 소프트웨어를 온라인에서 찾았습니다. 도구를 다운로드하고 내 파일을 업로드했습니다. Netfabb basic은 사용하기 매우 쉬웠고 헬멧의 일부를 잘라낼 수 있었습니다. 그런 다음 메인 헬멧, 턱 부분 및 페이스 플레이트에 부품을 인쇄했습니다. 인쇄물을 살펴보는 동안 나는 조각들을 함께 테이프로 붙이고 크기가 괜찮은지 확인했습니다. 모든 조각이 인쇄를 끝내고 필라멘트 1½ 롤이 사용되었을 때 24 조각 헬멧이있었습니다.

    2) 적절한 접착제 선택

    다음 과제는 부품을 서로 붙일 수 있는 올바른 접착제를 찾는 것이었습니다. 접착제가 작동하려면 다음 세 가지 요구 사항을 충족해야 합니다.

    <울>
  • 강력한 결속력으로 조각들을 고정해야 했습니다.
  • <울>
  • 빠른 치료 시간
  • <울>
  • 사포질하기 쉽습니다.
  • 우리는 E6000, JB Weld KwikWeld, JB Weld Plastic Bonder 및 Loctite Plastic Bonder 에폭시의 4가지 종류의 접착제를 테스트했습니다. 궁극적으로 우리는 세 가지 요구 사항을 모두 충족했기 때문에 KwikWeld를 사용하게 되었습니다. 조각을 부착하려면 먼저 접착할 면을 거칠게 해야 합니다. 나는 조각에 작은 홈과 주머니가 있는 거친 면이 생길 때까지 파일을 사용하여 매끄러운 면을 거칠게 했습니다. 이렇게 하면 조각이 서로 붙는 데 도움이 됩니다. 그런 다음 JB KwikWeld를 경화제 및 강철의 동일한 부분과 함께 혼합하고 양면에 균일하게 펴서 함께 압착합니다. 클램프가 있는 경우 클램프에 밀어 넣고 과도한 접착제를 닦아냅니다. 건조하는 데 약 10분이 걸리지만 그보다 더 오래 두는 것이 도움이 됩니다.

    <울>
  • 3) 서보 메커니즘 설계
  • Iron Man 헬멧 제작의 다음 과제는 서보 메커니즘을 설계하는 것이었습니다. thingiverse 페이지의 사진으로 헬멧에 서보를 부착하는 방법을 찾느라 애를 먹었기 때문에, 나는 내 자신을 만들기로 결정했습니다. 먼저 서보가 갈 곳을 정하고 서보에서 부착 위치까지 직선을 측정했습니다. 그런 다음 서보의 각도를 추측했습니다. 첫 번째 디자인은 너무 날카로운 각도로 인해 약간 벗어났습니다. 다음으로 수정했는데 거의 맞았습니다. 그런 다음 팔을 서보와 부착 위치에 나사로 고정하여 맞는지 확인했습니다. 그게했다! 마지막으로 서보 주위에 맞도록 클램프를 설계하고 인쇄했습니다. 모든 것을 조립하고 첫 번째 테스트를 수행했습니다. 불안정했고 페이스 플레이트가 매끄럽고 균등하게 올라가지 않았습니다. 이 문제를 해결하기 위해 금속 옷걸이를 직사각형 모양으로 구부려 3D 인쇄 부품이 들어갈 슬롯에 넣었습니다. 그런 다음 옷걸이가 떨어지지 않도록 클립을 디자인했습니다. 나는 쇠톱으로 헬멧 상단의 슬롯을 자른 다음 모든 것을 다시 조립했습니다. 우리는 두 번째로 그것을 시도했고 훌륭하게 작동했습니다!

    4) 조립 및 페인팅

    드디어 칠할 준비가 되었습니다. 모든 것을 분해하고 흰색의 첫 번째 프라이머 코팅을 수행했습니다. 프라이머가 끝나면 화가 테이프로 턱 부분을 마스킹하고 헬멧을 빨간색으로 칠했습니다. 페이스 플레이트는 전체 금색으로 칠했습니다. 금이 빨리 마르기 때문에 금새 완성되었지만 빨간색 페인트는 건조가 너무 느려서 그대로 두었습니다. 모든 부품이 마른 후 턱 부분에서 테이프를 떼어내고 여전히 흰색인 부분 주변의 모든 것을 가렸습니다. 그런 다음 주석 호일을 사용하여 헬멧의 나머지 부분에 두었습니다. 그런 다음 흰색 부분을 금색으로 칠하고 마를 때까지 기다렸습니다. 그런 다음 헬멧을 다시 재조립했습니다. 그리고 그것을 모두 함께 넣어. 그런 다음 최종 테스트를 수행했고 작동했습니다!

    5) 아크 원자로:

    아크 원자로를 만드는 것은 다음이었습니다. 먼저 네오픽셀 링의 크기를 측정하고 이를 담을 수 있는 케이스를 디자인했습니다. 그런 다음, 뚜껑은 thingiverse에 있는 누군가의 디자인을 사용하고 필요에 맞게 수정했습니다. 원본 모델은 여기에서 찾을 수 있습니다. http://www.thingiverse.com/thing:33021 새로운 디자인은 일부 부분이 약간 맞지만 거의 동일한 기능을 가지고 있습니다. 나는 케이스와 상단을 인쇄했고 그들은 꽤 잘 맞습니다. 유일한 문제는 네오픽셀이 케이스에 비해 너무 작았다는 것입니다. 계산을 잘못한 것 같아서 다시 돌아가서 변경했습니다. 이번에는 맞았다. 다음으로 와이어가 통과할 구멍 2개와 끈이 들어갈 상단에 막대를 추가하여 목에 걸 수 있도록 했습니다. 마지막으로 케이스에 꼭 맞는 반투명 abs 필라멘트로 만든 디퓨저를 추가했습니다. 드디어 프린팅 부분이 완성되었습니다!

    전자 제품:

    3D 인쇄가 완료되면 일부 전자 제품을 내장할 수 있는 훌륭한 플랫폼이 있다는 것을 알았습니다. 이 프로젝트에서는 헬멧의 페이스 플레이트에 부착된 1개의 서보 모터를 제어하려고 합니다. 또한 Arc Reactor에서 Neopixel 링을 제어하고 싶습니다. 우리는 이 프로젝트의 제어 시스템의 기초로 Arduino Uno를 사용했습니다. 그러나 사용할 수 있는 다른 유형의 보드가 많이 있으며 이러한 이유로 소프트웨어 및 하드웨어를 일반 상태로 유지했습니다. 사실, 우리는 이 프로젝트에서 Uno와 Arduino101을 서로 바꿔서 사용했습니다. 이것은 또한 미래의 확장과 101의 온보드 BLE로 연결된 헬멧을 만들 가능성을 허용할 것입니다!

    Iron Man은 헬멧의 서보 모터와 아크 리액터의 네오픽셀 링을 작동해야 합니다. MPR121 ADAFRUIT 12-KEY CAPACITIVE TOUCH SENSOR BREAKOUT을 사용하여 터치 기반 인터페이스를 제공했습니다. 이 브레이크아웃 보드는 12개의 다른 입력을 허용하고 I2C를 사용하여 Uno와 통신합니다. 12개의 접점은 향후 확장을 위한 충분한 공간을 남겨두고 I2C는 Arduino 제품군을 위한 표준 IDE 패키지의 일부로 재프로그래밍 없이 보드를 교환할 수 있는 기능을 제공합니다. 문서화되어 있고 제공된 소프트웨어 예제를 통해 스케치에서 사용하는 방법을 쉽게 이해할 수 있습니다.

    우리는 정전식 터치 스위치를 작동시키기 위해 맨 끝으로 전선을 연결했습니다. 기계식 스위치에서 관찰되는 것과 같은 기존의 "스위치 바운스"는 볼 수 없지만 loop()처럼 한 번의 터치로 여러 번 히트가 발생합니다. arduino 스케치에서 보드를 투표합니다. 이러한 히트에 대한 응답으로 서보 "채터링"을 피하기 위해 터치를 읽을 때 1/4초 소프트웨어 지연 메커니즘을 구현했습니다. Uno와 MPR121을 테스트한 후 서보 모터와 전원 공급 장치를 추가했습니다.

    부하가 걸린 서보 모터의 사용과 2016 NYC Maker Faire에서 이 프로젝트를 "현장 배포"하려는 욕구를 고려할 때 이 프로젝트의 가장 중요한 고려 사항 중 하나는 전원 공급 장치입니다. 전원 공급 장치 설계는 전기 공학에서 가장 중요하지만 덜 매력적인 분야 중 하나라고 들었습니다. 우리 둘 다 전기 엔지니어가 아니기 때문에 우리가 찾은 솔루션은 우리가 읽은 것, 이해한 것, 사용할 수 있었던 것, 작동해야 하는 것의 조합입니다. 따라서 이것이 최선의 솔루션이라고 주장하지 않으며 개선을 위한 제안을 기대합니다.

    서보에 가해지는 부하, 역기전력의 가능성 및 https://www.arduino.cc/en/Reference/Servo의 권장 사항 때문에 우리는 Uno와 별도로 서보에 전원을 공급하기로 결정했습니다. 서보 모터 전원 및 접지는 4XAA 배터리 팩의 전원 및 접지에 연결되었습니다. 매우 중요한 것은 Uno의 접지, 서보 및 배터리 팩이 모두 연결되어야 회로가 완성된다는 것입니다. 아래 Fritzing 회로도에서 볼 수 있듯이 Perma-Proto 보드의 접지 레일, 4XAA 배터리 팩 및 Uno 접지 핀의 와이어를 모두 함께 연결합니다.

    원래 네오픽셀 링도 4XAA 배터리 팩에서 전원을 공급받았습니다. Neopixel 링을 켜고 끌 때 서보의 약간의 "잡담"이 있는 것 같아서 이것을 변경했습니다. 그러나 이것은 테스트 당시 배터리 부족으로 인한 것일 수 있습니다. 불행히도 우리는 메이커 페어 전날 밤에 이것을 알아차렸고 우리는 이미 Perma-Proto에 있었습니다. 우리는 Neopixel Ring을 Uno에 직접 연결하고 동시에 새 배터리로 변경하기로 결정했습니다. 이것은 문제를 해결했지만 질문에 대답하지 않았습니다. 아마도 앞으로 프로젝트를 개선하기 위해 노력하면서 이를 추구할 것입니다.

    전체 회로는 브레드보드에서 프로토타입을 만든 다음 Adafruit ¼ Perma-Proto 보드로 간단히 옮겼습니다. 안전한 인클로저를 사용하면 프로젝트에 배포 가능한 패키지를 빠르게 생성할 수 있는 가장 간단한 방법 중 하나입니다. 아래에서 볼 수 있는 파란색 HIPS 필라멘트로 맞춤형 인클로저를 설계하고 인쇄했습니다. 메이커 페어를 위해 배터리가 포함된 전체 장치가 카메라 케이스에 포장되었습니다!

    소프트웨어:

    현재 두 가지 버전의 스케치가 있습니다. IronMan02.ino IronMan04.ino . 둘 다 이 문서에 설명된 대로 하드웨어 설정에서 작동합니다.

    첫 번째, IronMan02.ino "완벽은 완성의 적입니다."라는 정신을 따르는 "get-it-done" 버전입니다. 우리는 마감 기한이 있었고 이 버전은 우아하지는 않지만 작업을 완료했습니다. 이 버전에서는 Helmet과 Arc Reactor를 나타내는 객체를 생성한 것을 볼 수 있습니다. 이것은 향후 버전에서 arduino에서 멀티태스킹을 구현할 것을 예상하여 수행되었으므로 완전한 러시 작업은 아닙니다. Adafruit의 Bill Earl이 작성한 arduino 멀티태스킹에 대한 세 개의 기사 시리즈를 읽는 것이 좋습니다. 우리 코드는 특히 IronMan04.ino를 기반으로 합니다. 이 3가지 튜토리얼 세트의 예제, 아이디어 및 권장 사항을 기반으로 합니다. 이 기사는 arduino 프로그래밍의 기본을 넘어 프로젝트가 실제로 도약할 수 있도록 도와줍니다!

    우리가 직면한 한 가지 문제는 전면판이 너무 빨리 열리고 닫히는 것이었습니다. delay()를 사용하여 이 문제를 해결했습니다. 페이스 플레이트의 움직임을 늦추고 부드럽게 하는 기능. 네, 만약 Dr.Reallyevilbadguy가 그의 슈퍼 데스 레이저로 Iron Man의 얼굴을 쏘려고 한다면 헬멧이 빨리 닫히기를 원하지만, 데모 목적으로는 느리고 부드러운 움직임이 훨씬 더 좋아 보입니다.

    // 헬멧을 위로 이동하고 터치 캡에서 잡담/바운스를 피하기 위해 1/4초 시간 블록. switch 무효 up() { if((millis() - lastSwitched)> 250 ) { lastSwitched =millis(); if (!helmetUp int currPos =0; while( currPos  

    delay() 사용 문제 기능은 마이크로컨트롤러가 delay() 동안 다른 작업을 할 수 없다는 것입니다. . 위의 두 번째 버전인 IronMan04.ino의 adafruit 자습서 지침을 사용하여 이 문제를 해결했습니다. .

    두 번째 버전, IronMan04.ino , 구현하고 싶었지만 Maker Faire 이전에 달성하기 위해 시간이 부족한 2가지 주요 요소를 포함합니다.

    <울>
  • 원버튼/터치 페이스 플레이트 컨트롤
  • <울>
  • 멀티태스킹
  • 우리가 초기 프로젝트에 대해 사람들에게 이야기했을 때 모두의 반응은 헬멧을 위아래로 움직일 수 있는 버튼/터치 센서가 하나만 있어야 한다는 것이었습니다. 우리는 더 이상 동의할 수 없었고 시간이 있을 때 이를 구현하기로 결정했습니다. 우리의 솔루션에는 여러 상태 변수를 사용하는 것이 포함됩니다.

    <울>
  • 뒤집기 - 페이스 플레이트의 상태를 유지하기 위해
  • <울>
  • 뒤집기 - 페이스 플레이트가 현재 위치를 전환하고 있는지 표시하기 위해
  • <울>
  • 방향성 - 페이스 플레이트를 위 또는 아래로 움직이는 것을 나타내기 위해
  • 설정()에서 , 우리는 항상 열린 또는 위로 구성에서 헬멧을 시작합니다. 이것은 절대적으로 필수적인 것은 아닙니다. 초기 상태에 관계없이 전면판 스위치를 토글하면 두 번째 누름으로 올바른 상태로 이동합니다. 그러나 페이스 플레이트의 초기 상태가 up이고 따라서 초기에 낭비되는 버튼 누름이 없다는 것을 고려하여 코드를 작성했습니다. 이것이 최선의 방법입니까? 확실하지 않지만 몇몇 위대한 과학자들은 제어 이론을 연구하는 데 오랜 시간을 보냈기 때문에 이 프로젝트는 성공적이었다고 생각합니다!

    루프의 MPR121에서 터치를 폴링하기 때문에 한 사용자가 감지한 터치는 많은 터치 신호를 생성합니다. 이는 기존의 스위치 바운스와 유사하며 소프트웨어를 통해 처리합니다. 우리는 터치 센서에 대한 빠른 응답을 원하고 멀티태스킹을 구현하기를 원하므로 loop() 의 스위치/케이스에서 다중 터치를 차단하는 대신 함수에서 millis()를 사용하여 타이밍 블록을 배치합니다. 헬멧 의 기능 ArcReactor 헬멧 의 이 코드 조각에서 볼 수 있는 개체 개체:

    void flipFaceplate() { // 채터/바운스로부터 보호하기 위한 타이밍 블록 if ((millis()-lastFlipped)> 500 ) { . . . 

    다시 말하지만, delay() 를 사용하지 않음으로써 우리는 프로젝트에서 멀티태스킹을 유지합니다. 변경 및 테스트를 허용하기 위해 500밀리초의 지연 간격에 변수를 사용하는 것이 더 현명할 수 있지만, 두 번째 추측인 500에서는 올바른 결과를 얻었고 여기에서는 약간 엉성했습니다.

    회전 각도를 통해 서보를 부드럽게 스윕하기 위해 서보 회전을 천천히 증가시켜야 했습니다. millis()로 현재 시간을 확인하여 서보 모터의 각도 스텝에 타임 블록을 배치하여 기능:

    void Update() { if ( flipping &(millis()-lastMoved)>=15 ) { lastMoved =millis(); if ( 방향성 ==UP ) { currentPos =currentPos + 3; } else { 현재Pos =현재Pos - 3; } Serial.print("현재 위치:");Serial.print(currentPos); 헬멧서보.쓰기(currentPos); } if ((currentPos>=upAngle) || (currentPos <=downAngle)) { flipping=false; } }}; 

    그러나 우리는 이것을 delay() 없이 구현했습니다. 기능. 이 프로젝트를 빌드하고 주의 깊게 살펴보면 Uno에서 실행되는 IronMan04.ino를 사용하여 전면판을 뒤집고 Neopixel을 동시에 켜고 끌 수 있음을 알 수 있습니다. IronMan02.ino를 사용하면 delay() 서보가 움직일 때까지 차단됩니다. 빌 얼 감사합니다!

    업데이트 기능의 이 마지막 줄은 loop()와 같이 페이스플레이트의 위쪽 또는 아래쪽 위치를 초과하지 않는지 확인합니다. 함수 호출 Update() 헬멧이 마지막으로 움직인 후 이를 지속적으로 확인한 다음 뒤집기를 설정합니다. 페이스 플레이트가 위 또는 아래로 이동이 완료되었음을 나타내려면 변수를 false로 설정합니다. 다음 주기에서 뒤집기 false이면 전체 기능을 기본적으로 건너뜁니다.

     if ((currentPos>=upAngle) || (currentPos <=downAngle)) { flipping=false; } 

    향후 방향:

    이 프로젝트로 할 수 있는 일이 너무 많아서 어디서부터 시작해야 할지 잘 모르겠습니다! 빛나는 눈은 하나입니다. 아마도 arduino101에 BLE 연결을 추가하시겠습니까? 음성 인터페이스? Jarvis는 확실히 이것을 요구하고 있습니다!

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

    코드

    아이언맨 헬멧과 아크 리액터 프로젝트!
    https://github.com/lachendeKatze/Iron-Man

    회로도


    제조공정

    1. 맨홀 뚜껑
    2. 옷 다리미
    3. 주철 스토브
    4. 축구 헬멧
    5. 배터리
    6. UnifiedWater v1
    7. 아이언맨
    8. Arduino Power
    9. 연철의 이해