Aa 1 ~ 4교시 - 하드웨어 MP3을 만들려면 어떤 것들이 필요할까요 제품을 만들 때에는 버튼은 몇 개 들어가는지, 어떤 기능이 필요한지, 비용은 얼마나 드는지 생각합시다. GPIO를 2~3개만 사용하는데 아트메가를 쓰면 낭비겠지요? 만약 MP3를 설계하고자 한다면 1. 재생/일시정지 버튼, 멈춤버튼, (재생과 일시정지는 자주 한데 묶으므로 한 개로 칩니다) … 2개 2. 음량 조절버튼 … 2개 3. 전원버튼 … 1개 4. 곡 선택버튼 ( 이전곡, 다음곡) … 2개 5. 리셋버튼 … 1개 6. 통신을 위해 SPI가 필요합니다. (codec를 사용해야 함) 7. 자신이 현재 어느 곡을 듣는지, 이러저러한 정보를 표시하기 위해 LCD … 1개 그래픽LCD를 사용한다면 외장 메모리에 그래픽 정보를 저장한 뒤 사용해야 합니다. LCD를 제어하는 방식 1. UART로 제어 2. SPI로 제어 3. GPIO로 제어 옛날에는 GPIO로 제어하는 것이 대부분이었습니다. 하지만 포트를 많이 사용하면 시스템이 대형화되고 아트웍도 힘들어집니다. 그래서 요즘에는 UART나 SPI방식이 많이 사용됩니다. 8. Memory (노래를 저장할 메모리) - SPI, I2C 9. battery 배터리 잔량 체크 기능을 사용하려면 ADC 가 필요합니다. 10. Audio 11. timer / counter 시간 동기화를 위해 필요합니다. MP3에 타이머가 없다면 재생 속도가 조금 달라지게 되어 원음보다 높거나 낮은 음이 나올 수 있습니다.
워치독 워치독 - 시스템이 죽었는지 살았는지 모니터링하는 기능 (감시견) 예를 들어, 아래와 같은 코드가 있다면… //////////////////////////////////////////////////////////////////////////// int main(void) { 레지스터셋팅(); /* 타이머가 3초 이상 되는 순간 와치독이 시스템을 재부팅하도록 셋팅했습니다. */ while(1) { 타이머초기화(); while(1번 조건) 1번 기능; while(2번 조건) 2번 기능; while(3번 조건) 3번 기능; /* 붉은 while문 코드를 전부 처리하는데 0.1초가 걸린다고 가정해 봅시다 */ } return 0; } //////////////////////////////////////////////////////////////////////////
정상적으로 동작할 때 while문 안의 타이머초기화 함수는 0.1초에 한번씩 호출될 것입니다. 즉 타이머는 0초에서 0.1초가 될 때 즈음 타이머초기화 함수로 인해 0초부터 다시 카운트를 시작하게 됩니다. 하지만 어떤 오동작으로 인해 붉은 while문 코드 안에서 무한 루프를 도는 상황이 발생한다면 0.1초마다 타이머 초기화 함수가 호출되지 않으므로 타이머의 카운트 숫자는 0.1초를 넘어 결국 3초도 넘게 될 것입니다. 그러면 미리 셋팅했던 것처럼 와치독은 타이머가 3초를 넘은 것을 감지하고 시스템을 재부팅시킬 것입니다. 오동작을 일으켰던 장치가 3초만에 다시 원래 상태로 돌아가게 되는 것입니다~
PWM 듀티비 가지고 장난치는 것.
터치스위치가 달려있는 전등은 한번 눌리면 은은하게 켜지고, 한번 더 눌리면 조금 더 밝게, 한번 더 눌리면 아주 밝게, 한번 더 눌리면 꺼집니다. 이러한 전등은 PWM으로 전등의 밝기를 조절합니다. 출처 : http://www.best-microcontroller-projects.com/pwm-pic.html
0V와 5V 를 공급할 수 있을 때 듀티비가 10%라면 약 0.5V를 공급하는 것과 같겠지요. 듀티비를 50%로 조정하면 약 2.5V의 출력을 만들 수 있습니다. 90%로 조정하면 약 4.5V의 출력이 나올 것입니다. 즉 PWM을 잘 이용하면, 전압의 세기를 입맛대로 조정해서 전등의 밝기나 모터의 RPM을 컨트롤 할 수 있습니다.
RTC Real Time Clock 컴퓨터를 껐다가 켜도 시계는 제 시간을 가리킵니다. 네트워크가 연결이 안되어 있더라도 시계는 제 시간을 가리킵니다. 일반적으로 컴퓨터(PC)에는 RTC 회로가 내장되어 있기 때문입니다. 전원을 꺼도 시계가 알아서 돌아가는 기계들은 안에 내장된 건전지가 있는데 (보통 납작한 것) 그거 덕분에 시계가 멈추지 않고 돌아갈 수 있습니다. 컴퓨터의 경우, 메인보드에 부착되어 있는 건전지를 뽑았다 꽂으면 CMOS가 초기화 된다고 합니다. ( 해본적은 없습니다 ㅎ ) 반대로 라즈베리파이는 네트워크가 연결이 안되어있으면 시간이 지멋대로 됩니다. 라즈베리파이는 저렴한 가격대를 만들기 위해 필수적이지 않는 주변 장치를 제거했는데, 대표적으로 RTC기능이 제거되었다는군요. 집에 오디오나 티비는 플러그 뽑았다 꽂으면 시계가 틀어집니다. 티비나 오디오들은 일반적으로 항상 전원케이블을 꽂아 둔 채로 사용하다보니 RTC 회로가 설계상에 고려되지 않은 것 같습니다. 하지만 랜선이 연결되는 요새 스마트TV들은 인터넷을 통해 주기적으로 시간을 업데이트 할 것이라 생각합니다.
깨알정보 1. AVR은 ISP 방식 덕분에 승승장구한 반면, PIC는 입지가 줄었습니다. 2. TWI (Two Wire Interface) - 2가닥 통신 3. 브라운 아웃 - 다운되었음, 시스템이 죽었음 4. UART핀이 없는 마이크로컨트롤러는 소프트웨어적으로 쌩쇼를 해도 UART를 사용하게 할 수 없습니다. 그런 녀석은 단순하게 아날로그 비교기나 GPIO목적으로 사용할 뿐입니다. 5. ATTiny같은 경우는 UART를 안 쓰는 경우가 있습니다. 그 대신 핀 수가 적어 면적을 작게 차지하는 것이 장점입니다. 6. EEPROM은 [이이피롬], [이투피롬], [이스퀘어롬] 으로 읽을 수 있습니다. 7. EEPROM은 주소에 포인터로 다이렉트 접근이 불가능한 놈이라 EEPROM을 컨트롤하는 컨트롤러에 데이터를 보내서 제어할 수 있습니다.
Aa 5~8교시 - 펌웨어, 소프트웨어
라즈베리파이에 견출지 붙이기~
라즈베리파이에 img 파일을 올려 부팅을 해보자 필요한 파일 1. 라즈비안 이미지파일 2. Windisk imager
라즈비안 이미지파일은 라즈베리파이 공식 홈페이지 다운로드 메뉴 (http://www.raspberrypi.org/downloads/) 로 가서 다운받으시면 됩니다.
Windisk imager는 ( http://sourceforge.net/projects/win32diskimager/ ) 로 가서 다운받으시면 됩니다. 1. Image File 에 라즈비안 .img파일을 선택합니다. 2. Device에는 OS를 올릴 SD카드를 선택하시면 됩니다. 3. Write 버튼을 눌러주시고 기다리면 복사가 끝납니다
라즈베리 파이 사용법 1. 키보드와 마우스를 라즈베리파이의 USB단자와 연결합니다. 2. 모니터와 HDMI 단자와 연결합니다. 3. 마이크로 SD카드에 이미지파일(.img)을 구운 뒤 슬롯에 장착합니다. 4. 전원을 연결하여 부팅시킵니다.
SD카드에 img 파일이 들어있으면 부팅화면을 볼 수 있을 것입니다. ////////////////////////////////////////////////////////////////////////////////////////////////////////// |
'코스웨어 > 15년 스마트컨트롤러' 카테고리의 다른 글
20150409 - 18번 안해운 - ATMega128 7Segment Control, 라즈베리파이 및 해커스쿨 (4) | 2015.04.09 |
---|---|
[스무디] 해커스쿨 ftz를 통해 리눅스 배우기 1 YouTube (3) | 2015.04.09 |
20150407 - 16번 박태인 - Atmega2560 7seg Up Count & 개인 ip 설정, 리눅스 환경설정 및 ip (12) | 2015.04.08 |
라즈베리파이 수업 내용 (7) | 2015.04.07 |
2015-04-03 업무일지 출석번호 14번 박서연 - ATmega2560 LCD 컨트롤, 구조체 (6) | 2015.04.06 |
AVR과제(한글이름표시) 소스파일입니다. (4) | 2015.04.05 |
2015-04-01 업무일지 출석번호 12번 남수진 - 문자열 관련 함수 (8) | 2015.04.01 |
2015-03-31 업무일지 출석번호 10번 김태현 문자, 문자열 단위 입출력 함수 (19) | 2015.03.31 |