', { cookie_domain: 'auto', cookie_flags: 'max-age=0;domain=.tistory.com', cookie_expires: 7 * 24 * 60 * 60 // 7 days, in seconds }); '분류 전체보기' 카테고리의 글 목록 (19 Page) :: MakerLee's Workspace
728x90

올린다고 해서 과연 이용할 수 있는 분들이 얼마나 될지 좀 의구심이 들지만..


하여간 전에 약속한 분들도 있고 해서 올립니다. 



 

Mini Desk Cutter 4.zip





일단 솔리드웍스로 된 설계 파일입니다.





어셈블리 폴더의 Table_Saw를 열면 이런 모양입니다.





폴더는 이렇게 Assem, DWG, part, stl 이고요


arduino-uno 어쩌구는 아두이노 모델링이 grabcad에서 다운받은 것이라 따로 들어있습니다. 


각 파트는 part 폴더에 있고


dwg 폴더에는 알루미늄 판재 도면이 있습니다. 


bottom_plate 만 3T 이고 나머지는 5T 알루미늄이고요




**주의**


하판은 탭과 홀이 여러개라 작업편의성을 위해 도면을 나눴습니다.


외주를 맡기시는 경우에는 작업지시서를 알아서(....) 잘 쓰시거나


도면을 새로 그리셔야 할겁니다. 


그리고 아두이노 위치가 변경이 되었는데 도면상에 아두이노의 고정홀 위치는 뚫려있지 않으니 


제작자가 임의로 고정하셔야 합니다. 


마지막으로 솔리드웍에서 변환만 해놓은 dwg 포맷은 축척을 다시한번 확인하셔야 합니다. 


오토캐드 등에서 열 때에는 축척이 맞지 않을수도 있습니다. 










위 3개 파일은 3D 출력물이고 STL 폴더에 별도로 STL 포맷으로도 저장되어 있습니다. 






리니어 베어링을 고정하고 타이밍 벨트를 끼우고


조기대를 끼우는 부분은 모두 M3 볼트와 너트입니다만 길이는 제각각 다릅니다. 


부품박스에서 적당히 이것저것 꺼내 쓴 거라 기록이 어렵습니다. 


직접 측정하고 맞는 길이로 구하셔야 합니다. 









베어링 풀리를 고정하는 부품은 M5 전산볼트입니다. 


아래쪽 판재에 M5 탭이 있고, 베어링 풀리와 출력물 사이에 너트를 끼우고


다시 맨 위에서 너트로 한번 조이게 되어 있습니다. 







더블 타이밍 풀리는 https://goo.gl/STHVZr 이 링크에서 구매 가능합니다.


일반 베어링 풀리와 타이밍 벨트는 GT2 6mm 용으로 적당히 구하시면 되고요.






LCD와 스위치 등을 고정하는 판넬은 5T 포맥스로 제작했습니다. 


이 부품은 왠만한 메이커라면 굳이 도면 안보고도 직접 취향대로 만들 수 있으시겠죠.






Mini Table Saw.zip

 



eagleCad 회로도와 보드 파일입니다. 


LCD는 일반적인 1602 character LCD 입니다만


https://goo.gl/zQKiQL 이 링크의 I2C 시리얼 LCD 모듈을 붙여 4선으로 연결해 사용했습니다. 





 

Mini_Table_Saw.ino

anaolgread_test.ino.ino




마지막으로 아두이노 스케치입니다. 


프로그램 초보자라 구성이 잘 되어 있는지는 모르겠지만


최대한 자세하게 주석을 달았으니 조금이나마 이해가 되었으면 좋겠습니다. 


그리고 스위치 입력은 A3 하나로 analogread 로 처리하기 때문에


회로를 자작할 경우 회로마다 약간씩 값이 달라 입력에 오류가 있을 수 있습니다. 


그럴 경우 analogread_test 파일을 아두이노에 업로드하고


시리얼 모니터로 스위치의 입력값을 알아본 후 







이 부분을 수정하면 되는데


예를 들어 select 스위치를 눌렀을 때 analogread 값이 500이 나온다면


