it 24

스마트패드 넥서스7~

연구실에서 개발용으로 스마트패드를 구입하였다. 기종은 Nexus 7 테블릿은 처음써본다. 아이패드미니 보다도 작은 사이즈라 부담스럽지 않은 크기이다. 스펙을 살펴보자. 기념샷 ㅋㅋ 안에 기본으로 아이스에이지가 들어있다. 어린애들 영화같아서 안볼라했는데 재...재밌다..... 으어~ 결국 어플도 공부해야하는구나....ㅜㅜㅜㅜ 넥서스7 두개가 와서 하나는 교수님께서 가져가시는건줄 알았는데 하나가지고 두 사람이 하면 불편할까봐 내꺼하나랑 친구꺼 하나씩이란다.... 자바는 하나도 할 줄 모르는데... 방학때 할게 많아졌구나~ 에헤라 디야~

[AVR] 모터드라이버 변경!!(V6 엔진 장착)

이전 글에서 만들었던 모터드라이버는 MOSFET을 이용한 모터드라이버였다. 하지만 전류가 조금 딸리는 면이 있는것 같아서 회로를 바꾸어 보았다. 기존에 MOSFET으로 할때 모터가 생각보다 빨리 돌지 않고 토크가 약해서 장애물을 만나면 멈추어 버렸다. 전압을 높이면 될거 같았지만 근본적인 해결방법을 찾기위해 예전에 가지고 놀던 깡통RC를 뜯어보았다. 분명 깡통RC는 전압을 3V(1.5건전지 2개) 밖에 사용하지 않는데 모터가 미친듯이 잘 돌아갔다. PCB를 잘 보면 전부 BJT 밖에 없었다. 그래서 나도 BJT로 만들기로 결심하고 아래회로를 따라 만들었다. 참고로 저항값은 내가 끼워맞춘 값이다. 사용부품은 A1015 2개, C1815 2개, 2N3904 2개 1K, 47옴 저항 2개씩... 그냥 PNP ..

Embedded System/AVR 2017.04.02

[AVR] 소형 모터드라이버 만들기

AVR의 출력포트를 이용하여 모터를 제어하는것은 무리였다. 전압은 문제가 없는데 전류가 문제다. 핀 하나당 뽑아줄 수 있는 전류가 제한되어있으니 말이다. 15mA였나? 기억이 잘 안난다. 모터 돌려주려면 적어도 100mA정도는 필요하지 않을까? 어쨌든 사람들이 비싼돈 주고 모터드라이버를 이용하는데는 다 이유가 있다. 모터드라이버를 검색하다가 LB1630 이라는 소형 모터드라이버를 알게되었다. 서면에 협신전자(ic114.com)싸이트를 검색해보니 1200원인데 재고가 없었다. 디바이스마트(devicemart.co.kr)에 검색해 보니 무려 2200원 이었다... 거기에 배송비까지 합치면 ㅎㄷㄷ.... 그래서 그냥 만들어 보기로 했다. 필요한 준비물은 N-Channel MOSFET 4개, 선, 지네발 등....

Embedded System/AVR 2017.04.02

[AVR] ADC 사용하기(13.11.25 코드 수정)

AVR을 이용해 개발하는 사람들은 꼭 해보는 과정이 있다. 내가 배워온 과정을 순서대로 적으면 다음과 같다.(아마 제일 흔한 과정이 아닐까?) IO핀을 이용하여 LED제어 ↓ 타이머/카운터로 1초 만들기 ↓ PWM사용해서 서보모터 제어 ↓ 캐릭터 LCD 동작구현 ↓ USART통신 ↓ ADC 사용해서 센서값 받아오기 여기까지 하면 나머지 부분은 스스로 데이터시트를 보면서 할 수 있다고 생각한다. PWM사용하는것 까진 쉽게 할 수 있어서 이렇게 따로 게시글로 정리하진 않았다. 그래도 캐릭터 LCD, USART까지 글을 올렸으니 ADC도 올리는게 맞는거겠지? ADC는 뭐인고? Analog to Digital Converter의 약자다. 즉 아날로그 신호를 디지털값으로 바꿔주는 놈이다. AVR의 ADC분해능은 ..

Embedded System/AVR 2017.04.02

[AVR] USART 직렬통신 하기(시리얼통신)

