안녕하세요 시더입니다.


오늘은 아두이노와 라즈베리간의 데이터 통신을 위한 밑작업을 해보겠습니다.


이 게시글을 쓰면서 다소 묘한 경험을 몇번 했습니다.


라즈베리(3v3)(tx) -> 아두이노(5v)(rx)로 데이터를 쏠때 어떤때는 잘되고 어떤때는 잘 안되는 상황이죠.


반대의 경우는 전압차 때문에 무조건 안된다고 생각하고 있었고 위의 경우는 그닥 문제가 없을거라 


생각하고 있었죠. 그런데 계속 되다말다 하다간 부품 망가질것 같아 부품 하나 구입했습니다.

구입한곳의 링크는 다음과 같습니다.


http://www.mechasolution.com/shop/goods/goods_view.php?&goodsno=8181


메카솔루션에서 구입했구요. 부품명은 레벨 컨버터 라고 불리워집니다. 


스파크펀꺼네요. 그리고 역시나 친절한 영문 설명이 적혀있군요. 마음이 여유로우신분들은 천천히 읽어


보시고 급하신 분들은 스킵하고 구글링을 합니다. 한 3분가량 하다보니 감이 잡히더군요.



한쪽은 LV 로 쭈욱 적혀있고, 반대쪽은 HV 로 쭉 적혀있습니다. 네 L은 로우이고, H는 하이겠죠.


아두이노쪽 전압이5V 인 관계로 H쪽은 아두이노랑 연결해 줍니다. 반대쪽은 라즈베리(3v3)랑 연결하고


데이터를 제외하고 필수로 VCC와 GND를 연결해 줘야합니다. 가운데 두줄이죠. 양쪽다 각각 연결해 


줍니다. 그렇게 되면 데이터용으로 쓸수 있는게 저부품에서 4개 남게되고 그중에서 가장 오른쪽 한칸을


사용해서 라즈베리에서 아두이노로 데이터를 보내봤습니다.


이번엔 문제 없이 잘 돌아 가네요. 처음부터 이렇게 하면 시간을 많이 아낄수 있었는데 쩝..

Posted by 시더
,

안녕하세요 시더입니다.


오늘은 도어락을 다소 복잡하게 사용하도록 하겠습니다.


일단 스마트폰으로 컨트롤을 합니다. 열고 닫고를 하는거죠.


가장 먼저 스마트폰에서 라즈베리파이로 Wifi로 접속합니다. 그리고 스마트폰에서 TCP 소켓통신을


사용하여 라즈베리로 데이터를 보냅니다. 라즈베리파이는 다시 아두이노로 시리얼TTL TX로 데이터를


보내줍니다. 아두이노는 라즈베리파이에서 넘겨 받은 데이터를 확인하여 열거나 닫게 동작합니다.



스마트폰->라즈베리파이->아두이노->도어락 으로 제어가 되는 장면인데요.


사실 생각해보면 아두이노는 빠져도 됩니다. 라즈베리파이에서 GPIO 제어로도 도어락 컨트롤이


가능하기 때문이죠. 단지 위의 방식대로 데이터를 보낼수도 있다는것과 센서와 직접 맞물려서 컨트롤


하는 것은 아두이노쪽이 라즈베리파이보다 제어가쉽습니다.
















Posted by 시더
,

안녕하세요 시더입니다.


카페 게시글 보고 이렇게 해보시면 어떨가 싶어서 작성해 둡니다.


처음에는 구멍마다 cds센서를 사용해보는 방법을 생각했는데 마지막 사진을 보니


봉이 구멍밖으로 나오더군요. cds를 구멍에 넣는 방법은 패스해야 되겠군요.


그리고 사용하면서 추도 움직이겠죠.


일단 요렇게 만들어보세요.



만드실때 봉이 들어갈 틈을 남기고 원형기둥이나 사각기둥으로 틀을 만드시구요. 재료는 포맥스 추천드립니다.



볼펜으로 테스트하니 거리값 잘 인식하네요. 거리 값에 따라 몇단계에 봉이 들어와있는지 체크 가능할 겁니다.


문제는 운동을 하면서 추의 높이가 변화한다는데 있죠. 


2가지 아이디어가 나오네요 


1번은 2~3초에 걸쳐서 값을 측정해서 변화가 없으면 해당 단계로 판정하는 방법,

2번은 1단위에 만들어진 모형을 부착해서 추와같이 올라갔다 내려오게 하는 방법.








Posted by 시더
,

안녕하세요 시더입니다.


오늘의 주제는 LCD 모듈입니다. 제가 맨 처음에 다루었던 부품인데 왜 지금 이야기가 나오냐구요? 


최근에 후배가 도움을 요청했습니다. "LCD 부품 구입한게 작동을 안해요 고장난것 같아요" 저는 늘그렇듯


"처음부터 다시해봐.. 그래도 안되?"라고 답변했죠. 이런식으로 몇번 이야기가 오고가다 보니 이상하더군요.


대부분의 부품 판매하는 곳에서 기본 예제와 사용법을 적어두니 따라하기만 하면 될거고 LCD가 핀이 많아서 그렇지


딱히 어려운게 아닐텐데.. 그래서 테스트를 해봤습니다.



어라.. 저도 안되네요 하하하.. 그렇수도 있지 예전에 사용했던 LCD는 인터페이스 보드를 안써서 제가 핀을 잘못 


꼽았나 싶었습니다. 다시 확인해도 저 상태! 슬슬 긴장되더군요,


일단 인터페이스 보드를 사용하기 때문에 데이터핀은 2개가 됩니다. 그리고 I2C 를 사용하게 되기 때문에 UNO보드


기준으로 아날로그 4(SDA)번 5(SCL)번을 사용합니다. 나머지 2개는 vcc와 gnd구요.


이상하다 싶어서 검색찬스를 사용합니다. 그러다가 문제를 찾았습니다.


http://cafe.naver.com/arduinostory/42043 


에 적혀있는 내용을 요약하면 "인터페이스 보드에 사용하는 칩에 따라 어드레스 주소가 다르다." 라는거죠.


설마 해서 바로 확인을 해봤습니다.



PCF8574AT 네요.. 0x27 쓰면 안되고 0x3f 로 써야합니다. 바로 소스를 수정해서 동작시켜 봅니다.



아! 잘되네요..


문제점은 칩에 따른 주소값이 문제로 판별됬습니다.


PCF8574T 는 LiquidCrystal_I2C lcd(0x27,16,2);

PCF8574AT 는 LiquidCrystal_I2C lcd(0x3f,16,2);


로 사용하면 됩니다. 혹시나 해서 구입했다는 사이트 가봤는데 0x27로 사용해야 한다고 적혀 있더군요. 맙소사


Posted by 시더
,

안녕하세요 시더입니다.


 오늘은 책이야기를 해보려 합니다. 저는 아두이노를 처음 하게되면서 어려운 부분도 있었지만 스케치에 소스 만드는


것은 자신 있었습니다. 아무래도 전공이 컴공이다보니 매일같이 코딩을 하기 때문이죠. 그런데 하드웨어쪽 지식은 전


무했죠.  그래서 아두이 노 카페를 많이 들락거리면서 찾아서 했는데 쉽지는 않더라구요. 그래서 책을 하나 구입했습


니다.




 하드웨어쪽으로 관련된 정보도 많이 포함되어 있어서 도움이 되더라구요. 문제는 책값이 다른책보다 좀 비싸요.


내용은 알차고 은것 같네요. 따로 CD같은건 없어서 직접 보고 따라 입력해야 하는데 소스가 그리 길지 않은편이라 


딱히 문제되진 않습니다.

Posted by 시더
,