앞뒤로 100 정도씩 여유를 두고


      if(pinValue<820 && pinValue>600){ 이 부분을 


      if(pinValue<600 && pinValue>400){  이렇게 수정합니다.




그리고 영점맞출 때 리밋센서와 조기대 사이의 길이를


20: const float sensorDistance = 7.9 ;  를 수정해서 맞추시면 됩니다. 

728x90
728x90



전원을 올렸을 때 영점맞추기 위한 움직임과 거리조정하는 부분입니다. 











그리고 나서 위아래로 손볼트를 조여서 펜스를 고정합니다. 


스텝모터의 홀딩 토크로는 펜스를 강하게 고정하지 못하기 때문에 


고정하지 않으면 절단하다가 펜스가 움직일 수 있습니다. 



손볼트도 괜찮긴 한데 퀵 클램프 식으로 만들었으면 더 편했을 것 같네요










전원 스위치를 누르면









톱이 돌아갑니다. 












최초 리밋 스위치를 건드렸을 때의 위치값을 보정하지 않았기 때문에 


56mm 를 잘랐더니 58.5mm 가 나왔습니다.









잘라낸 판재의 길이를 측정해서 다시 아두이노 스케치의 sensorDistance 값을 수정해 줍니다. 









다시 잘라봅니다. 











이때의 길이설정은 50mm 이고요










결과는 이렇습니다. 대략 50.15mm 정도네요.


테이블소가 0.1mm 단위로 움직이긴 하지만 


펜스의 고정시 흔들리는 부분도 있고 톱의 진동폭도 있고 해서 0.2mm 이하의 오차는 줄이기 힘들 것 같습니다. 




일단 이정도면 끝난 것 같습니다. 







728x90
728x90


이정도 만들어지고 시운전도 해봤습니다. 


12V SMPS 넣어보니 잘 되긴 하는데 파워가 부족하더군요


그래서 24V SMPS 넣고 다시 테스트해봤습니다. 


그리고 아두이노가 터졌습니다. 


이론상? 상관없이 정상적으로 돌아가야 하는 것 같은데 


바로옆에서 775 모터가 날뛰니 전압변동때문인지 하여간 터졌네요. 









스텝 드라이버도 같이 터졌습니다. 












5V 출력이 안나오길래 일단 LM1117 을 떼어내고 교체해봤습니다. 










잘 되는군요.











DC-DC 를 사용해 12V 로 사용해야 할 것 같습니다. 



728x90
728x90


조카들이 장난감 핸드폰 배터리를 수리해달라고 가져왔는데


배터리를 끼워보니 전원스위치가 내려앉아서 눌리지 않더군요


장난감 핸드폰이지만 백라이트 LCD에 터치스크린까지 되는 꽤 비싼 물건입니다. 














이 부분입니다.


















볼트 하나가 아예 뭉그러져 있어 그 부분만 부러뜨리고 분해했습니다. 













제가 갖고있는 tactile 스위치는 side형이 아니라서 정확하게 맞지는 않네요















일단 순간접착제로 임시고정하고 납땜한 후


다시 튼튼하게 접착했습니다. 
















테스트 이상무.













조립해보니 스위치가 약간 튀어나와서 갈아서 맞췄습니다. 




728x90
728x90


1스텝당 0.1mm 이동입니다. 


계산대로.








약간 두꺼운 판을 썼더니 가끔씩 걸리는군요. 


얇은 판으로 교체해도 되지만 딱히 눈에 띄는 재료가 없어 일단은 휘어서 적당히 맞췄습니다. 








스텝모터의 힘으로 단단하게 고정되지는 않기 때문에


손으로 돌려서 조이는 부분을 만들었습니다. 


그런데 글 쓰면서 생각해 보니 클램프 레버식으로 만드는 게 더 편했을 것 같기도 하네요.. 





그래도 거의 생각대로 움직입니다. 


조만간 완성될 듯 하네요

728x90
728x90

최근 시간이 많이 남아서 집중해서 할 수 있었습니다. 

스케치를 완료하고 업로드하고 수정하고 업로드하고 수정하고....

거의 한줄씩 업로드&수정을 반복하는 초보 프로그래머지만 

그래도 한두줄 넘길때마다 책 찾아보던 때보단 나아진 것 같아 기쁘네요





정확하게 움직이는군요





스케치는 이제 거의 수정할 부분이 없는 것 같은데 

기구물은 수정이 있었습니다. 



펜스를 잡아주는 부분이 정지상태에서 손으로 밀어보면 

살짝살짝 밀리는 문제가 있습니다. 

스텝모터를 작은 걸 쓰다보니 홀딩토크도 약간 부족한 느낌이 있던차라

핸드볼트로 조여서 펜스를 고정시킬 수 있게 바꿨습니다. 


재출력하고 재조립 해야겠네요


728x90
728x90


쉴드보드를 제작했습니다. 












CNC로 깎을 때 아직 실력이 모자라서 그런지 


같은 가공조건에서도 완성도가 들쭉날쭉 하는 경우가 많은데


이번에는 정말 깨끗하게 잘 깎여서 기분좋네요











만들어놓고 보니 실수가 있었습니다. 


별 생각없이 전원커넥터를 넣었는데 아두이노 보드에 걸리는 데다가 


아두이노에 전원 꽂으면 되는거라 의미가 없네요. 










보드에 버그 없나 테스트해보는 중입니다. 잘 되는군요. 



만들어놓고 보니 정말 100% 수제작이네요. 센서모듈보드도 직접 만들었고 


커넥터도 전부 전선잘라 클림핑해서 만들었고 보드도 직접 CNC로 깎았고


마지막으로 아두이노 보드도 보드프리에서 받은 빈 PCB에 


부품을 전부 납땜하고 부트로더 넣어서 만든 수제 아두이노입니다.


728x90
728x90

더치커피 메이커 만드느라 한동안 미뤄뒀던 테이블소 작업을 재개했습니다. 


더치커피 메이커는 완성상태나 다름없긴 한데 


세부적으로 마무리하는 부분을 조금씩 진행하면서


테이블소 작업을 하려고 합니다. 







더치커피 메이커를 만드느라 한동안 아두이노를 많이 만졌더니


프로그래밍 능력이 F 에서 D+ 급 정도로 올라온 느낌입니다. 


이제는 조금이나마 쉽게 진행할 수 있었습니다. 













처음 부팅하면 일단 조기대가 리밋센서에 닿을 때까지 스텝모터를 구동합니다. 


그리고 리밋 센서에 닿으면 멈추고, 영점을 기록합니다. 









이 다음 부분을 하려니 스위치를 달아야 할 것 같아 


일단 보드를 깎은 후 진행해야 겠습니다. 


728x90
728x90

기구부를 다 만들어놓고 방치중인 '미니 테이블 소'의 


아두이노 프로그래밍을 조금 해 볼까 하고 회로와 부품들을 점검해 봤습니다. 


Charactor LCD를 사용할 예정인데


요즘은 그 수많은 케이블을 연결할 필요 없이 




0.5$ 쯤 하는 Serial LCD 모듈을 사용해서 I2C 로 2개의 선을 연결하고 전원선 2개만 연결해주면


간단하게 시리얼로 LCD 표시가 가능합니다. 







다만 오래전 사둔 LCD 중에 위와 같이 2열로 된 LCD가 있어 


이걸 써버리자 하고 생각했습니다. 


데이터쉬트를 인터넷에서 찾아보니 1,2번 핀만 바뀌어 있고 나머지는 순서대로 연결하면 되겠더군요.



항상 하던대로 CNC로 보드를 깎을까 하다가 선이 많지 않으니 그냥 납땜을 해봤습니다. 








그런데 이런 LCD가 2개 더 있더군요. 그냥 만들어 두는게 낫겠다 싶어 이글캐드로 그렸습니다. 




Serial LCD의 라이브러리는 찾아보면 몇가지 나오는게 있는데


저는 DFRobot 에서 만든 것을 사용하였고


주소는 : https://github.com/marcoschwartz/LiquidCrystal_I2C 입니다. 


명령에 참조는 해당 깃헙이나 http://deneb21.tistory.com/208 을 참조하면 됩니다. 




728x90
728x90



전에도 올렸던 Dial-A-Speed 라는 회로입니다. 






소전류 드라이빙용으로 만들어 놓았던 회로를 사용해 봤더니 


스위칭TR에 열이 심해서 결국 다시 IRFP3704로 만들었습니다. 






발열조끼 등에 쓰이는 면상발열체 5V 용입니다. 


처음엔 설정온도에 맞도록 on/off 스위칭하는 회로를 만들려고 아두이노를 만지작거리다가


딱히 정밀하게 온도설정이 필요한 상황이 아닌지라 


그냥 기존에 만들어두었던 걸로 일단 재활용해봤습니다.  









보다 고전압으로 할수도 있지만 일단 5V 어댑터 사용예정이라 5V 물려봤더니 1.3A 먹는군요










최대출력시 발열체 온도. 






이때 IRFP3704 온도. 방열판이 필요없겠네요







볼륨저항을 최대한 내려도 약간씩 따뜻합니다. 






그나저나 핸드폰 카메라 고장나서 오랫만에 DSLR 꺼내들었더니 불편하네요.. 




728x90

'D.I.Y.' 카테고리의 다른 글

장난감 핸드폰 수리  (0) 2017.01.27
아두이노 시리얼 LCD  (0) 2016.12.31
dial-a-speed 모터 컨트롤러.  (0) 2016.11.26
필라멘트형 LED 전구 분석  (3) 2016.11.11
음식물 쓰레기 분쇄기  (3) 2016.10.30
728x90





조작은 별거없고 스위치 3개가 레이저on/off, 온도측정, 섭씨/화씨 전환입니다. 


레이저 도트는 센서와 평행으로 달려있어 


아주 가까운 곳을 잴 때는 측정 위치보다 위를 가르키게 되더군요








측정은 빠르게 잘 됩니다. 


스위치가 실리콘 스위치인데, 


글자 인쇄한 위에 다시 투명 실리콘 코팅이 되어 있어 오래 사용해도 잘 지워지지 않도록 되어 있습니다. 


제품의 마감이나 완성도는 흠잡을데가 없네요









배터리는 9V 사각을 사용하게 되어 있어 약간 불만입니다. 


잘 쓰지 않을때 쉽게 방전되고 새로 사려면 가격도 은근 비싸고.. 


리튬에 승압회로 우겨넣어 사용 가능하지 않을까 살짝 고민했습니다만...


막상 또 그렇게 자주쓰는 물건은 또 아니라 미묘하네요. 

728x90
728x90

예전에 공개된 회로도로 만들었던 dial-a-speed 입니다. 


써보니 좀 단점이 있는게 입력전압을 그대로 회로에 쓰기 때문에


12V 이상의 전압을 걸 수 없고


단순히 정전압 부품 추가한다고 해도 스파크 노이즈 때문인지 NE555칩이 금방 파손되더군요





7805와 스위칭 TR을 따로 넣어서 전원을 분리시키고 고전압에 대응하도록 다시 만들었습니다. 



NE555 칩과 가변저항으로 PWM 신호를 조절하고, 


그 신호로 고전압 TR을 스위칭합니다. 


제대로 배운 게 아니라 잘 된 회로인지는 모르겠습니다. 










항상 그렇듯 부품재고에 맞춰 회로를 만들다 보니 이것저것 섞여있습니다. 







IRFP3704 는 원래 쓰려는 것보다 너무나 한참 고성능이지만 


지금은 딱히 쓸데도 없고 해서 붙여주었습니다. 











측정해보니 듀티비의 변화가 보입니다. 






동작은 잘 되는군요. 



728x90
728x90



회로는 이제 거의 손댈 부분이 없습니다. 


나중에 케이스 만들때 완성형 보드는 새로 만들어야 겠지만 스키메틱은 바뀌지 않을 듯 합니다.


중간에 DC 모터펌프를 사용한 버전을 만들어 보았다가 


취소하고 다시 스텝모터로 돌아오는 바람에 시간이 많이 걸렸네요



수정사항은 몇개 없지만 전원을 넣을 때마다 일정 확률로(?) 스텝 드라이버가 터지는 바람에


한 4개쯤 날려먹고.. 컨덴서를 몇개 추가하고 전원 스위치를 더했습니다. 








정량펌프는 전에 못보던 깔끔한 물건이 나왔길래 구매해봤는데


꽤 괜찮습니다. 크기도 적당하고 그냥 이걸로 가야겠네요








드라이빙 전류는 0.2A 정도가 적당하더군요










이제 최종적으로 코드를 마무리해야 합니다.


그러려면 펌프가 회전하는 수에 비해 펌프질되는 유량이 얼마나 되는지 측정해야 하므로


간단한 코드로 800ml 정도 물을 펌프질해봤습니다. 


OLED에 나오는 숫자는 모터의 회전 수입니다. 


3079회전 = 물 605g

4000회전 = 물 778g

(물 1g = 1ml)

7079회전 - 1383ml 이므로

1ml 당 5.12회전
1회전당 0.195ml


모터 70회전에 물방울은 355방울이 떨어졌고


마이크로스텝 1/16 이므로


3200스텝 = 1회전= 5.07방울 = 0.195ml 입니다


-> 고속과 저속에서 유량이 달라지더군요; 주로 쓰는 속도 기준으로 재측정할 예정입니다. 



스텝 딜레이는 40us 정도가 최하이며 그 이하로 내리면 가감속 코드 없이는 탈조가 납니다. 



코드를 최종적으로 수정한 다음 케이스를 씌워야 하는데


이럴땐 같이 작업하는 디자이너 한명 있으면 좋겠다 싶네요. 


매번 어떻게든 더 이쁜모양 만들어 보려고 발버둥 칩니다.

728x90
728x90





Hackaday에서 재미있는 프로젝트[링크]를 보고 


마침 쓸데없이 남아도는 필라멘트형 LED 전구들이 있어 분해해봤습니다. 








백열전구가 이제 법적으로 생산과 수입이 중단되었는데


레트로 느낌의 전구에 대한 수요가 있다보니 저런 형태의 LED가 만들어져 쓰이고 있죠



 







플라스틱 케이스에 넣은 채로 전구의 뿌리 부분을 펜치로 꽉 잡으면


그나마 안전하게 뽑아낼 수 있습니다. 







뿌리 부분에는 드라이버 회로가 들어있습니다. 


분해 전에는 220V 교류로 켜지는 LED인줄로만 알았는데 아니네요


MB6S(브릿지 정류) / CYT1000A(전류제한) 칩이 쓰였고


회로 자체는 매우 간단하여 그냥 눈으로 보고 따라갈 수 있는 수준입니다. 


알리익스프레스에서 검색해 보니 칩 가격도 저렴해서 직접 만들어도 되겠더군요









정류를 거치고 200V DC 전압이 나옵니다. 








링크의 제품은 잘 휘어지던데 제것은 아니었습니다. 


분해중에 필라멘트 내부의 딱딱한 심 같은것이 매우 약해서 뚝뚝 부러지네요;


결국 전구 하나 더 분해했습니다. 






제대로 보지도 않고 잘라버려서 헷갈렸는데 LED 전극이 긴쪽(오른쪽) 에 +극을 연결하면 됩니다. 







3개 직렬하고 전원 스위치를 올리니 눈부신 빛이 나오는군요. 


카메라 센서에 오류를 일으키는지 줄무늬가 찍힙니다. 







약간 떨어져서 찍으니 제대로 나옵니다. 


200V 3개 직렬이니 67V 직렬로 하나씩 켤수도 있겠습니다만..  


이 LED 를 실제 사용하려면 전원 부분이 제일 귀찮겠네요







4개 직렬했을때는 아주 약하게 들어옵니다. 



뭔가 특별한 조명 만들때 좋을 것 같네요

728x90
728x90


빵 같은 비교적 단단하지 않은 음식물쓰레기 등을 


적당히 갈아주는 기계가 있었으면 좋겠다 싶어 만들어 보았습니다. 








가공실패했거나 자르고 남았거나 기존에 썼다가 재활용하려고 놔둔


그런 아크릴 쪼가리들을 사용했습니다. 








5T 아크릴입니다. 










재활용 재료로만 만들었습니다.


자리만 차지하던 것들 싹 써버리고 나니 좋네요








실제 분쇄기는 칼날 간격이 서로 맞물리도록 두 축 간격이 붙어있지만


그렇게까진 만들기도 힘들고 만들 생각도 없고 해서 쓰레기 분쇄만 될 정도로 적당히 했습니다. 











한쪽 축을 전동 드라이버에 물리고 돌립니다. 


꽉 조여도 미끄러질 때가 있어 볼트를 삼각형 모양으로 갈아내서


척이 꽉 조이고 미끄러지지 않도록 했습니다. 








기어는 https://woodgears.ca/gear/index.html 에서 구매한 기어 템플레이트 프로그램을 사용했습니다. 


26$ 정도로 그리 비싸지 않고 적당히 쓸만한 기어 만들때 좋습니다. 





시운전해보니 원하던 대로 잘 작동합니다.


두 손을 동시에 사용해야 해서 동영상은 못찍겠네요

728x90

'D.I.Y.' 카테고리의 다른 글

dial-a-speed 모터 컨트롤러.  (0) 2016.11.26
필라멘트형 LED 전구 분석  (3) 2016.11.11
선풍기 수리, 선풍기 모터 기름칠.  (11) 2016.10.03
비스크 인형 바느질 수선.  (1) 2016.09.05
조각칼 연마홀더 제작.  (0) 2016.08.21
728x90

10월인데도 여름의 열기가 아직도 가지 않은 듯 합니다. 


선풍기를 아직 넣지 않았는데 슬슬 정리할 때가 되었고


최근 중국제조 선풍기를 몇년간 여러대 써봤는데 공통적인 문제가 있어 


수리하는 김에 사진도 찍어 포스팅합니다. 







흔한 박스팬입니다. 


보통 1-2년 문제없이 쓰다가 어느날부터 잘 안돌아가기 시작하고


3단으로 켜면 돌아가기 시작하니 3단 시동해서 1단으로 쓰다가


어느날부터 3단으로도 잘 안돌아가게 됩니다. 


수리는 어렵지 않으며, 준비물은 드라이버와 구리스 두가지입니다. 


특별히 고급 윤활유는 쓸 필요도 없고 


정밀기계용 그리스는 휘발성이 있는 경우 


오히려 싸구려 구리스보다 별로 좋지 않을수도 있으니


적당히 구할 수 있는 저렴한 걸로 준비하면 됩니다. 



당장 없으면 WD-40으로도 임시조치는 할 수 있습니다. 










뒷면의 볼트를 제거해 후방 그릴을 제거하고요









선풍기 날개를 고정하는 볼트는 볼트를 풀려하기보다는 펜치로 고정하고 


날개를 손으로 돌려주면 쉽게 풀립니다. 









이제 날개를 뽑아야 하는데 잘 뽑히지 않는 경우


선풍기 날개부분을 잡고 들어올려서 


모터축을 살살 때려주면 천천히 빠집니다. 








흔한 싱크로너스 모터입니다. 


사실 이 모터는 구조가 매우 단순하여 고장날 부분이 없습니다. 


제가 어렸을 적 작은아버지가 월남전에 참전하시고 


수당으로 사오신 일제 SONYA 선풍기는 30년이 넘도록 잘 돌아갔었죠










분해하는김에 먼지청소도 같이 하면 좋습니다.












마찰이 있는 부분은 모터축을 앞뒤로 고정하는 두 부분밖에 없습니다. 


저기다 기름칠을 하면 되는 간단한 문제죠.


임시로 사용하실 분은 빨대달린 WD-40으로 스프레이질을 약간 해준 후 그대로 조립하시면 됩니다


하지만 WD-40 같은 스프레이형 윤활유는 휘발성이 강해 


오래가지 못하는 단점이 있습니다. 













모터의 전후파트를 고정하는 볼트 4개를 분리하면


저렇게 부품들이 떨어집니다. 











크게 고장날 부분은 없지만


저 에나멜선이 끊어지면 골치아파지니 


전선과 에나멜선에 강한 힘이 주어지지 않도록 조심합니다. 










손으로 만져봤는데 기름한방울 묻어나지 않습니다....









앞쪽도 마찬가지입니다. 원래 윤활유가 없었던 것처럼 깨끗하네요










오래전에 깡통 하나에 7천원인가 주고 산 그리스가 너무 많아 소량씩 덜어서 사용하고 있습니다. 











앞쪽은 틈새에 그리스를 바른 후 축을 위아래로 움직여 안으로 최대한 침투하도록 하고


뒤쪽은 그냥 바르면 됩니다. 


적당히 여유있게 발라주는게 좋은데


점성이 낮은 윤활유를 쓰는경우에는 흘러내릴 수 있으므로 최소량만 발라줍니다. 











다시 결합합니다.


모터 조립시에는 볼트를 대각선 순서대로 조입니다. 











전원을 넣고 제대로 돌아가는지 확인합니다. 










이제 1단으로도 잘 돌아갑니다. 






** 추가: 올 여름에도 선풍기 수리 검색어로 많이들 찾아오시네요. 

저 선풍기는 여태 잘 쓰고 있지만 올해들어 다시 느려지는 현상에 분해해서 닦아보니 그리스가 많이 열화되었습니다. 

그리스에도 종류가 있는데 내열성, 내휘발성이 있는 그리스를 쓰시는게 오래 쓰기 좋아요. 

그리스를 바르실 땐 전에 남아있는 그리스를 깨끗하게 닦아내시고 새 그리스를 발라주세요. 

미싱유나 엔진오일 등도 좋습니다. 


728x90

'D.I.Y.' 카테고리의 다른 글

필라멘트형 LED 전구 분석  (3) 2016.11.11
음식물 쓰레기 분쇄기  (3) 2016.10.30
비스크 인형 바느질 수선.  (1) 2016.09.05
조각칼 연마홀더 제작.  (0) 2016.08.21
Sublime Text를 아두이노 편집기로 사용하기  (0) 2016.08.04
728x90

지난 봄에 운동을 시작해서 뭔가 체력이 붙고 즐거워질 때쯤


지옥같은 여름이 찾아오는 바람에;;  


그나마 다시 선선해진 최근 다시 시작했습니다. 



박노자 교수님이 신자유주의 빈곤의 형태로 타임푸어를 얘기하시더군요.


동감이 가는 게 내가 하고싶은걸 하려면 잠을 줄여야 하는 상황이라


운동습관을 붙이기가 쉽지가 않습니다. 





평균 수면 6시간 정도... 




그래도 여러가지 스마트 기기들을 이용해 최대한 효율적으로


즐겁게 운동을 즐기려고 노력중입니다. 



핏빗 블레이즈


핏빗 차지 HR을 1년남짓 쓰다가 최근 블레이즈로 업그레이드했습니다. 


기어 S2 를 2주간 빌려 착용해보고 애플워치도 잠깐 구경하긴 했지만


일단 스마트 워치 카테고리에서 피트니스 쪽으로 특화된 기기라 제가 사용하기엔 딱 맞습니다. 


쓰면서 다른 스마트워치보다 확실하게 핏빗만의 장점으로 느껴지는건 


배터리 수명(4~5일), 정확한 활동 트래킹, 가벼운 무게, 


잘 만들어진 전용 앱 등입니다.  








핏빗은 데스크탑과 스마트폰 앱에서 모두 실시간 동기화되어 데이터를 관리하기 편합니다. 








실리콘 물통

플라스틱 물통은 운동용 힙색에 넣으면 딱딱해서 넣고 빼기도 불편하고 착용감도 안좋습니다. 

비닐 물통같은걸 본 기억이 나서 알리익스프레스를 뒤져보니 저런게 나오더군요

리뷰가 전부 좋길래 사봤는데 대만족입니다. 




 

입구는 저렇게 되어 있어서 입으로 살짝 물고 빨면 물이 나옵니다. 

밀폐성이 좋고 마시기도 편하네요





실리콘 재질이라 물을 가득 넣고 가방에 넣을때도 쉽게 들어가고 다 마신 후에는 휴대도 편합니다. 

세척도 중성세제와 물 약간 넣고 빨래하듯 비벼주면 간단하게 되고요. 


https://goo.gl/FF4pCh 

용량별로 있고 가격도 매우 착합니다. 




블루투스 헤드셋


작년에 페북에서 성수님이 추천한 것을 보고 마침 필요하던터라 구매. 


리뷰는 여기저기 많은데 가성비가 뛰어납니다. 


핏빗 블레이즈에는 뮤직 컨트롤 기능이 있는데 둘다 블루투스 컨트롤러 역할이라 그런지


동시 연결하면 페어링이 잘 안되는 문제가 있습니다만 


그냥 블레이즈의 뮤직 컨트롤 기능을 해제하면 잘 됩니다. 


컨트롤 기능은 그냥 헤드셋 스위치 사용하면 되니까요



 




런타스틱 


핏빗은 활동량과 가벼운 운동 관리에 최적화되어 있는데 


실제 운동하려고 보면 걷기와 달리기 정도를 하는데 적절하고


실제로 근육을 키우거나 특정 부위를 강화하거나 하는 체계적인 운동을 시켜주지는 않습니다. 


런타스틱의 앱 시리즈는 팔굽혀펴기, 윗몸일으키기, 달리기, 사이클, 스쿼트와 


각 부위별 운동 앱이 다양하게 나와있고 각각의 운동을 통합적으로 관리할 수 있습니다. 


런닝을 할 때 나이키+ 를 써봤지만 관리가 불편한 듯 하여 지웠습니다. 







런타스틱 리절츠(Results)


맨손 운동하기 적절한 앱을 몇개 써봤는데 쓰기에 가장 편하고 관리도 잘 되는 것 같아


런타스틱 리절츠를 사용하고 있습니다. 초기 몇주간 무료고 이후에도 사용하려면 구독을 해야 하는데


인앱 결재보다 런타스틱 홈페이지 결재가 훨씬 쌉니다. 





런닝만 하기에는 나이키+ 도 괜찮습니다만 통합적으로 볼때는 런타스틱의 앱을 사용하는게 좋더군요







728x90
728x90




인코더 스위치를 넣어서 회로를 짜놓고


코딩을 하려니 어렵더군요.. 


일단 간단한 입력은 되는데 


인코더의 입력을 놓치지 않고 받아들이기 위해선 인터럽트가 필요하고


이제 간신히 u8glib 조금씩 이해가 가는 와중에 


인터럽트 집어넣으려니 머리가 뱅글뱅글 도네요.




스킬업한 다음에나 생각해볼 일인 것 같아 제거하고


토글 스위치 3개(up,down,select) 넣고 약간 생각해 보니


이것도 디바운스나 동시입력에 대한 부분을 처리해야 해서 뭔가 골치아파지는것을 느꼈습니다.









인스트럭터블스에서 본 기억을 찾아내서 다시 자료를 검색해보고


단순히 아날로그 입력 1핀만으로 여러개의 스위치 사용이 가능한 방법을 썼습니다. 


위와 같이 직렬 저항 사이에 스위치 입력을 넣으면 


5V 입력이 분배가 되어 스위치를 누를때마다 0-1023 에서 특정한 범위의 값으로 들어오게 되고


그걸 확인해서 스위치 입력을 확인하는 방법입니다. 




써보니 많은 장점이 있더군요.


1.여러개의 스위치를 1핀으로 간편하게 확인 가능하다.

2.디바운스 처리가 쉽다

3.여러개의 스위치를 동시입력하는 경우도 처리 가능하다

4.입력값 처리에 따라 스위치를 둔감하게 혹은 민감하게 조정 가능하다







처음 만들었던 회로 뒷면에 다시 납땜해서 수정했습니다. 







원하는 값을 스위치로 변경해서 입력하고 메뉴를 전환하면 단계별로 메뉴가 바뀌는 부분까지 마쳤습니다. 


화면 바뀔때마다 구성이 다른데 기본동작이 완료되면 수정할 계획이고요


이제 입력된 값을 바탕으로 스텝모터를 돌리는 부분을 진행할 차례군요







728x90
728x90

맨날 뭔가 만들면서 만지작거리는 삼촌을 둔 우리 조카들은


장난감이 고장났다던가 


머리핀 장식이 떨어졌다던가 하면


으레 고쳐달라고 저한테 갖다주곤 했습니다




그런데 이번에는 좀 특이한 미션이 떨어졌네요







제대로 고쳐놓지 않으면 죽이겠다... 같은 느낌이 나는 눈빛..


비스크 인형입니다.  


머리와 손발 등이 도자기 같은 재질로 되어있고 몸체는 천인데 


이렇게 도자기 같은 재질의 인형을 비스크 인형이라고 한다네요











한쪽 발이 떨어져 나갔습니다. 


반대쪽 발도 수선해야 할 것 같아 다 떼어냈습니다. 











속은 못쓰는 천조각으로 채워져있고 바깥에 얇은 천으로 몸체를 구성하는데


이 얇은 천이 너무 부실하고 올이 다 풀리는 구조라 아이가 조금 갖고 놀았더니 그냥 다 풀어져 버렸네요


원래 갖고노는 인형이 아니라고는 하지만 내구성이 좀 너무하다 싶습니다. 


이 상태에서 고민을 좀 했습니다만.. 


역시 본드 같은걸로는 해결이 안 될것 같고.... 

 








바느질밖에 답이 없겠더군요









안쓰는 부직포 가방천을 잘라내고










한땀한땀 바느질을 합니다. 











라이타로 실밥을 약간 정리해주고










올이 너무 잘 풀리는 천이라 요렇게 심재를 대주기로 합니다. 









 


직각으로 꿰매다가 안되겠어서 바꿈. 









반대쪽으로 한번 더











양쪽 다 꿰매놓고












저렇게 사선으로 바늘을 넣어서 바짓단과 다리를 연결합니다. 














원래 있었던 속바지와 양말과 신발 입혀주고











잘 된거같으니 목슴만은 살려주마... 같은 눈빛

728x90
728x90

화면에서 일단 간단한 로고나 메세지를 보여준 후


메뉴로 넘어가고 그 다음 메뉴로 넘어가는 등의 구성을 생각했습니다.


그래서 일단 텍스트로 꾸며봤는데



void loop() {


  u8g.firstPage();  //OLED 루프

  do {

    switch(draw_state){

      case 0:StartPage();delay(500)break;

      case 1:SecondPage();delay(500);break;    

    }

    }

  while( u8g.nextPage() ); 


이렇게 u8glib 함수 사이에 딜레이를 넣어봤습니다. 








첫번째 화면을 뿌리고 잠시 후에 두번째 화면으로 바뀌어야 하는데


두 화면을 동시에 뿌리려는 듯 겹친 화면이 나옵니다. 




void StartPage(){

   u8g.drawStr(0,10,"ColdBrewSystem 0.9");

   u8g.drawStr(0,25,"pashiran's");

   u8g.drawStr(0,40,"workspace");

   delay(500);


그래서 위와 같이 호출하는 화면함수에 딜레이를 넣었습니다. 





그랬더니 화면 자체에 딜레이가 걸려버립니다. 



여기저기 딜레이 위치를 바꿔봤지만 해결이 안되었는데







void loop() {


  u8g.firstPage();  //OLED 루프

  do {

    switch(draw_state){

      case 0:StartPage();break;

      case 1:SecondPage();break;    

    }

    }

  while( u8g.nextPage() );



if(draw_state==0){

  draw_state++;

}

else{

  draw_state=0;

}

delay(500);


} //loop의 끝 


이렇게 해야 하니 정상적으로 나옵니다. 


기본적으로는 u8glib이 함수 호출하면 메모리에 디스플레이 할 정보를 불러들이고서 


메모리를 읽어서 화면에 뿌려주는 방식이라  


그 과정 사이에 명령어를 사용할 때는 주의해야 하더군요.






728x90
728x90


조각도를 연마할 때는 정확하게 각도가 맞아야 하기 때문에 


숙련되지 않으면 제대로 연마하기 쉽지 않습니다. 


그래서 위와 같은 연마용 홀더가 있습니다. 



제가 쓰는 평칼이 날이 많이 나가서 갈 때가 되어 이참에 만들어 보았습니다. 




구조적으로는 이렇게 생겼습니다. 위아래 부품은 그냥 순접으로 붙였습니다. 







출력했습니다. 






조각도를 오래 썼더니 상태가 별로 좋지 못합니다. 








이렇게 각도를 맞춥니다. 넣고 빼는 정도에 따라 각도를 조정할 수 있습니다. 











고정 부품이 안에서 회전이 가능합니다. 


삼각칼 같은걸 갈때 필요하지 않을까 해서 이렇게 했는데 쓸모가 있을지는 모르겠네요











1000번 사포에 물을 뿌리고 아크릴판 위에 올려놓고 밀어줍니다. 


각도가 확실하게 고정되고 베어링 때문에 저항도 없이 스무스하게 잘 갈리는군요.











어느정도 갈고 난 후입니다. 처음 사진과 비교해 보면 각이 살아있습니다. 


나머지는 손으로 뒷면과 번갈아가며 살짝살짝 갈아서 마무리했습니다. 











단순 작업용으로 필요할때 약간씩 쓰는거라 


머리카락이 잘릴 정도로 연마하진 않았습니다. 

 


728x90
728x90

다들 더위때문에 고생하시겠네요.


더위에 약한 체질이라 정말 올 여름은 지옥같았습니다. 


시원한 곳에서도 머리가 멍해 뭘 하기가 힘들더군요. 


전기자전거고 뭐고 할 여력이 없었습니다.


더위가 조금 가시는 듯 해 작업을 해 봤는데, 여전히 덥군요.


기상청은 양치기소년도 저리가라 할 정도로 


번복에 번복을 반복해 8월 말까지 더운게 아닐까 걱정이 될 정도네요.





 




OLED 버전은 천천히 진행할 생각이라 일단 구동계가 완성된 


아두이노 나노에 간단히 프로그래밍하고 커넥터들을 달았습니다. 


기본 서보모터 커넥터는 연결이 간편하지만 


기분상 불안한 면이 있어 커넥터를 교체했습니다. 


ESC에서 5V 출력이 나오기 때문에 배선이 편했습니다




스케치는 다음과 같습니다. 


// 스로틀과 서보를 연계시키고 

// 스로틀의 이동폭을 제한하는 스케치


#include <Servo.h>


Servo servocontrol;  // 서보를 제어할 서보 오브젝트

Servo bldcmotorcontrol;     // 모터를 제어할 서보 오브젝트       

int servopos;    // 서보 위치를 저장할 변수

int motorspeed;  // 모터 속도를 저장할 변수

int throttlePin = A0; // 쓰로틀핀을 A0 로 선언

int throttleValue;  // 쓰로틀의 수치



void setup() 

  servocontrol.attach(9);  // 핀 9의 서보신호를 컨트롤서보에 연결

  bldcmotorcontrol.attach(8);     // 핀 8의 서보신호를 모터에 연결

 

 

void loop() 

  throttleValue=analogRead(throttlePin);  // 쓰로틀의 입력값을 아날로그로 읽음

  throttleValue=map(throttleValue,0,1023,0,179); //서보모터의 각도에 맞게 매핑함

  bldcmotorcontrol.write(throttleValue);

  if(throttleValue>50){

  throttleValue = 90;

  }

  servocontrol.write(throttleValue);

  delay(15);

  } 


throttleValue=map(throttleValue,0,1023,0,179); 명령어로 


스로틀에 따라 서보의 PWM 신호를 매핑했기 때문에 


ESC의 모터 출력은 스로틀을 따라갑니다만 서보모터는 일정 각도 이상 올라가면 안됩니다. 


50보다 큰 값이 들어오면 90으로 고정하도록 했습니다. 


마지막에 딜레이는 지우는걸 잊었군요







일단 원하던 대로 작동하는군요.


본체는 수치를 약간 수정했기 때문에 출력을 다시 해야 합니다.


좀 시원해지면 한번에 몰아쳐 끝내려고 했는데 여전히 더워서 맥을 못추겠네요




728x90
728x90

아두이노 자체 에디터는 폰트의 가독성도 좋지 않고


에디터로서의 기능 자체가 많이 떨어지는 편입니다. 




서브라임 텍스트라는 좋은 편집기에서 아두이노 프로그래밍을 할 수 있는 플러그인이 있는데


처음에 어떻게 설치하는지 잘 몰라서 못쓰다가 이번에 알게 되어 정리해봅니다.




현재 빌드는 3114이지만 아두이노 플러그인 설치하는 법을 찾지 못했습니다. 


http://www.sublimetext.com/2 에서 서브라임 텍스트 2를 다운받고, 설치하고, 실행합니다. 










콘솔 창을 엽니다.











import urllib2,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();os.makedirs(ipp) if not os.path.exists(ipp) else None;open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read())

그리고 위의 명령어를 복사하여 붙여넣고 엔터를 칩니다. 





서브프라임 텍스트를 일단 종료하고, 다시 실행합니다. 






Tools - Command Palette 를 클릭합니다. 










p를 누르면 package 명령어 리스트가 뜨는데 


여기서 Package Control: Add Repository 를 선택합니다. 









아래쪽 커맨드 라인에 https://github.com/gepd/Stino/tree/new-stino  를 복사하여 집어넣고 엔터를 칩니다.











다시 Tools - Command Palette 를 선택한 후 Package Control: Install Package를 클릭합니다. 











몇초 뒤 패키지 리스트가 뜨면 stino 를 입력하고 클릭해서 설치합니다. 


잠시 후 설치가 완료됩니다.









그리고 나면 메뉴창에 Arduino 라는 메뉴가 새로 생깁니다. 











Arduino - Preferences - Select Arduino Application Folder 를 클릭하고


아두이노가 설치된 폴더를 지정합니다. 


보통은 C:\Program Files (x86)\Arduino 일겁니다. 













아두이노 IDE와 마찬가지로 보드와 포트를 확인해 주어야 합니다. 







컴파일과 업로드 속도는 아두이노 IDE에 비해 꽤 많이 느립니다.



728x90
728x90

어비스리움이란 게임을 하다가 탭 연타하는게 귀찮아져서 만들어봤습니다. 





준비물 과자봉지 - 은박지가 코팅된 비닐봉지면 다 되기 때문에 라면봉지도 상관 없습니다. 

그리고 적당한 모터와 순간접착제.








자르고








순간접착제 한방울


꼭 접착제 아니더라도 테이프 등으로 고정해도 됩니다. 








문방구 모터









작은 모터로 했더니 너무 느려서 약간 큰걸로 바꿨습니다.










이걸 적당히 고정하면 됩니다. 








각도를 되도록 액정과 평행하게 해서 닿는 면적이 넓도록 하는게 잘 됩니다. 




#주의사항 : 액정 보호필름 등이 있을 경우 마찰로 비닐이 긁히는 자국이 생길 수 있습니다. 

비닐로 비벼대는 거라 오히려 필름이 없는 경우가 더 흠집이 안납니다.

너무 강하게 눌러서 마찰열이 심해질 경우 액정에 손상이 올 가능성도 있습니다. 

장기적인 사용실험은 해보지 않아 오랫동안 사용시 어떤 문제가 생길지 알 수 없습니다. 


접촉이 충분히 되더라도 탭 인식이 잘 안될 경우가 있습니다. 

원래 정전식 터치는 인체와 접촉하지 않은 상태의 도체 접촉만으로 터치가 인식되기 힘든 점이 있습니다. 


728x90
728x90

 최신 버전 EagleCad 의 옵션 변경은 본문 아래에 추가된 내용을 확인하세요. 




이글캐드를 쓰다보면 가끔 짜증나는 것 중 하나가 


보드 파일에서 이렇게 꼭 처음에 인치설정으로 되어 있는 것을 메트릭으로 바꿔줘야 하는 것입니다. 


오늘 세팅 정리하다가 디폴트 옵션을 바꾸는 법을 구글링해서 알아냈습니다. 








C:\Program Files (x86)\EAGLE-6.4.0\scr  폴더로 가면 eagle.scr 파일이 있습니다. 


이 파일을 메모장으로 열어줍니다. 









22번째 줄 BRD: 


아래에 GRID MM 2.54 DOTS ON ALT MM 0.127; 를 추가합니다.

 

앞에서부터 설명하면 GRID 를 2.54 MM 로 설정하고,

그리드의 모양을 도트DOTS 로 설정하고,

ALT 키를 눌렀을 때 정밀이동 간격을 0.127MM 로 설정한다는 뜻입니다.


위 숫자는 개인 편의대로 바꿔도 되고, 도트 대신 LINE을 써도 됩니다. 









그 위쪽에는 단축키 기본설정이 있습니다. 


이글캐드에는 Ctrl-C, Ctrl-V 가 기본설정이 안되어 있는 약간 이상한(?) 프로그램이라


이참에 추가했습니다. 


C+C 는 Ctrl+C 단축키를 뜻하고 뒤에 사용하고 싶은 명령어를 쓰면 됩니다. 


CS+C는 Ctrl+Shift-C 입니다. 


기본적으로 많이 쓰는 카피, 페이스트, 그룹을 일단 추가해 봤습니다. 






그대로 저장하고 나서 이글캐드를 다시 실행해 보면 


단축키와 그리드 옵션이 바뀌어 있는것을 볼 수 있습니다. 






--------------------------------------2019.5월 추가---------------------------------------------



최신 버전 EagleCad에서는 위와 같은 방법으로 옵션 변경을 할 수 없습니다. 

일단 메뉴의 [Options] - [Directories] 를 눌러 Scripts 폴더를 확인해 보겠습니다. 





 

폴더의 위치는 \Users\사용자이름\Documents\eagle\scripts\ 입니다.

기능에 문제가 있는 것이, 저렇게 폴더를 한번 확인해 주지 않으면 eagle.scr 파일이 아예 생성되지 않습니다. 

eagle 설치폴더에 eagle.scr 파일이 있긴 한데 디폴트 폴더와 다른 위치에 있을 뿐더러 

그걸 아무리 수정해봤자 이글캐드의 옵션이 바뀌질 않더군요







 

이제 eagle.scr 파일을 열어 옵션을 수정해 주면 됩니다. 

ASSIGN 뒤에 단축키 + 명령 식으로 붙여주면 됩니다. 

ex) Ctrl C : Copy 를 단축키 지정하고 싶으면 C+C 'Copy';

Ctrl Alt M : Move 를 단축키 지정하고 싶으면 CA+M 'Move';


728x90
728x90


저희 집 식구들은 커피를 많이 마시는 편인데


빨대로 간이 더치커피 기계를 만들어 사용해왔습니다만


물조절도 불편하고 공간도 차지하고 여러모로 불편한 부분이 있습니다. 



전에 정량펌프를 알리 익스프레스에서 구매하여 사용해봤지만 


DC 모터를 이용한 싸구려 펌프라서 토츌량도 적당하지 않고 금방 고장나버리더군요.



최근에 더워서 커피 소비량이 늘다보니 다시 한번 마무리해봤는데


저기다가 아두이노+스텝드라이버+파워+LCD를 추가할 생각하니


덩치가 좀 큰듯 하네요.  




시제품 만들어보고 수정할지 말지 생각해봐야겠습니다. 



728x90
728x90

기구부 출력은 부품 하나에도 몇 시간이 걸리므로, 


틈날때마다 계속 아두이노 스케치를 수정하는 중입니다.



제대로 끝까지 스케치를 완성해본 건 처음이라 삽질을 하고 있지만


그래도 기본적인 부분은 어느정도 알고 있으니


레퍼런스나 인터넷을 참조해서 조금씩 진도가 나가고 있습니다.





이 책 강추. 








현재 OLED에 보여주는 정보는


1. 배터리전압

2. 크루즈 모드 or PAS level - pas는 추후 추가 예정

3. 스로틀 레벨 

4. 속도

5. 최고속도

6. 평균속도

7. 이동거리

8. 누적 이동거리



1. 전압 디스플레이 - 이건 쉬웠음. 전압분배로 해결하면 되고 찾아보면 인터넷에 예제도 많음. 


2. 크루즈 or PAS - 아직 계획 없음 


3. 스로틀 레벨 - 아날로그 입력을 그냥 변환해서 보여주면 됨


4. 속도 - 속도센서 필요. 기성제품 분해하자니 돈이 아깝고 리드스위치로 자작하자니 성가시고 


(5,6,7,8번은 속도만 제대로 체크되면 거기서 계산하면 되는거라 따로 뭘 할 필요는 없음)





@OLED 화면 디스플레이되는 한 사이클의 시간이 은근 길어서


스피드 센서 입력은 인터럽트를 필요로 하겠더군요.




인터럽트 발생시마다 1바퀴 만큼 이동한 것으로 확인하고 


millis() 를 이용해 시간을 체크하면 1바퀴 회전시간을 알 수 있습니다. 


이걸로 속도를 계산하고 최고속도나 이동거리 계산 등을 하면 되죠. 



위 OLED 사진에서 맨 아랫줄이 millis 로 계산된 인터럽트 간 타임입니다. 


수동으로 on/off 해보니 인터럽트 타임이 제대로 계산되는데 


그 값을 loop로 넘기는 부분이 잘 안되고 있네요. 





@이동거리는 EEPROM에 저장하지 않으면 리셋됩니다.


EEPROM의 저장한도가 10000번 정도라 하는데 


주행중에 이동거리가 1킬로 증가할 때마다 기록한다고 치면 


1만 킬로 정도가 한계고


적어도 0.1킬로마다 저장하고 싶은데 그러면 1000킬로에 수명이 다 되겠네요


수명을 생각하면서 기록하는 방법을 고민해 봐야할듯







 

기구부 설계와 출력 및 후가공이 끝났습니다. 


볼트로 조이는 부분은 인서트 너트를 사용했는데


꽉 조였을때는 통째로 빠지는 경우가 있어 적당히 조이는게 중요.



설계중 좋은 자전거가 공짜로 생길 뻔한 일이 있어 


부랴부랴 마운트를 착탈식으로 바꿔 새 자전거에 대비하려 했으나 


무산되어버렸습니다..



그래도 마운트 착탈식 구조는 마음에 들어 그대로 사용 예정. 









옆으로 끼운 후 손나사를 돌리면 고정됩니다.  작동도 잘 되는군요.






스로틀은 그냥 오른손 핸들에 끼울 생각이었으나 


변속기와 겹치는 위치를 어떻게 조정할지 생각


스로틀 스위치는 윗부분을 들어내고 


OLED 까지 내장하는 구조로 해야 편할 것 같습니다(후가공 엄청 해야할듯)




스로틀에 OLED와 스위치를 일체형으로 만들고


뒷부분 안장 밑에 나머지 전장부가 들어가면 될 듯 합니다.



728x90
728x90

처음 OLED 에 표시될 부분은 배터리의 전압입니다. 


아두이노는 5V 까지의 입력을 아날로그로 읽을 수 있지만


그 이상의 전압은 전압분배회로를 이용해 분압된 전압을 읽은 후 


분압된 만큼 다시 역으로 계산해서 원래 전압을 표시하면 됩니다. 



RC용 LiPo 배터리를 사용할 생각이고


3셀~6셀 정도의 배터리를 사용한다고 할 때


1셀의 전압은 3.6V 부터 4.3V 까지이므로 


4.3*6셀 = 25.8V 까지를 측정범위로 잡으면 되겠군요 




Vin = Vout / ( R2 / ( R1 + R2)) 를 계산하면 되는데



귀찮으니 그냥 앱을 사용합니다. 





18K 와 4.3K 저항을 사용하면 됩니다. 





그런데 저항박스를 뒤져보니 해당 저항이 없군요...







저항을 쓰기 편하게 Vin 30v, Vout 5V 입력하니 R1 10K, R2 2K 가 나왔습니다. 


입력전압은 1/6 되어 계산이 됩니다. 



  voltValue = analogRead(vinPin);

  batVoltage = voltValue*30/1024;   // Vout 5V * 전압분배비 6 = 30 을 곱한 후 1024로 나눔.



여기서 1024로 나누니 약간 오차가 있어 1080으로 조정해서 맞췄습니다. 



이렇게 한 후 





전압(왼쪽 위)이 제대로 표시가 됩니다. 




728x90
728x90

별 생각없이 화면구성을 짜며 스케치 업로드를 하다가 보니



메모리 용량이 88%? 아직 제대로 스케치 시작도 못했는데 


화면구성만으로 이정도 차지하면 메인 스케치는 어떻게 할것인가 놀랐습니다만



생각해보니 폰트 데이터 용량을 생각해보지 않아 u8glib wiki에 들어가 봤습니다. 








처음 사용했던 속도표시용 폰트의 용량









같은 폰트인데 특수문자들이 제거된 다이어트(?) 폰트









그냥 작은 폰트의 용량






이렇게 심한 차이가 나는군요. 


생각해보면 당연한 것이 폰트 데이터를 전부 메모리에 집어넣지 않으면 출력도 할 수 없으니


쓰건 안쓰건 폰트를 포함시키는 순간 그만큼 스케치 용량이 늘어날 수 밖에 없습니다.





같은 크기인데 다른 폰트(u8g_font_fur30r)를 넣어봤더니 용량 차이가 저렇게 납니다. 


87% -> 58%











크기가 절반인 u8g_font_fur14r 폰트를 사용하고 u8g.setScale2x2(); 명령어로 2배 뻥튀기해봤습니다. 


87% -> 45%









다만 이 경우는 폰트 크기가 두배가 된 만큼 계단현상이 일어납니다. 




큰 폰트는 속도 디스플레이용이라 


아예 0-9까지 비트맵을 넣어 사용하면 더 용량을 줄일 수 있을 것 같습니다만


그건 나중에 정말 용량이 모자랄때나 해보면 될 것 같네요.




728x90
728x90

기구적으로는 이제 95% 정도 된듯. 






사실상 마운트 부분만 맞추면 됩니다만 이것도 기초적인 치수는 다 나왔는데


아예 고정시켜버리느냐 분리가 쉽게 하느냐 고민하다가


계속 달고다니긴 좀 불편할 듯 해서 분리형을 고민하는 중인데


어떤 형태로 해야 편할지 



뭐 이런 자잘한 고민들을 하고 있습니다. 


볼트류 고정 때문에 인서트 너트를 주문해 놨는데 그것들만 도착하면 최종 수정하고 조립하면 될듯. 






일단 서보 테스터로 구동할 수는 있지만


볼륨조정으로 속도를 조정하는건 너무 불편할 것 같아


전에 올렸듯 


전기자전거용 스로틀 - 아두이노 - 서보 로 연결해서 서보/스로틀 컨트롤을 최적화할 생각이고요.




그러다 보니 왠지 아두이노를 기왕 집어넣는 김에 서보 컨트롤러만 쓰기엔 아까울 듯 하여


전에 사서 처박아 두었던 OLED를 꺼내들었습니다. 



ADAFRUIT의 라이브러리를 좀 뒤적여 봤지만 메모리를 너무 많이 차지하고 깜박임도 심해서


U8GLIB으로 변경. 구동방식을 이해하는 데 좀 더 어렵긴 했는데


반응이 빠르고 메모리도 좀 더 적게 차지하네요






0.9인치 OLED는 너무 작아서 가시성이 안좋더군요. 


1.3인치 화이트로 바꾸니 심플하고 가시성도 괜찮습니다. 



아직 아두이노 프로그래밍엔 왕초보지만 U8GLIB WIKI와 


일부 인터넷의 소스코드들을 뚫어져라 봤더니 어느정도 이해는 가능했습니다. 



직접적으로 입출력를 디스플레이하기 전에 화면 구성만 짜보는 중입니다. 


배터리 전압과 속도, 스로틀 출력 등을 화면에 보여주기 위해 조금씩 옮겨보는 중입니다. 


화면에는 그냥 랜덤으로 디스플레이됩니다. 


스로틀 바는 특수문자 폰트를 사용해 디스플레이하려 했더니 


폰트 추가할때마다 메모리를 상당히 소모하더군요.


현재는 기본폰트와 대형폰트 2종류를 사용하고 있습니다. 



좌표가 왼쪽 위부터 0.0으로 시작하기에 숫자가 한자리수일때는 왼쪽으로 붙었다가


두자리수일때 오른쪽으로 왔다갔다 하는 문제가 있어 


숫자를 표시할때마다 두자리수 이상의 숫자는 


글자의 가로픽셀만큼 이동해서 디스플레이하는 식입니다. 



OLED를 붙이려 생각했더니 당연히 속도계를 생각하게 되고 


추가로 몇몇 센서도 붙여보고 싶고


그러다보니 프로그래밍 내용도 점점 복잡해질게 뻔해서


일단 인서트너트와 같이 주문한 아두이노 미니 도착하면 


스로틀제어만 하는 기본형으로 제작을 하고,


추가로 업그레이드를 하는 방식으로 갈 생각입니다. 




728x90

+ Recent posts