', { cookie_domain: 'auto', cookie_flags: 'max-age=0;domain=.tistory.com', cookie_expires: 7 * 24 * 60 * 60 // 7 days, in seconds }); '2016/08 글 목록 :: MakerLee's Workspace
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

+ Recent posts