:::: MENU ::::

Puck.JS 사용법

FEATURES

  • Bluetooth Low Energy
  • Espruino JavaScript interpreter pre-installed
  • nRF52832 SoC – 64MHz Cortex M4, 64kB RAM, 512kB Flash
  • 8 x 0.1″ GPIO (capable of PWM, SPI, I2C, UART, Analog Input)
  • 9 x SMD GPIO (capable of PWM, SPI, I2C, UART)
  • ABS plastic rear case with lanyard mount
  • Silicone cover with tactile button
  • MAG3110 Magnetometer
  • IR Transmitter
  • Built in thermometer, light and battery level sensors
  • Red, Green and Blue LEDs
  • NFC tag programmable from JavaScript
  • Pin capable of capacitive sensing
  • Weight: 14g in plastic case, 20g in packaging
  • Dimensions of cardboard box: 64mm x 62mm x 16mm
  • Dimensions of plastic case: 36mm dia, 12.5mm thick
  • Dimensions of bare PCB: 29mm dia, 9mm thick

회로도 및 PCB Layout Eagle File

ON-BOARD LEDS, BUTTON AND GPIO

LEDs

  • Red LED on: digitalWrite(LED1,1), Off: digitalWrite(LED1,0)
  • LED2 : green, LED3: blue
  • LED1.write(1) or  LED1.write(0)
  • LED1.set(), LED1.reset()
  • 3개의 LED 한꺼번에 제어 digitalWrite([LED3,LED2,LED1], 7)

Button

  • digitalRead(BTN) or BTN.read()
  • 버튼 상태를 Polling 하는 것은 power 소모가 심하므로, setWatch 함수를 사용해서 버튼 상태가 바뀌는 것을 체크함.

    setWatch(function() { console.log(“Pressed”);}, BTN, {edge:”rising”, debounce:50, repeat:true});

GPIO pins

  • GPIO 핀은 D0 부터 D31까지.  digitalWrite/digitalRead 커맨드를 사용할 수 있고 PWM, I2C, SPI and Analog 사용 가능

ON-BOARD PERIPHERALS

  • Magnetometer
  • IR / Infrared
  • NFC – Near Field Communications
  • Light sensor
  • Bluetooth
  • Temperature
  • Battery level
  • Capacitive sense
  • SERIAL CONSOLE

FIRMWARE UPDATES

via nRF Toolbox App (Android & iOS)

  • On your Bluetooth LE capable phone, install the nRF Toolbox app
  • Download the latest espruino_xxx_puckjs.zip file from the binaries folder
  • Reset Puck.js with the button held down – the Green LED should be lit
  • Release the button within 3 seconds of inserting the battery – the Red LED should light instead. If it doesn’t, you’ll need to try again, holding the button down for less time after inserting the battery.
  • Open the nRF Toolbox app
  • Tap the DFU icon
  • Tap Select File, choose Distribution Packet (ZIP), and choose the ZIP file you downloaded
  • Tap Select Device and choose the device called DfuTarg
  • Now tap Upload and wait. The LED should turn blue and the DFU process will start – it will take around 90 seconds to complete

Espruino IDE 사용하기

  • Web Bluetooth 사용 설정: Mac에서 BLE가 지원되는지 확인하는 법은 “이 Mac에 관하여” > 시스템 리포트 > 하드웨어 > Bluetooth 항목아래 ” Bluetooth 저에너지 기술이 지원됨” 이 “예”라고 표시되어 있는지 확인한다.
  • 크롬에서 주소표시줄에 chrome://flags를 입력하고, ” #enable-web-bluetooth” 항목을 사용하도록 설정하고 브라우저를 다시 시작함.
  • https://www.espruino.com/ide/ 에서 Web IDE를 시작한다.
  • Web IDE에서 연결 버튼을 클릭하고, Port설정에서 Web Bluetooth를 선택한다.

참고: https://www.espruino.com/Puck.js+Quick+Start


피지컬 웹 (Physical Web)

