'KickStarter'에 해당되는 글 8건

  1. 2021.02.15 Life | Ockham 면도기 AS 기 2
  2. 2020.08.11 Software | Blynk 사용해 보기
  3. 2019.10.07 Hardware | Arduino 로 Gimbal 컨트롤 하기 2
  4. 2019.03.24 Hardware | 또다른 Magnetic Charging Cable 구매기
  5. 2017.11.22 Hardware | Safecast bGeigie Nano 를 조립해 보자 - 1
  6. 2017.09.25 Hardware | Magnetic Charging Cable 을 구매해 보자
  7. 2017.07.08 Hardware | Arduino 로 Servo 를 움직여 보자
  8. 2017.06.26 Life | 진공 청소기용 빨대 브러쉬 만들어 보자

Life | Ockham 면도기 AS 기

|

1. 면도기

 

보통 면도날을 사면, 면도 손잡이와 세트로 판매하는데, 핸들은 쌓여만 가다가 결국 버리게 되는 아쉬움이 있었습니다.

특히, 특별세일로 판매되는 것들은, 모두 이 손잡이 세트가 대부분이었어요.

 

 

물론 날만 파는 경우도 있으나, 아이러니하게도 핸들 세트가 더 싸다는...

또한 면도날 세트에 들어가 있는 핸들은 어찌나 디자인적으로 못생겼는지.

 

고급형을 지향한다는 손잡이도 다음과 같은 상황입니다.

 

 

 

 

2. Ockham Razor

 

용서하기 힘든 낭비적인 제품 생산과 견디기 힘든 디자인으로 괘롭던 와중에 아래 물건을 발견하게 됩니다.

2015년에 Kickstarter 를 통해 펀딩 받은 Ockham Razor 라는 제품입니다.

 

 

* The Ockham Razor - a minimalist, modern razor.

https://www.kickstarter.com/projects/robhallifax/the-ockham-razor-a-simple-beautiful-razor/description

 

 

날만 교체하면 본체를 계속 재활용 하는 컨셉.

 

 

금속으로 핸들을 만들어 묵직한 무게감이, 그 존재를 부각시켜주는 재품!

 

 

비교적 저렴한 은색과, 동을 이용한 디자인. 금색 디자인도 있었는데, 금방 소진되었습니다.

 

.

 

 

3. 고장

 

2019년 초에 고장이 났습니다. 날을 잡아주고 피부에 밀착시켜 주는 부분이 부러졌네요.

 

 

끝 부분은 플라스틱 재질로 인하여, 내구성이 그리 좋지 않네요. 금속으로 만들었으면 좋았을 것을.

다만 구조적인 복잡함으로 단가가 많이 올라가겠죠.

 

 

저 부분을 엄지로 밀면 날이 분리되는 구조이나, 일단 걸리는 부분 중간이 어디론가 사라졌습니다.

 

 

 

 

4. 수리 진행

 

혹시, 수리를 할 수 있을까 하고 제품 홈피를 찾아 봅니다.

 

* Razor repair

https://www.ockhamrazorcompany.com/shop/razor-repair

 

 

 

저와 비슷한 사람들이 있었나 보군요. 10 EURO 받고 수리를 해주고 있었습니다!

국제 배송비 포함하여 14 EURO 지불 합니다.

 

 

보낼 주소가 나와있지 않아서, 제작 회사에 문의하니 알려 주네요.

 

 

 

 

5. 국제 우편

 

국제 배송이니 포장을 잘 해 놓습니다.

 

 

우체국 가서 물어보니, 보통으로 보내면 연말연시 + COVID-19 로 인하여 한달 이상 걸리고, 배송 추적이 되지 않는다 하더군요.

배송 추적 되는 택배를 요청하니, 3만 4천원 !!!!!!!!!!!!!!!

 

설마 하며, 두 번 더 물어 봤습니다.

제품가 30 EURO 를 뛰어 넘는 국제 배송이라니... 믿기지가 않았지만, 우체국 창구에서는 당연하다는 듯이 말씀 하시네요.

 

이미 repair order 는 내 버렸고, 배송을 잘 시켜야 하고, 창구에서 더 오래 머무르기에는 뒤에 줄 서있는 사람들이 많아서 결제했습니다.

누가, 이 금액이 일반적인지 알려주시면 좋겠어요. 다른 옵션이나 방법은 없는 것일까요?

 

 

 

 

6. 수리 및 영국발 배송

 

딱 2주일만에 도착 했습니다. 물건 잘 받았다고 답장 왔습니다.

 

 

받자 마자 수리해서 발송했다는 메일이 뜹니다. 영국에서 오는 배송료는 4 EURO 라고 하네요.

 

 

웃긴건 영국에서 4 EURO 국제 배송이 한국 집에 도착하는 시간은 20일 정도 걸렸습니다.

6일 차이가 3만원의 가치를 가지는 것일 까요? 너무 궁금합니다. 이 가격의 합리성이.

 

 

International Standard 배송이라고 되어 있습니다. 영국 답게 Royal Mail 이네요. :-)

 

 

Invoice 는 아래와 같습니다.

 

 

 

 

7. 수리 완료

 

포장지는 2015년과 동일하군요.

 

 

상처입지 않게 잘 왔습니다. 면도날을 하나 넣어 줬네요. 감사합니다.

 

 

1년여 만에 다시 핸들에 끼워서 사용할 수 있게 되었네요.

 

 

우여곡절은 있었지만, 사용 자체의 만족감은 높습니다. 디자인도 SIMPLE 해서 시각적인 충족감도 무시 못합니다.

 

 

영국에서 온 질레트 마하3 와 한국에서 날만 구입한 질레트 마하3 의 비교.

 

 

마하3 의 특징인 블레이드가 세 장인 것은 같습니다.

 

 

원래는 아래 처럼 중간에 튀어 나온 부분이 있어야, 얼굴 굴곡에 맞춰 날을 받쳐 줍니다.

 

 

뒷면은 날이 고정되게 홈이 파져 있구요.

 

 

엄지로 둥그런 부분을 밀면 날이 분리되는 구조 입니다.

 

 

중간 돌기의 동작 방법은 아래 동영상에서 확인할 수 있습니다.

 

 

 

 

FIN

 

잊지 않겠다 국제 택배 비용.

 

And

Software | Blynk 사용해 보기

|

Arduino 나 ESP8266 을 사용하면서, sensor 로부터 받은 데이터를 표현해주는 방법이 몇 가지 있습니다.

일전에는 ThingSpeak 라는 것을 사용해 봤었죠.


* Software | ThingSpeak 등록하여 IoT 데이터 펼처보기

https://chocoball.tistory.com/entry/Software-ThingSpeak-IoT-monitoring


어느 분께서 댓글 달아 주시길, Blynk 도 좋다고 합니다. 사용해 봤습니다.





1. Blynk 란?


Data 는 있지만, 그 값들을 이해하기 쉬운 방법으로 표시해 주고 모니터링 해주는 어플리케이션 이죠.



