Posts

Showing posts with the label Awesome Stuff

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

주문 제작 하였던 브라켓이 도착하였다.  재질은 철이 아니고 알루미늄이라 그런지 상당히 가볍고 잘못하면 휘어질 것 같은 느낌이 든다. 제작하고 수령하기 까지 거의 3주라는 긴 시간이 걸렸다. 원래 이렇게 까지 걸리진 않는데 원인은 가공 엔지니어로 부터 온 메일을 확인하지 않고 3일이나 흐른 뒤에 답장을 하였고, 연말 기간도 걸려서 늦어져 버렸다. BC-250 카드에 기존 브라켓을 제거하고 새로 설계한 브라켓을 달아보니 아주 잘 맞았다. 버튼도 잘 눌리고 이더넷, USB, DP 포트 모두 사용에 문제가 없다. 이렇게 보고 나서 알아차린 부분이지만 하단 쪽에 고정 다리를 추가한다는 것을 빼먹었다. 다시 만드는 건 금액도 만만치 않았기 때문에 수정해서 발주를 다시 넣지는 않을 예정이고 튼튼하게 고정하기 위해 다른 솔루션을 찾아 보려고 한다. 사실 브라켓을 설계한 건 설치 문제도 있지만 완성된 시스템이 외관상으로 봤을 때 튀는 부분 없이 완성도가 높아 보이길 원했기 때문이다. 이렇게 보니 모양도 그럴싸하고 원래 이런 제품일지도 모른다는 착각도 든다. 타공 모양도 벌집 모양으로 했으면 더 완벽했겠지만 만드는 동안에는 그런 생각 없이 만들었기 때문에 큰 후회는 없다. 장착 되어있던 USB 허브 보드 대신 사용될 PCB도 도착하였다. 기존 허브 보드와 비교하자면 사이즈만 많이 커졌지만 브라켓과 호환이 되는지 확인하였고 장착하는 데는 문제가 없을 것으로 예상하고 있다.  지금 보니 오디오 앰프가 꼭 있어야 했는지 살짝 욕심이 과했다는 생각도 든다. 조립에 사용될 부품들은 아직 수급 중이며 차근차근 조립을 해 나갈 예정이다. 먼저 설계했던 PSU 전원 컨트롤 보드는 다음과 같이 장착 되었고 주요 동작에는 큰 이상이 없으나 몇 가지 수정 사항이 생겼다. 수정 사항은 허브 보드을 새로 설계하면서 발생한 것으로 두 보드 간에 별도의 통신 선이 연결된다. 사실 이렇게 기능을 분리할 필요는 없었는데 첫 번째로 만든 보드에서 하드웨어 적으로 누락된 기능이 있기 때문에 허...

ATmega 시리즈를 위한 Standalone AVR Programmer

Image
예전에 제품 설계에 ATmega328PB 를 사용해야 했었는데 아쉽게도 사용하던 펌웨어 다운로드 장비에서 PB 제품군을 지원하지 않았다. 업체에 문의도 넣었지만 업무가 많은지 업데이트는 없었다. 이미 스탠드얼론 프로그래머에 익숙해졌기 때문에 일반적인 AVR ISP 프로그래머는 불편해서 사용할 수 없는 노릇이었다. 사실 AVR 에 적용 가능한 스탠드얼론 프로그래머 프로젝트는 많기 때문에 만드는 건 어렵지 않다. 문제는 성능인데 기존에 사용하던 제품은 MCU에 매우 빠른 속도로 펌웨어를 다운 받을 수 있었기 때문이다. 지금 소개하는 장치는 그렇게 빠른 속도는 낼 수 없지만 저렴하게 만들 수 있다는 것에 감사한다. IC 는 ATmega328P 를 사용하였고 microSD 통신에 로직 컨버터로 74HC4050 을 사용하였다. ATmega328P 의 D2 에 연결된 택트 버튼을 누르면 프로그래밍이 시작되고 SD 카드로 부터 데이터를 읽어올 때 택트 버튼에 있는 LED 로 표시하도록 하였다. 타겟 장치로 연결되는 ISP 포트의 경우 리산테크의 10 to 6 케이블을 사용할 것 이기 때문에 그대로 만들어준다. 타겟 장치로의 ISP 연결은 D5~D8을 사용하도록 했다.  그리고 칩셋의 ISP 를 다른 기능으로 사용하는 설계는 ISP 프로그래머 기기에서 에러를 출력하는 경우가 있기 때문에 가능하다면 임시로 회로를 비활성 할 수 있는 기능을 넣거나 사전에 프로그램을 다운받는 것이 좋다. 자! 40mm x 50mm 라는 매우 컴팩트한 사이즈의 AVR 프로그래머 가 만들어졌다. SD 카드에 저장된 데이터를 원 버튼으로 타겟 장치의 전원이나 USB 로 입력된 전원 소스로 펌웨어를 쓸 수 있다. 위 영상은 간단한 동작 시연 영상으로 디지털 핀의 LED를 하나씩 깜빡이는 간단한 예제를 업로드 하는 영상이다. 펌웨어 기록 프로세스에서 검증 단계를 제외하면 다운로드 프로세스 시간을 단축 할 수 있다. AnnaJinK/AVR_FLASHER (github.com)

