한 줄 요약 V8? Javascript 코드를 Ignition이라는 인터프리터와 Turbofan이라는 컴파일러를 통해 JIT 컴파일을 수행하는 Javascript 오픈소스 엔진이다. V8이란? 구글이 개발한 Javascript 엔진이다. C++로 작성되었고, Nodejs, 크로미움 웹 브라우저 등을 지원한다. JIT(Just In Time) 컴파일러로, 프로그램을 실행하기 위한 바이트 코드를 생성한다. Ignition 인터프리터와, Turbofan 컴파일러를 사용한다. V8의 구조 및 Javscript 코드의 컴파일 순서 nodejs로 예를 들자면, 자바스크립트 코드는 아래 그림과 같은 절차로 컴파일 된다. 1. Parsing : 아래와 같이 JS 코드를 파싱하고(구문 분석) AST로 바꾼다. const..
한 문장 요약 libuv란 javascript 엔진(싱글 스레드)을 사용하는 nodejs에서 비동기 I/O를 가능하도록 해주는 C언어 기반 라이브러리 이다. Libuv 란? nodejs를 구성하는 여러 라이브러리 중 하나입니다. javascript를 사용하는 node 특성 상 어쩔 수 없이 싱글 스레드 기반인데, 비동기 I/O를 처리하기 위해서 libuv를 채택하여 사용하고 있습니다. (libuv of nodejs official repository) Libuv의 특징 공식 문서에 따르면 다음과 같은 특징이 있습니다. epoll, kqueue, IOCP, 이벤트 포트가 지원하는 모든 기능을 갖춘 이벤트 루프. 비동기 TCP 및 UDP 소켓 비동기 DNS 확인 비동기 파일 및 파일 시스템 작업 파일 시스템..
[IoT-MODLINK] 1. 주제 및 기획(http://cafe.naver.com/arduinoguide/3601) [IoT-MODLINK] 2. 도어락 제어하기(http://cafe.naver.com/arduinoguide/3602) [IoT-MODLINK] 3. 열림/닫힘 상태 확인하기(http://cafe.naver.com/arduinoguide/3603) [IoT-MODLINK] 4. 조명 효과 & 외부 전원 공급하기 (http://cafe.naver.com/arduinoguide/3604) [IoT-MODLINK] 5. 출입 로그 관리 & 케이스 제작 (http://cafe.naver.com/arduinoguide/3732) 드디어 마무리 지었습니다! 음... 일단!원래 계획했던 내용 중에 하..
1. 계획 (1) 출입 로그 관리RTC모듈을 이용해 마지막으로 문이 열린 시간을 웹/앱에서 확인할 수 있도록 한다. (2) 케이스 제작실제 집 문에 부착해야 하므로 별도의 케이스가 필요하다.열이 발생할 경우를 대비하여 통풍구와 초음파 센서 맞춤 2개의 구멍과여러 데이터 핀, 전원 공급 핀들이 지나갈 수 있는 구멍이 필요하다! 2. 구현 (1) 출입 로그 관리이 부분을 구현하면서 기초 예제 게시판에 올려둔 글로 자세한 설명을 생략하겠습니다!( http://cafe.naver.com/arduinoguide/3722 ) 웹에서 문자열로 날짜 / 시간으로 구분되어 볼 수 있도록 문자열 처리가 필요하다.그리고 초음파 센서에 의해 문 열림이 감지될 경우 서버에 시간을 전달하는 방식으로 구현했다. 잘 작동할 때 기분..
제가 2차 체험단 프로젝트로 진행하면서 사용한 RTC모듈을 설명해보려고 합니다! RTC모듈이란Real Time Clock의 약자로, 컴퓨터 또는 보드에 전원이 끊어져도 시간을 계속 카운팅하는 모듈입니다!제가 사용할 모듈은 Tiny RTC I2C 모듈(DS1307)입니다. 보통 시간을 측정할 용도로 사용한다면 SCL, SDA, VCC, GND만 연결해줍시다. 그 외 핀의 용도로는내장된 온도센서를 이용하려면 DS핀을 사용하여 온도 값을 받아들일 수 있고,배터리 잔량은 BAT핀을 사용하여 알 수 있습니다. 건전지를 넣어줘야 보드에서의 전원이 공급되지 않을 때에도 시간을 카운팅할 수 있겠죠?! 그럼 한 번 사용해보겠습니다.일단 다음과 같은 라이브러리가 설치되야 합니다! 그 다음 DS1307RTC 예제 SetTi..
안녕하세요! MODLINK 체험단으로서! 체험하면서 느꼈던 저만의 꿀!팁들을 전달해주고 싶은 마음에어떤게 있을까? 고민하던 중! 쓰게된 글입니다.(이 글의 모든 내용은 reference없이 머릿 속에서 나온 것이므로 잘못된 개념이 존재할 수 있습니다! 주의 요망!) 저는 이번에 MODLINK를 공부하면서~체험단 여러분들의 왕성한 활동 덕에 풍부해진 정보 글과 빛컨의 지속적인 예제 실습 글 덕분에MODLINK의 정보를 얻기가 정~말 쉽게 느껴졌습니다. 하!지!만! 웹/앱에서의 레이아웃 구성하는 정보 글은 잘 없더군요! 우리 공대생들은 디자인 그런거 신경안쓰잖아요?대~충 도스창에 printf로 원하는 답만 띄우면 되니까... 그래서 준비했습니다!UI디자인 밋밋하지 않고 조금 더 세련되게 할 수 있는 방법 어..
1. 계획 (1) 조명효과 문의 열림 버튼이 웹/앱을 통해 눌렸을 때 위의 LED strip을 이용해 화려한 조명 효과를 낸다.웹/앱에서 토글 스위치를 눌렀을 때 조명이 유지되게끔 한다.3개의 트랙바를 두어 R, G, B 색상을 아날로그 값(0~255)을 입력 받아 토글 스위치에 의한 조명의 색상을 조절할 수 있게 한다. (2) 외부 전원 공급하기 위의 EVC링크에 전원(12V, 24V)을 공급해야 모터를 구동할 수 있기도 하고, 도어락의 전원을 상시 공급해야 하기 때문에 외부 전원이 필요하다.12V 어댑터를 이용해 전원을 공급할 생각이다. 2. 구현 (1) 조명 효과 일단 LED stirp은 3개의 핀(5V, data, GND)을 사용한다.60칸짜리 strip을 이용하고, Neopixel 라이브러리를 ..
(1) 계획 현재 문의 개폐 상태를 알기 위해선 어떻게 해야 할 지 고민을 해보았다. 1. 자이로센서를 통해 문의 흔들림이 감지되면 열린 것으로 간주한다!2. 초음파/적외선 센서를 통해 거리를 측정하여 감지한다!3. 조도센서를 통해 문 앞 센서등의 불빛을 감지한다! 이 정도 생각을 해보았다. 그 중 2번 아이디어로 진행하기로 하였고!비교적 단거리 측정에 정확한 초음파 센서를 이용하기로 했다. 이렇게 생긴 센서인데, 2개의 동그란 부분 중 한 곳에서 초음파를 쏘고, 다른 한 곳에서 초음파를 감지하는 역할을 한다.쏘고 받는데 걸리는 시간으로 거리를 측정하는 방식이다. 일단 거리가 10cm 이상이 될 시 문이 열렸다고 판단한다.단, 1000cm가 넘어가는 값이 나오면 무의미한 값으로 인식하고 값을 갱신하지 않..
(1) 계획 도어락을 제어하기 위해선… 도어락이 필요하다.시중에 나와있는 도어락들은 가격이 너무 비싸서 실험용으로 사용할 수 없고.. 집에 있는 도어락을 뜯어서 사용하기엔 위험부담이 너무 크다.그러던 중! 운 좋게 친구가 뜯어진 도어락 뒷면(내부)을 구해다 주었다! 앞면은 사실 필요가 없기 때문에 뒷면만 필요했는데 정말 잘됐다!가장 중요한 점이 도어락의 회로인데, 집에 있는 십자 드라이버로 풀어보니 다음과 같은 모습이다. 뜯다 보니 전원을 공급하는 핀이 끊어져서 작동이 안하는 것 같아서 점퍼선을 이용해 건전지와 연결해보았더니 잘 작동한다! 내가 이 프로젝트에서 사용할 핀들은 다음과 같다. 1. 하늘색으로 표시된 곳에서 전력(5~6V)을 공급받는다2. 연보라색으로 표시된 곳이 집 내부에서 동작하는 열림/닫..
1. 프로젝트 명 우렁각시 스마트 도어락 2. 주요 기능 (1) 웹/앱을 이용한 도어락의 열림/닫힘(2) 웹/앱을 통해 문의 개폐 상태 확인(3) 웹/앱을 이용한 소형 금고의 열림/닫힘 (선택) 센서를 이용한 침입 감지(선택) 열림/닫힘 기능과 함께 Strip LED를 이용한 화려한 조명 3. 계획 먼저 주요 기능들을 제어, 구현할 수 있는지 확인해야 한다. (1)번 기능먼저 도어락의 개폐 작동 원리를 분석하고, 제어할 수 있는 지 확인해봐야 한다.만약 제어할 수 있다면, 릴레이 링크와 연결해 전기적 신호로 제어해보도록 할 것이다.그 후 웹에서의 푸쉬 버튼을 이용해 열림/닫힘 기능을 연동할 생각이다. (2)번 기능초음파 혹은 적외선 센서를 이용해 문과 문틀 사이 거리를 이용해 문의 개폐 상태를 확인한다...