AVR과 컴퓨터간에 시리얼통신으로 데이터를 주고 받아보자. 이론적인 내용은 잘 몰라서 설명은 내 마음대로한다. 먼저 시리얼통신에는 동기모드와 비동기모드 두 가지 모드가 있다. 자세한 내용은 잘 모르겠지만 내가 알기론 동기식과 비동기식의 차이는 클럭의 차이다. 디지털회로시간에 배우긴했는데 기억이 가물가물... 일단 건드려야할 레지스터는 4개 밖에 없다. 색이 칠해져있는건 뭔지 feel이 온다. UCSR은 저놈들이 중요한놈들이다. 일단 UCSRA의 비트5 UDRE는 새로운 송신데이터를 받을 준비가 되어 있으면 set 되는 플래그이다. Read만 가능! UCSRB의 4,3번 비트는 Rx enable, Tx enable이다. 즉 avr의Rx, Tx핀을 일반IO 말고 데이터 송수신 용도로 쓰게한다. UCSRB와 ..

Embedded System/AVR 2017.04.02

[AVR] 캐릭터 LCD 사용하기(LMC1623A)

Atmega128을 이용하여 CLCD를 구동해보자. 꼭 mega128을 사용하지 않아도 된다. 있는게 128이라서.... 나중에 핀 할당만 다시해주면 된다. 나는 CLCD모델 LMC1623A를 가지고 설명하겠다. 모델마다 데이터시트가 다르니 여기 있는글과 똑같이하면 안될수도 있다. 하지만 다른제품도 거의 비슷하게 되어있다. 그리고 8bit 기준으로 설명하겠다. 갑자기 8bit라니 무슨 말인지 모르겠지... 데이터핀을 8개 쓰니까 8bit다. 핀 아낄려면 핀 4개만 연결해주면 된다. 그러면 4bit가 되는것이다. 먼저 CLCD가 atmega128에 어떻게 연결되어있는지 회로도를 보자. 위(15, 16번 핀),아래(1,2,3번 핀)에 있는 가변저항은 백라이트와 글자농도를 조정해준다. Data PIN에는 일반..

Embedded System/AVR 2017.04.02

우승팀 앵콜주행 영상

와...잘한다 진짜... 1등 인정 안할수가 없다. 경기때는 완주했는데 앵콜주행에서는 보는 사람이 많아서 차가 긴장했나보다. 가톨릭대학교가 우승을 차지했다. 우리팀은 되도않는 실력으로 공동2등이 되었었지만 순위결정전 에서 3등으로 밀려났지만 모두들 수고했다. 2등이 세명대였나? 우리팀 주행영상은 부끄러워서 찍지도 않았다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

주차파트

제일 간단할 줄 알았는데 괜히 질질끌다가 대회 당일까지 손대게 하는 파트였다. 확실히 간단하기는 한데 왠만하면 빨리 끝내자. 지능형 자동차 옆에 있는 적외선거리센서를 이용해서 장애물을 인지하고 수직구간인지 수평구간인지 파악해준다. 후면에 있는 거리센서를 통해 뒷쪽 벽에 부딪히지 않게 해준다. 처음 동영상은 수직주차이다. 두 번째 동영상은 수직,수평 통합이다. 주차방법에 상당히 여러가지 알고리즘을 도전해봤다. 마지막으로 그 중에 하나다. 속도는 느리지만 좀 더 안전하게 주차할 수 있다 수직 두번만 하면 된다.

S자 코너와 주행

주로 내가 맡은 파트는 코너링과 일반주행이었다. 연구실에서는 잘 되던놈이 왜 실전에 약하니 ;; 영상처리는 무조건 간단하게 해야한다. 괜히 openCV같은거 쓰면 안될듯? 왠만하면 YCbCr로 처리하고 RGB나 HSV로 바꾸고 싶으면 룩업테이블을 활용하자. 그렇지 않으면 연산속도가 딸려서 주행에 문제가 생긴다. 그리고 가장 중요한건 예외처리다. 문제가 발생하면 그 상황으로 빠지지 않게하는게 관건이다.

개발환경 구축하기(마지막)

환경구축 마지막이다. 환경만 잘 구축해 놓으면 다음 단계는 이제 개발자의 역량이다. 나는 대회를 준비하면서 리눅스를 처음 접하게 되었고 시작부터 막막했었다. 그저 리눅스를 사용해야한다는 것만 알고 있었다. 역시 사람은 직접 부딪혀봐야 뭔가를 얻는다. 혹시라도 임베디드 대회를 준비하는 사람들이 이 글을 보게 된다면 나처럼 환경구축에만 몇 개월을 쓰는 일은 없을 것이다. 혹시 이글을 참고하고자 한다면 내가 설명을 개떡같이 해놨지만 찰떡같이 알아들어라. 이건 남을 위해 작성한게 아니라 나를 위한 정리니까! Tool-Chain 설정하기 툴체인이 뭔가? 간단히 컴파일환경이다. 나는 컴파일러를 지정해 주는것이라고 생각한다. 우리가 코드를 멋지게 짜놔봤자 뭐하겠노? 좋다고 소고기 사먹ㄱ.... 불어 한마디 못하는 당..