AVR90S2313과 Treva 카메라

AVR Project 조회 수 11397 추천 수 50 2003.09.22 10:17:41


http://stk500.hp.infoseek.co.jp/treva.htmlipstack

최근 마이콤등으로 움직이는 방법이 증가하고 있는 FeelH용 CMOS 카메라인 Treva입니다.
STK500에는 부속된 2선식 케이블로 Vcc-GND, SCK-DO의 형태입니다.

Treva와 STK500의 접속회로 (AT90S2313-10PI)

STK500의 타겟을 5V로 동작시키는 경우로, Treva를 제어할 때 필요합니다.
STK500의 타겟을 3V로 동작시키는 경우에는 직결하여 동작시킵니다.

어셈블러 다운로드
(AVR Studio 4의 프로젝트입니다, 디버그 모니터와 셋트로 되어 있습니다)
http://stk500.hp.infoseek.co.jp/asm/Treva.ZIP
소스안에는 SCK을 PortD의 포트 4로 , DO를 PortD의 포트 5로 하였습니다.

서브루틴의 해설
・treva_init
전술한 접속으로 Treva용 IO포트를 초기화합니다.

・treva_get
Treva로 부터 각종 데이터 취득 및 처리를 합니다. 아래 설명을 참조,
Treva로 부터 컬러 데이터를 호스트로 보낸다,(호상표시 소프트)
Treva로 부터 데이터를 (휘도에 의해) 흑백데이터로,
비트맵을 호스트로 송신한다.(범용소프트 사용가능)
Treva에서 데이터를 (휘도에 의해) 흑백데이터로,
사용자 지정의 임의의 1~72의 비트패턴을 호스트로 송신한다.(범용소프트 사용가능)
Treva로 부터 데이터를 (휘도에 의해) 흑백데이터로,
사용자지정의 임의의 1~72행의 비트페턴을 호스트로 송신한다.
동시에 같은 줄안에 존재하는 에지(백→흑, 흑→백)을 검출하여,
SRAM에 에지위치를 저장한다. 레지스터는 R14~R31을 사용합니다.

이 서브루틴을 쓰는, 실지 예를 별도의 페이지에 소개합니다. (아래 참조)
・tx_232
Treva의 화상데이터를 호스트로 송신하기 위한 1바이트 송신서브루틴입니다.
R16에 셋트된 데이터를 UART를 사요하여 송신합니다.
・rx_232
Treva의 처리와는 관계가 없으나,
호스트에서 기동 트리거를 받기위해 쓰고있는 것입니다.
UART를 써서 수신대기를 합니다.
수신완료후 수신데이터를 R16에 세트하고, 리턴합니다.
・crlf_232
Treva의 처리와는 관계가 없으나,
호스트로 CRLF를 송신하기 위한 서브루틴입니다.
R16을 사용합니다.

treva_get의 상세
현재 treva_get 서브루틴에는 4개의 기능이 있습니다.
R25를 셋트한 1~4의 코드로 동작이 분기됩니다.

코드1
화면표시 소프트로 표시하는 형태로, 호스트로 컬러화상을 보낸다
R25에 1을 세트한다.
호스트로 부터 1바이트 수신 서브루틴 rx_232를 Call한다.
1바이트 수신이 완료되면 treva_get을 Call한다.
데이터를 호스트로 전송종료 한다음 리턴합니다.

화상표시 예 (ttrevaget.exe를 사용)


코드2
취득화상을 흑백화상으로, 범용 통신소프트로 표시하는 형태로,
호스트로 비트맵 데이터를 보낸다.

서브루틴 사용방법
(전처리)
소정의 EEP-ROM (소스중의 bw_level)으로 흑색의 Y값을 지정합니다. (초기 =60)
이후에 Build하고, Hex File을 만들어 주십시요.

(비트)
나중의 응용을 고려하여 EEP-ROM으로 하고 있습니다.
통신을 경유로 써넣기 교환이 가능하면 편리하다고 생각합니다.

R25을 3으로 셋트한다
treva_get을 Call한다.
모든 데이터를 호스트로 전송한다음 Return한다.

