====== 7월 3일 ====== ===== Peberry ===== https://github.com/AE9RB/peaberry/blob/master/peaberry.cydsn/main.c 지난 4월 25일 Peaberry SDR을 구입했는데, 아직 조립 못했다. 워드의 새로운 위키 플러그인 보다가 다시 생각나서 사이트 들어 가봤다. 음 새버전이 나왔군. 뭐가 다른게 없나 체크 해봤는데, 잘모르겠다. 그러다 펌웨어를 봤는데, 흥미로운점은 1. Peaberry가 사운드 카드처럼 동작한다는것 2. 펌웨어 코드가 깔끔하다는 것이다. (main.c) 3. 에러 핸들링을 잘했다는것. int main() { ... pcm_err = PCM3060_Init(); if (si_err && pcm_err) ERROR("I2C "); } void ERROR(char* msg) { uint8 i, beat; uint16 timer = 0; if(USBFS_initVar) USBFS_Stop(); Control_Write(Control_Read() & ~CONTROL_TX | CONTROL_LED | CONTROL_AMP | CONTROL_RX); Morse_Main(msg); for(;;) { i = Status_Read() & STATUS_BEAT; if (beat != i) { beat = i; if (!timer--) { timer = 480; // 5 WPM Morse_Main(0); } } } } 에러메시지를 모스코드로 출력한다. ㅋㅋㅋㅋ ==== Alternative Layer Model ==== http://spin.atomicobject.com/2013/06/29/layer-model-c-alternative/ C언어에서 다른 라이브러리들을 가져다 쓰다보면, 이게 일관성이 없어서 내 일관성을 해치는데, 이럴때 의존부분만 뽑아서 콜백함수로 만듬. 음. 그런데 이건 좀 오바 추상화 같기도 하다. 어쨌든 유용한 패턴. 아래 코드는 output을 콜백함수로 만들어서 buf_init 함수를 재사용할 수 있게 만듬. static enum status output( void * param, const void * buf, size_t len) { FILE * fd = param; fwrite(buf, 1, len, fd); return status_ok; } int main() { .... s = buf_init(&hdl, backing, sizeof(backing), term, TERM_LEN, output, stdout); if (status_ok != s) { fprintf(stderr, "ERROR: Unable to initialize.\n"); } } --from: https://github.com/sw17ch/inversion_demo/blob/master/demo/demo.c ===== 스케치 ===== 스케치는 항상 할려고 하지만 습관처럼 되지는 않네. 스케칭 관련 책. 이런책 나오면 항상 볼려고만 하지뭐.. http://spin.atomicobject.com/2013/05/26/sketching-mike-rohde-ixdagr/#more-97040 샘플 챕터: http://ptgmedia.pearsoncmg.com/images/9780321857897/samplepages/0321857895.pdf ---- {{http://i.imgur.com/TIiOpup.png?400}}{{http://i.imgur.com/sq90dy7.png?400}} {{http://i.imgur.com/yIHofUF.png?400}}{{http://i.imgur.com/yq57Ckv.png?400}} ====== 7월 9일 ====== 쿼드콥터 만들기 시작. 우선 부품 주문. crazyfile 한개 주문하고 그외 필요한 부품 주문, 한번 주문하면 필요할 거 같은 부품도 주문해서 나도 모르게 돈이 많이 나간다. 에효. * http://www.seeedstudio.com/depot/ * Bus Pirate v3 probe Kit * Bus Pirate v3.6 universal serial interface * Crazyflie Nano Quadcopter - 4 x CW+CCW spare propellers (BC-CWP- * Crazyflie Nano Quadcopter - 4 x spare motor mount (BC-MM-01-B) * Crazyflie Nano Quadcopter - 6x15 mm spare motor (BC-CM-01-A) * Crazyflie Nano Quadcopter Kit 10-DOF with Crazyradio (BC-CFK-02 * XC2C64A CoolRunner-II CPLD development board * 8devices에서 2주전에 주문한 Carambola 2 두대도 때마침 출발한다고 메일이 왔네. ar9331이 아두이노 최신에도 사용되고, 여기 저기 많이 사용되는거 같은데, 디지키나 마우저, 엘리먼트14에서는 주문을 할 수 가 없다. 내일은 ar9331 주문 가능한지 보민테크 사장님에게 전화 해봐야겠다. ===== 롤랜드 밀링 ===== mdx-20은 경금속 가공 안되고 mdx-40부터 경금속 가공 된다고 하네. 견적의뢰 했는데, 아직 전화가 안오네. 내일 다시 체크! mdx-40a 사고 싶다. 거의 천만원 하는것 같다. ===== RC 동호인 ===== 마닉스의 밀링(MM-140) 사용기 검색하다 RC 동호회 카페를 들어 갔는데, 포탈의 카페에 RC 동호회가 내 상상 이상으로 많다. 취미가나 전문가가 많은게 흐뭇 하지만, 한편으로는 일로 쿼드콥터 만드는게 부담 스럽네. ㅎㅎㅎ. 몸체를 잘만들기 보다, 시스템쪽에 집중 하는게 좋을 것 같다. * 자작 RC보트 만들기 http://blog.daum.net/sandbuggy/82 ===== 쇼핑 목록 ===== 업체로 부터 돈이 들어와서, 필요한 재료 구입. 재료 사는것은 일이 아닌것 처럼 느껴지지만, 사실 중요한 일이고 참 피곤해! * 탁상용 조명 2개 // 납떔 하는데 눈이 안보인다. ;; // * LED 5파이 310개 // 다음주 워크숍 준비 재료, 중앙유통단지 엘레파츠에서 받아와야 함. 내일 엘레파츠에 전화(1600-8749) 해봐야지. // * 벽시계 2개 // 작업실과 집에 하나씩 두자 // * XBOX360 무선컨트롤러+리시버 // 헬리곱터 테스트 할때 손으로 테스트 해야니깐, 하나 구입. http://wiki.bitcraze.se/projects:crazyflie:hacks:rasberrypi // ====== 7월 10일 ====== 호준님이랑 이야기 하다가 아날로그 신스에서는 voltage를 current를 바꾸는 것을 이해하는게 중요하다고 한다. http://blip.tv/abovenyquist/ems-session-6-operational-transcondance-amplifiers-ota-voltage-controlled-amplifiers-vca-and-linear-current-sources-647878 조지아텍 강의중에 operational transcondance amplifiers가 두 꼭지로 나누어 있다. opamp는 아닌데, 그런데 OTA는 어디에 쓰이는걸까? 호준님 아날로그 신스 강의에서 BJT로 오실레이션할때, base에 voltage가 아니라 current로 입력을 줬던게 생각난다. 그때 정리했던 노트 어디 갔지? ㅎㅎㅎ 에버노트에 있던가? 시간나면 위키에 옮겨 놔야겠다. ===== Caribou ===== 핸드폰에 들어 있는 Swim Remix 앨범 듣다가 Caribou 인터뷰를 찾아 봤다. 도대체 무슨 생각으로 이런 음악 만드는지. Caribou 음악 만드는 사람은 Daniel Snait인데, 재밌게도 생명공학(?) 박사다. 그래서 앨범 제목이 Swim 인가? Caribou 라이브를 들어보면, 힘이 넘치는데. 그 이유 중하나는 곡진행을 여러명이 조율하면서 라이브로 하는것. 또 하나는 드럼을 참 잘쓴다. http://www.youtube.com/watch?v=IUdOAfrOYKA "Going to universtity for music somehow seemed to miss the point" --Daniel Snait * 하루에 6~7시간씩 피아노 연습햇다. * 곡에 깔리는 under structure 에 대해서 연구해보는것. * 리믹스 컨테스트 열었다. 재능있는 사람 만남. 그런데 이 아저씨 새앨범 나옸네, Jiaolong 이라고.. http://www.youtube.com/watch?v=VthM5XyB5kI&list=PL4lEESSgxM_6L91SaYTSHaW-jkf2SOTGP ===== Emacs ====== emacs23에는 prog-mode가 없어서, 그동안 extempore.el 을 제대로 실행 못했는데, (if (not (fboundp 'prog-mode)) (define-derived-mode prog-mode fundamental-mode "" "")) 두줄을 추가하니 extempore.el major-mode가 잘 되는군. 페이크! ===== Kraftwerk The Telephone Call ===== 건반도 샀으니깐 연습을 해야겠는데, 일렉트로닉의 고전이고 좀 간단한 음악을 생각해보니깐 Kraftwerk가 생각났다. Tempo is 125 bpm These are the notes: Main part: Left hand chords: [GG] [GBbD] [CC] [EbGC] (Gmin and Cmin - hitting octaves of the roots then the chords) Right hand melody: DEbBb DEbG DEbDBbDBbG DEbBb DEbG DEbDCCBb Other part: Left hand: [BbBb] FGD [EbEb] FGD Right hand: DFGDFFGD - the melody above is also incorporated at the end. --출처: http://www.youtube.com/watch?v=dG0Z3NgmMT0 Kraftwerk는 자신의 주요곡의 sheet music을 책으로도 냈었다. 살까 하다가 인터넷에 찾아보니깐 http://musicnoteslib.com 이곳에 가니깐 악보가 pdf로 잘 정리가 되어 있다. 그런데, 어째 읽기가 쉽지 않네. caribou것도 있나 찾아보니 코드와 가사만 있는 정도, ===== Caribou Odessa Copy ===== caribou도 좋으니깐, 내가 좋아하는 Odessa를 카피해 보고 싶어졌다. 곡의 구조도 분석 해보고. Odessa는 멜로디와 리듬은 단순하지만, 기이한 소리를 내니깐 좋다. [[http://www.youtube.com/watch?feature=player_embedded&v=Yq_tDOFU5tY|youtube로 Odessa]] 듣다 보니, 소리의 명료함이 없어서 [[https://soundcloud.com/caribouband/odessa|soundcloud를 에서 Odessa]]들어보니 ㅡㅡ 베이스도 다르고 그 소리의 기이함도 차이가 있구나. ===== Extempore No 7 ===== 어쩌다가 Vimeo를 들어가보니 내 메인 화면에 Andrew Sorensen + Ben Swift의 livecoding이 떴다. Caribou같은 흥얼거려지는 리듬이나 멜로디는 없지만, 암튼 이 분야에서는 최고다. 출력으로 아날로그 댑퍼를 붙여서 가지고 놀면 더 재미난 소리가 날것 같은데. 좀 아쉽다. 아에 알고리즘에 맡기지 말고 멜로디는 귀에 붙는것 붙이는 것도 좋을것 같고 떡본김에 Andrew의 코드를 따라해 보았다. 다음에는 Kraftwerk의 멜로디와 화음을 넣어서 작성해 봐야겠다. 그런데 멜로디와 박자를 모르겠어;;;; https://vimeo.com/70016164 ;; 2013-07-10 algorave 영상보면서 작성 ;; C-x x 코드 보내기 ;; m-x xpb1 자동 완성 (load "libs/core/audio_dsp.xtm") (load "libs/core/instruments.xtm") (load "libs/core/pc_ivl.xtm") ;; (define-instrument synth synth_note_c synth_fx) (bind-func dsp:DSP (lambda (in time chan dat) (cond ((< chan 2.0) (+ (sawbass in time chan dat) (simplefm in time chan dat)) ) (else 0.0)))) (dsp:set! dsp) (define *chord* (pc:diatonic 0 '- 'i)) (define *scale* (pc:scale-from-chord 0 *chord*)) (define bl1 (lambda (beat pitch dur) (play sawbass pitch (cosr 60 20 7/3) (* .5 dur)) (callback (*metro* (+ beat (* .5 dur))) 'bl1 (+ beat dur) (if (= pitch 36) 48 36) dur))) (bl1 (*metro* 'get-beat 4) 36 1/4) (define m1 (lambda (beat ps ds) (play simplefm (car ps) (cosr 60 30 7/3) (* .6 (car ds)) (random) 10.0) (callback (*metro* (+ beat (* .5 (car ds)))) 'm1 (+ beat (car ds)) (rotate ps -1) (rotate ds -1)))) (m1 (*metro* 'get-beat 4) '(60 62 67 65 72 70 58 ) '(1/4)) (m1 (*metro* 'get-beat 4) '(64 64 65 67 67 65 64 62 60 60 62 64 64 62 62) '(1/2)) ;;DEbBb DEbG DEbDBbDBbG DEbBb DEbG DEbDCCBb ;; (define drums ;; (lambda (beat dur) ;; (play drums (case (modulo beat 4) ;; ((0) 37) ;; (else -1)) ;; 55 .15) ;; ;; (play glitch (cosr 50 10 1/2) (cosr 0 30 7/3) .1) ;; (callback (*metro* (+ beat (* .5 dur))) 'drums (+ beat dur) dur))) ;; (drums (*metro* 'get-beat 4) 1/4) ;; 드럼 은어디간거?요 ;; glitche ㅗr업소. ;; 6nㅂㄴ 에 dsp ===== Love2D ===== 이토이 책을 Love2D책으로 바꿔 볼까? 에효 하고 싶은건 많은데 버리질 못하는 구만. * [[http://blog.naver.com/PostView.nhn?blogId=22cenboy&logNo=60170525701&categoryNo=0&parentCategoryNo=47&viewDate=¤tPage=11&postListTopCurrentPage=1&userTopListOpen=true&userTopListCount=5&userTopListManageOpen=false&userTopListCurrentPage=11| love2d 강좌 한글, 게임잼]] * [[http://blog.naver.com/PostList.nhn?blogId=cra2ybo%20y&categoryNo=60&from=postList|love2d 강좌, 설치, 루아, 소코반, 대 비공정 시대!]] * 게임 잼, livecoding, [[http://www.youtube.com/watch?v=tXlZ7UE_bLk&feature=share&list=UU1oN1h3nTE5HBfEEbmhXBiA|즉흥연주]] 실시간의 매력! ====== 7월 11일 ====== ===== 스파이라디오 ===== http://www.diymania.net/ 오디오 DIY 커뮤니티. 내일 살것, 그런데 어떤 부품을 사지? * TR * 캐패시터 스파이서킷 서베이: * http://www.talkingelectronics.com/projects/Spy%20Circuits/SpyCircuits-1.html * http://www.talkingelectronics.com/projects/Spy%20Circuits/SpyCircuits-2.html * http://www.talkingelectronics.com/projects/Spy%20Circuits/SpyCircuits-3.html 행아웃으로 만들자연구실 사람들과 미팅을 했다. 찾아보니깐 스파이 라디오라는게 만드는 것 자체는 새로울게 없다. 워크숍으로 가치 있을려면, 이것으로 다양하게 푸는게 중요하다. 잘 살리는게 중요. 회의: https://docs.google.com/document/d/1Rh5ycgNnRqJdLv82YbPmTdHf--24ZQMDWy7AcaoKd3Y 질문: 스파이 라디오에 2n2222를 써를 쓸때도 있고 BC548, 2N3904를 쓰기도 하네... ===== 부품 쇼핑몰 ===== mbed1768보드가 없어서 안양의 업체에서 새로 구입했다. logic16이랑 버튼, 스위치, 전선을 구입했다. 이 업체는 sparkfun처럼 하실려고 위키도 운영하시고, 친절했다. 쇼핑몰을 만드는것은 자잘한일이 많아서.. 나는 하기 힘들것 같다. 어제 LED 부품 받으러 엘레파츠에 보니깐, 인테리어가 카페같고 세련되어 있다. 엘레파츠는 디바이스마트 보다 싸서 좋긴한데, 잘될려면 위키 같은게 운영되어서 노하우와 경험이 쌓일 수 있여야 할 것 같다. ===== 누나에게 빌린돈 ===== 누나에게 전화가 와서, 마침 생각난김에 누나가 빌려준 돈을 갚았다. 지난 3월에 인공위성할때 카드값이 었는데, 정리하니깐 맘이 편하다. 누나에게 더 많은 기회가 갔으면 좋겠다. 미안하고. ===== 재경에게 보내는 편지 ===== 재경는 성공(재경이가 원하는것 하기)해야하는데 생각이 들면서도, 원하는바를 들어보면 **참 갈길이 멀다** 라는 생각이 들었다. 재경이는 건축 설계 환경에서 각기 다른 포멧을 쉽고 여러명이 사용할 수 있는 플랫폼을 만들고 싶어 한다. 카타르에서 일하면서, 그에 대한 애로사항이 참 많았던 이야기를 들으면서 확신을 한듯 하다. 가능성 있는 이야기고, 자신의 플랫폼을 가지는것은 실패하든 아니든 중요한것 같아서, 잘해보라고 이야기 했다. 내가 실력이 좋아서 많이 도와주면 좋겠는데... 웹플랫폼에서 돌아가는 cad 만들기 위해서 우선 아래 코스를 보라고 추천 했다. * https://www.udacity.com/course/viewer#!/c-cs291/ * http://www.codecademy.com/tracks/javascript ===== HW 개발자 워크숍 준비 ===== mbed 사용하는 업체가 잇네. 영국에서 꽤 큰 업체네. 블로그도 잘 운영 되고 있구. * http://blog.feabhas.com/ * http://blog.feabhas.com/2013/05/test-driven-development-tdd-with-the-mbed/ unity사용해서 mbed tdd하기 * http://blog.feabhas.com/2013/04/native-cc-application-development-for-the-mbed-using-cmsis-dap/ CMSIS 사용하는 LED Blink. Delay대신 System Tick Timer 를 사용. * https://github.com/feabhas/dreamlauncher USB드라이버 없는 장치의 디바이스 드라이버 만들기. USB 미사일 장난감을 예로 사용. 괜찮은 재료네! --출처 [[http://mbed.org/blog/entry/mbed-professional-training-platform/|mbed 블로그]] **RTOS**: /Real Time Operating System/ 임베디드 서비스가 커지다보면 동시에 여러 테스크를 돌아갈 필요가 생기는데, 그래서 프로젝트가 커지면 RTOS를 사용한다. 인공위성도 마찬가지고!. 쎄트랙아이도 VxWorks쓰다가 [[http://www.rtems.com/|RTEMS]]를 변형해서 쓴다고 한다. 러시아에서 만난 취미로 로켓만드는 프랑스 친구도 일할때 자신이 rtos를 만들어서 쓴다고 하고. 코스 과정으로 RTOS를 밑바닥 부터 만들어 보면, 펌웨어 개발자 실력 향상에 많이 도움이 될텐데.. 나도 실력향상 할려면 RTOS를 한번 만들어 봐야겠다. TODO: 여기 RTOS 내용 한번 정리하면 좋겠네 * http://blog.feabhas.com/tag/rtos/ C언어 컴파일/ 링크 과정 {{:journal:c_compile_link_process.jpg?200|}} ====== 7월 14일 ====== ===== 게임 만들고 싶어 ===== 복잡한 게임이 아니라, 횡스크롤의 플랫폼 게임을 만들고 싶다. 그림고 그리고 싶고, 배경음악도 만들고 싶고, 그래픽스도 하고 프로그래밍도 하고 싶은걸 다 만족 시킬려면 이런 게임을 만들어 보고 싶다. https://github.com/SimonLarsen/mrrescue Mr. Rescue 게임 보다가... ===== 워크숍 준비 ===== 내일은 평택가서 워크숍을 해야한다. 전날 되면 왜이리 두근거리냐.. 막상 할때는 아무 생각이 안드는데, 난 참 시동이 늦게 걸린다. 쑤욱 몰일이 안돼 ===== 작업 ===== 주문주문주문 * Walkera WIFI 모듈 두개: http://www.walkera.com/en/user.php?act=order_detail&order_id=365 * [[http://www.walkera.com/en/goods.php?id=2406|WALKERA QR W100S WiFi 쿼드콥터]] * HUBSAN 신형 H107 쿼드콥터 USB CMOS 모듈을 살까? 아님 만들까? 고민중. 아님 아래 두개를 사서 똑같이 만들어? * CAM8100-U http://kr.element14.com/embest/cam8100-u-module/mod-cam-devkit-8500d-sbc8100-plus/dp/2136552 * [[http://www.udevice.co.kr/02.php?type=view&data=aWR4PTEwNiZwYWdlY250PTAmbGV0dGVyX25vPTE2Jm9mZnNldD0wJnNlYXJjaD0mc2VhcmNoc3RyaW5nPSZwcmVzZW50X251bT0xNQ==|TCB2010USB]] 하하핳 여기 잇따. 유디바이스 전화해야겟다.!! 짱. 가격은 얼마일려나? 070-8244-6330 ====== 7월 16일 ====== HW개발자를 위한 SW의 이해. 이틀째. 지난밤 8시부터 오늘 6시까지 잤다. 휴.. 어제 화용 속상하게 했네.. 내가 신경 안쓸려고 하는건 아닌데.. ====== 7월 20일 ====== Walkera와 허드슨을 날려보니깐 이거 좀 불안하다. 조정을 잘못 하면 금방 부서 질것 같다. 벌써 허드슨은 자이로가 잘 동작 안한다. 사진찍고 정리를 해야겠다. Walkera 분해 할려고 하니깐 정밀 드라이버가 필요하네, 구로에서 베셀 정밀드라이버 3개 정도 구입해야 겠다. 십자 두개, 일자한개. +P.0x100, +P.00x75, -1.8x50 Walkera에서 새로 부품과 쿼드 콥터 하나를 더 주문했다. * Motor(clockwise) * Motor(clockwise) * Motor (counter-clockwise) * Gear set * Bearing(3*6*2) * Gear shaft * Receiver(RX2646H-DS) * Motor(counter-clockwise) * QR W100 Mode:Mode 1 * Radio:W/O radio BNF fit package * Charger:Japan standard * Propellers * New V120D02S Battery 이베이에서 플래쉬 프로그래머 주문. winbond 플래쉬 지원한다고 하니 우선 이걸 쓰자고. {{:journal:blackcatusb_jtag.png?200|}} ---- 라디오/ 통신 만들기 셀폰망은 재해/기업/전쟁/전기 에 취약한 통신망이다. 위급상황에서는 셀폰망은 무용지물이 되기 쉽다. 그 대안으로 개인 라디오망을 구축해서 사용해보자. 디지털 통신이 되면 더 좋겠는데? 노트북과 FM Bug trasmitter 그리고 사운드카드 모뎀(fldigi)를 사용하면 psk31이든 cw든 간단한 모뎀을 만들 수 있을거 같네. ---- 아마존에서 TL-WR703N 도 두개 구입. 여차 하면, 그냥 이거 연결해서 해봐야지. ---- Carambola 사용해서 Dslr 제어. 이거 제품으로 만들어도 되겠다. ptp 커맨드 지원하는 Dslr 카메라 제어. USB에서 사진 읽어서 소켓으로 뿌림. https://github.com/hubaiz/DslrDashboardServer/blob/master/src/DslrDashboardServer.cpp 잘 동작하네. http://www.youtube.com/watch?v=J_sfvSelj-Q ====== 7월 21일 ====== 오마이갓. 마이크로 컨트롤러에 하스켈 올림. 아마도 c코드를 제너레이션 하는것 같다. * https://github.com/ajhc/demo-cortex-m3/blob/master/lpcxpresso-lpc1769/blinky/Main.hs * https://github.com/ajhc/demo-cortex-m3/tree/master/stm32f3-discovery 제용형 google plus보다가 잡스의 메시지 영상을 보았다. next시절 컴퓨터로 교육을 바꾸고 싶었던 비전. 여러가지가 생각이 들면서, 앨런케이, 더글라스 엥겔바트를 생각해보게 된다. > 당신의 인생이라고 일컷는 모든것(주변의)이 당신보다 똑똑하지 않은 사람들에 의해 만들어졌다는 것과 그것이 당신에게 미치는 영향을 생각 해보자. 당신이 영향을 미칠 수 있고, 다른사람들이 이용할 수 있는 당신만의 무엇가를 만들 수 있다는 사실 입니다. ---- 쿼드콥터 콘트롤러 autopilot px4 요게 갑이구만! https://pixhawk.ethz.ch/px4/en/start ---- avrdude in coffeescript. stk500 프로토콜이 복잡한게 아니구만! 출처: http://jeelabs.org/2013/03/27/avrdude-in-coffeescript/ {SerialPort} = require 'serialport' pageBytes = 128 avrUploader = (bytes, tty, cb) -> serial = new SerialPort tty, baudrate: 115200 done = (err) -> serial.close -> cb err timer = null state = offset = 0 reply = '' states = [ # Finite State Machine, one function per state -> ['0 '] -> buf = new Buffer(20) buf.fill 0 buf.writeInt16BE pageBytes, 12 ['B', buf, ' '] -> ['P '] -> state += 1 if offset >= bytes.length buf = new Buffer(2) buf.writeInt16LE offset >> 1, 0 ['U', buf, ' '] -> state -= 2 count = Math.min bytes.length - offset, pageBytes buf = new Buffer(2) buf.writeInt16BE count, 0 pos = offset offset += count ['d', buf, 'F', bytes.slice(pos, offset), ' '] -> ['Q '] ] next = -> if state < states.length serial.write x for x in states[state++]() serial.flush() reply = '' timer = setTimeout (-> done state), 300 else done() serial.on 'open', next serial.on 'error', done serial.on 'data', (data) -> reply += data if reply.slice(-2) is '\x14\x10' clearTimeout timer next() #And here’s a little test which uploads the RF12demo sketch into a JeeNode over serial: fs = require 'fs' hex = fs.readFileSync '/Users/jcw/Desktop/RF12demo.cpp.hex', 'ascii' hexToBin = (code) -> data = '' for line in code.split '\n' count = parseInt line.slice(1, 3), 16 if count and line.slice(7, 9) is '00' data += line.slice 9, 9 + 2 * count new Buffer(data, 'hex') avrUploader hexToBin(hex), '/dev/tty.usbserial-AH01A0GD', (err) -> console.error 'err', err if err console.log hexToBin(hex).length ====== 7월 31일 ====== pick and place 기기 재료. {{http://i.imgur.com/R0Hoifs.png?300}} 출처: http://vpapanik.blogspot.gr 참고: - http://vpapanik.blogspot.gr/2012/11/low-budget-manual-pick-place.html - http://www.youtube.com/watch?feature=player_embedded&v=bkYNBFXlJYQ dxf 파일에 재단할 내용 다 나옴. 재료 - Manual pick and place http://www.ebay.com/itm/260295062994 - USB Digital 200x Magnifier http://www.ebay.com/itm/170740468371 - Vacuum Pump with foot switch for Aquarium - 패달 스위치 : http://devicemart.co.kr/goods/view.php?seq=37818 http://eleparts.co.kr/EPX64HPF http://devicemart.co.kr/goods/list.php?category=003005017 - 바늘 2 종류 (좀더 작은거 집을려면 작은 바늘이 있어야 하네) - part list http://i.imgur.com/sHeJejb.png 오사카의 발판 스위치회사: ojiden foot switch http://blog.naver.com/PostView.nhn?blogId=tomyskaters&logNo=80075200635&redirect=Dlog&widgetTypeCall=true {{http://i.imgur.com/sHeJejb.png?200}}