클라우드 펀딩으로 시작한 솔루션 입니다.


* Blynk - build an app for your Arduino project in 5 minutes

- https://www.kickstarter.com/projects/167134865/blynk-build-an-app-for-your-arduino-project-in-5-m



Arduino project 를 5분만에 시작할 수 있다고 하지만, 숙련된 사람 이야기 이고, 학습하는 시간이 필요합니다.

다만, 각 프로젝트에 따른 예시나 모듈이 잘 되어 있어서, 하다 보면, 아니... 이렇게 쉽게? 라는 생각이 잠시 드는 때도 있습니다.


KickStarater 클라우드 펀딩을 성공적으로 마무리 하고, 아래 사이트에서 정식 런칭하였습니다.


* Blynk Inc

https://blynk.io/





2. Library 설치


저는 Arduino / ESP8266 에서 받은 값을 전달할 목적이므로, Arduino IDE 에서 모듈을 인스톨 합니다.


Tools > Manage Libraries > Blynk


모듈이 인스톨 되면, Arduino > libraries 에 등록 되어 있는 것을 확인 할 수 있습니다.



자동으로 설치해 주는 방법 외에도, 수동으로 파일을 받아서 설치 할 수도 있습니다.


* Blynk Arduino Library

https://github.com/blynkkk/blynk-library/releases/latest





3. App 설치


프로그래밍을 위한 환경이나 라이브러리가 설치되었으면, 실제로 그 값들을 모니터링 하고 확인할 수 있는 인터페이스가 필요합니다.

Blynk 는 모바일 환경에 최적화가 되어 있으므로, 스마트폰에 관련 어플을 설치합니다.


평점이 좋네요.





4. Project 시작하기


모바일앱에서 어플을 시작하면, 등록이 나옵니다.



Facebook 계정 연동으로 시작해도 되나, 저는 그냥 email 로 사용자 등록 하였습니다.



계정을 만들고 로그인 합니다.



New Project 를 선택합니다. My Apps 메뉴를 이용해서, 개인 전용앱 처럼 꾸밀 수도 있다고 합니다.



시작할 새로운 Project 는 주로 어떤 IoT 기기와 연결될 것 인지를 선택합니다.

저는 ESP8266 을 이용하여, WiFi 연결 뿐만 아니라, arduino 처럼 처리도 시킬 것이기 때문에, ESP8266 을 선택 했습니다.



포름알데히드 센서를 이용한 그래프 모니터링용 이니, 그에 맞게 Title / Device / Connection Type 을 선택해 줍니다.

저는 Formaldehyde / ESP8266 / WiFi 를 선택 했습니다.



Create Project 를 최종적으로 누르면, 새로 생성한 project 에 대한 전용 인증 코드가 생성됩니다.

이 코드는 project 마다 유니크 하며, 메일로도 알려 줍니다.



계정 생성시 사용 했던 email 로 관련된 정보가 왔습니다.


Auth Token





5. 소스코드 생성


누가 5분만에 가능하다 했나... 5분은 여기까지 오느라 훨씬 지났습니다.

다만, 코딩을 쉽게 도와주기 위해 "Sketch generator" 라는 메뉴가 준비되어 있어요.


* Sketch generator

https://examples.blynk.cc/


접속하면, 아래처럼 Board (Device) / Connection 방법 / Auth Token 및 예시를 선택하면 소스코드를 만들어 줍니다!



이 페이지에서 만들어준 기본 코드에, 포름알데히드 측정에 사용되었던 코드를 살짝 추가 하였습니다.


Blynk 사용하지 않은 코드


#include "ze08_ch2o.h"
#include "SoftwareSerial.h"
 
// Instantiate a serial port, whatever Stream you have
// SoftwareSerial ch2oSerial(4, SW_SERIAL_UNUSED_PIN); // RX, TX
SoftwareSerial ch2oSerial(14, 14); // RX, TX
 
// Instantiate a sensor connected to the previous port
Ze08CH2O ch2o{&ch2oSerial};
 
void setup() {
    ch2oSerial.begin(9600);
    ch2oSerial.listen();
    Serial.begin(115200); // Serial Monitor
}
 
void loop() {
    Ze08CH2O::concentration_t reading;
     
    if (ch2o.read(reading)) {
        Serial.print("New value: ");
        Serial.println(reading);
    }
}



Blynk 기능을 입힌 코드


#include "ze08_ch2o.h"
#include "SoftwareSerial.h"

SoftwareSerial ch2oSerial(14, 14); // RX, TX
Ze08CH2O ch2o{&ch2oSerial};

int sensorData;

/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial

#include "ESP8266WiFi.h"
#include "BlynkSimpleEsp8266.h"

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "XXXXXXXXXXXX";
char pass[] = "YYYYYYYYYYYYYYYYYYY";

BlynkTimer timer;

// This function sends Arduino's up time every second to Virtual Pin (5).
// In the app, Widget's reading frequency should be set to PUSH. This means
// that you define how often to send data to Blynk App.
void myTimerEvent() {
	// You can send any value at any time.
	// Please don't send more that 10 values per second.
	
	Ze08CH2O::concentration_t reading;
	if (ch2o.read(reading)) {
		Serial.print("ZE08-CH2O : ");
		Serial.println(reading);
		
		sensorData = reading;
	}
	Blynk.virtualWrite(V5, sensorData);
}

void setup() {
	// Debug console
	Serial.begin(115200);
	
	ch2oSerial.begin(9600);
	ch2oSerial.listen();
	
	Blynk.begin(auth, ssid, pass);
	// You can also specify server:
	//Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80);
	//Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);
	
	// Setup a function to be called every second
	timer.setInterval(5000L, myTimerEvent);
}

void loop() {
	Blynk.run();
	timer.run(); // Initiates BlynkTimer
}


위의 Before / After 를 비교해 보면, "Sketch generator" 코드에서 자동으로 만들어준 소스에, 원래 소스를 살짝 입히기만 했습니다.

참 쉽죠?! 제가 작업한 것은 다음 세 가지 뿐 입니다.


- 기본 소스 코드 생성 (이것 마저도 인터넷에서 따옴)

- Sketch generator 이용하여 Blynk 연결 소스 만듬

- Auth Token / WiFi 접근 SSID / Password 적용


가장 눈여겨 들여다 봐야 할 부분은 아래 코드 부분입니다.


	Blynk.virtualWrite(V5, sensorData);


Blynk 는 ESP8266 / ESP32 등에서 받는 data 값 들을, 가상의 Pin 으로 보내는 기능이 있습니다.

Analog / Digital 값들이 다양한 Pin 들을 통해 들어온다 하여도, Blynk 로 보낼 때에는 하나의 가상 Pin 으로 고정해서 보낼 수 있습니다.


이렇게 되면, Device 가 변경되더라도 Blynk 앱에서는 변경을 하지 않아도 됩니다. 자세한 내용은 아래 링크를 참고해 보세요.


* What is Virtual Pins

http://help.blynk.cc/en/articles/512061-what-is-virtual-pins