(처리요령)
흑백 2치의 상태에서의 동작은 Treva로 부터 보내져 돌아오는 U/V/Y의 신호의
내부 휘도신호로서 있는 Y신호의 것을 감시하고 있습니다.
서브루틴의 중간에서 Y신호의 8 비트의 앞에서 두번째,
EEP-ROM안의 bw_level로  보존되는 값을 읽어서, 그값이 크면  백,
작으면 흑으로, 백에서는 - , 흑에서는 +의 아스키값을 호스트로 송신합니다.

Y신호는 U/V신호와는 틀리며, 각 픽셀 전부를 Treva에 의해 보내지는데
모두 96×72의 비트맵이 호스트로 표시됩니다. (하이퍼 터미널 등에서 표시가능)
이처리내용의 키포인트로 되는 bw_level의 값에 관해서는,
이것은 이곳에 있는 trevaadd.exe을 쓰고,
흑부분에 마우스의 커서를 가지고 가면 알게 됩니다.
주의할 점은, 흑백 판정을 할때의 값은 흑색기준 이어야 합니다,
지정값보다 크면 백색으로 판단하는데, 흑색의 값을 지정하십시요.
반대로 하면 계속해서 모두 백색으로 인식해 버립니다.

데이터 취득예
(처음에)
・통신 소프트의 부적합으로 모든 패턴이 표시되지는 않습니다.(죄송합니다)
・통신 소프트의 행간 부적합으로 패턴이 종방향으로 길게 됩니다.(죄송합니다)
・여기서 사용하고 있는 화상표시 소프트는 trevaget.exe이며,
  화상해석 소프트는 trevaadd.exe를 내려받기 하십시요

직선





십자


코드3
코드2 처리중에, 지정된 1행의, 호스트로 비트맵데이터를 보낸다.
서브루틴 사용방법

(전처리)
소정의 EEP-ROM (소스중의 bw_level)으로 흑색의 Y값을 지정합니다. (초기 =60)
소정의 EEP-ROM (소스중의 extract_num)으로 행번호 1~72를 지정합니다.(초기 =36)
이후에 Build하고, Hex File을 만들어 주십시요.

(비트)
나중의 응용을 고려하여 EEP-ROM으로 하고 있습니다.
통신을 경유로 써넣기 교환이 가능하면 편리하다고 생각합니다.

R25을 3으로 셋트한다
treva_get을 Call한다.
모든 데이터를 호스트로 전송한다음 Return한다.

처리요령
동작자체는 코드2  (R25-2)로 비트맵과 완전히 같다.
단, 코드 2에서는 Y신호의 다음의 값으로 흑백 데이터를 호스트로 송신하고 있으나.
여기서는 판정후에 지정행을 샘플링 중에 감시를 하고 있습니다.
지정행에 있는 사이의 96픽셀분은 호스트로  흑백 비트맵을 송신하고 있으나
지정행 이외에는 송신하지 않습니다.
이것은, 매우작은 마이콤에서 Treva를 쓰는 라인을 트레이스할 때는,
진행방향에 대하여 수평 1라인만 보이도록, 판단이 되는지를 보기위한 동작 패턴입니다.

데이터의 취득예 (처음에)
・여기서 사용하고 있는 화상해석 소프트 trevaadd.exe는 여기에서 내려받기.
・화상이 어둡게 코멘드 하세요

원화상(코드1의 취득)


전체 비트맵 (코드 2의 취득)


트레이스중의 이미지 (코드3의 26번째의 샘플링을 연속실행하여 취득)
실제는 사진과 같이 종방향으로 움직입니다.


코드4
코드3의 처리 + 에지검출하여, 인식한 에지의 위치정보를 SRAM에 최대10개를 보존한다.

서브루틴 실행방법
(전처리)
소정의 EEP-ROM (소스중의 bw_level)으로 흑색의 Y값을 지정합니다. (초기 =60)
소정의 EEP-ROM (소스중의 extract_num)으로 행번호 1~72를 지정합니다.(초기 =36)
이후에 Build하고, Hex File을 만들어 주십시요.

(비트)
나중의 응용을 고려하여 EEP-ROM으로 하고 있습니다.
통신을 경유로 써넣기 교환이 가능하면 편리하다고 생각합니다.
소스안의 MAX_EDGE 정의를 보면 최대유출 에지수를 정의 하는데,
이것을 변경하면 많은 에지를 유출할수 있습니다.

