본문 바로가기

[Light Drive 2/4] 적외선 무선제어 송신부, 적외선 리모컨 만들기 지난 포스팅에서 로봇의 본체는 다 제작했었습니다. 무선 제어로봇이니 리모컨이 필요한데요. 리모컨도 에칭으로 본체보드 만드는 방법이랑 같은 방법으로 제작했습니다. 단면기판으로 제작했고, 손에 쥐기 편하도록 일부러 크게...했지만 재료값이... 아무튼 같은 순서로 먼저 회로도부터 볼까요.! 포스팅이 너무 획일적이네요. 포스팅에 생명을 불어넣는 방법을 모르겠어요.! 회로도는 다음과 같습니다. 회로를 설명하자면 IR LED가 적외선 LED 출력부 이고 NPN 트랜지스터 C3205를 사용한 이유는 PNP 타입을 쓰면 AVR에서 0V를 출력하면 적외선 LED가 켜지기 때문에 헷갈려서 그냥 NPN사용했습니다. 헤헤.. 그것외에는 그냥 TINY2313에 B포트에 스위치 6개를 입력한 형태입니다. - 부품 리스트 - -.. 더보기
[Light Drive 1/4] 적외선 무선제어 수신부, 로봇 메인보드 만들기 안녕하세요. BinGoon입니다.AVR을 시작하고 첫 프로젝트를 진행해보려고 합니다. 리모컨으로 조종하는 RC카? 로봇? 을 만들어 볼려고 직접 PCB기판을 설계해서 만들었는데 잘 됬는지 모르겠네요. 먼저 첫째는 하드웨어 설계입니다.조작을 위한 리모컨이랑 움직일 본체를 만들어야 겠지요.. 그럼 먼저 아래 회로를 보실까요.! Light Drive는 로봇이름이에요. 작명센스가 없답니다. 저는.. 회로도는 다음과 같습니다.아래 회로도는 로봇본체 회로도입니다. 간단하게 모터 제어부도 IC로 만들어버려서 생각보다 복잡하지는 않습니다. 적외선모듈인 KSM603은 37.9Khz를 사용하는 모듈 아무거나 사용하면 동작합니다. - 부품리스트 - - ATTINY2313 IC 1개- 20PIN IC 소켓 1개- KSM603.. 더보기
AVR 스위치 입력 값에 따라서 LED 제어하기 - AVR 연습하기 이번에는 AVR에 입력을 주어서 LED를 제어해봅니다. 3개의 스위치를 브레드보드에 꼽고 스위치를 누를 때마다 들어오는 LED가 달라지도록 프로그래밍 했습니다.입력으로 AVR을 제어할 때는 I/O레지스터 중 3가지 (DDRx, PORTx, PINx)레지스터가 모두 사용되고 if 조건문으로 비교해서 결과가 같으면 출력하도록 합니다. 연습 하드웨어 회로는? 기본 LED 연습회로에 푸쉬스위치만 추가된 회로이고 별도의 변경은 없습니다. 모듈의 경우에는 아래 핀번호가 적혀있어서 번호만 보고 맞춰 연결하면 되고, TINY2313을 바로 사용할때는 위 회로도의 핀배치를 보고 연결합니다.그리고 스위치가 GND에 연결되어있는데 이 때는 코딩시에 입력포트를 풀업(초기상태 1)로 설정해 주어야 스위치 입력 프로그래밍이 가능.. 더보기
AVR으로 LED ON/OFF 개별 비트 별로 제어하기 - AVR 연습하기 8비트 값으로 전체 LED를 제어해 봤다면 이제 포트 하나하나 즉 비트별로 1 또는 0 값을 줘서 제어 할 수도 있습니다. 코드비전의 경우에는 비트별로 제어하는 방법이 따로 있어서 쉽게 제어 할 수가 있지만 스튜디오에서는 그렇지 못하기 때문에 AND나 OR 비트연산자로 AVR의 포트에 비트별로 각기 다른 신호를 줄 수 있습니다. 연습 하드웨어 회로는? 또 등장... 앞으로 많이 우려먹을 회로인데요. 역시 LED 보호용으로 저항을 달고 LED 연결 후에 그라운드로 연결 하면 됩니다.모듈이 없다면 브레드보드에 TINY2313과 ISP연결용 커넥터만 만들어 연결해 놓으면 연습용 회로를 꾸밀수 있습니다.그럼 소스코드를 보겠습니다. CodeVisionAVR용 소스코드#include // TINY2313의 입출력 .. 더보기
Fritzing으로 PCB기판 완성하기 - 전자회로 CAD툴 이제 Fritzing의 마지막과정입니다. 이전 포스팅에서 스케메틱 즉 회로도까지 완성했는데 여기서 PCB까지 만들면 Fritzing 사용은 종료 됩니다. - 지난 포스팅에서 완성했던 스케메틱 - 마지막 최종 PCB 작업 해주기 1. 완성된 스케메틱뷰에서 PCB뷰로 변경해줍니다. 2. PCB 보드 크기를 설정해줍니다. 기판 클릭후에 인스펙터 (속성) 창에서 PCB보드의 크기를 설정해줍니다.속성창에서는 다양한 PCB속성을 설정할 수 있는데 먼저 레이어에서 사용하고자 하는 PCB층을 설정합니다. 저는 양면(2레이어)을 사용해서 만들겠습니다.모양에서는 PCB기판의 모양과 크기를 설정하는데 모양은 사각형, 원형, 아누이노보드 등이 있고크기는 mm 단위로 적고 저는 60mm x 60mm 로 기판크기를 설정했습니다... 더보기
Fritzing으로 회로도 (스케메틱)그리기 - 전자회로 CAD툴 브레드보드로 회로를 꾸미는 것 까지만 하면 브레드보드 연습도구가 되겠지만 이 프로그램은 브레드보드로 연결하고 그걸 기반으로 회로도를 그리고 회로도로 PCB제작까지 할 수 있는 기능을 갖추고 있습니다. 따라서 이 포스팅부터는 최종 PCB 제작 까지가 목표이고 브레드 보드로 꾸민 비안정 멀티바이브레이터를 회로도로 만드는 방법입니다. 지난번에 브레드보드로 완성을 했다면 다음은... 1.상단에 스케메틱을 눌러 다음작업으로 갑니다. 2. 부품을 배치합니다. 브레드보드에 연결했던 부품들이 기호들로 변합니다. 이 때 부품 중 부품 다리에 선이 연결이 안되어 있거나 선이 없다면 브레드보드에서 연결을 잘못한 상태이므로 상단 메뉴에서 브레드보드를 눌러 다시 수정해 주세요.잘 연결이 되있다면 부품을 끌어다 / 아래 회전, .. 더보기
Fritzing 회로설계, 브레드보드 연습도구 - 전자회로 CAD툴 Fritzing을 소개합니다.Fritzing은 디자이너, 예술가, 연구원들등 전자관련 비전공자들이 보다 쉽게 사용하기위해 만들어진 CAD툴이며 브레드보드를 이용해 쉽게 회로도를 만들어내고 그 회로도를 바탕으로 바로 PCB를 제작 할 수 있어서 처음 사용하기 어려운 CAD보다 쉽다는 장점이 있습니다. 사용 방법은 이렇습니다.1. 먼저 Fritzing을 http://fritzing.org/download 혹은 다운로드 아이콘을 클릭 해서 다운로드 해서 압축을 풉니다. Fritzing 다운로드 - 구글 드라이브로 연결 됩니다. 2. 압축을 푼 파일에서 Fritzing을 실행시킵니다.기본적으로 프로그램을 실행시키면 다음과 같은 화면이 뜹니다.빨간색영역은 사용할 부품을 선택하는 영역이고, 파란색 영역은 부품의 속.. 더보기
브레드보드(BreadBoard) 사용법 - 전자회로 브레드보드가 무엇일까요?브레드보드(breadboard), 속칭 빵판 또는 빵틀은 전자 회로의 (일반적으로 임시적인) 시제품을 만드는 데 사용하는 재사용할 수 있는 무땜납 장치이다. 이것은 영구적이거나 1회용 시제품을 만들때 사용하고, 쉽게 재사용할 수 없는, 초기 인쇄회로기판과 비슷하다. 일반적인 브레드보드는 버스 스트립으로 알려진, 내부연결 전기단자의 스트립이 있고, 주장치의 일부나 격리된 블록처럼 한쪽이나 양쪽은 전원선을 확장하도록 끼워져 있다.현대의 무땜납 브레드보드는 천공아래에 많은 납이 도금된 스프핑 클립이 있는 플라스틱 구멍뚫린 블록으로 구성된다. 두개의 일련 패키지(Dual In-Line Package)인 집적회로(IC)는 블록의 중앙선을 벌려서 삽입할 수 있다. 내부연결 전선과 (축전기, .. 더보기
AVR으로 LED ON/OFF 전체 포트 제어하기 - AVR 연습하기 연습 하드웨어 회로는? CodeVisionAVR 사용법 설명할 때 한번 등장했고 앞으로도 자주 등장 할 회로도입니다.^간단하게 모듈에서 PB0 부터 PB7 을 브레드보드 점프선으로 뽑아서 330옴 저항을 거친뒤LED랑 연결되어 있습니다. 제어 하는데 2가지 레지스터 DDRB와 PORTB가 사용되고 새로 delay.h 헤더파일이 추가되고 delay는 PORTB에 값을 주고 값을 준 상태를 일정시간 동안 지연시키는데 사용되고, 코드비전에서는 delay_ms()와 delay_us(), AVR Studio에서는 앞에 언더바를 붙여 사용하고, 각각 밀리초, 마이크로초 값을 괄호안에 입력하고 세미콜론을 찍습니다.그럼 소스코드를 볼까요! CodeVisionAVR용 소스코드#include // tiny2313 입출력 .. 더보기
AVR 입출력 설정 레지스터, 핀상태 읽기,출력 제어 레지스터 - AVR 이론 AVR의 I/O를 제어하기 위해서는 3가지의 레지스터가 사용되는데 첫번째가 포트의 setting 입력으로 결정할지 출력으로 결정할지 정해주는 레지스터인 DDRx 레지스터, 그리고 DDRx에 따라출력및 입력시 초기상태를 결정하는 레지스터인 PORTx 와 입력시에 사용하는 핀에 입력을 읽어들이는 레지스터인 PINx가 있습니다.x는 사용하는 AVR에 따라 TINY2313의 경우 A포트, B포트, D포트를 쓸 수 있고 레지스터 설정 할 때 값을 Bit 별로 주어야 합니다. DDRx 입출력 방향 레지스터Data Direction Resistor x(Port) 포트의 입출력을 설정하는 레지스터입니다.DDRx레지스터는 입력으로 설정할 것인지 출력으로 설정할것인지만 결정하고 포트에 직접 출력에관여하지는 않고 출력으로 .. 더보기