:::: MENU ::::

Meshlab 빌드

Meshlab은 3D프린팅에 필요한 파일의 메쉬를 수정할 수 있는 툴로 오픈소스이며, 3가지 OS를 지원한다. 그리고 웹에서 구현한 버전도 있다.

이 소스를 빌드하려면 다음과 같은 3가지 소스가 필요하다.
* 필요한 소스들 3가지

* VS(Visual Studio)로 컴파일하기
1. QT 컴파일
(1) QT소스의 압축을 풀고, VS(Visual Studio) Command prompt를 실행하여 해서 다음과 같이 설정을 한다.
(2) 만약 VS가 여러 버전이 설치되어 있다면,

set QMAKESPEC=win32-msvc2008

를 입력하여 컴파일러 버전을 설정해야 함. 만약 VS가 2008만 설치되어 있다면 이 과정은 생략해도 됨
(3) 다음과 같은 절차로 QT를 컴파일

configure -debug-and-release
qmake 컴파일 및 실행. <= VS에 대한 makefile을 생성하는 과정
nmake

를 입력하여 QT 전체를 다시 컴파일

2. MeshLab 컴파일
(1) VS prompt 상에서 다음과 같이 입력하여 환경변수를 잡아 줌

set QTDIR=C:\Qt\4.6.3
set PATH=C:\Qt\4.6.3\bin
set VCPATH=C:\Program Files\Microsoft Visual Studio 9.0\VC\bin
set PATH=%PATH%;%VCPATH%;%SystemRoot%\System32
set QMAKESPEC=win32-msvc2008

(2) VCG라이브러리의 경로 설정
VCG Library의 경로를 meshlab 소스와 같은 레벨에 둔다.
(3) meshLab의 external 부분 컴파일
meshLab의 src\external 로 이동하여 다음과 같이 입력하여 솔루션 파일을 만든다.

qmake -tp vc -recursive external.pro

external.sln 파일이 생성된다. 이 파일을 VS로 열어서 솔루션을 다시 빌드한다.

(4) meshLab 소스 컴파일
meshlab의 src 로 이동하여 다음과 같이 입력하여 솔루션 파일 생성

qmake -tp vc -recursive meshlabv12.pro

meshlabv12.sln 파일이 생성됨.

이것을 VS로 열어서 빌드한다. (솔루션 속성에서 시작 프로젝트를 meshlab프로젝트로 설정한다.)
* io_3ds가 link 에러가 발생하면 제거.
(5) meshLab의 src\distrib로 이동하면 빌드된 파일 meshlab.exe을 확인한다.
이 파일을 실행시 에러가 나면 QT\Bin 에서 dll 파일을 동일 폴더에 복사해서 실행한다.

* 트러블 슈팅
아래와 같은 에러가 나면 바이러스 체크프로그램을 끄고 다시 작업.
general error c101008d: Failed to write the updated manifest to the resource of file… Access is denied.

참고: http://blog.csdn.net/zyjiang0571/article/details/7340650



Slic3r 빌드 하기

3D 프린팅을 위한 슬라이서 프로그램인 Slic3r는 오픈소스로 github에 코드가 공개되어 있다. 물론 각 OS에 맞는 실행파일을 다운로드해서 사용이 가능하지만 github에 공개된 코드를 빌드해서 사용이 가능하다. Windows, Mac, Linux 등 3가지 OS에서 빌드가 가능하며, Mac OS X에서 빌드하는 방법은 https://github.com/alexrj/Slic3r/wiki/Running-Slic3r-from-git-on-OS-X에 정리되어 있다.

Slic3r는 C++ 과 Perl로 작성이 되어 있다.

The core geometric algorithms and data structures are written in C++, and Perl is used for high-level flow abstraction, GUI and testing.

그리고 다음과 같은 기능이 있다.

Key features are:

  • multi-platform (Linux/Mac/Win) and packaged as standalone-app with no dependencies required
  • complete command-line interface to use it with no GUI
  • multi-material (multiple extruders) object printing
  • multiple G-code flavors supported (RepRap, Makerbot, Mach3, Machinekit etc.)
  • ability to plate multiple objects having distinct print settings
  • multithread processing
  • STL auto-repair (tolerance for broken models)
  • wide automated unit testing

Other major features are:

  • combine infill every ‘n’ perimeters layer to speed up printing
  • 3D preview (including multi-material files)
  • multiple layer heights in a single print
  • spiral vase mode for bumpless vases
  • fine-grained configuration of speed, acceleration, extrusion width
  • several infill patterns including honeycomb, spirals, Hilbert curves
  • support material, raft, brim, skirt
  • standby temperature and automatic wiping for multi-extruder printing
  • customizable G-code macros and output filename with variable placeholders
  • support for post-processing scripts
  • cooling logic controlling fan speed and dynamic print speed

