2016-11-14 6 views
0

문제 : 이더넷 네트워크를 통해 하나의 비글 본에서 다른 비글 본으로 정보를 가져와야합니다. 그러면 첫 번째 비글 본이 제공하는 정보를 기반으로 빛이 작동합니다. 내 배경은 대부분 하드웨어에 불과하지만, 이것이 가능할 지 모르겠습니다. IP 주소로 /로부터 직접 정보를 전송하는 방법이 있다고 상상해 봅니다.하지만 이것은 대부분 추측입니다. 어떻게해야하는지 모르겠습니다. 나는 이것에 관해서도 구글을 사용하여 많은 것을 찾을 수 없었다.이더넷 네트워크를 통해 2 개의 비글 본 블랙 장치 연결하기

필자의 임무는 효과적으로 한 방의 버튼을 눌러 다른 방의 LED를 밝히는 것입니다. 사용할 수있는 도구는 BBB 2 개, 로컬 네트워크, Arduino Unos 및 몇 개의 PIC입니다. BBB는 업무에 가장 적합합니다. 어떤 방식 으로든 직접 와이어를 연결하는 것은 불가능합니다. 이 임무를 수행하는 더 좋은 방법이 있다면, 의견은 (아마도 의견으로 받아 들여질 것입니다. 그런 다음 그 아이디어를 사용하여 새롭고 적절한 게시물을 시작할 것입니다)?

답변

1

Node.js와 bonescript을 사용하는 것이 좋습니다.이 라이브러리는 BBB 용으로 특별히 제작 된 라이브러리입니다. 내 견해로는 두 개의 BBB를 TCP/IP를 통해 서로 이야기하는 가장 빠르고 쉬운 방법입니다. 기본적으로 BBB에는 이미 node.js와 bonescript가 설치되어 있습니다. 가장 간단한 IDE로 BBB의 포트 3000에서 액세스 할 수있는 Cloud9를 사용할 수 있습니다.

  1. BBB의 고정 IP 주소를 설정합니다. 그렇게하려면 follow Derek Molloy instructions.
  2. buttonsLEDs을 bonescript로 관리하는 방법을 살펴보십시오.

  3. (예 : 명령을 수신하고 LED/등을 켜기 위해) 서버용 JavaScript 파일을 작성하십시오 (예 : "server.js"라는 이름). 그런 다음 "node server"명령을 사용하여 콘솔에서 실행하십시오. JS "여기에 간단한 예입니다

// I am server.js 
var net = require('net'); 

var server = net.createServer(function(c) { 
    console.log('client connected'); 

    c.on('data',function(data) { 
     console.log("Received data is: " + data); 
     var reponse = "Hello form BBB Server!"; 
     // Do something more 
     c.write(reponse); 
    }); 

    c.on('end', function() { 
     console.log('client disconnected'); 
    }); 
}); 


server.listen(8124, function() { 
    console.log('Server is launched.'); 
}); 
    클라이언트에 대한에 대한 자바 스크립트 파일 (즉, 명령을 보내드립니다 만들기 버튼을 누를 때 4 ">을) (예 : "client.js")를 실행하고 콘솔에서 명령을 실행하십시오 "노드 client.js는"여기에 간단한 클라이언트 예제
// I am client.js 
var net = require('net'); 

var server_ip = '192.168.7.2';  // here enter your BBB-server IP address 
var client = net.connect(8124, server_ip, function() { 
    console.log('connected to server!'); 
    client.write('Hello from BBB client'); 
}); 

client.on('data', function(data) { 
    console.log(data.toString()); 
    client.end(); 
}); 

client.on('end', function() { 
    console.log('disconnected from server'); 
}); 

다음 단계를 결합하고 당신이 원하는 것을 얻을 것이다.

+0

완벽한 답변! 나는 그것의 명확성 및 유용성에 의해 극단적으로 감명 준다. 이 작업을 완료하자마자 업데이트를 게시하고 답변을 "수락 됨"으로 표시합니다. –

+0

행운을 빈다! Btw, 간단한 서버/클라이언트 예제는 단일 BBB에서도 테스트 할 수 있습니다. 두 개의 콘솔을 열고 두 파일을 동시에 실행해야합니다.이 경우 IP 주소를 완전히 생략해야합니다 (포트 만 통과). 기본값이기 때문에 'localhost'. – Gattuso