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

5x5x5 LED 큐브

구성품 및 소모품

Arduino Mega 2560
× 1
파란색 LED
× 125
NTE85 NPN 트랜지스터
× 5
22 게이지 주석 도금 구리선
레이어를 함께 묶고 레이어 음극을 메인 보드로 가져오는 데 사용
× 1
180옴 저항, 1/4와트
× 25
9cm x 15cm 프로토타이핑 보드
× 1
330옴 저항, 1/4와트
× 5
선택 사항 - MEGA용 9볼트 전원 공급 장치
USB 케이블이 이 큐브에 전원을 공급할 수 있지만 연결하려는 경우 여기에 공급 장치가 있습니다.
× 1

필요한 도구 및 기계

납땜 인두(일반)
뜨거운 글루건(일반)
블루 압정
납땜 중 LED를 제자리에 고정하는 데 사용

앱 및 온라인 서비스

Arduino IDE

이 프로젝트 정보

소개

대부분의 사람들은 LED 큐브를 좋아하지만 8x8x8과 같은 큰 큐브는 구축하고 프로그래밍하는 데 많은 작업이 필요합니다. 작은 LED(3x3x3 또는 4x4x4)는 많은 수의 LED가 필요하지 않을 뿐만 아니라 큐브를 관리하기 위해 시프트 레지스터 및 하이사이드 드라이버와 같은 외부 하드웨어가 필요하지 않기 때문에 구축하기 쉽습니다. 하지만 실제로는 큰 큐브와 같지 않습니다.

이 프로젝트를 시작할 때부터 저의 목표는 만들기 쉬운 큐브를 만든 다음 큰 큐브를 만드는 데 필요한 고된 작업 없이 큰 큐브의 느낌을 즐길 수 있도록 충분히 멋진 소프트웨어를 만드는 것이었습니다. 따라서 이것은 5개의 트랜지스터가 아닌 보조 하드웨어의 시프트 레지스터 없이 Arduino Mega에 의해 직접 전원을 공급받을 수 있는 5x5x5 큐브입니다(전체 레이어를 당기는 데 사용됨 - 25개 LED의 음극, 접지). 시프트 레지스터를 피하고 싶은 이유는 무엇입니까? 그것들은 전선을 손에 넣기에 절대적으로 끔찍하기 때문입니다. (해봤다.) PC보드를 사용하려면 정말 설계하고 제작해야 한다.

나는 과거에 큰 큐브에 대한 많은 코드를 작성했기 때문에 이 5x5x5 큐브에서 실행되도록 기존 큐브 애니메이션을 수정했습니다.

이것은 실제로 이와 같은 세 가지 프로젝트 중 첫 번째입니다. 2번째는 여기입니다. 5x5x5 RGB 큐브로 이 큐브와 디자인이 매우 유사하지만 만들기가 더 어렵습니다. 세 번째는 최소 외부 하드웨어가 있는 8x8x8 단색 큐브입니다.

참고:여기에서 더 나아가기 전에 MEGA로 구동되는 5x5x5 큐브를 제안한 것은 제가 처음이 아닙니다. MEGA DAS는 2017년 여기에 유사한 프로젝트를 게시했습니다. 두 프로젝트의 하드웨어는 거의 동일합니다. 본 적이 없습니다 이 글을 시작하기 전까지는 더 이른 것이므로 핀아웃이 다르며 저항기 가치 있다 다르지만 하드웨어는 거의 동일합니다. 큐브 소프트웨어를 작성한 경험이 많기 때문에 주로 이것을 게시합니다. 내 소프트웨어가 다른 사람들은 하지 않을 큐브를 만들도록 설득할 수 있기를 바랍니다.

위의 영상은 z축에 진폭을 두고 정육면체 중심에서 수평거리로 시간을 나타내는 사인파 함수입니다. 큰 큐브에서는 멋진 클래식이지만 이 5x5x5에서는 나쁘지 않습니다!

나는 두 개의 다른 비디오를 포함하고 있습니다. 둘 다 같은 것입니다. 5x5x5 큐브에 대한 14개의 애니메이션입니다. 어느 것이 더 나은지 잘 모르겠어서 둘 다 넣었습니다. 그리고 명확하지 않은 경우를 대비하여 큐브는 영상으로 보는 것보다 직접 보면 훨씬 멋집니다!