* How to display ANY sensor data in Blynk app

http://help.blynk.cc/en/articles/512056-how-to-display-any-sensor-data-in-blynk-app





6. ESP8266 에서 실행


ESP8266 에 소스를 입히고 실행시키면, 다음과 같은 화면이 Serial Monitor 에 출력 됩니다.


[5220] Connected to WiFi
[5221] IP: 192.168.1.90
[5221] 
    ___  __          __
   / _ )/ /_ _____  / /__
  / _  / / // / _ \/  '_/
 /____/_/\_, /_//_/_/\_\
        /___/ v0.6.1 on ESP8266

[5227] Connecting to blynk-cloud.com:80
[5586] Ready (ping: 125ms).
ZE08-CH2O : 66
ZE08-CH2O : 112
ZE08-CH2O : 114
ZE08-CH2O : 117
ZE08-CH2O : 116
ZE08-CH2O : 114
...


ASCII code 를 이용하여 Blynk 문자를 잘 만들었네요 :-)



Library 는 Heartbeat 를 통한 연결상태 확인도 해주는 군요. 잘 만들어져 있습니다.



여기까지 진행하면 ESP8266 에서 할 것은 이제 다 했습니다.




7. Blynk 모바일앱에서 설정


Blynk 로 데이터는 들어오고 있으니, 받을 수 있도록 연동 설정하면 됩니다.

데이터를 표현해주는 방법은 여러 가지가 있으나, 대략 Gauge / SuperChart 로 해결 됩니다.


스마트 폰에서 Create Project 후에 나오는 빈 화면 아무곳을 터치하면, Widget Box 가 아래처럼 뜹니다.

건전지 아이콘에 2000 크레딧이 미리 충전 (무료) 되어 있습니다.

이걸 다 쓰면, 돈을 충전해서 사용해야 합니다. 각 메뉴 추가시 크레딧이 차감되니 신중하게 위젯을 만들어야 합니다.



처음에 멋도 모르고 "Value Display" 를 설정 했더랬습니다. 그냥 조금하게 값만 표시됩니다.



역시 데이터 값 표현은 차트죠. SuperChart 만들어 봅니다.

PIN 정보는 항상 "Virtual 5 PIN" 으로 했습니다만, 다른 Pin 들도 다이렉트로 사용할 수 있나 봅니다.



만들어진 위젯에 손가락을 잠깐 동안 올려 놓으면, 위치를 이동 시킬 수 있습니다.



이제 센서 값들의 모니터링은 일상으로 사용하는 스마트폰에서 바로바로 확인이 가능하게 됩니다.

웹페이지를 띄울 필요도 없고, 인증을 걸 필요도 없이, 하나의 앱 처럼 사용할 수 있어서 편하긴 합니다.




FIN


And

Hardware | Arduino 로 Gimbal 컨트롤 하기

|

1. 길고 긴 시작


때는 2015년, 한창 Kickstarter 에 열을 올려, 이것 저것에 투자(?) 하고 있을 때,

당시 저에게는 너무 생소한 Gimbal 이라는 것을 접하게 됩니다.


지금이야 드론이나 스포츠 경기 촬영, 또는 일반인이 손으로 가지고 다니면서 흔들림 방지 해주는 분야에까지 널리 사용되지만,

이 때까지만 해도 이런 종류의 기기는 전문가 집단만 사용하고 있었죠.


다 제껴두고 아래 소개 동양상 보고 홀딱 반해서 투자하게 됩니다. 75 USD...


* Gimbal for your Lights Camera or Action

https://www.kickstarter.com/projects/2035152529/gimbal-for-your-lights-camera-or-action/description



일단 동영상을 함 봐보세요. 2015년 감각으로... 사고싶어 지죠?!


당시에는, 아무 생각 없이 투자한 것이라, 어떻게 활용할지, 어떻게 컨트롤 할지 상상도 못하고 있었습니다.

제품이 도착 후, servo 로 움직인다는 것을 알고 (도착해서야!) arduino 를 활용해 기본적인 동작만 확인하고 쳐박에 두었습니다.

왜냐 하면, arduino 에 대한 지식이 얕았기에 뭘 더 할 수가 없었거든요.


아래는 지금까지 gimbal 과 관련된 포스트 들 입니다.


* Hardware | Arduino 로 Servo 를 움직여 보자

https://chocoball.tistory.com/entry/Hardware-Arduino-Servo


* Hardware | Arduino 의 Sensor Shield 사용해 보기

https://chocoball.tistory.com/entry/Hardware-Arduino-Sensor-Shield


* Hardware | Dual-axis XY Joystick Module

https://chocoball.tistory.com/entry/Hardware-dual-axis-XY-Joystick-Module


마지막으로 Joystick 모듈을 사용해 보고서, 드디어! gimbal 활용의 완성판을 작성할 수 있을것 같아, 이 글을 쓰기 시작했습니다.





2. 연결


최종 목적은 Joystick 을 가지고, Gimbal 을 상하좌우 움직이는 것 입니다.

이게 단순하지만, Joystick 의 운동 한계성으로 그리 쉽게는 되지 않더군요.


일단, Arduino > Joystick > Gimbal (servo) 를 아래와 같이 연결합니다.


  Joystick | Arduino Nano
--------------------------
    GND    |     GND
    5V     |     5V
    VRX    |     A0
    VRY    |     A1
    SW     |     D2
--------------------------
  Servo 1  |
--------------------------
    RED    |     5V
    BLACK  |     GND
    SIGNAL |     D9
--------------------------
  Servo 2  |
--------------------------
    RED    |     5V
    BLACK  |     GND
    SIGNAL |     D8
--------------------------


실제 diagram 은 다음과 같습니다.



실제 코드에서는 Joystick 의 SW_pin 이 D2 에 연결되는 등, 위의 그림과 조금 다릅니다만, 대략적인 연결 구조만 보시면 되겠습니다.





3. 간단 구동


일단 Joystick 이 유효한 방법인지 알아볼 수 있는 간단한 코드 입니다.

인터넷 어디에선가 참조했는데 링크를 까먹었습니다. 간단한 연결법이라 검색해서 쉽게 찾을 수 있습니다.


#include "Servo.h"

Servo myservo1; // create servo object to control a servo
Servo myservo2;
int potpin1 = A0; // analog pin used to connect the potentiometer
int potpin2 = A1;
int val; // variable to read the value from the analog pin

void setup() {
	myservo1.attach(9);
	myservo2.attach(10); // attaches the servo on pin 9 to the servo object
}

void loop() {
	val = analogRead(float(potpin1)); // reads the value of the potentiometer (value between 0 and 1023)
	val = map(val, 0, 1023, 0, 180); // scale it to use it with the servo (value between 0 and 180)
	myservo1.write(val); // sets the servo position according to the scaled value
	delay(15); // waits for the servo to get there
	
	val = analogRead(float(potpin2)); // reads the value of the potentiometer (value between 0 and 1023)
	val = map(val, 0, 1023, 0, 180); // scale it to use it with the servo (value between 0 and 180)
	myservo2.write(val); // sets the servo position according to the scaled value
	delay(15);
}