이중 auto-repair기능에 대한 설명은 메뉴얼에 나와있는데, 홀이 있거나 앞뒤가 뒤바뀐 경우 자동으로 repair한다. 이 기능을 off하는 방법은 없다. 이외 추가적으로 Netfabb이나 FreeCAD도 추천을 하고 있다.

If the 3D mesh described in the model contains holes, or edges are misaligned (known as being non-manifold), then Slic3r may have problems working on it.


AstroPrint 분석

원격 3D프린팅을 지원하는 기기인 AstroPrint 분석

1. 가격

  • AstroPrint에서 파는 기기 – $149
  • Raspberry Pi 세트: $65
  • 지원하는 카메라: $30 ~ $68 (라즈베리용 카메라는 지원하지 않음)
  • 따라서 카메라 포함 가격은 $95 ~ $217 정도

2. 카메라

  • 카메라는 리눅스를 지원하는 USB카메라(Video for Linux v2)이어야 하며 웹에서 카메라 스트리밍을 보는 형태라서(WebRTC) FireFox, Chrome and Opera에서만 영상을 볼 수 있음
  • pcDuino 기반의 AstroPrint는 스트리밍 지원 안됨. 즉 Raspberry Pi기반만 웹 스트리밍 지원.
  • WebRTC의 한계: 브라우저 지원

참고 자료: https://blog.astroprint.com/live-video-streaming-is-now-available-on-astroprint/


오픈소스하드웨어 인증 프로그램 – OSHW Certification Program

오픈소스하드웨어협회에서 2015년 부터 작업한 오픈소스하드웨어 인증 프로그램을 개시했다. 이 인증은 오픈소스하드웨어 정의를 따른 다면 받을 수 있는 인증이고, 인증을 받은 이후에 여기서 벗어난다면 패널티가 있다.

관련 자료 – http://www.oshwa.org/2016/10/07/announcing-the-oshwa-open-source-hardware-certification-program/



BBC Microbit 오프라인에서 사용하기

BBC microbit를 오프라인에서 사용하려면 링크를 참고 하고 Manuall Installation 항목을 따라서 환경을 셋업한다.

1. yotta설치

Mac OS의 경우

brew tap ARMmbed/homebrew-formulae
brew install python cmake ninja arm-none-eabi-gcc
pip install yotta

Trouble shooting
brew 관련 아래과 같은 문제가 있을 경우

sudo chown -R $(whoami):admin /usr/local
cd $(brew –prefix) && git fetch origin && git reset –hard origin/master

터미널에서 다음과 같은 에러메시지가 나올때
error: connection error: (“bad handshake: Error([(‘SSL routines’, ‘ssl3_get_server_certificate’, ‘certificate verify failed’)],)”,)

pip install -U certifi

참고: https://github.com/ARMmbed/yotta/issues/744

2. Srecord 설치

brew install srecord

3. 예제 코드 받기

git clone https://github.com/lancaster-university/microbit-samples
cd microbit-samples

4. 타겟을 miccrobit로 설정

yt target bbc-microbit-classic-gcc

5. 프로젝트 빌드

yt build

6. 마이크로비트에 다운로드 하기
마이크로비트는 MICROBIT라는 이름의 외장디바이스로 되어 있으니 hex파일을 copy하면 된다.

cp ./build/bbc-microbit-classic-gcc/source/microbit-samples-combined.hex /Volumes/”MICROBIT”

참고
https://lancaster-university.github.io/microbit-docs/offline-toolchains/
http://yottadocs.mbed.com/#installing



BBC micro:bit 분석

BBC micro:bit는 영국에서 컴퓨터 교육용으로 디자인된 마이크로컨트롤러 보드이다.

개발에 참여한 파트너사들

하드웨어

  • 메인 MCU: ARM CortexM0 코어에 블루투스 LE 내장된 노르딕사의 nRF51822 (256KB flash, 16KB SRAM)
  • 인터테이스 : USB 2.0 OTG 내장된 NXP KL26Z (CortexM0+) DAPLink를 제공하여, 가상 USB 플래시 드라이브를 제공해서 펌웨어 업데이트를 가능하게 하며, USB 파워를 받아서 전압 레귤레이터의 역할. 관련 포스팅
  • 3 가속도 : NXP MMA8652, 메인 MCU I2C 연결
  • 3 지자기센서 : NXP MAG3110, 메인 MCU I2C 연결
  • 5×5 LED 어레이
  • 2개의 버튼

핀아웃

소프트웨어

모두다 브라우저기반의 컴파일러를 제공하며, 난이도에 따라 아래 그림 처럼 3가지로 나뉠 수 있다.

아키텍처

기타

관련자료


Nabto 사용법