하드웨어

Mega에는 많은 디지털 IO 핀이 있습니다. 각 레이어의 캐소드를 낮추기 위해 5개를 사용하고 레이어 내의 25개 LED 각각에 대해 애노드를 높게 구동하기 위해 25개를 더 사용합니다. 이 접근 방식을 사용하면 Mega는 실제로 6x6x6 큐브를 만들기에 충분한 IO 핀을 가지고 있습니다. 그러나 우리가 이것을 단순하게 유지하려는 경우 다른 고려 사항은 힘입니다. Mega의 전류 제한은 핀당 40mA이고 모든 핀에서 총 200mA입니다. 청색 LED는 약 3볼트의 순방향 강하를 가지고 있으며, 우리의 일반적인 캐소드 트랜지스터는 0.7볼트를 더 떨어뜨립니다. 따라서 5볼트 공급과 180옴 저항을 사용하면 각 LED는 7.2mA를 소비합니다. 25개의 LED/레이어가 모두 한 번에 켜져 있는 경우 180ma를 그립니다. 한 번에 하나의 레이어만 켜기 때문에 NPN 트랜지스터를 사용하여 레이어의 모든 캐소드를 접지로 당기는 한 모든 Mega의 전류 제한을 충족합니다. 이러한 트랜지스터 중 하나에 대한 기본 전류는 Mega의 총 부하에 또 다른 5mA를 추가하지만 총계는 200mA 미만으로 유지합니다. 약 185 ma. 그래서 위의 모든 이유로 180옴 저항을 선택하여 LED와 페어링했습니다.

위의 차트는 Mega의 디지털 핀이 큐브에 연결되는 방법을 보여줍니다. 핀 22 - 26은 LED의 음극을 접지에 연결하는 트랜지스터를 구동하는 5개의 핀입니다. 핀 27-51은 180옴 저항을 통해 레이어에 있는 25개 LED의 양극으로 이동합니다.

이 핀아웃 배열이 약간 혼란스러워 보이는 이유가 궁금할 것입니다. 내 소프트웨어는 디지털 쓰기가 아닌 직접 포트 액세스를 사용하여 양극을 구성합니다. 즉, 레이어의 25개 LED 각각을 켜거나 끕니다. 이것은 많은 시간을 절약하고 디지털 쓰기를 수행하는 데 많은 시간을 보낸 경우보다 LED가 더 오래 켜져 있음을 의미합니다. 따라서 핀아웃은 실제 핀 번호가 아닌 이러한 디지털 포트에 대한 참조를 구성하는 데 도움이 되는 방식으로 배열됩니다. 소프트웨어에 대해 자세히 알아보십시오.

큐브 건설

크기에 관계없이 큐브를 만드는 방법에 대해 많은 의견이 있습니다. 당신의 접근 방식이 무엇이든 작업은 지루합니다. 그리고 좋은 결과를 얻으려면 주의와 인내를 모두 발휘해야 합니다. 내가 이것을 어떻게 만들었는지 보여주겠지만, 원한다면 온라인에 다른 지침이 있습니다.

이 큐브의 구성은 5개의 열에서 LED를 함께 납땜하고 납을 형성하는 것으로 시작됩니다. 그런 다음 5개의 열을 함께 납땜하여 패널을 형성하고 마지막으로 5개의 패널을 함께 납땜하여 큐브를 형성합니다. 큐브를 만들어 본 적이 없는 사람들은 완벽한 큐브를 만드는 것이 얼마나 어려운지 모릅니다. 리드 각도의 작은 오류는 빠르게 누적되며 간격의 작은 차이도 쉽게 볼 수 있습니다. 따라서 리드 형성 단계가 중요합니다. 시간을 들여 올바르게 수행하면 완벽한 큐브를 얻을 수 없지만 합리적인 모양의 큐브를 얻을 수 있습니다.

양극은 LED의 더 긴 리드이며 아래로 내려가지만 LED 양극의 수직 행이 함께 납땜될 수 있도록 LED 측면으로 구부러져야 합니다. 양극 오프셋과 음극 리드는 이 사진과 같이 서로 90도여야 합니다.