아래는 연결하고 실제 구동 영상입니다.



잘 돌아가쥬?

단, 여기서 문제점들이 몇가지 있습니다.


- ripple value

회로적인 문제로 ripple 값이 발생하여, 조이스틱을 움직이지 않았지만 덜덜 떨거나 깔끔한 움직임이 나오지 않습니다.

ripple 를 제거 해야 합니다.

- speed

돌아가는 속도가 너무 빨라, 원하는 방향으로 위치하기가 힘듭니다.

- available range

X 축의 경우, 90 돌아가지만, gimbal 은 360 가 돌아가게끔 되어 있습니다.

CCTV 등 에 사용된다고 가정하면, 필요 없는 각도나 회전은 발생하지 않게끔 해야 합니다.

- last position

Joystick 의 성질 상, 움직힘 후 가운데로 되돌아 옵니다.

특정 위치를 잡게 하려면 동작시키지 않을 때에는 마지막 위치를 기억하고 있어야 합니다.

- centering

어떤 위치에서든 다시 초기 위치로 되돌아 오는 기능이 있으면 편할 것 같습니다.


이 글의 나머지 부분은, 결국 위의 문제를 해결하는 내용으로 진행됩니다.





4. Ripple Value


Joystick 을 가만히 놔둬도 계속 떨거나, 움직일 때 자연스럽지 못합니다.

Serial Monitor 로 값의 변화를 찍어 봤죠.



아무것도 안했는데도 값이 출렁 거립니다.

전후값을 비교해 보니, 가만히 있어도 최대 11 정도 값이 변하는 것을 알 수 있습니다.



그래프로 도식화 해보면, 그 현상을 충분히 알 수 있습니다.

이는 전기적인 ripple 일 수도 있습니다.


* How can I filter out noise from ADC lines without delay or signal change?

https://arduino.stackexchange.com/questions/994/how-can-i-filter-out-noise-from-adc-lines-without-delay-or-signal-change


  +5V                        +5V
   |                          |
(sensor)---resistor---+---(Arduino)
   |                  |       |
   |              capacitor   |
   |                  |       |
  GND----------------GND-----GND

이 경우 RC 필터를 넣으면 됩니다. 캐패시터 값으로 0.1uF capacitor 를 사용하면 적절하다고 하네요.


So if you are sampling at around 1000 Samples/second (i.e., a sampling interval of 1 millisecond), then 100 Ohms of resistance and (roughly) 100 uF ceramic capacitor may be adequate. (The RC time constant here is RC == 100 Ohms x 100 uF = 10 milliseconds).


다만, 저항이 들어가면서 값의 외곡이 생기니 software 적으로 처리하기로 합니다.


0              512            1023 
<---------------|--------------->
          497 |   | 527

그럼 어떻게 하느냐.

Joystick 에서 arduino 로 보내지는 전체 analog 신호 0~1023 에서,

정 가운데 앞뒤로 15씩 잘라, 이 구간의 ripple 이나 작은 움직임을 무시하기로 합니다.


...
		if ( (0 <= val) && (val < 497) ) {
			myservo1.write(angle1--);
		} else if ((527 <= val) && (val < 1024)) {
			myservo1.write(angle1++);
...


위의 코드에서 보면, 중간값을 잘라 낸 앞뒤 값에서 val 을 읽어 들이는 것으로 했습니다.




5. Speed & Last Poision


원래 소스에서는 최종 위치로 바로 움직이도록 값을 넣어 주지만, 수정된 소스에서는 각도를 1도씩 움직이게 했습니다.

그러면서, delay 값을 낮춘 채로 유지했습니다.


...
		if ( (0 <= val) && (val < 497) ) {
			myservo1.write(angle1--);
		} else if ((527 <= val) && (val < 1024)) {
			myservo1.write(angle1++);
		} else {
			// do nothing
		}
...
	delay(10);
...
		if ( (0 <= val) && (val < 497) ) {
			myservo2.write(angle2--);
		} else if ((527 <= val) && (val < 1024)) {
			myservo2.write(angle2++);
		} else {
			// do nothing
		}
...
	delay(10);  
}


속도에 변화를 더 주고 싶으면, angle 은 1도씩 움직이는 것은 놔두고, delay 를 조정 합니다.

저는 delay(10) 이 가장 적절했습니다.


또한, 최종 각도를 입력하는 것이 아닌, 한쪽 방향으로 움직임만 있으면 (exist) 1도씩 움직이게 한 결과,

자연스럽게 마지막 위치에서 멈춰있게 되었습니다.




6. Available Range


180도로 움직이는 Servo 를 풀로 사용하면, 카메라를 달았을 때, 촬영 범위를 벗어나거나 회전하게 됩니다.


일단 Y 축 servo 를 생각하면,

천장과 땅바닥을 촬영 각도에서 빼게 된다면, 전체 180 도에서 140도로 좁히면 됩니다.

그렇다면, 20 > 160 도 사이를 움직이게 코딩해 줍니다.


X 축은 180 회전이 720도 회전, 90 회전이 360도, 45 회전이 180도, 22.5 회전이 되어야 비로서 90도가 됩니다.

즉, 좌우로 22.5 를 먹여야 원하는 좌우 180도로 움직이는 결과가 되지요.


...
	if ( (67 < angle1) && ( angle1 < 112) ) { // making available range
...
	} else if ( angle1 == 67) {
		angle1++;
	} else if ( angle1 == 112) {
		angle1--;
	}
...
	if ( (20 < angle2) && ( angle2 < 160) ) { // making available range
...
	} else if ( angle2 == 20) {
		angle2++;
	} else if ( angle2 == 160) {
		angle2--;
	}
...


코딩에서는 90도가 center 이므로, 이 중간을 기준으로 좌우 +/- 한 값으로 범위를 정의했습니다.

위의 소스 마지막 부분에서, 각도의 끝에 있는 값에서 +1 / -1 씩 해준 이유는, 계속 범위 안에 들기 하기 위함입니다.

이게 없으면, 1도씩 움직이던 angle 값이, 범위 밖으로 나가면서 예외상황에 빠지게 됩니다.


코딩 해보신 분이라면, 예외사항 처리가 얼마나 중요한지 아실꺼예요.




7. Centering


Joystick 에서 SW_pin 이 존재합니다.

유일하게 digital 입력이며, 조이스틱을 누르면 딸깍 하는 소래를 내는 그 부분 입니다.


마침 잘 된 거죠. Centering 을 이 SW_pin 을 사용하면 됩니다.


#include "Servo.h"

const int SW_pin = 2; // digital pin for centering
...
void setup() {
	pinMode(SW_pin, INPUT);
	digitalWrite(SW_pin, HIGH);
...
}

void loop() {
	
	if (!digitalRead(SW_pin)) {
		angle1 = 90;
		angle2 = 90;
		myservo1.write(angle1);
		myservo2.write(angle2 );
	}
...
}


