주문 제작 하였던 브라켓이 도착하였다. 재질은 철이 아니고 알루미늄이라 그런지 상당히 가볍고 잘못하면 휘어질 것 같은 느낌이 든다. 제작하고 수령하기 까지 거의 3주라는 긴 시간이 걸렸다. 원래 이렇게 까지 걸리진 않는데 원인은 가공 엔지니어로 부터 온 메일을 확인하지 않고 3일이나 흐른 뒤에 답장을 하였고, 연말 기간도 걸려서 늦어져 버렸다. BC-250 카드에 기존 브라켓을 제거하고 새로 설계한 브라켓을 달아보니 아주 잘 맞았다. 버튼도 잘 눌리고 이더넷, USB, DP 포트 모두 사용에 문제가 없다. 이렇게 보고 나서 알아차린 부분이지만 하단 쪽에 고정 다리를 추가한다는 것을 빼먹었다. 다시 만드는 건 금액도 만만치 않았기 때문에 수정해서 발주를 다시 넣지는 않을 예정이고 튼튼하게 고정하기 위해 다른 솔루션을 찾아 보려고 한다. 사실 브라켓을 설계한 건 설치 문제도 있지만 완성된 시스템이 외관상으로 봤을 때 튀는 부분 없이 완성도가 높아 보이길 원했기 때문이다. 이렇게 보니 모양도 그럴싸하고 원래 이런 제품일지도 모른다는 착각도 든다. 타공 모양도 벌집 모양으로 했으면 더 완벽했겠지만 만드는 동안에는 그런 생각 없이 만들었기 때문에 큰 후회는 없다. 장착 되어있던 USB 허브 보드 대신 사용될 PCB도 도착하였다. 기존 허브 보드와 비교하자면 사이즈만 많이 커졌지만 브라켓과 호환이 되는지 확인하였고 장착하는 데는 문제가 없을 것으로 예상하고 있다. 지금 보니 오디오 앰프가 꼭 있어야 했는지 살짝 욕심이 과했다는 생각도 든다. 조립에 사용될 부품들은 아직 수급 중이며 차근차근 조립을 해 나갈 예정이다. 먼저 설계했던 PSU 전원 컨트롤 보드는 다음과 같이 장착 되었고 주요 동작에는 큰 이상이 없으나 몇 가지 수정 사항이 생겼다. 수정 사항은 허브 보드을 새로 설계하면서 발생한 것으로 두 보드 간에 별도의 통신 선이 연결된다. 사실 이렇게 기능을 분리할 필요는 없었는데 첫 번째로 만든 보드에서 하드웨어 적으로 누락된 기능이 있기 때문에 허...
Get link
Facebook
X
Pinterest
Email
Other Apps
[Arduino] - 시리얼 통신을 이용한 디스플레이 오토피벗 구현 (피버시노 v1.0)
Get link
Facebook
X
Pinterest
Email
Other Apps
-
시작하며
인텔 그래픽을 사용하는 컴퓨터는 ctrl + alt + 방향키로 디스플레이 화면을 돌릴 수 있다.
하지만 지포스 같은 외장그래픽 사용자는 컨트롤 패널에서 직접 설정해주어야만 가능하다.
모니터를 물리적으로 회전시키면 디스플레이 화면도 회전시켜주는 무언가가 필요하다.
그래서 생각한 것이 피버시노 프로젝트
이 프로젝트의 목적은 피벗 모니터의 디스플레이 화면을 자동으로 회전 시키는 것에 있다.
물론 시중에 이러한 오토피벗 기능을 내장한 모니터가 판매되고 있지만 전문가용이거나 대부분 고가의 제품들이다. 이 장비를 이용하면 오토피벗 기능이 없는 저렴한 모니터에서 추가적인 설정 없이 모니터를 돌리기만 해도 아두이노가 대신 디스플레이를 회전시켜준다.
아두이노, 가속도센서, 파이썬 만으로 구현 할 수 있으며 소형화도 가능하다.
하드웨어
이 프로젝트에서 사용한 가속도 센서는 MMA7361이다.
사용방법이 궁금하다면 라이브러리에 예제가 포함되어있다.
아두이노 우노에 적층 할 수 있도록 만들었다.
각 핀의 이름은 다음과 같다.
5V, 3V3, GND, g-Selec(10pin), selfTest(12pin)
x(A0pin), y(A1pin), z(A2pin), Sleep(13pin), 0g(11pin),
전원은 5V를 사용하였다.
본인이 사용할 핀들만 연결해주어도 된다.
아두이노 코드
이 프로그램은 현재 상태를 가속도 센서로 감지하여 변화하였을때 시리얼 값을 출력한다.
작동원리는 P[0]에는 과거의 값이 P[1]에는현재의 값이 지속적으로 저장된다.
이 두 값을 아두이노가 반복적으로 비교 하여 시리얼 신호를 보낼지 말지를 결정한다.
이러한 구조를 가지게 된 이유는 상태가 변화하지 않고 있을 때에도 신호를 보내게 되면 수신측(컴퓨터)에서 지속적으로 처리를 해주어야 하기 때문에 자원의 낭비가 발생하게된다.
자원의 낭비는 곧 성능 하락으로 이어지기 때문에 필요한 상황에서만 작동하도록 해야한다.
예를 들어 현재 y값을 RotateMonitor 함수에 대입하면 상태에 따라 결과 값이 나온다.
그 값을 "Idle" 이라 하자
1. "Idle" 은 P[0]에 저장이 된다.
2. 현재 i = 0이기 때문에 P[i]와 P[0]은 둘다 "Idle", 조건문 실행 X
3. P[1]에 현재 상태 값을 저장하고, i = 1이 된다.
이 작업을 P[i]와 P[0]이 다른 상태 값을 가질때 까지 반복한다.
4. 모니터를 왼쪽으로 회전시킨다.
5. 현재 i 값은 1이고 P[1]의 상태 값은 "Idle" 이다.
하지만 현재 모니터를 왼쪽으로 회전시켰기 때문에 P[0]의 상태 값은 "Left"가 된다.
6. P[i]와 P[0]의 상태 값이 서로 다르기 때문에 조건문이 실행된다.
다시 i = 0이 된다.
7. 상태 값이 시리얼 포트로 상태 값을 전송된다.
위의 과정을 반복하는 프로그램이며, 이 후의 과정은 컴퓨터에서 진행된다.
#include<AcceleroMMA7361.h>
#define commandLine_OPEN "Rotate <"
#define commandLine_CLOSE ">"
AcceleroMMA7361 accelero;
constchar* P[2];
constchar* RotateMonitor(int x);
int y;
int i =0;
void setup()
{
Serial.begin(9600);
accelero.begin(13, 12, 11, 10, A0, A1, A2); //(Sleep, selpTest, 0g, g-Select, x, y, z
accelero.setARefVoltage(5); //sets the AREF voltage to 5V
accelero.setSensitivity(LOW); //sets the sensitivity
다 되는데 화면만 안돌아가네여 display를 깔았는데 32랑 64가 있더라고여 전 c드라이브에 Program Files 에 넣어서 "C:\Program Files\display.exe /rotate:" + Monitor_ROTATE[direction 이렇게 썼는데 안되네요
파이썬 프로그램에서 아두이노와 시리얼 통신이 정상적으로 이루어지는지 확인해보세요. 경로가 정확하다면 display.exe 실행 부분이 문제가 아니라 통신문제일 수도 있습니다. 그리고 제 소스코드를 그대로 사용하셨다면 신경쓰셔야 할 변수는 display.exe 프로그램 경로와 COM 포트 넘버입니다. 참고하세요! :7
한국에 패스 오브 엑자일이 상륙하게 되면서 많은 사람들이 관심을 가지고 있다. 패스 오브 엑자일은 디아블로3가 기대에 미치지 못했던 플레이어들 사이에서는 디아블로2의 정신적 후속작으로 인정받고 있는 핵슬게임이다. 아직은 프리오픈 기간이지만 한국 서버가 생기면서 한국 플레이어들이 많아지고있다. 만약PC방과 같은 곳에서 한국 서버로 접속이 안되는 경우 내 문서 > my games 에 있는 Path of Exile 폴더를 지우고 실행하면된다. 채팅장에는 무수한 한글이 보이고 여러 질문들이 올라오는데 바로 아이템 획득 키인 F 키 이다. "아이템 획득키 어떻게 사용하는건가요?", "아이템이 먹어지지 않아요!", "아이템 어떻게 주워요?" "아이템 링크 어떻게 하나요?" 등 의 질문이 많이보인다. 사실 디아블로를 해본 사람들이라면 키 세팅도 크게 다르지 않기 때문에 적응하기에 쉽지만 그렇지 않은사람들도 있는것으로 보인다. 드롭된 아이템들을 확인할 수 있는 방법에는 크게 두 가지로 Alt 키 와 Z 키 가 있다. 우선 Alt 키 를 눌러 푸쉬온 방식으로 누르고 있을때만 드롭된 아이템들을 확인 하는 방법과 Z 키 를 이용해 푸쉬락 방식으로 한번 누르면 다음에 누를때 까지 강조효과가 지속되어 떨어져있는 아이템이나 오브젝트를 확인할 수 있는방법이 있다. 여기까지는 게임을 처음 접하는 사람들도 문제없이 인지하고 있다. 아이템 링크의 경우 패스 오브 엑자일에서는 Ctrl + Alt 를 누른상태에서 원하는 아이템을 클릭하면 채팅창에 올릴 수 있다. # 그럼 F 키는 어떻게 사용하나? 패스 오브 엑자일의 입력 설정 에서 확인해보면 F 키는 아이템 획득 키로 지정이 되어있다. 아마 이 옵션을 본 대다수의 플레이어가 F 키를 누르면 아이템이 인벤토리로 들어올 것으로 생각하는 것 같다. 이렇게 생각하는 원인은 요즘 온라인 게임들은 아주 편리하게 아이...
고장난 맥북의 패널을 모니터로 쓰기 위해 뜯어냈다. 분해하면서 대학시절 동거동락하던 추억들이 떠올랐지만 앞으로의 일 만 생각하기로 마음잡고 분해했다. 물론 애플 제품을 분해하는건 약간의 용기가 필요하다. 지금까지 분해해본 노트북 중에 커넥터가 가장 오밀 조밀하고 나사도 엄청 많고 심지어 크기도 너무 작다. 거기다 비싸기까지 하다. 이런 점들이 애플 제품의 분해를 망설이게 만드는 부분이다. 분해 디스플레이를 완전이 뜯어내는건 처음이었기 때문에 디스플레이 교체 영상 을 참고 했다. 히팅건은 없고 대신 가스 인두기를 사용해 접착 부분을 느슨하게 만들고 기타 피크를 밀어넣으니 쉽게 제거 할 수 있었다. 모니터 부분에서 제거 할 부분은 카메라와 안테나 케이블 그리고 lvds 케이블이다. 이 곳의 나사들은 매우 작고 연약하기 때문에 힘 조절을 잘 해야 한다. 디스플레이를 분해한 이유는 패널의 명칭과 lvds 커넥터를 확인하기 위함이였다. 맥북 프로 15-인치, Mid 2010 의 패널 이름은 LP154WP4-TLA1이고 커넥터는 20474-040E-12 이다. 난관의 시작 여기서 부터가 난관이였다. 국내에서 해당 패널에 맞는 AD보드와 케이블을 세트로 구매하려고 했지만 커넥터 핀배열을 직접 해야한다는 답변만 받을 수 있었다. 어쩔수 없이 직접 해보려고 데이타 시트도 찾고 핀배열도 찾아보니 해볼만 한 것 처럼 보였다. 그랬는데..아무리 봐도 이상하다. 내가 이해 못하는건가? 분명 데이타 시트에는 40핀이라 되어있는데 연결되어있는 선들은 40가닥이 아니네? 그라운드가 묶여있는건가? 그리고 어디가 1번이라는 건지 생각 할 수록 혼란스러웠다. 이 후에 케이블을 잘라보고나서야 이해 할 수 있었다. 케이블을 자세히 보면 다른 선들보다 두꺼운 선들이 있다. 그 녀석들의 피복을 벗겨보면 안쪽에 더 작은 선들이 두 가닥이 나온다. 이 두꺼운 선들은 배열상 데이터선으로 보인다. 두 가닥 정도 작업하다가...
지난주 부터 흙 사육을 시작했다. 짱구개미 군체의 성장은 어느순간부터 가속도가 붙은 것 처럼 불어나기 시작했다. 사육장을 계속 만들어서 붙여주었지만 먹이탐사장 까지 넘어온 개미들은 새로 붙어준 사육장으로 좀 처럼 들어가려 하지 않았다. 사용 패턴으로 보니 이미 점령한 먹이 탐사장을 확장된 집의 일부로 여기고 새로 붙여준 사육장을 쓰레기장 정도로 여기는것 같았다. 첫 사육장은 초경 석고를 사용해서 만들었다. 만드는 방법은 어렵지 않다. 먼저 적당한 틀을 구해서 내부에 지점토로 개미굴 모양을 잡고 그위로 잘 배합한 초경 석고 반죽 물을 부어주면 된다. 아무리 초경 석고라해도 물이 많이들어가면 물러지니 주의가 필요하다. 석고 사육장이 회색인 이유는 따로 색칠을 한건 아니고 만들때 약간의 숯 가루 파우더를 섞어서 시멘트 느낌을 주려고 했다. 숯 가루가 제대로 섞이지 않아서 얼룩이 좀 생겼지만 나름대로 멋이라고 생각했다. 취향으로 넣은거니 반드시 넣을 필요는 없다. 그러나 이 집은 곳 폐기하였다. 사육장을 담은 틀이 내구성이 약한것도 있었지만 석고가 굳을 때 팽창해서 그런지 깨진부분이 있었던것 같고 짱구 개미들이 조금씩 그 틈에 씨앗을 쑤셔 넣으면서 조금씩 벌려가며 깨진 틈을 공략해 탈출을 하기 시작한것이다. 그리고 작년 초 두 번째 사육장을 만들어주었다. 이 사육장은 튼튼하고 신뢰도가 높아 가장 오랜기간 사용한 석고 사육장이며, 흙 사육장을 사용하기 전까지 동일한 방식으로 여러번 만들어서 집을 확장 할 때 사용하였다. 위 사진은 개미들이 가득하지만 처음에 이 사육장으로 이사 할 때 까지만 해도 이렇게 많지는 않았다. 마찬가지록 초경 석고와 참 숯 가루를 섞어서 만든 사육장으로 락앤락 반찬통을 틀로 이용해 만들었다. 사진에 보면 적색 투명 아크릴 판을 나사로 고정 했는데 석고에 나사를 직접 체결한건 아니고 안에 육각 스페이서를 먼저 넣고 석고를 부어서 고정 시켰기 때문에 아크릴이 튼튼하게 빈틈없이 고정이 되었다. 측면에는 10mm 드릴 비트를 사용...
이게 연결한 핀을 찾을수없다고 뜨는데요?
ReplyDelete연결된 핀을 확인해보세요. :7
Delete다 되는데 화면만 안돌아가네여 display를 깔았는데 32랑 64가 있더라고여 전 c드라이브에 Program Files 에 넣어서 "C:\Program Files\display.exe /rotate:" + Monitor_ROTATE[direction 이렇게 썼는데 안되네요
ReplyDelete파이썬 프로그램에서 아두이노와 시리얼 통신이 정상적으로 이루어지는지 확인해보세요. 경로가 정확하다면 display.exe 실행 부분이 문제가 아니라 통신문제일 수도 있습니다.
Delete그리고 제 소스코드를 그대로 사용하셨다면 신경쓰셔야 할 변수는 display.exe 프로그램 경로와 COM 포트 넘버입니다.
참고하세요! :7
This comment has been removed by the author.
Delete멋지십니다. 저는 안드로이드폰 Dock에 있는 HDMI Output 단자를 이용해 오래된 모니터에 연결해서 음악을 듣는(보는) 용도로 사용하는데 당연히 모니터는 피벗이 안됩니다. 이 경우는 어떤방식으로 구현이 가능할까요? 역시 아두이노로 가능할까요?
ReplyDelete