Nabto provides a full communication infrastructure to allow real-time direct, encrypted communication between end-user clients (tablets, smartphones, PC) and resource limited devices (< 1kb RAM and up) – the Nabto communication platform. The platform provides direct real-time connectivity with no firewall or dynamic IP hassle – just as you know from e.g. Skype™.

Nabto 사용법

Nabto 디바이스 포털 https://developer.nabto.com/) 에서 ID를 등록하고 Add Device에 디바이스 이름을 입력후 디바이스를 추가한다. 이 디바이스 ID는 xxxx.demo.nab.to 이런 형태가 된다.

그러면 디바이스의 status가 나오고 Key가 할당이 된다. 이 Key는 보안 연결에 사용이 되며 HTML-DD는 HTML Device Driver로 web GUI를 포함하는데 default를 사용한다.

uNabto SDK(unabto_sdk.zip)를 다운로드 후 압축을 풀고 다음과 같이 빌드를 한다.

cd unabto_sdk/unabto/apps/pc_demo/
cmake .
make

이렇게 하면 pc_demo 라는 실행파일이 생성이 되는데 다음과 같이 디바이스 이름과 Key를 입력하여 실행을 한다.

./pc_demo -d [xxxx.demo.nab.to] -s -k [KEY]

아래는 jbtest2.demo.nab.to로 실행을 한 결과인데 마지막에 연결 상태가 WAIT_GSP to ATTACHED가 되어야 한다.

16:47:23:876 unabto_main.c(41) Identity: ‘jbtest2.demo.nab.to’
16:47:23:876 unabto_main.c(42) Program Release 2.21889
16:47:23:876 unabto_main.c(43) Buffer size: 1500
16:47:23:876 unabto_common_main.c(127) Device id: ‘jbtest2.demo.nab.to’
16:47:23:876 unabto_common_main.c(128) Program Release 2.21889
16:47:23:879 unabto_app_adapter.c(698) Application event framework using SYNC model
16:47:23:885 unabto_context.c(55) SECURE ATTACH: 1, DATA: 1
16:47:23:885 unabto_context.c(63) NONCE_SIZE: 32, CLEAR_TEXT: 0
16:47:23:885 unabto_common_main.c(206) Nabto was successfully initialized
16:47:23:885 unabto_context.c(55) SECURE ATTACH: 1, DATA: 1
16:47:23:885 unabto_context.c(63) NONCE_SIZE: 32, CLEAR_TEXT: 0
16:47:23:886 unabto_attach.c(787) State change from IDLE to WAIT_DNS
16:47:23:886 unabto_attach.c(788) Resolving dns: jbtest2.demo.nab.to
16:47:24:411 unabto_attach.c(809) State change from WAIT_DNS to WAIT_BS
16:47:24:424 unabto_attach.c(292) Sending INVITE to Base Station: 1
16:47:24:725 unabto_attach.c(474) State change from WAIT_BS to WAIT_GSP
16:47:24:736 unabto_attach.c(303) Sending INVITE to GSP: 1
16:47:24:736 unabto_attach.c(266) ######## U_INVITE with LARGE nonce sent, version: – URL: –
16:47:25:084 unabto_attach.c(624) nmc.ctx.privat : 0.0.0.0:53538
16:47:25:085 unabto_attach.c(625) nmc.ctx.global : 210.113.20.1:53538
16:47:25:086 unabto_attach.c(573) GSP-ID(nsi): 3148170758
16:47:25:086 unabto_attach.c(575) State change from WAIT_GSP to ATTACHED

디바이스 포털에서 디바이스의 상태가 Offline에서 Online으로 바뀐 것을 볼 수 있다.

Nabto app이나 브라우져(브라우저는 IE나 Firefox만 지원하며 플러그인을 설치해야 한다.)에서 nabto://디바이스이름.demo.nab.to를 실행한다.


데모웹에서 스위치를 on/off하면 실행시킨 터미널에서 메시지를 볼 수 있다.

Arduino에서 테스트하는 방법

아두이노와 네트워크 연결을 위한 Ethenet 쉴드가 필요하다.

  1. Copy the unabto/apps/arduino/Nabto directory from the SDK to the Arduino libraries directory. On Windows it is normally located in My Documents\Arduino\libraries\ and on Mac/Linux it is located in ~/Documents/Arduino/libraries/.
  2. Open Arduino.
  3. Open Files → Examples → Nabto → Demo.
  4. Type in the MAC-address located on the bottom of the Ethernet shield.
  5. Specify an unique ID for the Arduino demo, e.g <macaddress>.sdk.u.nabto.net.
  6. Connect the LED to pin A0 (anode) and ground (cathode).
  7. Click on Tools → Board and make sure you have the right board chosen.
  8. Click upload.
  9. Open Firefox or Internet Explorer and type in the ID.