Posts

Showing posts from May, 2016

ASRock BC-250 보드 RAZER CORE X CHROMA 에 설치하기 4

RAZER CORE X CHROMA 에 있는 12V 전원 을 사용하는 허브 보드를 설계중이다. 새로 설계되는 허브에는 4개의 USB 2.0 포트, 이더넷 포트를 통한 오디오 출력, 오디오 엠프 회로, 전원 감지 및 오디오 엠프 컨트롤을 위한 MCU 가 포함되어있다. 전원 소스는 12V 와 5VSB 를 사용하며, MCU 만 5VSB 를 사용하고 나머지 장치들은 12V 를 사용하도록 설계하였다. 보드 고정의 경우 RAZER CORE X CHROMA 에 장착 되어있던 PCIE 허브 카드의 브라켓을 그대로 사용할수 있도록 설계하였다. 핀 헤더를 통해 BC-250 의 USB 2.0 포트에 납땜하여 사용할 목적으로 설계 되었다. USB 2.0 포트 하나를 희생해서 사용한다. USB 허브 전원은 BC-250 에서 가져오지 않고 내부 전원 회로에서 컨버팅 된 5V3A 전원을 커런트 리미트로 제한하여 사용하도록 설계하였다. 그리고 이 보드에는 BC-250 전원이 꺼졌는지 감지하여 먼저 제작 하였던 PSU 컨트롤러로 신호를 보내주는 회로가 설계되어 지난번에 우려 했던 PSU 가 꺼지지 못하는 상황을 방지 할 수 있다.  오디오 엠프를 넣은 것은 개인적인 욕심인데 스피커를 내장하기 위함이다. 엠프를 넣지 않았다면 사이즈도 더 작아지고 설계도 많이 쉬웠을 것이다. 가장 큰 걸림돌은 USB 포트와 이더넷 포트의 위치를 바꿀 수 없다는 것 이다. 아직 수정해야 할 부분이 많아서 먼저 설계했던 브라켓이 오기 전까지는 설계를 확정 할 수 없다.

Bezier Curve 베지어 곡선 구현

Image
베지어 곡선 typedef struct { float x, y; } point;  CurvePoint.x = ControlPoints[0].x * (1.0 - t) * (1.0 - t) * (1.0 - t)   + ControlPoints[1].x * 3.0 * t * (1.0 - t) * (1.0 - t)   + ControlPoints[2].x * 3.0 * t * t * (1.0 -t )   + ControlPoints[3].x * t * t * t;  CurvePoint.y = ControlPoints[0].y * (1.0 - t) * (1.0 - t) * (1.0 - t)   + ControlPoints[1].y * 3.0 * t * (1.0 - t) * (1.0 - t)   + ControlPoints[2].y * 3.0 * t * t * (1.0 - t)   + ControlPoints[3].y * t * t * t; point 구조체 배열을 제어점 ControlPoints로 부터 얻어낸 곡선의 점들로 채우는 함수가 필요하며, 이함수의 호출에는 충분한 메모리가 할당되어야한다. 메모리가 부족하면 정상적으로 출력이 되지 않는다. ex)ControlPoints = (point *)malloc(sizeof(point)*n);       n은 점의 개수로 생각하면된다. 500정도면 어느정도 봐줄만한 곡선이 그려진다. ControlPoints[0]은 시작점 (P0), ControlPoints[1]은 첫번째 제어점 (P1) ControlPoints[2]는 두번째 제어점 (P2), ControlPoints[3]은 끝점 (P3) t는 매개변수로, 0 ≤ t ≤ 1 사이값을 갖는다. 0 ≤ i < n, delta = 1.0/...

Popular posts from this blog

[POE] - 패스 오브 엑자일 획득키 F 의 사용법 (Path of Exile)

[AD보드] - 맥북 패널을 모니터로 만들기 ( LP154WP4-TLA1 )

[Arduino] - HC-06를 이용해 PC 와 Arduino 블루투스 연결