obniz 무선 제어를 노드화
obniz 공식 사이트에는 많은 샘플 프로그램과 작품이 실려 있습니다.
예를 들어 obniz의 핸즈온에서도 사용되고 있는 obniz 라디콘은 HTML과 JavaScript로 스마트폰에서 쉽게 라디콘을 조작할 수 있습니다.
htps : // 오 b ...
이번은 이 라디콘 프로그램을 node화해 보고 싶습니다.
참고로 한 사이트
obniz - Nodejs에서 사용
htps : // 오 b ...
obniz.js API 참조 - Messaging
h tps : // 오 b ...
만드는 방법
Messaging API
obniz의 Messaging 기능을 사용하면 HTTP 요청을 메시지로받을 수있는 것 같습니다.
라고, 이것을 사용하면 좋다고 가르쳐 주었습니다만.
호출할 때의 엔드포인트는 이런 느낌입니다.
GET https://obniz.io/obniz/{obniz_id}/message?data=***
조속히 만들어 봅시다.
공작 시간
필요한 부품은 샘플 작품 과 같습니다.
넷 주문한 품에는 코드가 붙어 있지 않았기 때문에 20년만 정도에 납땜 인두를 사용했습니다.
코테를 지나치게 모터 붕괴가 아닌가와 비비리면서도 어떻게든. .
멋지게 3D 프린터로! 하고 싶은 곳입니다만 필요한 것은 단순한 판이고,
100 균의 톱과 종이 가루로 100 균의 목판을 가공하여 싸게 만듭니다.
네 모퉁이를 둥글게 스베스베로 정돈했기 때문에 좋은 느낌이 되었습니다.
센스가 묻는 곳입니다.
셀로판 테이프나 마스킹 테이프라면 조금 외형이 신경이 쓰였으므로 양면 테이프로 눈에 띄지 않게 붙였습니다. USB 케이블도 얇은 쪽이 깔끔하겠지만 가지고 있지 않았기 때문에 거기는 좋았습니다.
node 프로그램 작성
엔드포인트 URL에 ~/message?data=forward나 ~/message?data=back을 지정하여 인수에 따라 모터를 돌리도록 했습니다.
이런 느낌이 듭니다.
app.js
var Obniz = require("obniz");
var obniz = new Obniz("{obniz_id}");
obniz.onconnect = async function () {
var motorA = obniz.wired("DCMotor", {forward:0, back:1});
motorA.power(30);
var motorB = obniz.wired("DCMotor", {forward:2, back:3});
motorB.power(30);
obniz.display.clear();
obniz.display.print("motor: stop");
obniz.onmessage = function(message, from) {
switch (message) {
case "stop":
obniz.display.clear();
obniz.display.print("motor: stop");
motorA.stop();
motorB.stop();
break;
case "forward":
obniz.display.clear();
obniz.display.print("motor: forward");
motorA.move(true);
motorB.move(true);
break;
case "back":
obniz.display.clear();
obniz.display.print("motor: back");
motorA.move(false);
motorB.move(false);
break;
case "right":
obniz.display.clear();
obniz.display.print("motor: turn right");
motorA.stop();
motorB.move(true);
break;
case "left":
obniz.display.clear();
obniz.display.print("motor: turn left");
motorA.move(true);
motorB.stop();
break;
default:
obniz.display.clear();
obniz.display.print("motor: bad parameter");
break;
}
}
}
동작 확인
node 서버를 시작합니다. 이번은 로컬 PC상에서 기동했습니다.
> node app
웹 브라우저의 주소 표시줄이나 postman 등을 사용하여 HTTP GET 요청을 던져 봅시다.
예를 들어 아래와 같은 URL을 지정합니다.
https://obniz.io/obniz/{obniz_id}/message?data=forward
https://obniz.io/obniz/{obniz_id}/message?data=stop
움직였습니다!
마지막 부분을 back,right,left로 바꾸면 후퇴·우회전·좌회전합니다.
이 동영상 뿐이라면 모르겠지만 node 서버에서 움직이고 있습니다. 소지 스마트 폰으로 촬영하면 브레 브레 & 튀어 나와 버리. #obniz 피 c. 라고 r. 코 m / 2 이오 YFGbN y — hayakumi (@hayakumi8893) 2018년 12월 3일
끝에
안의 정 프로그램보다 공작 시간에 대부분을 보냈습니다.
node화에 즈음해, Messaging 기능을 처음으로 사용했습니다만(obniz는 나에게 있어서 모두 처음으로 보고 싶은 것입니다만) 이것을 사용하면 HTTP 리퀘스트를 사용해 외부로부터 obniz 라디콘을 움직일 수가 있습니다.
보안을 위해 액세스 토큰을 사용하도록 코딩해야 했다는 것이 반성점입니다.
여기까지 읽어 주셔서 감사합니다.
다른 엔트리에 계속이 있으므로 좋으면 그쪽도 읽어 주실 수 있으면 기쁩니다.
M5Stack으로 obniz 라디콘 조작
Pepper로 obniz 라디오 컨트롤 조작
Reference
이 문제에 관하여(obniz 무선 제어를 노드화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hayakumi/items/8af9dda67c07f9b92dec텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)