SW_pin 에 입력이 있으면, 중앙이 되는 90 도를 강제적으로 input 하게 하면 됩니다.




8. 정리


지금까지 해결했던 문제들을 한데 모아 소스코드로 만들면 아래와 같이 됩니다.


#include "Servo.h"

const int SW_pin = 2; // digital pin for centering
Servo myservo1; // create servo object to control a servo
Servo myservo2;
int potpin1 = A0; // analog pin used to connect the potentiometer
int potpin2 = A1;
int val; // variable to read the value from the analog pin
int angle1 = 90;
int angle2 = 90;

void setup() {
	pinMode(SW_pin, INPUT);
	digitalWrite(SW_pin, HIGH);
	myservo1.attach(9);
	myservo2.attach(10); // attaches the servo on pin 9 to the servo object
	
	myservo1.write(angle1);
	myservo2.write(angle2);
	delay (1000); // initalizing
}

void loop() {
	
	if (!digitalRead(SW_pin)) {
		angle1 = 90;
		angle2 = 90;
		myservo1.write(angle1);
		myservo2.write(angle2 );
	}
	
	val = analogRead(float(potpin1)); // reads the value of the potentiometer (value between 0 and 1023)
	if ( (67 < angle1) && ( angle1 < 112) ) { // making available range
		if ( (0 <= val) && (val < 497) ) {
			myservo1.write(angle1--);
		} else if ((527 <= val) && (val < 1024)) {
			myservo1.write(angle1++);
		} else {
			// do nothing
		}
	} else if ( angle1 == 67) {
		angle1++;
	} else if ( angle1 == 112) {
		angle1--;
	}
	delay(10);
	
	val = analogRead(float(potpin2)); // reads the value of the potentiometer (value between 0 and 1023)
	if ( (20 < angle2) && ( angle2 < 160) ) { // making available range
		if ( (0 <= val) && (val < 497) ) {
			myservo2.write(angle2--);
		} else if ((527 <= val) && (val < 1024)) {
			myservo2.write(angle2++);
		} else {
			// do nothing
		}
	} else if ( angle2 == 20) {
		angle2++;
	} else if ( angle2 == 160) {
		angle2--;
	}
	delay(10);  
}


코드의 최적화는 생각하지 않고, 오로지 구현에만 신경쓴 소스입니다.

모든 구현이 들어간 코드를 입힌 동영상 입니다.



원하는 수준까지 동작 구현이 되어서 기분이 좋네요.

향후, ESP8266 을 이용하여 원격 조정이나 Web UI 를 통한 컨트롤도 가능하겠습니다.


모두 happy arudino~!


And

Hardware | 또다른 Magnetic Charging Cable 구매기

|

이 글은 진정한 USB 충전 케이블을 찾아가는 여정으로, 관련하여 약 1년 반전에 작성된 글이 있습니다.


* Hardware | Magnetic Charging Cable 을 구매해 보자

https://chocoball.tistory.com/entry/Hardware-buying-Magnetic-Charging-Cable




1. 여정의 시작


처음에 iPhone 충전 케이블을 교체하고자 아래 케이블을 구매해서 사용했습니다. 


* PZOZ usb cable for iphone cable Xs max Xr X 8 7 6 plus 6s 5 s plus ipad mini fast charging cables mobile phone charger cord data

https://www.aliexpress.com/item/PZOZ-USB-Cable-Charger-Data-Sync-2A-Fast-Charging-Cord-Adapter-For-iphone-6-6s-plus/32632635156.html



전류량도 충분하여 고속충전도 잘 되었었죠.

예전 사진이 있어 올려 봅니다.



집과 회사에 놔둘려고 2개를 한꺼번에 구입했었습니다.



포장은 잘 되어서 왔습니다.


케이블 자체에 섬유로 쌓여있고,

단자 부분이 질기면서 너무 딱딱하지 않은 플라스틱으로 되어 있어, 지금도 가끔 사용할 때 문제가 전혀 없습니다.



다만, 집안에 여러 형태의 USB 케이블들이 혼재되어 있는것이 너무 마음에 안들었습니다.

통일만이 살길이라고 생각했지요.


micro USB 로 전 USB 포트를 통일하고, iPhone 일 경우만 male adapter 를 이용하기로 했습니다.

밑의 사진처럼 micro USB 에다가 꼽아서 변형시키는 것이지요.



이 제품의 문제점은 어뎁터 부분이 길어지다 보니 지렛대 작용에 의해, 검은색 플라스틱 부분이 쉽게 부러져 버립니다.

한달도 안되어 두개가 부러져 버리다 보니, 나머지 하나도 버렸습니다. 이건 아니다...





2. 트렌드인 자석형


그 다음 사용된 것이 자석형 충전 케이블 입니다.


기기 부분에 먼저 자석형 단자를 꼽아 놓고, USB 쪽을 근처에 가져가면 알아서 "착" 하면서 붙는 제품이지요.

Kickstarter 에서 먼저 소개되면서 아류 제품들이 중국에서 쏟아져 나왔습니다.


그래서 먼저번 글에서 사용된, 자석식 충전 케이블로 한동안 잘 버텨왔습니다.

자세한 내용은 먼저번 글을 참고해 주세요.


* Hardware | Magnetic Charging Cable 을 구매해 보자

https://chocoball.tistory.com/entry/Hardware-buying-Magnetic-Charging-Cable


제품의 구매 링크는 아래 입니다.


* GARAS Magnetic Micro USB Cable Fast Charging Mobile Phone Magnet Micro USB Charging Cable For Xiaomi/Samsung/Huawei Micro USB

https://www.aliexpress.com/item/Magnet-Cable-For-Iphone-Android-Mobile-Phone-Magnetic-Cable-2IN1-Magnet-Mirco-USB-Cable-Fast-Charger/32804451742.html



이 제품의 문제점은, 충전할 때 단자부분이 너무 뜨거워진다는 것과 가끔 인식이 안되는 것이였습니다.

그럴때는 스마트폰에 꼽혀있는 부분을 뺀 다음 되돌려서 끼우면 되었습니다.

결국에 가서는 인식을 못하고 충전을 못하게 되었습니다. 고장난거죠. 2년을 못넘기네요.


그래서 새로운 제품을 찾게 됩니다.





3. 자석형의 두번째


인터넷 서핑하던 중에 평가 좋은 자석형을 발견하게 됩니다.


* Elough E04 Magnetic Charger USB Cable For iPhone Micro USB Type C Mobile Phone Cable Fast Charging Magnet Charger USB Wire Cord

- https://www.aliexpress.com/item/Elough-E04-Magnetic-Charger-USB-Cable-For-iPhone-Micro-USB-Type-C-Mobile-Phone-Cable-Fast/32847181845.html



요즘 많이 쓰이는 C Type 도 판매가 되고 있네요.



가족과 회사에 있던 제품을 모두 교환할 꺼라 여유롭게 구매합니다.