Raspberry Pi Zero W/2W - USB OTG + mini HDMI 어댑터 만들기 1

Image
사진은 Waveshare의 제품이다. Aliexpress에서도 이와 같은 제품을 많이 찾아 볼 수 있다. 이번에는 요 녀석을 만들어볼 생각이다. 잘만 활용하면 여러모로 쓸모가 있을 듯 하다. USB 부분만 좀 더 튼튼하게 결합될 수 있는 부품을 사용하려고 한다. 미니 HDMI Male 플러그 제품을 10개, 50 묶음 판매자를 찾았다. 대부분 PCB 형태로만 판매를 해서 찾는데 시간이 좀 걸렸다. 이런 건 꼭 내가 사고 난 후에 더 좋은 조건에 판매하는 판매자가 노출 되는 것 같다 . Micro USB Male 제품의 경우는 판매자가 많아서 골라서 쓰면 될 것 같다. PCB 와 좀더 튼튼하게 결합되려면 별도의 마운트 핀이 있는 제품을 사용하면 도움이 될 것이다. 가장 먼저 할 것은 두 제품의 3D 모델 제작이다. 만약 사용하지 않게 되더라도 라이브러리를 늘려서 나쁠건 없다. 두 제품 모두 디멘션 자료가 있어 모델 구현이 가능하다.  두 제품 다 모든 부분에 대한 치수가 나와있지는 않았기 때문에 설계에 시간이 오래 걸렸고 상당 부분 상상력을 발휘하였다. 그래도 설계에 필요한 치수는 대부분 나와있기 때문에 큰 문제는 없으리라 생각한다. 실제로는 제품을 구매해서 확인 해봐야겠지만 비슷하게 나온 것 같다.  PCB 의 edge에 실장 하려면 PCB의 두께는 1mm 를 사용해야 한다.

Raspberry Pi Zero W/2W - 게임보이 만들기 1 - 디자인 설계

Image
Raspberry Pi Zero 2W 를 사용한 세로 형 게임기 설계가 어느 정도 마무리 되었다. 상단에는 아날로그 볼륨 조절기와 USB C 충전 포트가 있으며, 정면에는 디스플레이와 조작 버튼과 2개의 LED 가 디스플레이 우측에 있다.  후면에는 5개의 나사 홈이 위치하며 토글 방식의 전원 스위치와 스피커 홈이 있다. 하단에는 왼쪽부터 microSD 카드, USB OTG, 컨트롤러 USB 가 있다. 컨트롤러 USB는 기본적으로 아무런 기능을 하지 않으며, 사용자가 내장 컨트롤러의 펌웨어를 업데이트 하는 용도로만 사용된다. Raspberry Pi Zero의 코어가 위치한 곳은 시원하게 열어주었다. 버튼은 첫 번째 줄은 왼쪽부터 L, M, P, R 이 위치한다. M 은 마이너스, P 는 플러스를 뜻 한다. 닌텐도의 -,+ 키를 의식하여 만들었다. ABXY 는 XBOX 배열을 사용하였다. 우측 하단의 두개의 작은 버튼 두 개는 OS의 reset 과 power 버튼이다. 기본적으로 뒷면의 전원 토글 스위치가 On 에 위치하면 전원이 켜지지만, 이 두 버튼으로도 시스템의 전원을 켜고 끌 수 있다. power 버튼의 경우 짧게 누르면 현재 열려있는 에뮬레이터를 끄거나 메인 메뉴로 돌아가고 길게 누르면 전원 끌 수 있다. reset 버튼의 경우 게임을 초기화 시키며, 길게 누르면 시스템을 재부팅한다. 버튼의 경우 이런식으로 회전하지 않고, 고정되도록 하였다. D-Pad의 중앙의 구멍에는 적당한 길이의 기둥을 꼽아서 상하 좌우키가 동시에 눌리지 않도록 되어있다. 기둥을 3D 프린터 출력물을 사용할 경우 잘 부러질 수 있기 때문에 적당한 길이의 나사를 이용하는 것도 좋은 방법이다. 배터리는 1500mAh를 사용하려고 한다. 뚫려있는 부분은 방열판을 설치하려고 하는데, 아직 적당한 사이즈의 방열판을 찾지 못했다.