IoT 디바이스에 접급을 위해서 앱이 필요한 경우가 있는데, 이럴 경우 디바이스마다 앱이 존재하게 된다. 구글에서는 이걸 웹에서 해결하겠다는 접근이 피지컬 웹(Physical Web)이다. 이렇게 할 때의 장점은 디바이스에는 적은 기능만 넣고, 나머지는 웹쪽에서 구현을 하겠다는 의미이다. 이때 IoT 디바이스(비콘)가 자신의 URL을 주기적으로 Broadcasting하기만 하면 된다.
관련 정보
https://github.com/google/physical-web


전자부품에 대한 기본 지식

ROHM 반도체 사이트에 나와 있는 전자부품에 대한 기본 지식 정보. 전자공학을 전공하면 배우는 내용이지만 다시 한번 리뷰를 할 수 있어서 좋다.

그리고 첨단기술에서 발행하는 주로 일본잡지를 번역한 전자기술의 내용도 실용적인 내용이 있어서 괜찮다. 가령 이런자료 – 반드시 주의해야할 모터/릴레이 파워 설계


보드에 장홀(plated slot) 또는 슬롯만들기

Routing 과 Milling의 차이

“Routing” describes the cutting of the board profile, outline or contour.  We use a 2 mm cutter for this.  Any feature which can be cut with the 2 mm cutter is part of the profile.
“Milling” refers to any slots or cut-outs inside the PCB, but also to any slots in the profile of the PCB which can’t be cut with a 2 mm cutter.

즉 라우팅은 2mm 커터로 보드의 외곽을 자르는 것이고, 밀링은 보드 안쪽에 있는 cut-out 또는 슬롯을 더 작은 툴로 작업을 하는 것이다.

보드에 슬롯을 만드는 법
일반적이지 않기 때문에 PCB 업체에서 작업을 빠트릴 수 있다. 따라서 따로 알려주고, 0.50 mm 라인으로 작업을 하는데 Eagle CAD에서는 Eagle CAD에서는 Milling Layer 46에 작업을 한다.
하지만 PCB 업체에 따라서 이 작업이 안될 수 도 있다.

참고
http://docs.oshpark.com/submitting-orders/cutouts-and-slots/
http://www.eurocircuits.com/blog/158-Slots-and-cut-outs

이글캐드에서 장홀(plated slot) 만들기

드릴을 중첩적으로 배치하면 돼지만 DRC에서 에러가 난다. 관련 자료

방법은 위의 슬롯만들기와 동일하게 Milling 레이어에서 작업을 하고, 업체에 얘기를 해야 한다. ㅠㅠ

참고
http://electronics.stackexchange.com/questions/198590/how-to-add-holes-in-package-and-create-elongated-plated-holes-eagle
http://electronics.stackexchange.com/questions/202551/eagle-oval-pad


S3G protocol

  • S3G는 “Sanguino3 Gcode”의 줄임말로 3D 프린터를 제어하는 언어임.
  • 파일의 경우 .s3g를 사용하는데 MakerBot에서 이것을 차용하여 .x3g로 사용함.
  • 초기에 8비트 AVR의 성능때문에 사용함.
  • MakerBot의 경우 s3g, x3g파일을 처리할 수 있고, gcode를 이것으로 변환하는 translator를 내장하고 있음.
  • OctoPrint의 경우 GPX라는 플러그인이 있고,  GpxUI라는 GUI wrapper도 있다.
  • 관련 소스는 https://github.com/markwal/GPX

S3G protocol

구성 및 통신

2가지 네트워크로 구성이 된다.

  • Host network: PC와 보드로 기본적으로 시리얼이다. 115200 or 38400 bps
  • Tool network: 보드와 툴사이로 RS485 사용

에러 방지를 위해 매 패킷의 마지막에 CRC를 사용


Mac OS X에 nRF51 개발 환경 설정하기

1. gcc 설치
여기에서 다운로드 한다.

$ mkdir /usr/local/gcc-arm
$ tar -xjf gcc-arm-none-eabi-5_4-2016q3-20160926-mac.tar.bz2 -C /usr/local/gcc-arm

2. nRF5x-Command-Line-Tools-OSX
여기에서 다운로드 한다.
/usr/local/ 에 nrfjprog와 mergehex를 copy한다.

3. .bash_profile 수정

export PATH=/usr/local/bin:/usr/local/sbin:/usr/local/nrfjprog:$PATH

4. Segger Software and documentation pack for Mac OS X 설치
여기에 패키지 파일이 있다.

