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

항상 피어난 기계 튤립

구성품 및 소모품

Arduino Nano R3
× 1
SG90 마이크로 서보 모터
× 1
TTP223 터치 센서
× 1
1mm 황동 와이어
× 1
2mm 황동 튜브
× 1
0.3mm 절연 구리선
× 1
WS2812 5050 네오픽셀 LED
× 7
흰색 SMD 1206 LED
× 30

이 프로젝트 정보

당신의 영원한 사랑을 위한 영원한 꽃. 당신의 사랑하는 사람에게 완벽한 발렌타인 데이 선물이 아닙니다. 이 기계식 튤립은 손으로 부드럽게 터치하면 가능한 모든 색상으로 피어납니다. 여섯 개의 꽃잎이 천천히 열리고 빛을 발합니다. 꽃잎이 닫히면 잎사귀 패턴이 있는 놀라운 주변 조명이 만들어집니다.

어떻게 작동합니까?

그러나 이 아름다움을 만드는 방법을 알려드리기 전에 작동 원리에 대해 간단히 말씀드리겠습니다. 튤립은 각각 5개의 SMD 백색 LED가 있는 6개의 꽃잎으로 구성됩니다. 각 꽃잎은 Arduino 출력 핀 중 하나와 연결됩니다. Blossom은 7개의 NeoPixel RGB LED를 숨깁니다. 전기적인 관점에서 보면 꽃 전체가 접지되고 꽃잎의 정맥은 양의 전압입니다. 꽃잎은 줄기 아래로 바닥까지 내려가는 푸시로드에 의해 열립니다. 푸시로드는 작은 취미 서보의 움직임으로 제어됩니다. 줄기 측면의 작은 잎은 베이스 내부의 TTP223 터치 센서에 연결되어 정전식 터치패드를 만듭니다. 나무 베이스에는 서보 모터, 터치 IC 및 Arduino Nano가 포함되어 있습니다. 직접 만들어 봅시다!

무엇이 필요할까요?