Raspberry Pi Zero W/2W - 게임보이 만들기 2

Image
PCB 와 3D 프린터 출력물이 도착했다. 집에 3D 프린터를 보유하고 있지만 사이즈가 커지면 뒤틀림도 있고 FDM 방식이라 온라인 서비스에서 SLA로 주문했다. 몇 년 전만 해도 이런 서비스는 단가가 상당했는데 요즘은 개인적인 프로젝트에도 사용할 수 있을 만큼 저렴해졌다. 받은 결과물은 뒤틀림이 거의 없고 내부 구조도 문제 없이 결합이 가능했다.  생각보다 퀄리티도 나쁘지 않아서 매우 마음에 들었다. 가공비만 5만원이 넘는 곳에서도 샘플을 받아봤지만 절반에 못 미치는 가격에도 퀄리티에 큰 차이는 없는 것 같다. 버튼 스위치 같이 설계를 하긴 했지만 주문은 하지 않았다. 고장난 컨트롤러의 부속품을 최대한 재활용하고 나머지는 집에 있는 3D프린터로 출력하려고 한다. PCB 부분은 테스트를 하면서 확인된 두 가지 이슈가 있다. 첫 번째로 앰프 회로를 누락 했다.  오디오 아웃 회로만 구성하고 보유중인 오디오 앰프 IC 중에 쓸만한 것을 찾다가 잊어 먹고 그대로 주문을 넣어버렸다. 이로 인해 소리가 매우 작게 출력 될 것으로 예상된다. 이렇게 되면 앰프 모듈을 별도로 설치해주어야 하는데 공간 확보가 될지 모르겠다. 두 번째로 중국산은 항상 어딘가 실망스럽다. 전원부 충방전 회로에 사용한 IP5305에 문제가 있는데, 충전하면서 사용하다가 충전선을 제거하면 전원이 나갔다 들어온다. 충전 중에는 4.78V 정도가 측정되고 충전선을 제거하면 곧 바로 5.1V 가 측정되는데, 이때 잠깐 이지만 전원 공급이 끊기는 모양이다. 지금 보니 휴대폰이라고 명시한 이유가 있는 것 같다. 아무튼 IP5305은 모바일 기기에 사용하기에는 적합하지 않고, 보조 배터리 같은 제품 설계에 적합한 제품으로 보인다. 아무래도 돈 아끼려다 똥 된 것 같다. 차기 버전에서는 리튬 배터리의 충전은 BQ2407x 시리즈를 사용하고, 5V 를 얻는데 AP63205 같은 고성능 칩셋을 적용해볼 생각이다. 발견한 문제는 뒤로 하고 일단 완성을 시켜서 지금 상태로 동작은 어떤지 확인을 해보았다...

Raspberry Pi Zero W/2W - 게임보이 만들기 1