5. SDK설치 및 Makefile.posix 파일 수정
여기 또는 여기에서 SDK를 다운로드 해서 원하는 곳에서 압축을 푼다.
components/toolchain/gcc/Makefile.posix 이 파일을 gcc 버전에 맞게 수정한다.

GNU_INSTALL_ROOT := /usr/local/gcc-arm/gcc-arm-none-eabi-5_4-2016q3
GNU_VERSION := 5.4.1
GNU_PREFIX := arm-none-eabi

6. 컴파일 및 확인
example 폴더 아래에서 make해서 hex 파일이 생성되는지 확인한다.

$ make

7. 보드와 연결해서 다운로드가 되는지 확인한다.

$ make flash

Nordic에서 출시한 보드

PCA10028

PCA10031

참고
https://devzone.nordicsemi.com/blogs/22/getting-started-with-nrf51-development-on-mac-os-x/
https://aaroneiche.com/2016/06/01/programming-an-nrf52-on-a-mac/
http://www.nordicsemi.com/eng/Products/Bluetooth-low-energy/nRF51822
Getting started with the nRF5 development kit
https://devzone.nordicsemi.com/tutorials/


3D 프린터 슬라이싱 툴

Software User Price OS
3DPrinterOS Beginners, Advanced Users Freemium Browser, Windows, Mac
Astroprint Beginners, Advanced Users Freemium Browser, Raspberry Pi, pcDuino
Craftware Beginners, Advanced Users Free Windows, Mac
Cura Beginners, Advanced Users Free Windows, Mac, Linux
IceSL Advanced Users Free Windows, Linux
KISSlicer Beginners, Advanced Users Free/$35 Windows, Mac, Linux, Raspberry Pie
MakerBot Print Beginners Free Windows, Mac
MatterControl Beginners, Advanced Users Free Windows, Mac, Linux
Netfabb Basic Intermediate Users, Advanced Users Free Windows, Mac, Linux
OctoPrint Intermediate Users, Advanced Users Free Raspberry Pi, Windows, Mac Linux
Repetier Intermediate Users, Advanced Users Free Windows, Mac Linux
Simplify3D Beginers, Advanced Users $150 Windows, Mac
Slic3r Advanced Users, Professional Users Free Windows, Mac Linux
SliceCrafter Advanced Users Free Browser
Tinkerine Suite Beginners Free Windows, Mac
Z-Suite Beginners Free Windows, Mac

Mac OS X 커맨드라인에서 Gatekeeper 기능 설정

애플 앱 스토어가 아닌 다른 경로로 프로그램을 다운로드해서 인스톨시 문제가 생기는 경우, 대부분의 경우 원인은 Gatekeeper가 enable되어서 생기는 문제.

현재 상태확인

spctl –status

비활성화 & 활성화

sudo spctl –master-disable

sudo spctl –master-enable

 


MAC OSX에서 Wireshark를 사용한 무선랜 데이터 캡쳐

Wireshark wiki에 monitor mode에 대한 설명이 나온다. 그런데 airport를 사용하는 내용이라서 별 의미가 없다. Wireshark에서 무선랜 데이터를 캡쳐하려면 monitor mode를 enable해야 하는데, 이 옵션은 윈도우즈를 오른쪽으로 많이 드래그를 해야 옵션을 찾을 수 있다. 그리고 link-layer를 802.11로 변경은 그냥 프로그램을 재실행하면 된다.


필라멘트 들뜸을 방지하려면

3D 프린팅을 하면서 일반적으로 모델의 사이즈가 큰 경우 모델의 바닥부터 필라멘트가 수축을 하면서 들뜨게 된다.

이런 현상을 방지하기 위해서는

  • 히트베드 사용
  • Raft / Brim 사용
  • 레벨링을 잘 맞추기
  • 캡톤필름/Buildtak sheet 등을 사용
  • 출력속도 낮추기
  • Infill을 줄이기

그리고 이 글(HOW TO STOP FILAMENT WARPING IN 3D PRINTED PARTS)에서는 Brim을 넣을 때 lily pads를 넣는 것을 설명하고 있는데 좋은 아이디어 인듯.

ABS의 경우 참고자료

  • Heat bed에 Kapton필름, 딱풀, ABS Juice등을 사용
  • 첫번째 레이어에서 팬 컨트롤