저는 개인적으로 리드를 형성하는 것이 손이 너무 힘들고 지루하다고 생각하여 25개의 LED를 리드 형성한 다음 패널을 만듭니다. 기둥과 패널을 만들려면 일종의 지그가 필요합니다. 저는 재사용 가능한 접착제인 BlueTack을 사용하여 이 지깅을 합니다. LED는 BlueTack에 눌러져 열과 패널이 납땜되는 동안 제자리에 유지될 수 있습니다. 들여쓰기를 사용하면 정확히 동일한 간격으로 이러한 프로세스를 반복할 수 있습니다. 처음부터 모든 것을 매우 신중하게 측정하는 것이 중요합니다. 세 방향 모두에서 LED 사이에 0.6인치 간격을 사용하여 완성된 큐브를 표준 0.1인치 구멍 간격으로 보드에 삽입할 수 있었습니다.

LED를 함께 납땜하는 방법에 대한 참고사항 :모든 큐브 제작자의 악몽은 큐브를 모두 제작한 다음 큐브 내부에서 더 이상 접근할 수 없는 차가운 땜납 접합부를 발견하는 것입니다! 제작하는 LED의 각 열에서 납땜 접합부가 양호한지 확인하기 위해 주의를 기울이십시오.

각 패널을 완료하면 테스트할 시간입니다. 다시 말하지만, 큐브가 완성되었을 때 콜드 솔더 조인트 또는 불량 LED에 대해 알아내는 것은 재앙이 될 것이기 때문에 이 작업을 수행합니다!

소프트웨어에는 패널을 테스트하는 작은 스케치가 포함되어 있습니다. 이 테스트를 수행하려면 5개의 수직 양극 리드를 5개의 저항(330ohm 또는 이와 유사한 것)에 연결한 다음 해당 저항을 핀 40-44(열 0 양극 핀)에 연결해야 합니다. 그런 다음 5개의 음극 핀을 일반적으로 음극을 구동하는 데 사용되는 핀인 22-26번 핀에 연결합니다. 좋은 패널은 위의 비디오처럼 보일 것입니다. (참고로 우리는 아직 캐소드를 구동하기 위해 트랜지스터를 사용하고 있지 않으므로 이 작은 테스트 루틴은 캐소드를 낮게 구동하여 LED를 켭니다. 트랜지스터가 설치되면 반대 작업을 수행합니다. 즉 캐소드를 높게 구동하여 캐소드를 낮추는 트랜지스터에서.)

5개의 패널을 만들고 테스트했으면 큐브를 조립할 준비가 되었지만 먼저 필요한 모든 저항과 트랜지스터를 삽입하고 연결하여 보드를 준비해야 합니다.

큐브와 메가 사이의 공간에 각 양극 열과 음극 트랜지스터 및 기본 저항 옆에 180옴 저항을 배치했습니다. 다시 말하지만, 양극 기둥 사이의 간격은 양방향으로 0.6인치이므로 양극 기둥이 있는 각 구멍 사이의 보드에 5개의 빈 구멍이 있습니다.

이제 Arduino를 보드에 올릴 좋은 시간입니다. 스탠드오프가 있는 경우 스탠드오프에 장착할 수 있습니다. 저는 실제로 작은 플라스틱 조각과 약간의 접착제를 사용하여 보드 위의 약 1/4인치에 Mega를 부착했습니다.

이 지점에서 패널은 각각 메인 보드에 부착됩니다. 하나의 구멍 오류라도 완성된 큐브에서 눈에 띌 수 있으므로 납땜하기 전에 모든 양극 열이 올바른 구멍에 있는지 확인하십시오. 그리고 모든 패널이 같은 방향을 향하도록 하십시오. 모든 음극 리드가 같은 쪽에서 나옵니다.

다음으로 각 층에서 패널을 서로 연결하여 주어진 층의 모든 음극이 연결되도록 해야 합니다. 이것은 한 층에 있는 5개의 음극선을 함께 연결하는 주석 도금 구리선의 곧은 조각으로 수행됩니다.

다음으로 각 레이어의 음극을 메인 보드에 연결할 준비가 되었습니다. 위 그림의 원은 각 층의 음극이 연결되어 트랜지스터의 컬렉터로 내려가는 위치를 보여줍니다. 다시 말하지만, 우리는 주석 도금된 구리선을 곧게 펴고 사용하고 있습니다.