케이블 4개, iPhone 용 단자 여분 3개, micro USB 용 2개를 구입합니다.




아래는 은색입니다. 확실히 차이가 나죠?






4. 2줄


이 제품의 가장 큰 특징은 단자 접촉 부분이 두줄이라는 것입니다.



실상 연결될 때에는 저 두줄중 한줄만 사용하게끔 되어 있습니다.



자세히 보면 한쪽에만 금색 단자들이 늘어서 있습니다.

접촉 시킬 때에는 위아래 뒤집어서 붙여도 문제 없습니다.


iPhone 에 삽입되는 부분은 요로코롬 생겼습니다.



micro USB 부분에 삽입되는 단자 입니다.



삼성 휴대폰에 끼울 때, 좀 많이 빡빡하더군요.





5. 연결


실제로 충전이 잘 되는지 확인해 봅니다.

이미 iPhone / Android 폰에는 잘 동작되는거 확인 되었고, 이번에 새로 구입한 AirPods 를 가지고 추가 확인해 봤습니다.



AirPods 실리콘 케이스에 뚫린 구멍에 딱 맞는군요.

충전 케이블을 "착" 하고 붙이면 여유공간 없이 정확하게 결합됩니다. 완전 맞춤이네요.



이번 충전 케이블은 단자 부분에서 열도 거의 나지 않습니다.

효율 좋게 잘 만들어진것 같습니다.



잘 충전되고 있다는걸 확인할 수 있습니다.

완전 만족하면서 잘 사용하고 있습니다.


And

Hardware | Safecast bGeigie Nano 를 조립해 보자 - 1

|

1. 311 대지진




2011년 3월 11일, 가족과 일본에서 생활하던 그 날.

아이의 신학기가 시작한지 얼마 되지 않았을 때였다.


엄청난 흔들림.


옆에 있던 동료에게 "난 지진 detector 야. 진도를 알 수 있지" 라면서,

농담처럼 이건 3도인데... 한 4도정도 되려나? 이건 5도인데... 더 세지네!!!


20층 건물에서 8층에 근무했던 사무실에서 본능적으로 지갑과 휴대폰만 챙기고 밖으로 튀어 나갔다.


사무실 문을 벋어나 엘리베이터를 타려 했으나,

이미 차단막이 내려가 있고, 비상구로만 탈출할 수 있게 셔터들이 내려가 있었다.

순간 내가 어디에 와 있지 할 정도로 통로 구조가 바뀌어 있었다.


지진 알람이 발생 후, 자동으로 셔터가 내려간 것에 잠시 탄복하면서,

미로에 놓여 있는 쥐처럼 비상구를 향해 돌진했다.


사람들이 비상구를 이용하기 시작했고, 층을 내려갈 수록 사람들 수가 불어났다.

중간에 넘어지는 사람, 흐느끼면서 내려가는 사람, 과호흡으로 봉지를 물고 있는 사람...

모두 직감적으로 "이러다 죽을 수 있어" 라는 문장을 떠올리는 얼굴들이었다.


나도 그랬다.

"죽을 수 있겠지만, 그래도 살아 남아야겠어" 라는 본능이 머릿속에서 몸부림 치고 있었다.


일단 1층에 다다르자 조금 안도가 되었고,

만일 더 흔들리고 건물 붕괴의 위험이 발생하면 지하 주차장으로 내려갈 것이냐,

아니면 깨져서 떨어질 유리 파편을 피하면서, 근처 중학교까지 죽을 힘을 다해 뛰어갈 것이냐를 고민했다.


가장 큰 임팩트가 살짝 사그라들 때, 밖에 나가서 맞은편에서 짓고 있던 40층 건물을 보았다.

맙소사... 두개의 쌍둥이 건물이 바다 밑에 자라는 해조류처럼 흔들거렸다.





2. 탈출


대지진 발생 후, 바로 다음날인 3월 12일. 아직 큰 여진들이 들이닥치는 시기에 후쿠시마 원자력 발전소가 수소폭발을 일으켰다.

이 대지진은 이제 완전히 새로운 국면으로 들어섰다는 신호였다.



지진에 의한 공포가 이제는 피폭에 대한 공포로 바뀌었다.

그것도 원전 3기가 차례로 폭발을 잃으키면서 의심없는 사실로 받아들여졌다.


고민할 필요도 없이, 동경을 탈출해야 한다는 생각으로 귀결되었다.

거대한 탈출의 물줄기에서 가족 4명을 실어다줄 항공기 수배에 나섰으며,

대중교통이 끊긴 도로를 달려 우리 가족을 공항까지 이동시켜 줄 개인 택시 "나라시" 를 찾았다.


다행히 모두 수배가 되어, 대지진 발생 1주일만에 일본을 탈출했다.


동경시에서 나리따 공항까지 가는 고속도로... 도로 중간중간 부서진 부분들이 보였으며, 다니는 차가 거의 없었다.

그야말로 유령의 고속도로였다.




3. Safecast


여기서부터는 어투를 바꾸겠습니다. :-)


혼자 다시 동경으로 돌아온 뒤 알게된 것은, 당시 일본 전국을 휩쓸고 있었던 "방사능의 공포".


정부에서는 정보를 차단하고 있었고,

동경과 200Km 밖에 떨어져 있지 않은 후꾸시마는 동경의 먹거리를 책임지는 곡창지대인 동북지역의 한 곳으로,

방사능이 있다 하더라도 먹어서 동북아 지역 재건에 동참하자는 어처구니 없는 상황이 벌어지고 있었습니다.


이런 "방사능 공포" 의 불안을 해소하고자 사람들이 방사는 측정기를 너도나도 구매하려 했고,

평소 가격의 몇 배에서 몇 십배로 제품 가격이 뛰게 되었죠.

제대로 된 것을 구입하려면, 몇 십만원을 줘야 했습니다.


거기서 등장한 것이 이 제품,

Safecast 라는 단체에서 Pancake 센서를 채용한 제품을 cloud funding인 Kickstarter 에 공모합니다.


https://www.kickstarter.com/projects/seanbonner/safecast-x-kickstarter-geiger-counter



디자인, 휴대성, 사용된 LND 사의 고성능 7317 센서 모두는 너무 매력적이었습니다.

제품으로써 완벽에 가까워 보였으니까요.


참고로 LDN 7317 pancake 센서는 Alpha / Beta / Gamma 를 모두 측정할 수 있는 고성능 센서 입니다.


* LDN 7317

http://www.lndinc.com/products/geiger-mueller-tubes/7317/



또한 Safecast 는 측정한 자료를 인터넷 및 전용 app 에 공유하여 사람들로 하여금 방사능의 심각성을 알리고 있습니다.


* Safecast



이 어플을 통해서, 이 프로젝트에 참여한 사람들이 측정한 실측치를 확인할 수 있습니다.



일본 정부에서 공개하지 않은 데이터 들을 볼 수 있습니다.

후쿠시마 근처와 연결된 하천은 접근하지 말아야 할 장소가 명확합니다.




4. bGeigie Nano


