====== cam350 merge ====== * https://www.youtube.com/watch?feature=player_detailpage&v=_VF4sRO4G3E#t=123 * http://blog.naver.com/PostView.nhn?blogId=bluebird302&logNo=30122556179 * http://blog.naver.com/PostView.nhn?blogId=handzfree&logNo=180965533 이슈 - origin 바뀌는 문제 -> eaglecam 바꿔서 해결. altium은 그냥 잘됨 - explode all -> 이거 하기는 하는데 뭐하는건지 모르겠네. - layer 이름 정리 -> eaglecam 에서 만드는 이름과 altium이름이 다름. 정리하긴 했는데 dimension layer 이름은 를 어떻게 할지 ... ====== NRF 51822 ====== BLE 모듈 개발 개발환경 다운로드 1. S110-SD-v6 2. mdk 3. sdk 4. nrfg0 참고: google Simple BLE sensor application using Nordic semi ===== BLE OSX App 만들기 ===== 상황(Situation): bluetooth 스펙도 잘모르고 Core bluetooth도 써본적이 없고, osx 앱도 만들어 본적이 없다. 대체적으로 모른다. ble 모듈개발을 위해 nordic ble 모듈 펌웨어를 읽은적이 있다. 목적(Task): Core bluetooth에서 discover, connect, and retrieve data 하는 간단한 Bluetooth4.0 어플리케이션 만들기 한일(Action*): - 튜토리얼 보고 BLE OSX App을 만들어 본다 - [[work:bleosxapp_note|연구노트 작성]] - 커맨드라인에서 BLE 다루는 테스트 스크립트 만들기http://joost.damad.be/2013/08/experiments-with-bluetooth-low-energy.html 결과(Result): - 1번 Action에 대한 결과: 배운점(Reflection) - 튜토리얼: - http://www.raywenderlich.com/52080/introduction-core-bluetooth-building-heart-rate-monitor - OS X demo: https://github.com/sandeepmistry/osx-ble-peripheral // // BPAppDelegate.m // BLEPeripheral // // Created by Sandeep Mistry on 10/28/2013. // Copyright (c) 2013 Sandeep Mistry. All rights reserved. // #import #import #import "BPAppDelegate.h" @interface CBXpcConnection : NSObject //{ // *_delegate; // NSRecursiveLock *_delegateLock; // NSMutableDictionary *_options; // NSObject *_queue; // int _type; // NSObject *_xpcConnection; // NSObject *_xpcSendBarrier; //} // //@property * delegate; - (id)allocXpcArrayWithNSArray:(id)arg1; - (id)allocXpcDictionaryWithNSDictionary:(id)arg1; - (id)allocXpcMsg:(int)arg1 args:(id)arg2; - (id)allocXpcObjectWithNSObject:(id)arg1; - (void)checkIn; - (void)checkOut; - (void)dealloc; - (id)delegate; - (void)disconnect; - (void)handleConnectionEvent:(id)arg1; - (void)handleInvalid; - (void)handleMsg:(int)arg1 args:(id)arg2; - (void)handleReset; - (id)initWithDelegate:(id)arg1 queue:(id)arg2 options:(id)arg3 sessionType:(int)arg4; - (BOOL)isMainQueue; - (id)nsArrayWithXpcArray:(id)arg1; - (id)nsDictionaryFromXpcDictionary:(id)arg1; - (id)nsObjectWithXpcObject:(id)arg1; - (void)sendAsyncMsg:(int)arg1 args:(id)arg2; - (void)sendMsg:(int)arg1 args:(id)arg2; - (id)sendSyncMsg:(int)arg1 args:(id)arg2; - (void)setDelegate:(id)arg1; @end @implementation CBXpcConnection (Swizzled) - (void)sendMsg1:(int)arg1 args:(id)arg2 { NSLog(@"sendMsg: %d, %@", arg1, arg2); if ([self respondsToSelector:@selector(sendMsg1:args:)]) { [self sendMsg1:arg1 args:arg2]; } } - (void)handleMsg1:(int)arg1 args:(id)arg2 { NSLog(@"handleMsg: %d, %@", arg1, arg2); if ([self respondsToSelector:@selector(handleMsg1:args:)]) { [self handleMsg1:arg1 args:arg2]; } } @end @interface BPAppDelegate () @property (nonatomic, strong) CBPeripheralManager *peripheralManager; @property (nonatomic, strong) CBMutableService *service; @end @implementation BPAppDelegate //#define XPC_SPY 1 - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { #ifdef XPC_SPY // Insert code here to initialize your application Class xpcConnectionClass = NSClassFromString(@"CBXpcConnection"); Method origSendMethod = class_getInstanceMethod(xpcConnectionClass, @selector(sendMsg:args:)); Method newSendMethod = class_getInstanceMethod(xpcConnectionClass, @selector(sendMsg1:args:)); method_exchangeImplementations(origSendMethod, newSendMethod); Method origHandleMethod = class_getInstanceMethod(xpcConnectionClass, @selector(handleMsg:args:)); Method newHandleMethod = class_getInstanceMethod(xpcConnectionClass, @selector(handleMsg1:args:)); method_exchangeImplementations(origHandleMethod, newHandleMethod); #endif self.peripheralManager = [[CBPeripheralManager alloc] initWithDelegate:self queue:nil]; } - (void)peripheralManagerDidUpdateState:(CBPeripheralManager *)peripheral { NSLog(@"peripheralManagerDidUpdateState: %d", (int)peripheral.state); if (CBPeripheralManagerStatePoweredOn == peripheral.state) { NSData *zombie = [@"zombie" dataUsingEncoding:NSUTF8StringEncoding]; CBMutableCharacteristic *characteristic = [[CBMutableCharacteristic alloc] initWithType:[CBUUID UUIDWithString:@"DDCA9B49-A6F5-462F-A89A-C2144083CA7F"] properties:CBCharacteristicPropertyRead value:zombie permissions:CBAttributePermissionsReadable]; self.service = [[CBMutableService alloc] initWithType:[CBUUID UUIDWithString:@"BD0F6577-4A38-4D71-AF1B-4E8F57708080"] primary:YES]; self.service.characteristics = @[characteristic]; [self.peripheralManager addService:self.service]; } else { [peripheral stopAdvertising]; [peripheral removeAllServices]; } } - (void)peripheralManagerDidStartAdvertising:(CBPeripheralManager *)peripheral error:(NSError *)error { NSLog(@"peripheralManagerDidStartAdvertising: %@", error); } - (void)peripheralManager:(CBPeripheralManager *)peripheral didAddService:(CBService *)service error:(NSError *)error { NSLog(@"peripheralManagerDidAddService: %@ %@", service, error); [peripheral startAdvertising:@{ CBAdvertisementDataLocalNameKey: @"hello" }]; } @end ===== 전기자동차 ===== http://www.cyclone-tw.com/order-1chain.htm https://www.google.co.kr/search?q=Kelly+Controller+diy&newwindow=1&safe=off&espv=210&es_sm=91&tbm=isch&imgil=siwCKCSndPvhWM%253A%253Bhttps%253A%252F%252Fencrypted-tbn2.gstatic.com%252Fimages%253Fq%253Dtbn%253AANd9GcSpI1dFI3Dso0XXWGRc8PGmhCLJxgLVLGxV8veKzq60kWzLWFLu%253B427%253B272%253B-wRhUcsxhczVqM%253Bhttp%25253A%25252F%25252Fwww.electricforum.com%25252Fcars%25252Fgeneral-electric-vehicle-discussion%25252F2712-electrifying-porsche-944-changing-direction-warp9-motor-kelly-controller.html&source=iu&usg=__0tKFQp1EoxZ4XvR8DxsV9KElaOA%3D&sa=X&ei=UpogU-PGBIrukgWaoYAI&ved=0CDQQ9QEwAQ#newwindow=1&q=Kelly+Controller+electric+car&safe=off&spell=1&tbm=isch&facrc=_&imgdii=_&imgrc=v6pkuWMvzE11cM%253A%3BmhL0V8RRVVb-QM%3Bhttp%253A%252F%252Fautochunk.com%252Fwp-content%252Fuploads%252F2012%252F06%252FEVo1-indias-first-electric-race-car-6.jpg%3Bhttp%253A%252F%252Fautochunk.com%252F656%252F2012%252F06%252F23%252Fevo1-indias-first-electric-racing-car%252F%3B550%3B351 http://www.diyelectriccar.com/forums/showthread.php?t=81416&highlight=SepEx https://www.youtube.com/watch?v=FEqOMmP78xY http://www.etotheipiplusone.net/?p=2990 http://www.alibaba.com/product-detail/Electric-Car-Hub-Motor_1560615160.html?s=p http://www.etotheipiplusone.net/?p=2967 전기차 대회? https://www.youtube.com/watch?v=RLQcbuDXxWs https://www.youtube.com/watch?v=Vms4NjBJbZI http://www.diyelectriccar.com/wiki/ 위키. 포럼이 잘 정리되어 있음 ------ ====== 3월 14일 ====== load cell 구입 계측기용 opamp 사용해서 load cell 읽어서 체중계 구현 phidgets의 몰렉스 커넥터 http://www.phidgets.com/ - PCB보드 커넥터 0705530037 - 케이블 커넥터 50-57-9403 ====== 3월 15일 ====== 바리가 동물병원 갔다 왔네. 관절염과 비만 그리고 콩팥에 두개의 결석 오는길에 목동 10단지 빵집에서 빵 먹었는데, 맛이 좋다. 브레드박스 오늘 할일 * 하드웨어 워크숍 준비물 준비 * 기차표(7시) 예매 * 델 VGA커넥터 찾기 [[:제품제작|제품제작]] ====== 3월 16일 ====== 바이폴라 접합 트랜지스터에 대한 이해. KOCW와 전자회로책(?) 보고 정리 영남대학교 전자회로 강좌 http://www.kocw.net/home/search/kemView.do?kemId=705901 * [[http://www.kocw.net/home/common/contents3/html/2013/Yeungnam/KimSungwon/3-1/default.htm|다이오드의 DC해석과 등가 모델]] 대신호 등가회로(DC 등가회로) 해석: 이상적, 정전압, 비선형 모델, 전류전압 그래프. * [[http://www.kocw.net/home/common/contents3/html/2013/Yeungnam/KimSungwon/3-2/default.htm|다이오드의 AC해석(소신호)과 등가 모델]] 소신호 등가회로(AC 등가회로) * [[http://www.kocw.net/home/common/contents3/html/2013/Yeungnam/KimSungwon/4-1/default.htm| 다이오드 응용회로]] 반파 정류기 전파 정류기 리미터 클램프