Image
이번 프로젝트는 Raspberry Pi Zero W 보드를 활용한 게임 보이다. 회로 기판 설계부터 하우징 설계까지 진행해볼 생각이다. Raspberry Pi Zero W, 와 2.8인치 터치 스크린을 사용해서 게임보이 컨셉으로  만들어보려고 한다.  처음부터 터치스크린으로 만들 생각은 아니였고, 마침 방안 뒤지다 나온 것이 터치스크린이였을뿐이다.  사용하려는 OS 에서 터치가 정상적으로 동작할지는 모르겠다. 맨위 렌더 이미지가 현재 설계중인 게임보이다.  보면 알 수 있지만 ClockWorkPi 의 GameShell 의 영향을 많이 받았다. 하우징은 PSP 나 게임보이 어드벤스 같은 기성품을 이용해도 되지만 가지고 노는재미가 아니라 만드는 재미로 하는 것이기 때문에 직접 설계하기로 하였다. 마음의 반절은 쓰레기 처리하는 기분으로.. 항상 느끼는 부분이지만 디자인, 하우징, PCB 중 어떤 걸 먼저 설계하냐에 정답은 없다고 생각한다. 기어가 맞물릴 수 있도록 맞지 않으면 조금씩 깎아 나가면 된다고 생각한다. 서로 깎이는 걸 실어하면 기어가 통째로 교체되는 수가 있다. 싸우지 말고 존중하고 배려하며 살자 먼저 작품의 대략적인 사이즈를 정하고 PCB 설계로 넘어간다. Raspberry Pi Zero와 디스플레이 모듈의 3D 모델은 인터넷에서 쉽게 구할 수 있다.  해당 모델에 맞춰 먼저 상판을 설계한다.  중앙에 라운드 사각형은 버튼이 아니고 저 부분으로 충전 상태와 동작 상태를 알 수 있도록 LED 를 두려고 한다. D-Pad 와 ABXY 버튼의 경우 고장난 게임패드에서 추출하려고 한다. 버튼들은 처음에는 택트 스위치로 하려고 했지만 소음 때문에 비교적 조용한 멤브레인 방식으로 바꿨다. 게임은 몰래해야 진정한 재미를 느낄 수 있기 때문이다. 각 입출력 장치들의 위치를 대강 잡고 PCB 레이아웃 설계를 위해 dxf 파일로 저장한다. 이렇게 해두면 PCB를 설계 할 때 편하게 설계할 수 있다. 다음은 컨트롤러, 스...

오랜만에 다시 꺼낸 GameShell 그리고 배터리 교체

Image
이것은 3년간 함께한 나의 GameShell 이다. 최근 배터리가 빨리 방전되는 듯한 느낌을 받았다. 그래서 이번 기회에 배터리를 교체하기로 마음먹었다. GameShell 을 잠깐 소개 하자면 요즘 나오는 라즈베리 파이처럼 그렇게 고사양은 아니고  Atari, GBA, NES, SNES 같은 콘솔을 에뮬레이션 할 수 있는 정도의 성능이다.  메탈슬러그는 좀 끊기고 포켓몬스터 정도의 게임은 잘 돌아간다. 무선 통신도 가능한데 Bluetooth 와 Wi-Fi 가 모두 탑재 되어있다. Wi-Fi는 2.4Ghz 만 지원하고, 이걸 통해 펌웨어 업데이트나 바이오스 설치 그리고 TinyCloud를 통해 PC 로 부터 게임 롬 파일 이나 미디어 파일 등을 다운로드 할 수 있다. 블루투스의 경우 문제가 좀 있는데   오디오  출력이 안된다.  키보드나 마우스 같은 HID 장치는 정상적으로 사용 가능하지만 오디오  장치는 연결도 잘 안되고 출력도 안된다.  요즘 같은 세상에 무선 이어폰을 쓸 수 없다는 건 큰 단점 중 하나라고 볼 수 있다.  GameShell 의 상단 에 있는  스테레오 3.5 파이 포트와 HDMI를 통한 오디오 출력은 문제가 없다. 페어링을 시도하면  GameShell 에서 페어링 되었다고 하더라도 바로 연결이 끊어진다. 연결이 된 것 같은 상태일 때도 있는데 여전히 블루투스로는 오디오 출력이 안된다. USB 형태의 블루투스 모듈을 이용한 테스트는  별도로  해보지 않았다. DevTerm 과 uConsole 이라는 두 제품이 더 나온 시점에서 아직도 고쳐지지 않은 걸로 봐서 아마 수정 불가능한 문제가 있는 것이 아닌가 생각해본다. 예전에는 무선 이어폰으로 들었던 기억이 있는 것 같은데 잘못된 기억인지도 모르겠다. 이런 생각을 전에도 했던 것 같은 아련한 느낌 도 든다. 무선 이어폰이 아니라 유선이였던 걸까? 역시 사람의 기억력은 믿을 것이 못 ...

[Arduino] - 아두이노 프로 미니를 이용해 피버시노 만들기