Kickstarter 에서 공모한 제품을 너무 가지고 싶어서,

제작자에게 메일도 띄워 보고, ebay 에 나와 있는게 없나 그렇게 많이 찾아 헤맸습니다만 구할 수 없었습니다.


그러던 중, Safecast 에서 아래와 같은 제품을 발표합니다.


* bGeige Nano

https://shop.kithub.cc/collections/environmental-monitoring-kits/products/safecast-bgeigie-nano




미국내 세금 포함 655.5 USD !!! 미칠듯한 가격입니다. 오살라게 비싸네요.


평소 AliExpress 로 떄워왔던 저로서는 너무 괴로운 구매였습니다.

너무 하고싶은데 가격은 비싸고, 너무 하고싶은데 가격은 비싸고, 너무 하고싶은데 가격은 비싸고...


한국에 돌아와 버렸지만, 이 제품을 만들어 보고 측정에 동참하고 싶은 욕구는 사그라들지 않았습니다.

결국 오랜 고민 끝에 질렀습니다. 655.50 USD !!!





5. 도착


거진 2주만에 제품을 받았습니다.

이하 도착샷들 입니다.



이 로고를 보려고 정말 오래 기다렸습니다.



자잘한 부품이 있으니 애들이 집어 먹을 수 있다는 문구가 보입니다.



뚜껑을 열어 보면 꽉 차 있습니다.



조립 완성 후, 가지고 다닐 수 있게 버클 및 끈이 동봉되어 있습니다.



기판을 고정하는 볼트, 너트, 와셔 들 입니다.



전자 부품들은 뽁뽁이로 잘 쌓여 있습니다.



보호 케이스 입니다.

따로 Amazon 에서 구입할 수도 있습니다.


https://www.amazon.com/Waterproof-Case-Pelican-1010-Micro/dp/B001G23JZ4/ref=pd_sim_421_1



저에게 배달된 제품의 시리얼 넘버는 2981 인듯 합니다. 



납땜해야 하는 전자 부품들 입니다.



완성되면 붙이게 될 스티커도 있습니다.





6. 부품 확인


제품이 도착하면 누락이 없나 확인해 봐야겠죠?

Safecast 사이트에서 부품들을 확인할 수 있습니다.


SafecastbGeigieNanoManualandResources.pdf




FIN


여기까지 오는 과정이 6년이나 걸렸습니다.

일단 제품을 받고 나자, 좀 진이 빠진것도 있고 마음을 추스리고 만들고 싶어서 약 한달동안 묵히게 됩니다.


"Safecast bGeigie Nano 를 조립해 보자 - 2" 에서 하나씩 조립해 가게 됩니다.


http://chocoball.tistory.com/entry/Hardware-Safecast-bGeigie-Nano-2




Update - 20201216


참고를 위해 첨부.





And

Hardware | Magnetic Charging Cable 을 구매해 보자

|

1. Lightning Charging Cable


iPhone 충전에 사용되는 케이블은 조금 쓰다보면 커넥터쪽이 말리면서 부스러집니다.

그러면서 단선이 생기지요. 요렇게...



Apple 정품으로 주는 번들 케이블이 매번 이정도이면, 뭔가 대책을 만들어야 할 터인데,

맨날 재구매를 하게 만듭니다.



아니면 써드파티 제품을 구매하게 하면서 생태계 공헌?




2. 자석 커넥터


언제부터인가 이 단자의 문제를 해결하기 위해,

아예 단자를 꼽아 놓고 자석으로 붙였다 띠었다 할 수 있도록 만든 아이디어 제품이 나오기 시작했습니다.


제가 자주가는 Kickstarter 의 클라우드 펀딩 사이트에는 2년 전부터 나오기 시작한것 같아요.

지금도 많은 비슷한 제품이 올라와 있네요.



인기가 좋은 제품을 우리 대상인들이 가만 놔둘리가 없겠죠?




3. AliExpress


작년까지만 해도 10 USD 이상으로 꽤 비쌌던 Magnetic Charging Cable 들이 5 USD 아래로 떨어졌습니다.

구매 적기인 듯 합니다. 마침 "정품" 충전 케이블도 망가졌구요. (위 사진)


AliExpress 에서 검색해 보면, 대표적으로 두가지 제품이 나옵니다.

제조사는 동일한 Garas.


케이블 보호를 위해 섬유로 덮혀있는 좋아보이는 제품이 3.54 USD 로 더 싸네요.


* 3.54 USD

https://ko.aliexpress.com/item/Magnet-Cable-For-Iphone-Android-Mobile-Phone-Magnetic-Cable-2IN1-Magnet-Mirco-USB-Cable-Fast-Charger/32804451742.html



위의 제품을 색깔별로 3개를 구입하고,

혹시 모를 차이점을 알고 싶어서, 여분 1개를 아래 비싼 제품으로 주문했습니다.


* 4.66 USD

https://ko.aliexpress.com/item/USB-Type-C-IOS-Android-3IN1-Magnetic-Cable-Type-C-USB-C-Fast-Charge-Adapter-Cable/32803550433.html





4. 도착


한 3주 걸려서 도착하였습니다.

포장은 안쪽에 뽁뽁이 봉투로 왔습니다.


자석부분이 좀 예민해 보이긴 하지만, 무난한 포장입니다.



섬유 케이블로 덮혀있는 제품은, 블링블링 금색/은색/검정으로 하였습니다.



가장 무난한 은색 케이블을 뜯어 봤어요.



Lightning 단자에 붙여넣고, 자석으로 연결되는 부분입니다.



자석이 네오디뮴 (Neodymium) 인듯 합니다. 엄청 잘 붙어요.



내구성은 조금 써봐야 알것 같습니다.

각 라인들은 저렇게 연결되게 해 놨습니다.


각 선을 눌러보면 쿠션처럼 들어가는 것을 보면, 안에 스프링이 들어있나 봅니다.



섬유 케이블로 쌓여있지 않은, "비싼" 버전의 케이블 입니다.

더 비싼 이유는 찾지 못하였습니다.

아마도 예전에 올린 제품으로 가격변동 없이 그대로 판매되고 있던것 같아요. (한놈만 걸려라?)


새로 구매하실꺼면, 보다 저렴하면서 섬유 케이블로 둘러쌓인 버전으로 구매하세요.



섬유 케이블 버전 한곳에 모아서 샷.





5. 구동 영상


실제로 충전한 동영상 입니다.



이미 충전이 완료되어 있으면, 충전 ready 상태의 불빛이 들어왔다가,

다시 조금 사용되면 충전 불빛 (좀 약한) 이 들어왔다가, 왔다갔다 합니다.


논리회로가 좀 약하군요.


충전을 계속해야 하는 경우는, ready 불빛이 충전 불빛으로 변합니다.





FIN


이하 총평입니다.


1. 자석으로 찰싹 붙고 떨어지는 구성으로 너무 너무 편하고 좋음.