R25에 4를 세트합니다.
treva_get을 Call해 주십시요.
전부의 데이터를 호스트로 전송한 다음, Return 합니다.
에지의 위치는 수평방향의 96셀에 대하여, 1~96의 값을 SRAM에 최대 10개를 저장.
(treva_edge), SRAM(edge_count)에 에지수를 저장합니다.
에지가 10개를 넘으면 가장 오래된 것을 보존합니다.

(처리요령)
동작자체는 코드3의 1행 유출과 같은모양의 동작을 합니다.
코드 3은 백색판정을 하는 실제의, 전회의 색과 틀리게되면 그 픽셀의 위치를,
treva_edge의 선두부터 순서데로 최대 10건까지 기록을 합니다,
이미지에서는 라인트레이스중의 1줄의 선의 좌우 (흑색선의 양단)의 위치를
Treva 수평방향 픽셀에 있는 96에 대한 절대위치를 인식가능합니다.

데이터의 취득예 (처음에)
・화상은 어둡게 코멘드하세요

● 원래의 (코드1에서 취득)


● 에지 검출결과 (2회 실행 - 2번째는 약간 오른쪽으로 휘어져 실행)


주의
동작확인은 AT90S2313입니다.
이 샘플루틴의 화일에는 UART의 초기화 루틴은 없습니다.
동작확인시의 클럭은 10MHz입니다.
 



List of Articles
번호 제목 글쓴이 날짜 조회 수

AVR Project PIC Based Serial Port Servo Controller file

http://www.digitalnemesis.com/ash/projects/picservo/ ◆ PIC Based Serial Port Servo Controller By Ashley Roll Ever wanted to use Servos in a robotics project? This project uses a PIC microcontroller and...

AVR 강좌 RS-232 란 무엇인가? file

RS-232 란 무엇인가...

AVR 강좌 하드웨어 기초 file [1]

윤덕용 새 페이지 1 외부 자료 Link 작성자 Thinking in C++, 2nd ed. Volume 1 Bruce Eckel Thinking in C++, 2nd ed. Volume 2 ...

AVR Project FT245AM을 사용한 USB 인터페이스 설계 file

http://www.eix.co.uk/Ethernet/USB/ FT245AM을 사용한 USB 인터페이스 설계 USb는 생각보다 빠르다. USB는 PC의 저속에서 중속의 주변장치에서 새로운 방법을 제공한다. 새로운 USB 표준은 RS232C와 비교하면 보다 ...

AVR Project VHF 무선 데이터 수신기 file

http://jaichi.virtualave.net/avr-prog-e.htm 새 페이지 1 VHF 무선 데이터 수신기 ■ 회로: 이 수신기는 증폭도과 함께 크리스털 세트보다 작습니다. 작동전압 범위는 3V 에서 5V입니다. 나의 책상위에서는 2.5V이하로 작동합니다....

AVR Project VHF 무선 데이터 송신기 file

http://users.cableaz.com/~cappels/dproj/LCRFLINK/TRRxmtr/TRFxmtr.htm 새 페이지 1 산뜻한 생각으로 대략 접근하는 무전원의 송신기를 그렸다. 쓰기 시작하기 전에. 디커플링 캐패시터를 너무 크게 만들지 않도록 주의하라 그래서, ...

AVR Project AVR 6디지트 50MHz 주파수 카운터 file

http://www.myplace.nu/avr/countermeasures/index.htm AVR 6디지트 50MHz 주파수 카운터 ■ 개요 이것은 필요에 충족하는 또 다른 프로젝트이다. 나는 TTL 칩들을 이용해 간단히 주파수 카운터를 조립한적이 있다. 그것은...

AVR Tool AVR JTAG ICE file

Description: The Atmel AVR® JTAG ICE is an In-circuit Emulator for Atmel's megaAVR® Flash microcontrollers with 16K or more program memory. The JTAG ICE talks to the On-Chip debug module on the...

AVR Project PIC 전자식 그림간판의 제작(AVR로 응용가능) file