<울>
  • 1mm 황동 막대
  • 1, 2mm 구멍이 있는 2mm 황동 튜브
  • 절연된 0.3mm 구리선
  • 받침대용 나무
  • 아두이노 나노
  • TTP223 터치 센서
  • 작은 서보
  • 시작하기 전에 알아야 할 사항

    <울>
  • 황동 납땜 방법(훌륭한 기사)
  • Arduino로 빌드하는 방법
  • 서보 사용법
  • LED 및 NeoPixels 사용 방법
  • 나는 구성 요소의 치수와 꽃의 정확한 모양을 말하지 않습니다. 모든 꽃은 고유해야 한다고 생각합니다.

    꽃잎 (4h)

    먼저 가장 만족스러운 부분인 꽃의 꽃잎부터 시작하겠습니다. 괄호 안의 숫자는 해당 단계를 수행하는 데 필요한 시간입니다.

    가장 먼저 필요한 것은 꽃의 템플릿입니다. 나는 튜브 몰드에 부은 석고로 광산을 만들었습니다. 말리면 튤립 모양으로 만들었어요. 3D 프린팅도 할 수 있지만 3D 프린터가 없습니다. 석고는 기계로 가공하기 쉽고 연필로 그릴 수 있기 때문에 훌륭합니다. 하나의 꽃잎은 템플릿 표면의 1/4이므로 끝에 6 장이 될 때 서로 약간 겹쳐서 정확한 튤립 꽃 모양을 만듭니다. 석고 표면에 연필로 꽃잎 모양을 그립니다. 꽃잎 모양이 마음에 들면 칼로 석고에 조각하여 납땜하는 동안 막대를 제자리에 고정할 수 있도록 했습니다.

    꽃잎은 1mm의 황동 막대로 구성되어 있으며 모양 전체에 걸쳐 있습니다. 꽃잎 내부에는 5개의 SMD 1206 백색 LED와 동일한 와이어의 "정맥" 구조가 있습니다. 먼저 원주형 와이어를 만들고 시간을 들여 구부립니다. 작은 튜브 조각을 자르고 와이어의 평평한 바닥 부분에 전달하십시오. 이것은 경첩 꽃잎이 움직일 것입니다. 와이어 끝을 함께 납땜하고 튜브에 땜납을 채우지 않도록 하십시오. 자유롭게 움직여야 합니다. LED와 정맥 구조로 꽃잎을 완성하십시오. 꽃잎 하나 만드는 모습을 지켜봐 주세요. 부끄럽지만 꽃을 만드는 장면이 이 영상뿐입니다.

    이제 5개를 더 만드세요. 모든 꽃잎이 정확히 같아야 합니다. 정말 중요합니다. 그렇지 않으면 닫았을 때 끝에 튤립 모양의 멋진 모양이 되지 않고 끼일 수도 있습니다.

    블라썸 (1h)

    여태까지는 그런대로 잘됐다? 모든 꽃잎을 함께 납땜 할 때입니다. 꽃의 바닥은 육각형-6장의 꽃잎입니다. 꽃잎은 힌지를 통해 육각형에 고정됩니다. 그러나 육각형은 약간 불규칙합니다. 저는 레귤러로 실패했습니다. 꽃잎은 서로 겹칠 필요가 있으며 육각형이 규칙적이면 허용되지 않습니다. 3개의 꽃잎은 중앙에 더 가깝고(내부 꽃잎) 다른 3개는 약간 오프셋되어 있습니다(외부 꽃잎). 이를 위해 템플릿을 만들어 종이에 인쇄했습니다. 빨간색 모양은 두 개의 중첩된 정육각형으로 만든 최종 불규칙 육각형입니다. 모든 경첩(튜빙)을 육각형에 납땜합니다. 템플릿 중앙에서 나오는 광선은 올바른 위치에 꽃잎을 납땜하는 데 도움이 됩니다. 꽃잎의 중심은 육각형의 중심에서 나오는 광선선을 따라야 합니다. 마지막에 꽃잎을 닫으면 꽃의 최종 모양이 됩니다. 멋지지 않나요?

    스템 및 푸시로드 만들기(1h)

    이것은 내가 꽃을 만드는 과정에서 진행하는 방식이 아닙니다. 먼저 꽃 내부의 메커니즘을 완성한 다음 줄기와 푸시로드를 추가했습니다. 그것은 제작에 많은 불행을 더했습니다. 한번은 거의 쓰레기를 버리고 절대 뒤돌아보지 않고 싶었습니다. 다음에는 줄기부터 시작하겠습니다. 따라서 당신도 그래야 합니다.

    꽃잎의 움직임은 황동 튜브 내부에서 자유롭게 움직이는 1mm 황동 푸시로드에 의해 생성됩니다. 꽃잎은 양쪽에 작은 2mm 길이의 경첩이 있는 아주 작은 육각형을 통해 푸시로드에 연결됩니다. 육각형은 육각형의 중심을 관통하는 작은 막대의 도움으로 푸시로드에 수직으로 놓여 있습니다. 이것은 시계공의 일입니다.

    푸시로드 헤드를 만들기 위해 두 번째 템플릿을 만들었습니다. 먼저 와이어를 구부려 작은 육각형을 만듭니다. 그런 다음 2mm 길이의 작은 튜브를 자르고 와이어에 통과시킵니다. 와이어를 납땜하여 육각형 모양을 완성합니다. 다시 한 번 튜브를 와이어에 납땜하지 않도록 합니다. 육각형의 중심에 와이어를 납땜하여 계속하십시오. 그리고 푸시로드 헤드 중심에 수직으로 1mm 와이어를 납땜하여로드를 마무리합니다. 만세! 푸시로드가 있습니다.

    줄기를 만드십시오. 황동 튜브를 원하는 길이로 자릅니다. 이제 두 번째로 중요한 부분입니다. 줄기는 꽃의 육각형 바닥에 완벽하게 수직이어야 하고 꽃의 정확한 중앙에 있어야 하며 푸시로드 헤드가 꽃잎을 닫을 수 있도록 아래로 이동할 충분한 공간이 있어야 합니다. 먼저 V자형 확장을 만들기 위해 줄기의 한쪽 끝에 두 개의 와이어를 납땜했습니다. 이것은 육각형 밑면의 꼭지점에 줄기를 연결하는 6개의 와이어 중 2개가 됩니다.

    따라서 꽃을 거꾸로 뒤집고 V자형 확장을 육각형 밑면의 반대 정점 2개에 납땜합니다. 모양을 확인하십시오. 줄기 안에 막대를 넣으면 꽃의 중앙으로 나와야 합니다. 여기서 시간을 내어 완벽하게 만드세요. 정말 중요한 부분입니다. 괜찮으면 나머지 육각형 정점과 줄기 상단 사이에 4개의 와이어를 더 납땜합니다. 튜브 내부의 구멍을 납땜하지 않도록 주의하십시오!

    꽃잎 메커니즘(6h)

    처음에 꽃 만들기 시작한 걸 후회하게 될 부분입니다. 거의 한번 쓰레기통에 버립니다. 하지만 이봐, 난 가장 인내심이 많은 사람이 아니야. 당신은 그것을 못 박을거야! 이 부분에서 저는 증기 기관과 그 막대, 피스톤, 플라이휠에서 영감을 얻었습니다.

    자신을 테스트 스탠드로 만드십시오. 줄기가 위로 향하도록 꽃을 고정하십시오. 푸시로드를 머리가 위로 향하게 하여 스템을 통해 넣습니다. 푸시로드의 하단에 수직으로 짧은 튜브를 납땜하고 서보와 푸시로드를 연결하기 위해 1mm 황동 와이어로 작은 커넥팅 로드를 만드십시오(위 그림 참조). 서보를 사용하여 푸시로드를 위아래로 움직일 수 있어야 합니다. Arduino를 연결하여 시도하십시오. 꽃잎과 푸시로드 헤드 사이의 커넥팅 로드 납땜을 시작하기 전에 Arduino로 서보 움직임을 조정해야 합니다. 푸시로드 헤드 끝 부분이 꽃이 만발한 육각형 바닥과 같은 높이에 있을 때 푸시로드를 위아래로 움직이는 코드를 작성하십시오. 그리고 가장 낮은 위치에서 V자형 꽃받침 바닥에 안착합니다.

    푸시로드가 위로 이동하면 커넥팅 로드와 꽃잎이 아래로 밀려납니다. 아래로 내려가면서 커넥팅 로드와 꽃잎이 닫히고 있습니다.

    꽃잎에는 현재 한 가지 중요한 부분인 꽃잎 핀이 없습니다. 이 경첩은 꽃잎을 움직입니다. 경첩은 바닥과 평행한 각 꽃잎에 납땜된 막대(아래 이미지 참조)에 있습니다. 애니메이션에서 볼 수 있는 것처럼 꽃잎이 완전히 열리려면 꽃잎 핀이 꽃잎 표면 위에 있어야 합니다. 튜빙에서 힌지로 그런 막대를 만들고 첫 번째 꽃잎에 납땜하십시오. 푸시로드가 꽃잎을 완전히 열고 닫을 수 있도록 막대의 크기와 꽃잎 바닥으로부터의 거리에 대한 많은 실험이 필요합니다. 시행 착오 방법을 사용합니다. 막대를 적절한 위치에 납땜하고 푸시로드 핀과 꽃잎 핀 사이에 커넥팅 로드를 추가합니다. 푸시로드가 위쪽 위치에 있고 꽃잎이 완전히 열린 위치에 있는 경우 푸시로드 핀과 꽃잎 핀 사이의 공간은 커넥팅 로드의 길이입니다.

    이제 푸시로드를 위아래로 움직여서 무슨 일이 일어나고 있는지 확인하십시오. 문지르지 않고 잘 작동하고 꽃잎을 닫았다 열 수 있으면 작업이 완료된 것입니다(첫 번째 꽃잎 사용)! 그렇지 않은 경우 다른 길이의 커넥팅 로드나 바의 다른 위치를 시도하십시오. 꽃을 완성하려면 나머지 꽃잎 5개에 동일한 막대와 연결 막대를 복제합니다. 바깥쪽 꽃잎 3장은 꽃을 폈을 때 안쪽 꽃잎과 잘 겹칠 수 있도록 펼쳤을 때 약간 낮아야 합니다. 결국, 당신은 꽃을 닫고 열 수 있어야합니다. 당황하지 마세요 첫 번째 시도에서 완벽한 모양을 만드는 데 실패했다면. 그것은 단지 모든 꽃잎이 완벽하게 동일하지 않다는 것을 의미합니다. 커넥팅 로드의 길이와 바의 위치가 약간씩 다른 완벽한 모양을 만들기 위해서는 아마도 많은 미세 조정이 필요할 것입니다. 여기에서 시간을 보내십시오! 보상이 임박했습니다.

    무지개 암술(1h)

    이 단계까지 왔다면 당신이 왕이고 가장 어려운 부분이 뒤에 있습니다. 꽃 안에는 네오픽셀 LED 7개를 넣어 내부에서 빛나도록 했습니다. 이 LED는 제어할 단 하나의 DATA 와이어만 필요하며 데이지 체인 방식으로 연결할 수 있습니다. 나는 두 개의 작은 육각형 사이에 이 중 6개를 납땜했습니다(물론 다른 템플릿). 아래쪽 육각형은 접지선이고 위쪽 육각형은 양의 전압입니다. NeoPixels의 적절한 리드를 이 육각 링에 납땜합니다. 이 LED는 45도 각도 아래에 배치되어 측면을 비춥니다. 더 좋게 만들기 위해 일곱 번째 LED를 위쪽 육각형의 중앙에 배치합니다. 마지막으로 DATA IN과 OUT 리드를 연결하여 데이지 체인을 만듭니다.

    이 구조는 받침대로 내려가는 두 개의 와이어(VCC 및 DATA)가 필요합니다. 땅은 꽃 프레임에서 가져옵니다. 하나의 얇은 0.3 절연 구리선을 VCC용 상단 링에 납땜하고 두 번째 와이어를 DATA용 데이지 체인의 첫 번째 LED에 납땜합니다. 이 전선은 결국 받침대까지 내려갑니다. 줄기 길이의 3배 이상으로 만드십시오. 이러한 와이어의 끝은 납땜 전에 투명 절연체에서 분리되어야 합니다. 열은 그것을 파괴하지 않습니다. 칼을 사용하여 단열재를 벗겨냅니다. 이제 LED가 작동하는지 테스트할 수 있습니다. 이 구리선을 부드럽게 다루십시오. 끝이 아닌 다른 곳에서 실수로 절연체를 벗길 경우 합선될 수 있습니다!

    이제 마지막 황동 납땜 작업이 진행됩니다! 암술 구조를 꽃의 중앙에 놓습니다. 꽃잎 연결 막대를 위한 충분한 공간을 남기기 위해 꽃 육각형 베이스에서 약간 오프셋합니다. 나에게 그것은 꽃 육각형 위 1cm였습니다. 모든 정점을 황동 막대로 연결하여 견고한 구조를 만듭니다. 꽃이 완성되었습니다! 꽃잎이 여전히 자유롭게 움직일 수 있는지 지금 테스트하십시오.

    뿌리 만들기(2h)

    꽃잎과 NeoPixel LED는 모두 빛을 발하는 전선이 필요합니다. 전체 꽃 조각은 땅이지만 받침대에 Arduino에 연결해야 하는 NeoPixels용 6개의 꽃잎과 2개의 전선이 있습니다. 이를 위해 투명 절연체가 있는 얇은 0.3mm 구리 와이어가 스템 튜브를 감쌀 것입니다. Neopixels에 대한 두 개의 와이어는 이미 완료되었습니다. 경첩 근처의 각 꽃잎에 있는 느슨한 정맥 와이어에 또 다른 6을 납땜하고 와이어를 꽃 구조를 통해 줄기 아래로 통과시킵니다. 이 전선을 날카로운 각도로 구부리지 않도록 하십시오. 곧 끊어질 것입니다.

    이제 스템 튜빙의 상단 근처에 있는 모든 와이어를 모으고 끈으로 묶는 테이프를 사용하여 고정합니다. 아직 너무 세게 조이지 말고 와이어가 통과할 수 있도록 하십시오. 이제 꽃 내부의 모든 전선을 멋지게 정리하십시오. 꽃잎이 자유롭게 움직이고 푸시로드가 와이어와 충돌하지 않는지 확인하십시오. 완료? 이제 스트래핑 테이프를 조이십시오.

    전선은 이제 통제할 수 없이 줄기 주위를 날고 있습니다. 인내심을 갖고 천천히 줄기를 감쌀 필요가 있습니다. 단단하고 고르게. 이 단계를 완료하는 데 최소 1시간이 걸렸습니다. 줄기 끝에 다다르면 다른 끈으로 묶는 테이프를 붙여 전선을 고정하고 투명 슈퍼글루를 사용하여 제자리에 고정합니다. 푸시로드로 튜브를 밀봉하지 마십시오!

    마지막 와이어 누락은 접지입니다. 줄기의 하단에 다른 구리선을 납땜하십시오. 당신은 꽃에서 나오는 9개의 전선으로 끝나야 합니다. 이제 모든 전선을 Arduino에 연결하는 것이 현명합니다. 단락이 없고 모든 LED에 불이 들어오는지 테스트합니다.

    화분 (2h)

    나는 꽃이 모든 전자 제품을 숨길 수 있는 인공 화분에서 자라기를 원했습니다. 나무 조각을 사용하여 높이 4cm, 지름 9cm의 원통으로 가공했습니다. 나는 선반이 없기 때문에 원형 톱을 사용하여 원시 모양을 자른 다음 프레스 드릴을 사용하여 즉석 선반 역할을 했습니다. 그런 다음 서보, Arduino Nano 및 터치 센서 IC에 맞게 핸드 밀링 커터를 사용하여 깊이 2.5cm, 직경 7cm의 구멍을 조각했습니다. 실린더 하단에는 측면에서 USB 케이블을 연결할 수 있도록 Arduino Nano USB 포트에 정확히 맞도록 작은 구멍도 있습니다.

    화분이 있다면 꽃이 자랄 곳(아마도 중앙)에 철사로 꽃줄기 지름의 구멍을 뚫습니다. 당신의 꽃에 맞게보십시오. 전선에 주의하세요. 날카로운 각도로 구부리면 부러집니다. 결국 서보의 암과 커넥팅 로드를 위한 더 많은 공간을 만들기 위해 받침대 내부에서 큰 구멍도 추가했습니다.

    원하는 모양의 화분을 만들 수 있습니다. 모든 전자 제품이 안에 들어 있어야 한다는 점을 기억하세요.

    터치 리프 패드(1h)

    기계식 튤립은 사람이 꽃을 피울 수 있도록 하는 일종의 상호작용 요소가 필요합니다. 내 Arduinoflake 프로젝트에서 TTP223 터치 센서 IC를 선택했습니다. 하지만 터치패드를 어디에 두어야 할까요? 나는 꽃을 더 자연스럽게 만들고 정전식 터치패드 역할을 할 줄기 측면에 작은 잎사귀를 추가하기로 결정했습니다. 터치하면 TTP223 센서가 트리거되고 Arduino에 꽃을 열도록 지시합니다. 복잡한 조각품을 완성했을 때 이것은 케이크 조각이 될 것입니다. 꽃잎과 동일한 기술을 사용하여 LED를 생략합니다. 나 자신을 위한 템플릿도 만들었습니다. 줄기 구멍 옆 받침대에 작은 구멍을 하나 더 뚫어서 잎사귀를 제자리에 고정합니다.

    정전식 터치 센서를 원하지 않거나 사용할 수 없는 경우 받침대에 일반 푸시 버튼을 추가할 수 있습니다. 동일한 작업을 수행합니다.

    합치기(2h)

    조립의 마지막 단계입니다! 긴장 되니? 꽃 줄기를 받침대의 구멍에 다시 삽입하십시오. 이제 중요한 단계입니다. 자르기 전에 두 번 측정하십시오! 꽃이 활짝 열리도록 엽니다. 그리고 줄기에서 나오는 푸시로드의 끝을 줄기와 같은 높이로 자릅니다. 이제 꽃을 다시 닫을 때 푸시로드가 줄기에서 빠져나와야 합니다. 푸시로드에 수직으로 짧은 튜브를 납땜하십시오. 이것은 서보 암이 있는 커넥팅 로드의 힌지가 됩니다. 꽃과 막대를 놓으면 튜브도 정지 역할을 하므로 완전히 열린 상태에서 멈춰야 합니다.

    이제 받침대에 줄기를 붙일 수 있습니다. 스템 튜브 끝이 받침대 내부와 같은 높이인지 확인하여 서보 암을 위한 공간을 최대한 남겨두십시오. 다시 슈퍼글루를 사용했습니다. 푸시로드를 스템 튜브에 붙이지 않도록 하십시오. 당신의 작업을 망칠 것입니다!

    다음으로 리프 패드에 접착제를 붙입니다. 리프 패드를 TTP223 터치 센서에 연결할 수 있도록 구리선을 납땜하기 전에.

    꽃을 거꾸로 놓습니다. 조각품 주변을 조심하세요, 지금 당장 부수지 마세요! 너무 많은 낭비가 될 것입니다! 먼저 서보를 최종 위치에 놓습니다. 암은 이미 테스트 스탠드에서 준비되어 있어야 합니다. 받침대 내부에서 서보 암이 자유롭게 움직이는 스위트 스팟을 찾아 커넥팅 로드를 푸시로드에 연결하기만 하면 됩니다. 서보를 제자리에 고정하기 위해 판금 조각과 두 개의 나사를 사용했습니다. 서보 고장이나 잘못된 배치의 경우 여기에 유연하게 대처하고 싶었습니다. 하지만 자신이 있다면 붙일 수 있습니다.

    TTP223 모듈이 있는 경우 와이어를 원래 TTP223 모듈의 터치패드(구성 요소가 있는 반대쪽)의 리프 패드에 납땜합니다. 구리 층을 노출시키려면 보호용 실크 마스크를 긁어야 합니다. 터치 모듈을 붙입니다.

    꽃잎 잎 전선(6개 있음)은 전류 제한 저항을 통해 Arduino에 연결해야 합니다. 꽃잎은 기본적으로 LED입니다. 나는 성능 보드의 작은 조각에 납땜 된 6 개의 200ohm 저항을 사용했습니다. 붙입니다.

    그리고 받침대의 마지막 구성 요소는 기계식 튤립의 두뇌인 Arduino Nano 자체입니다. 컴퓨터에 연결하고 다른 모든 구성 요소와 연결할 수 있도록 받침대의 구멍에 넣습니다.

    <울>
  • 서보 데이터 와이어 ⭢ D9(Adafruit_TiCoServo 라이브러리에 필요)
  • TTP223 터치 센서 데이터 ⭢ D2(인터럽트 사용)
  • 네오픽셀 데이터 ⭢ A0(모든 출력 핀이 가능)
  • 꽃잎 ⭢ D3, D4, D5, D6, D10, D11(모든 출력 핀이 가능)
  • 꽃 접지선 ⭢ GND
  • 네오픽셀 VCC 와이어 ⭢ 5V
  • TTP223 터치 센서 GND ⭢ GND
  • TTP223 터치 센서 VCC ⭢ 5V
  • 서보 GND ⭢ GND
  • 서보 VCC ⭢ 5V
  • 코딩(1h)

    프로그래밍은 가장 쉬운 부분입니다. 서보에 대한 코드가 이미 있습니다. 이제 NeoPixels, 꽃잎의 LED 및 터치 센서만 제어할 수 있으면 됩니다. 첨부된 내 코드를 살펴보십시오. 꽃을 만드는 데 필요한 모든 것을 제공합니다. 제 배선 방식을 사용하셨다면 바로 사용하실 수 있습니다. 그러나 서보 OPEN 및 CLOSED 값을 변경하는 것을 잊지 마십시오. 확실히 다를 것입니다.

    완료되었습니다!

    당신의 창작물을 공유하는 것을 잊지 마세요! 이 기사처럼. 또한 지원을 고려하십시오. 내 Tindie 스토어에서 내 제품 중 일부를 구매하여 나에게.

    내 트위터 계정에서 나와 내 최신 프로젝트를 찾을 수 있습니다.

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

    코드

    <울>
  • 플라워.이노
  • flower.ino아두이노
    튤립 소스 코드
    #include #include #include "SoftPWM.h#define NEOPIXEL_PIN A0#define TOUCH_SENSOR_PIN 2#define SERVO_PIN 9//#define SERVO_OPEN 1650#define SERVO_OPEN 1750 SERVO_SAFE_MIDDLE 1000 정의#define SERVO_CLOSED 775#define RED 0#define GREEN 1#define BLUE 2float currentRGB[] ={0, 0, 0};float changeRGB[] ={0, 0, 0};byte newRGB[] ={ 0, 0, 0};#define MODE_SLEEPING 0#define MODE_BLOOM 3#define MODE_BLOOMING 4#define MODE_BLOOMED 5#define MODE_FADE 6#define MODE_FADING 7#define MODE_FADED 8#define MODE_9#INdefine 모드 ] ={3, 4, 5, 6, 10, 11};Adafruit_NeoPixel 픽셀 =Adafruit_NeoPixel(7, NEOPIXEL_PIN, NEO_GRB + NEO_KHZ400);Adafruit_TiCoServo 서보;int servoChange =1; // openint 서보포지션 =SERVO_SAFE_MIDDLE; 무효 setup() { Serial.begin(115200); 픽셀.시작(); 서보.부착(SERVO_PIN, SERVO_CLOSED, SERVO_OPEN); 핀모드(TOUCH_SENSOR_PIN, 입력); attachInterrupt(digitalPinToInterrupt(TOUCH_SENSOR_PIN), _touchISR, RISING); randomSeed(analogRead(A7)); SoftPWMBegin(); pixelUnifiedColor(픽셀.색상(0, 0, 0)); //pixelsUnifiedColor(pixels.Color(255, 70, 0)); 준비 크로스페이드(140, 70, 0, 140); servo.write(servoPosition);}int 카운터 =0;바이트 속도 =15;void 루프() { 부울 완료 =true; 스위치(모드) { 케이스 MODE_BLOOM:prepareCrossFadeBloom(500); 변경 모드(MODE_BLOOMING); 부서지다; 케이스 MODE_BLOOMING:완료 =crossFade() &&완료; 완료 =openPetals() &&완료; 완료 =꽃잎블룸(카운터) &&완료; if (완료) { changeMode(MODE_BLOOMED); } 부서지다; 경우 MODE_FADE://prepareCrossFade(0, 0, 0, 800); 변경 모드(MODE_FADING); 부서지다; 케이스 MODE_FADING:완료 =crossFade() &&완료; 완료 =closePetals() &&완료; 완료 =꽃잎페이드(카운터) &&완료; if (완료) { changeMode(MODE_FADED); } 부서지다; 경우 MODE_FADED://prepareCrossFade(140, 70, 0, 140); 변경 모드(MODE_FALLINGASLEEP); 부서지다; 케이스 MODE_FALLINGASLEEP:완료 =crossFade() &&완료; 완료 =closePetals() &&완료; if (완료) { changeMode(MODE_SLEEPING); } 부서지다; 케이스 MODE_RAINBOW:레인보우(카운터); 부서지다; } 카운터++; 지연(속도);} 무효 changeMode(바이트 newMode) { if (모드 !=newMode) { 모드 =newMode; 카운터 =0; }} 무효 _touchISR() { if (모드 ==MODE_SLEEPING) { changeMode(MODE_BLOOM); } else if (모드 ==MODE_BLOOMED) { changeMode(MODE_FADE); }}// 꽃잎 애니메이션 부울 꽃잎블룸(int j) { if (j <250) { return false; // 지연 } if (j> 750) { return true; } 정수 값 =(j - 250) / 2; for (int i =0; i <6; i++) { SoftPWMSet(petalPins[i], val); } return false;} 부울 꽃잎Fade(int j) { if (j> 510) { true를 반환합니다. } for (int i =0; i <6; i++) { SoftPWMSet(petalPins[i], (510 - j) / 2); } return false;}// animationsvoid prepareCrossFadeBloom(unsigned int duration) { 바이트 색상 =random(0, 5); switch (color) { case 0:// 흰색 prepareCrossFade(140, 140, 140, duration); 부서지다; 사례 1:// 빨간색 prepareCrossFade(140, 5, 0, duration); 부서지다; 사례 2:// 파란색 prepareCrossFade(30, 70, 170, duration); 부서지다; 사례 3:// 분홍색 prepareCrossFade(140, 0, 70, duration); 부서지다; 사례 4:// 주황색 prepareCrossFade(255, 70, 0, duration); 부서지다; }}무지개(int j) { uint16_t i; 바이트 수 =pixel.numPixels() - 1; pixel.setPixelColor(pixels.numPixels() - 1, 100, 100, 100); for (i =0; i =SERVO_OPEN) { true를 반환합니다. } 서보포지션 ++; 서보.쓰기(servoPosition); return false;} 부울 closePetals() { if (servoPosition <=SERVO_CLOSED) { true를 반환합니다. } 서보포지션 --; 서보.쓰기(servoPosition); return false;}// utility functionvoid pixelsUnifiedColor(uint32_t color) { for (unsigned int i =0; i  0 &¤tRGB[i]  newRGB[i]) { currentRGB[i] =현재RGB[i] + changeRGB[i]; } else { 현재RGB[i] =newRGB[i]; } } pixelUnifiedColor(픽셀.색상(현재RGB[빨간색], 현재RGB[녹색], 현재RGB[파란색])); /* Serial.print(currentRGB[RED]); Serial.print(" "); Serial.print(현재 RGB[녹색]); Serial.print(" "); Serial.print(현재 RGB[BLUE]); 직렬.println(); */ return false;}uint32_t colorWheel(byte wheelPos) { // 0에서 255 사이의 값을 입력하여 색상 값을 얻습니다. // 색상은 r - g - b - 다시 r로의 전환입니다. wheelPos =255 - wheelPos; if (wheelPos <85) { return pixels.Color(255 - wheelPos * 3, 0, wheelPos * 3); } if (wheelPos <170) { wheelPos -=85; return pixels.Color(0, wheelPos * 3, 255 - wheelPos * 3); } wheelPos -=170; return pixels.Color(wheelPos * 3, 255 - wheelPos * 3, 0);}

    제조공정

    1. 황동
    2. 휴대용 정전식 터치 피아노
    3. 기계적 연결이란 무엇입니까?
    4. 정밀 기계 부품 제조 방법
    5. 기계 철공이 필요한 이유는 무엇입니까?
    6. 기계 프레스 소개
    7. 기계식 언론이란 무엇입니까?
    8. 기계식 베어링 소개
    9. 기계식 펀치 프레스에 대한 빠른 안내서
    10. 기계 베어링 이해