Image
피버시노는 매우 간단한 장치이기 때문에 누구나 손쉽고 저렴하게 만들어 볼 수 있다. 지난번에  HC-06 을 이용해 PC와 아두이노 우노의 블루투스 연결을 테스트 해보았다. 이번에는 Arduino Pro mini 3.3v, MPU6050(가속도 센서), HC-06(블루투스) 를 이용해 피버시노( PivotIno )를 만들어보려고 한다. 아두이노 소스코드는 피버시노 1.1.3 에서 사용한 코드를 그대로 사용했다. 만들기에 앞서 잘 작동이 되는지 테스트를 해보았다. 테스트 모델은 MPU6050의 여분이 없기때문에 ADXL335을 이용해서 라이브러리에 있는 예제를 업로드해서 결과를 블루투스를 통해 받아보았다. 장치를 서로 연결하기 앞서 아두이노에 프로그램을 업로드해야한다. 아두이노의 Rx Tx에 직접 블루투스를 연결하기 때문에 무선 업로드를 고려해 볼 수도 있지만, 혈압이 상승 할 수 도 있다. 그렇기 때문에 블루투스 모듈을 연결하기 전에 업로드는 유선으로 하는것이 좋다. 무선 업로드를 알아보고 있다면  이 포스트 가 도움이 될 것이다. 이번 피버시노는 시리얼 넘버가 없고 블루투스를 이용한다. 피버시노 1.1.3  의 파이썬 코드에서 시리얼 넘버를 이용해 피버시노의 포트를 자동으로 찾아 연결하도록 만들었는데 블루투스로 PC와 직접 연결하기 때문에 필요가 없어졌다. MAC 주소가 있기 때문이다. 다음에는 MAC주소를 이용해서 탐색하도록 만들어야겠다. 만약 이 방법이 잘 안되면 사용자가 프로그램에서 포트를 선택 할 수 있게 하는것도 좋은 생각이다. 지금은 아래의 코드를 사용하고있다. 파이썬 소스코드 수정 시리얼 포트 탐색기능 제거 def  waitForSerialInit():     com_Port  =  [ "COM7" ]      while  Tr...

[Arduino] - Gcode Draw 만들기

Image
집에 나뒹구는 부품들 소진도 할 겸 시작한 프로젝트다. 사진에 있는 ipTime과 The Style보면 알겠지만 정상적인 녀석은 아니다. 이 프로젝트에 사용하려던 모터 드라이버는 l293d 우노 쉴드 였는데, 생각보다 발열도 심하고 전원도 자꾸 나가서 a4988로 바꾸게 되었다. cnc v4 (Nano shield) 저렴하고 매력적인 보드 Arduino nano cnc v4 shield 다. 이 쉴드는 a4988를 이용해 스텝모터를 구동 시킬 수 있게 해준다. 주의사항은  인가 전원은 12V를 넘지기 않아야하고,  쉴드에 a4988를 잘못된 방향으로 장착하면 회로가 타버린다. 코드는 nano cnc v4 shield의 기본 예제 가 인터넷에 올라와 있다. 읽기 귀찮은 사람들은 이미 훌륭하게 편집된 코드들이 많기때문에 걱정하지 않아도 된다. 참고로 인터넷 상에 떠도는 소스 코드들 대부분이 우노를 기반으로 작성되어 있다. 때문에 도전 할 거면 우노를 추천한다. 나는 나노를 좋아하기 때문에 나노를 선택했다. a4988 나노의 cnc 쉴드는 우노의 cnc 쉴드가 Arduino와 a4988가 연결되는 핀 넘버가 다르다. Nano cnc shield X축 DIR = 2 STEP = 5 Y축 DIR = 3 STEP = 6 Z축 DIR = 4 STEP = 7 우노 cnc 쉴드랑은 DIR과 STEP의 핀 번호가 반대다. Uno cnc shield X축 DIR = 5 STEP = 2 Y축 DIR = 6 STEP = 3 Z축 DIR = 7 STEP = 4 로 되어있다. ENABLE은 8번 핀으로 둘다 동일하다. 사실 기판에 회로가 전부 보이기 때문에 사다리타기 만 잘 하면 된다. 작동 영상 코드가 완성되지 않았기 때문에 출력은 아직이지만 gcode를 받아 작동하는 모습은 볼 수 있다. 결과물

Popular posts from this blog

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

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

짱구개미 사육장에 위치한 브리기테 동상