<span><span>#include <SoftwareSerial.h></span> </span> <span><span>#define SCREEN_WIDTH <span>32</span></span> </span> <span><span>#define SCREEN_HEIGHT <span>16</span></span> </span> <span><span>#define BUFLENGTH <span>512</span></span></span>
<span><span>#include <SPI.h></span> </span> <span><span>#include <DMD.h></span> </span> <span><span>#include <TimerOne.h></span></span>
Arduino의 작동 방식을 다루고 있습니다. LED가 부착 된 상태에서 Arduino에서 해당 코드를 실행하면 아무것도 표시되지 않습니다. 도트 매트릭스 디스플레이에 표시 되려면 직렬 포트를 통해 메시지를 보내려면 노드 코드가 필요합니다.
우리의 노드 코드
<as> 우리의 JavaScript는 두 가지 중요한 NPM 모듈을 요구하여 시작합니다. Serialport는 직렬 포트를 통해 Arduino와 PNG-JS를 PNG 이미지에서 읽을 수있는 메시지를 보낼 수있는 것입니다.
<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><span><span>#define DISPLAYS_ACROSS <span>1</span></span>
</span> <span><span>#define DISPLAYS_DOWN <span>1</span></span>
</span> DMD <span>dmd(DISPLAYS_ACROSS, DISPLAYS_DOWN);</span></pre><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div>
그런 다음 직렬 포트 메시징을 설정했습니다. 우리는 변수 시리얼 포트 내부에 Serialport 객체를 설정했으며, Arduino 포트가 연결되어있는 설정과 Serial Port 메시지에 대해들을 수있는 보드 속도.
<p>
<sure> Arduino가 어떤 포트에 연결되어 있는지 확실하지 않은 경우 (예 : '/dev/tty.usbmodem1431') PC에 연결하고 Arduino IDE를 열고 도구> 포트로 이동하여 포트를 확인하십시오. 선택됩니다.
</sure></p>
<rate> 보드 비율은 개인적 선호가 될 수 있습니다. 실제로 사용중인 보드 속도에 대해 걱정하지 않으면 이미 예제에 들어간 내용을 자유롭게 고수하십시오. <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><span>void ScanDMD() {
</span> dmd<span>.scanDisplayBySPI();
</span> <span>}</span></pre><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div>.
<ize> 그런 다음 SerialMessage라는 문자열 변수를 초기화하여 직렬 포트를 통해 보낼 수있는 전체 문자열과 0을 저장합니다.<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><span><span>#include <SoftwareSerial.h></span>
</span> <span><span>#define SCREEN_WIDTH <span>32</span></span>
</span> <span><span>#define SCREEN_HEIGHT <span>16</span></span>
</span> <span><span>#define BUFLENGTH <span>512</span></span></span></pre><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div>
<port> Serialport 객체에는 'Open'의 이벤트 리스너가있어 정의 된 직렬 포트가 열려 있고 JavaScript에서 액세스 할 수있는 시점에 응답합니다. 이 경우 Console.log를 실행하여 직렬 포트 메시징과 함께 모든 것이 잘 될 수 있습니다. <p>
</p>
<our> 직렬 포트가 메시지 준비가되어 있음을 알면 png.decode () 함수를 실행하여 PNG 이미지 파일에서 읽습니다. 데모에는 sitepointLogo-WithSmile.png라는 노드 파일과 동일한 폴더 내부에 PNG 이미지가있어 해당 파일 이름을 전달합니다. 그런 다음 데이터 변수를 통해 PNG 파일의 데이터를 제공하는 콜백 함수가 있습니다.
<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><span><span>#include <SPI.h></span>
</span> <span><span>#include <DMD.h></span>
</span> <span><span>#include <TimerOne.h></span></span></pre><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div>
<ed> png.decode () 함수에서 반환 된 데이터는 0에서 255 사이의 값 배열이됩니다. 각 픽셀을 통해 각각의 일련의 4 가지 항목 - 빨간색, 녹색, 파란색 및 알파입니다. 값. 우리는 흑백 이미지를 다루고 있기 때문에 데모에서 알파 가치를 사용하지 않을 것이지만, 당신이 원한다면 이론적으로 할 수 있습니다. 샘플 배열은 다음과 같습니다
<p>
<ay> 위의 배열은 255,255,255,255의 흰색 픽셀과 0,0,0,255의 검은 색 픽셀을 나타냅니다. 우리가 전체 이미지를 표현할 때까지 모든 픽셀에 대해 계속해서 계속됩니다. </ay></p>
<back> 콜백 함수 내에서 SerialMessage를 빈 문자열로 재설정 한 다음 데이터 배열을 4 세트로 반복하기 시작합니다. 우리는 각 픽셀의 각 값과 일치하도록 빨간색, 녹색 및 파란색의 로컬 변수를 설정합니다.
<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><span><span>#define DISPLAYS_ACROSS <span>1</span></span>
</span> <span><span>#define DISPLAYS_DOWN <span>1</span></span>
</span> DMD <span>dmd(DISPLAYS_ACROSS, DISPLAYS_DOWN);</span></pre><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div>
<be> 완전히 흑백이나 흰색이 아닌 greyscale 값을 처리 할 수 있으려면 휘도 점검도 얻었습니다. 아래 함수는 픽셀의 색상이 얼마나 어둡거나 빛나는지를 결정합니다.
<p>
<is> 그 값이 150보다 크면, 우리는 그것이 매우 밝은 색이라고 가정하고 0 (흰색)으로 설정합니다. 그렇지 않으면, 우리는 그것을 1로 설정하고 검은 색으로 만듭니다. Serialmessage 문자열에 값을 추가합니다
</is></p>
<gone> 일단 우리가 모든 픽셀을 겪고 그것을 표현하기 위해 0 또는 하나를 할당 한 후에는 Serialport.write ()를 사용하여 직렬 포트를 통해 해당 메시지를 보냅니다. 이미지를 읽고 반복하는이 전체 과정은 디스플레이가 그것을받을 준비가되기까지 걸리는 시간보다 빠른 것 같습니다. .
<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><span>void ScanDMD() {
</span> dmd<span>.scanDisplayBySPI();
</span> <span>}</span></pre><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div>
<o> 우리의 데모 실행
<load> 스케치를 업로드 한 경우 디스플레이를 Arduino에 연결하고 Node SerialDMD.js를 통해 NODE 서버 코드를 실행하십시오 (먼저 모든 것을 설치하십시오). ><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/173993396089119.jpg" class="lazy" alt="Node.js가있는 도트 매트릭스 LED 디스플레이에 이미지 표시" >
<h2> 결론
<of> 이것에 대해 확장 할 수있는 많은 방법이 있습니다. 노드 서버이므로 API에 연결하여이를 통과하는 이미지를 표시 할 수 있습니다. 시간, 집의 인터넷 연결 장치 상태, 날씨 또는 기타 여러 가지에 따라 다른 이미지를 표시 할 수 있습니다!
<and>이 아이디어를 정말 깔끔한 것으로 확장한다면, 댓글에 알려 주거나 트위터 (@ThatpatrickGuy)에서 저와 연락을 취하십시오.
<questions> node.js 자주 묻는 질문 (FAQ)
<role> 도트 매트릭스 LED 디스플레이에 이미지를 표시하는 데 Node.js의 역할은 무엇입니까? </role></questions></and></of>
</h2> node.js는 도트 매트릭스 LED 디스플레이에 이미지를 표시하는 데 중요한 역할을합니다. Chrome의 V8 JavaScript 엔진을 기반으로 구축 된 JavaScript 런타임으로 서버 측 및 네트워킹 응용 프로그램을 개발하는 데 사용됩니다. 도트 매트릭스 LED 디스플레이의 맥락에서 Node.js는 디스플레이를 제어하고 표시 할 이미지를 조작하는 데 사용됩니다. 데이터를 LED 디스플레이로 보낼 수있는 서버를 생성 할 수있어 이미지, 텍스트 또는 기타 데이터 유형을 표시 할 수 있습니다. <p> </p> DOT 매트릭스 LED 디스플레이를 컴퓨터에 어떻게 연결할 수 있습니까? <p> 닷 행렬 LED 디스플레이를 컴퓨터에 연결하는 것은 일반적으로 Arduino 또는 Raspberry Pi와 같은 마이크로 컨트롤러를 사용하는 것과 관련이 있습니다. 마이크로 컨트롤러는 컴퓨터와 LED 디스플레이 사이의 중개자 역할을합니다. 그런 다음 Node.js를 사용하여 컴퓨터에서 마이크로 컨트롤러로 데이터를 보낸 다음 데이터를 LED 디스플레이로 보낼 수 있습니다. </p> Node.js 외에 다른 프로그래밍 언어를 사용하여 도트 매트릭스 LED 디스플레이를 제어 할 수 있습니까? ? <h2> 예, 다른 프로그래밍 언어를 사용하여 도트 매트릭스 LED 디스플레이를 제어 할 수 있습니다. 이 기사는 사용 편의성과 다양성으로 인해 Node.js를 사용하는 데 중점을 두지 만 Python, C 및 Java와 같은 다른 언어도 사용할 수 있습니다. 프로그래밍 언어의 선택은 주로 귀하의 안락함 수준과 프로젝트의 특정 요구 사항에 따라 다릅니다. </h2> 도트 매트릭스 LED 디스플레이를 사용하는 장점은 무엇입니까? 도트 매트릭스 LED 디스플레이는 몇 가지 장점을 제공합니다. . 다재다능하고 텍스트, 숫자 및 이미지를 표시 할 수 있습니다. 또한 에너지 효율적이고 내구성이 뛰어나며 수명이 길다. 또한 밝기와 가시성이 높기 때문에 광고 보드에서 정보 디스플레이에 이르기까지 다양한 응용 프로그램에 적합합니다. <p> 내 도트 매트릭스 LED 디스플레이에 사용자 정의 이미지를 표시하려면 어떻게해야합니까? </p> <h3> 사용자 정의 표시 표시 도트 매트릭스 LED 디스플레이의 이미지는 이미지를 디스플레이에서 이해할 수있는 형식으로 변환하는 것입니다. 여기에는 일반적으로 이미지를 이진 형식으로 변환하는 것이 포함되며 각 픽셀은 0 (OFF) 또는 1 (ON)으로 표시됩니다. 그런 다음 Node.js를 사용 하여이 바이너리 데이터를 LED 디스플레이로 보낼 수 있습니다. </h3>
<dot> 대규모 애플리케이션에 Dot Matrix LED 디스플레이를 사용할 수 있습니까? <h3> </h3> 예, Dot Matrix LED 디스플레이는 대규모 응용 프로그램에 적합합니다. 그들은 더 큰 디스플레이를 만들기 위해 결합하여 디지털 광고판, 홍보 디스플레이 및 대규모 광고와 같은 응용 프로그램에 이상적입니다. <p> </p> 도트 매트릭스 LED 디스플레이의 수명은 얼마입니까? <h3> </h3> 도트 매트릭스 LED 디스플레이의 수명은 사용 된 LED의 품질과 디스플레이가 사용되는 조건에 따라 다를 수 있습니다. 그러나 LED 디스플레이는 일반적으로 수명으로 알려져 있으며 수만 시간의 사용에 대해 지속될 수 있습니다. <p> DOT 매트릭스 LED 디스플레이의 문제를 해결하는 방법은 무엇입니까? </p> <h3> Dot Matrix LED 디스플레이에는 디스플레이와 마이크로 컨트롤러 간의 연결을 확인하여 올바른 데이터가 디스플레이로 전송되고 전원 공급 장치를 확인하는 것이 포함될 수 있습니다. node.js를 사용하는 경우 디버깅 도구를 사용하여 코드의 문제를 식별하는 데 도움이 될 수도 있습니다. </h3> 도트 매트릭스 LED 디스플레이를 실외에서 사용할 수 있습니까? <p> </p> 예, 도트 매트릭스 LED 디스플레이는 실외에서 사용할 수 있습니다. 그러나 디스플레이가 요소로부터 올바르게 보호되도록하는 것이 중요합니다. 여기에는 비바람 행위 케이스를 사용하거나 보호 된 위치에 디스플레이를 설치하는 것이 포함될 수 있습니다. <h3> 도트 매트릭스 LED 디스플레이의 밝기를 최적화하려면 어떻게 도트 매트릭스 LED 디스플레이의 밝기가있을 수 있습니까? 펄스 폭 변조 (PWM)를 사용하여 제어됩니다. 여기에는 각 LED가 켜져있는 시간의 양이 다양하여 디스플레이의 밝기를 제어합니다. Node.js를 사용하여 LED 디스플레이로 전송 된 PWM 신호를 제어하여 필요에 따라 밝기를 조정할 수 있습니다.</h3></dot></load></o></gone></be></back></ed></our></port></ize></rate></as>
위 내용은 Node.js가있는 도트 매트릭스 LED 디스플레이에 이미지 표시의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!