저항기의 모든 리드를 Mega에 연결하면 마침내 완성된 큐브를 테스트할 준비가 된 것입니다. 소프트웨어에서 큐브를 테스트하기 위한 스케치를 제공했습니다. 큐브의 각 LED를 순서대로 짧게 켜집니다. 각 패널을 이미 테스트했으므로 이 시점에서 볼 수 있는 모든 문제는 최근의 음극 연결과 관련이 있을 가능성이 큽니다. 따라서 한 레이어가 작동하지 않거나 한 레이어의 일부를 찾을 수 있습니다. 다시 말하지만, 문제가 있는 경우 냉간 솔더 조인트가 있을 가능성이 가장 높습니다.

소프트웨어

큐브에 있는 각 LED의 상태는 큐브[ ][ ][ ]라는 5x5x5 전역 바이트 배열로 정의됩니다. 1은 LED가 켜져 있음을 의미하고 0은 꺼져 있음을 나타냅니다. 따라서 큐브의 모든 애니메이션은 큐브[ ][ ][ ]에 1과 0을 배치하여 생성됩니다.

큐브 소프트웨어의 핵심은 큐브를 새로 고치는 시간 인터럽트입니다. 내 인터럽트 루틴은 setup()에서 시작된 다음 프로그램의 맨 끝에 있습니다. 10msec마다 호출됩니다. 약 6msec가 걸립니다. 큐브를 새로 고칩니다. 그러면 4밀리초가 남습니다. 메인 루프의 실행을 위한 각 새로 고침 사이.

새로 고침 동안 각 레이어는 1.2msec 동안 켜집니다. 새로 고침은 초당 100번 발생합니다. 따라서 켜져 있는 개별 LED는 120ms/초 또는 12% 듀티 사이클 동안 켜집니다. 초당 100회는 사람의 눈이 계속 켜져 있는 것처럼 보일 만큼 충분히 빠르며 12% 듀티 사이클은 LED가 계속 켜져 있는 것만큼은 아니지만 놀랍게도 그것에 가깝게 상당히 밝게 조명을 만들기에 충분합니다. .

재생 주기를 가능한 한 짧게 유지하고 LED가 켜진 시간을 최대화하기 위해 digitalWrite 명령을 낭비하는 시간을 피하고 직접 포트 액세스를 사용하여 핀을 구성합니다. 인터럽트 루틴의 코드를 보면 이 직접 포트가 사용되는 25개의 개별 라인을 볼 수 있습니다. digitalWrite로 핀을 설정하는 데 사용됩니다.

loop()는 단순히 각 애니메이션을 호출하여 목록을 살펴보고 다시 시작합니다. 애니메이션은 각각 고유한 서브루틴에 있습니다. 일부 애니메이션 루틴은 다른 루틴을 호출합니다. 다양한 애니메이션에 대한 설명은 코드 자체를 참조하십시오. 또한 모든 LED를 끄는 clearCube() 또는 copyDown()과 같이 모든 애니메이션에서 사용하는 몇 가지 유틸리티 루틴이 있습니다. 각 레이어의 내용을 그 아래의 레이어로 이동한 다음 맨 위 레이어를 지웁니다.

세 가지 다른 스케치를 다운로드할 수 있습니다. 주요 애니메이션에는 비디오에서 본 15개의 애니메이션이 포함되어 있습니다. 패널 테스트 및 큐브 테스트 스케치는 건설 중 큐브 테스트에만 사용됩니다.

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

코드

<울>
  • 5x5x5 큐브 소프트웨어
  • 5x5x5 큐브 소프트웨어Arduino
    3개의 스케치 포함:패널 테스트, 큐브 테스트,
    및 15개의 애니메이션이 모두 포함된 The Show
    미리보기 없음(다운로드만 가능)

    맞춤형 부품 및 인클로저

    완전히 선택 사항이지만 3D 프린터에 액세스할 수 있고 내 비디오에서 볼 수 있는 상자를 원합니다. 여기가 있습니다.

    회로도

    기본 개요 큐브와 메가 사이의 정확한 연결을 보여줍니다

    제조공정

    1. 다리미판
    2. 루빅스 큐브
    3. 인쇄 회로 기판
    4. 서프보드
    5. 발광 다이오드(LED)
    6. RaspiRobot 보드 V2
    7. 단순 워드 클럭(Arduino)
    8. 관춤 멜로디
    9. 스마트 터치 스위치 보드
    10. Bluetooth가 탑재된 Arduino로 LED 제어!