http://www.interq.or.jp/japan/se-inoue/e_pic6_2.htm 16F84A의 전자식 그림간판 메세지는 오른쪽에서 왼쪽으로 흐르며 표시한다. 128 개의 LED를 이 기판에 사용하였다. 이 장치의 소프트웨어는 다음과 같은 기술을 사용하...

AVR Project AVR JTAG 에뮬레이터의 제작 file

http://avr.openchip.org/bootice/index.html ■ BootICE(아트멜 AVR JTAG ICE와 호환)를 만들자 아직도 JTAG ICE를 많은 돈을 주고 구입하십니까? 여기에 완전하게 호환되는 BootICE의 완전한 설계(회로도,기판,소...

AVR Tool AVR Studio V4.07 설정방법 및 디버거 사용방법 file

http://www.atmel.com/ipstack AVR Studio V4.07 설정방법 및 디버거 사용방법 (1) 다음 사이트를 방문하여 AvrStudioV4.07을 받는다. http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725 그림과 같은 CD모양의...

AVR Project CMOS 카메라 Treva의 PC화상표시 file

http://www.paken.org:8080/aaf/treva/index.htmlipstack CMOS 카메라 Treva의 PC화상표시 feel H용 이미지 캡쳐유닛 Treva를 범용 CPU로 접속합니다. 입력과 출력을 1가닥의 신호선으로 OK!가장 간단한? 이미지 센서입니...

AVR Project AT90S2313 디지털 용량계 file

http://elm-chan.org/works/cmc/report.htmlipstackAT90S2313 디지털 용량계 이것은 용량을 빨리 측정하는 간단한 용량계이다. 용량의 측정 원리는 임피던스 브릿지나 딥메터처럼 용량을 한번에 측정한다. 요즈음의 표준 용량계는 Cx에...

AVR Project AVR로 만드는 3채널 다이오드 온도계 file

http://elm-chan.org/works/temp3/report_j.html 다이오드로 온도를 측정하는 3채널 온도계의 제작 고정도 써미스터를 사용하여 무조정으로 ±0.5℃の 온도정도를 실현을 하였습니다만, 최근의 프로세서는 다이온도를 직접 모니터하...

AVR Project Treva or DMR-C1 Serial Camera Interface file [3]

http://homepage3.nifty.com/mujirushi/ews/dmrc1/ipstackTreva Serial Camera Interface 이 페이지에는 독자적으로 해석한 내용이 포함되어 있으므로, 반드시 내용을 보증하는 것이 아닙니다. 이용에 있어서는 자기책임으로 하여 주시기...

AVR Project Treva를 Blutooth에 연결한 무선이동 카메라 file

http://www.asahi-net.or.jp/~qx5k-iskw/robot/blue.htmlipstack ■ Treva를 Blutooth에 연결한 무선이동 카메라 모듈의 VCC, VCC_IO, ON단자에 3.3V를 공급하고, TxD, RxD를 PC의 직렬포트에 접속합니다. 이제 모듈을 ...

AVR Project AVR90S2313과 Treva 카메라 file

http://stk500.hp.infoseek.co.jp/treva.htmlipstack 최근 마이콤등으로 움직이는 방법이 증가하고 있는 FeelH용 CMOS 카메라인 Treva입니다. STK500에는 부속된 2선식 케이블로 Vcc-GND, SCK-DO의 형태입니다. Treva와 STK500의 ...

AVR Project AT90S2313을 사용한 IR to USB 모듈 file

http://www.cesko.host.sk/IgorPlugUSB/IgorPlug-USB (AVR)_eng.htm Universal USB interface & USB Infrared Interface with microprocessor AT90S2313-10 : 마이크로 콘트롤러로 USB를 완성 : IgorPlug-USB (AVR) 이기사의 ...

AVR 강좌 AVR Mega128 퓨즈비트 설정방법 file

http://www.tns-tech.co.kr128 퓨즈비트 설정방법...

AVR Project AVR Mega8을 사용한 PID제어 소스 file

http://www.circuitcellar.com/library/print/1002/eady147/index.htm LCD에 보이는 것은 실제 조리기의 온도와 음식3개의 온도이다. 압전 경보기가 꺼져 있으면, 조리기의 온도는 5° 간격으로 180° 에서 400°F이다. 음...