2. 충전중이 아닐때에는 ready 상태인데, 무조건 고휘도 LED가 점등되어 있어 눈이 아픔. (저녁에 방 후레쉬 대용)

3. 완충 후, 불빛이 ready / 충전중 상태의 불빛으로 계속 왔다갔다 함.

4. 가격이 저렴하니, 여러군데 뿌려놓고 다니기 편함.

5. 자주 쓰다보면 급하게 분리시켰는데, 나중에 알고보면 단자까지 빠져있슴 !!!


좀 마무리가 아쉽지만, 이 가격에 막 쓰기에는 적당할것 같아요.


또한, iOS 11 로 업데이트하면 3rd party 제품은 동작 안한다 했는데, 잘 동작합니다. :-)

And

Hardware | Arduino 로 Servo 를 움직여 보자

|

1. Servo

보통 전원만 들어오면 한쪽으로만 도는 모터도 있지만,

무선 조정 자동차 등에 들어가는 전자 제어식 모터가 있습니다.

이 모터는 각도 및 방향을 지정할 수 있습니다.


이런 모터 중 하나가 Servo 입니다.


제가 가지고 있는 것은 따로 구입한 것은 아니고,

Kickstarter 라는 클라우드 펀딩에서 Gimbal 장비로 소개된 프로젝트에 투자하여 받은 장비에 있는 것입니다.


아래는 그 Kickstarter 프로젝트 소개 입니다.


Gimbal for your Lights Camera or Action

https://www.kickstarter.com/projects/2035152529/gimbal-for-your-lights-camera-or-action?ref=user_menu


요런겁니다.



카메라나 전등을 붙이고 원격에서 그 방향을 조절할 수 있는 장치 입니다.

단, 받은 장비는 Hardware 만 있고 Software 는 자기가 만들어야 하는 제품입니다.




2. 부품

Gimbal 에 들어가는 부품은 Futaba 의 다음 두개 입니다.


- S3010


- S3114



이제 이런 부품의 생산도 중국이네요.




3. Layout

Pin 배열입니다.

   Servo  | Arduino Nano
-------------------------
   Black  |     GND
    Red   |     5V
   White  |     D9
-------------------------


아래와 같이 연결하면 됩니다.





4. Source

Arduino IDE 에서는 "<Servo.h>" 라는 라이브러리를 제공해 주고 있습니다.

그래서 control pin 정보와 움직이고 싶은 각도만 입력하면 그대로 동작해요.


참 편하죠?


#include "Servo.h"
 
Servo myservo; // create servo object to control a servo
 
void setup()
{
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}
    
void loop(){   
  myservo.write(0);     // sets the servo at 0 degree position
  delay(1000);          // waits for the servo to get there
  myservo.write(90);    // sets the servo at 90 degree position
  delay(1000);          // waits for the servo to get there
  myservo.write(180);   // sets the servo at 180 degree position
  delay(1000);          // waits for the servo to get there
  myservo.write(90);    // sets the servo at 90 degree position
  delay(1000);          // waits for the servo to get there
}





5. 결과

소스를 올리고 전원을 넣으면 다음과 같이 움직입니다.



감시 카메라를 올리고 사용하려면 좀더 디테일한 움직임을 보여야 하는데,

일단 동작만 확인합니다.


Servo도 step motor 의 일종일 터인데,

지원 라이브러리로 편하게 동작시킬 수 있는게 좋네요.




FIN

좀더 연구해봐야 겠습니다.

And

Life | 진공 청소기용 빨대 브러쉬 만들어 보자

|

1. Kickstarter

자주 가는 클라우드 펀딩 사이트인 Kickstarter 에서 진공 청소기 끝에 빨대를 달아 만든 브러쉬가 나온 적이 있습니다.


https://www.kickstarter.com/projects/885698542/dusty-brush-the-new-way-to-clean-0



컨셉은 아래 그림처럼, 끝단을 빨대같은 모양으로 만들어

자유 자재로 변화하게 만든 제품이었습니다.


이렇게 되면 먼지가 많이 쌓이는 구석진 공간이나 창틀 밑 등의, 먼지/쓰레기가 잘 쌓이는 곳도 쉽게 청소할 수 있습니다.


일반적으로 창틀 청소해 보면, 빨아들이는 바람이 구석까지 도달하지 못하여,

손으로 주위를 감싸 줘야만 겨우 조금 빨아들이는 상황을 연출할 수 있습니다. 



정말 좋은 아이디어가 아닐 수 없습니다.

한번 시험해 보고 싶어졌습니다.




2. Star 다방

제가 자주 가는 마음의 고향... Star 다방 에서 조금씩 넉넉하게 가져왔던 빨대를 이용하면 좋을것 같습니다.

이 자리를 빌어 감사의 마음을 밝힙니다.


보통의 빨대도 있지만,

구멍이 큰, 두꺼운 빨대도 있습니다.


작은 구멍만으로는 막힐 수도 있고, 큰 알갱이를 빨아들이기 위해서는 간간히 섞어 주는게 좋을 듯 합니다.




3. 만들어서 사용해 보기

그까이꺼 뚝딱 만들어 봅니다.

큰 빨대를 가운데에 놓아주고 주위를 작은 구멍의 빨대로 둘러 싸줬습니다.

그리고 검은 테이프로 둘둘 감아 줬습니다.


청소기에 결합 시, 조금 뻑뻑하게 들어가게 해야 바람이 옆으로 세지 않습니다.



역시 몇번 사용했더니만 뭉툭해져 버렸습니다.

각도를 줘야 협소한 공간도 들어갈 수 있으니, 45도로 잘라 줍니다.


구석진 코너나 밤문 턱 주위 등, 먼지가 살 쌓이지만 진공청소기가 접근할 수 없는 곳에 사용해 보니...


"따봉 !!!"

"언빌리버블 !!!"


딱 기대하던 효과가 나오네요. 정말 좋은 아이디어 맞습니다.


이제 이 집에 이사와서 무려 5년만에 처음으로 베란다 창틀을 청소해 봅니다.



밖에서 들어오지 못한 먼지 (흙 ?) 이 굳어서 원래 색이 보이지도 않습니다.

거기에 벌래들이 겨우내 들어와서 겨울잠을 자다 죽은 사체도 있네요.


일단 창틀에 스크레치를 내지 않는 일회용 나무 젓가락으로 가능한 긁어 냅니다.


그리고 드더이 빨아들여 봅니다.

끝단의 45도 덕에 쏙 들어가네요.



가운데 부분에 흙더미와 벌레 사체가 쌓여 있었는데,

한번의 훔침으로 싹 없어졌습니다. 효과 짱 !!!



긁어지지 않은 때는 휴지로 덮고 락스로 뿌려서 불린 다음 닦아 내면 됩니다.



다른 창틀도 작업하고 오늘은 이제 그만. 쉬어야 겠습니다.

진공 청소기로 구석을 직접 빨아들이는 효과는 짱 입니다.




FIN

좀더 견고하게 다시한번 만들어서 두루두루 쓰고 싶네요.

And
prev | 1 | next