serial communication
*serialEvent
interrupt 에서는 최소한의 동작만 하도록.
통신은 서로 아다리가 맞아야.
논리적으로는 이상이 없어도 타이밍을 간과해서 전송에러가 날 수 있다.
컴퓨터가 빠를 때는 문제가 없으나 연산량이 많거나 MCU 끼리 통신에서는 문제가 될 수 있다.
ex) processing 에서 vision 은 빨라봐야 15 fps
*processing 연산 시간 측정
시간을 재고 싶은 연산의 시작과 끝에 각각 millis () 로 시스템의 시간을 구한 후 차이로
*시간 차이로 위치를 측정하는 기술을 'arduino' 에서 구현할 수 있는지 생각해보자.
*통신속도
로켓을 쏠 때는 9600 보다도 더 낮은 속도로.
낮을 수록 전송의 신뢰도는 높아짐.
31,250 bps -> MIDI 전송 속도
RS232 통신에 기초
이 속도로 3 byte 만 보내면 소리가 난다.
250,000bps 250 kbps -> DMX (조명 기기 전송 프로토콜) 전송 속도
485 통신에 기초 (RS232 와
ex) 갤러리아 백화점 RGB led, 벨라지오 호텔 분수
로켓에는 RS422, CAN 통신 등이 쓰임.
아주 비싼 우주 위성은 따로 쓰는 방식이 있음.
CAN 은 선구자적인 위성에서 사용. 실제로는 자동차에서 사용.
자동차 튜닝 업체에서 컴퓨터로 시험할 때 사용.
자동차의 Electronic Control Unit (ECU) 에서 여러 가지 센서의 데이터를 받을 때 사용.
무지막지하게 신뢰도가 중요함.
후진 국가의 위성에서는 RS232 를 사용.
인공위성에서 가장 문제가 되는 것이 하네싱 (연결) 부.
진동 때문에 끊어지기 쉬움.
232, 485 모두 1:1 통신
Multi Channel 통신은 75176칩을 사용해서 MAX485 통신.
통신을 하고 싶을 때 손 드는 선이 하나 더 필요.
평상시에 0V 로 있다가 말하고 있을 때만 HIGH 로.
ex)
output (pin0, HIGH);
serialWrite ("내가 보낸다.");
output (pin0, LOW);
나머지는 75176 이 알아서 해준다.
실제로는 두 개의 선으로 같은 신호를 약간의 딜레이를 주고 보냄.
신호 전송의 신뢰도를 높이기 위해서 noise cancellation 을 사용.
1km 까지도 전송 가능.
485 multi channel 통신
사이키 조명의 뒷면을 보면 내 모듈의 번호 (ID) 를 딥스위치로 조정.
75176 을 사용하려면 ID 를 설정하는 딥 스위치가 필요.
ex) 3개짜리 딥스위치는 0~7 의 8개 ID 로 설정가능. 000, 001 ~ 111
grouping
갤러리아 백화점의 수많은 조명을 하나의 controller 로 제어할 수 없다.
기본적으로 각자의 조명이 controller 를 가짐
몇 개의 조명을 합쳐서 group 으로 설정하고 더 큰 controller 로 제어.
이런 식으로 계속 grouping 을 해서 수많은 조명을 제어.
ATMega 168, 328 은 이전에 많이 사용하지 않았다.
ATMega 128, ATTiny 2313 등을 더 많이 사용.
앞으로 할 것.
ATTiny 2313 을 20x20 PCB 에 실장해보자.
아무 센서나 5V, 0V 로 연결만 하면 2kbps 까지 통신이 가능해짐.
다음 시간 필요한 것
SN75176
http://devicemart.co.kr/mart7/mall.php?cat=001004006&query=view&no=18746 ATtiny2313 http://devicemart.co.kr/mart7/mall.php?cat=001001001&query=view&no=8784 프로그래머용 6핀 http://www.devicemart.co.kr/mart7/mall.php?cat=004022003&query=view&no=17499 Crystal : 16MHz http://devicemart.co.kr/mart7/mall.php?cat=002004001&query=view&no=524 Dip : socket (20pin) http://devicemart.co.kr/mart7/mall.php?cat=035001004&query=view&no=6023 PCB Support http://devicemart.co.kr/mart7/mall.php?cat=005009003&query=view&no=9349 (이건 각자 원하는 길이로 맞춰서 주문하시면 될 것 같습니다.) ATtiny는 지난 주에 구로점에서는 다 떨어졌습니다. (제가 2개 산 것이 마지막)
오프라인으로 가실꺼면 미리 확인하세요. SN75176도 많지는 않더군요. 수업 막바지라 힘드네요. 다들 힘냅시다~~~ +
범용기판 6개 http://www.devicemart.co.kr/mart7/mall.php?cat=005004001&query=view&no=12320 크기는 각자 원하는대로
상태 led
DIP 스위치는 안 달 것 (프로그래밍)
그 외 5V/0V 로 동장하는 다른 센서도 가져와서 테스트합시다.
*빠진 것 추가 부탁드립니다.
완성하면 32개까지 연결이 가능.
규격상으로는 256 까지도 가능. 저항 두 개를 잘 달아야함.
더 필요하면 grouping 을 하면 된다.
*그림 있으신 분 추가 부탁드립니다.
*일부 통신 규격 정리
|
'만들기 / making > sensing workshop' 카테고리의 다른 글
Day 9: Lux Sensor (0) | 2009.08.31 |
---|---|
Day 8: Touch Sensor (0) | 2009.08.31 |
multi sensor arduino / processing (0) | 2009.08.31 |
arduino + processing code (0) | 2009.08.31 |
Audio sensor module on PCB (0) | 2009.08.31 |