2011년4월12일..마인드스톰 소리발생, 자유과제(초음파레이더를 장착한 원격제어감시 지능형 자동차)
1.NXC_tutorial.pdf p.29 소리발생 예제
PlayToneEx()는 단일 구형파 톤을 발생하는 함수이다. 프로토타입은 아래와 같이,
char형을 반환하고 부호없는 정수형 16비트(unsigned int)의 주파수를 받고, 지속시간도 받는다. 볼륨은 byte타입으로 8비트 크기를 갖고 loop(반복)은 1비트 참과 거짓(1과 0)만 받는다. [inline]은 뭔지 모르겠다.
지속시간은 1ms단위이고 주파수는 Hz단위로 한계가 어디 까지인지는 나와있지 않다.
볼륨은 0이 조용하고 4가 큰 소리다. loop값이 1이면 반복한다. (필요없어 시험해 보진 않았다.)
화음구현이 가능한가 궁금해서 구글검색을 해보니 화음을 출력하는 함수가 있었다. 그러나 헤더파일은 공개하지 않았다.
멀티테스킹하면 화음이 되지 않을까?
현대 음악의 악보에 있는 12음계의 표는 아래와 같이,
4옥타브 ’라’(A)음을 기준으로 440Hz가 3옥타브로 내려가면 1/2이 되고 5옥타브로 올라가면 2배가 된다.
각 자리의 주파수는 옥타브가 높아지면 2배 낮아지면 1/2배가 된다.
일일이 치기 힘드니 #define으로 정의해서 쓰자.
2.NXC_tutorial.pdf p.30 소리발생과 모터제어 예제
task music()은 음악연주하는 테스크로 4옥타브 도레미레를 400ms간 연주하고 100ms동안 쉬는 일을 계속 반복한다.
task movement()는 전진 3초와 후진 3초를 계속 반복한다.
task main()은 시작함수로 내부에 precedes()라는 새로운 함수가 있다. 이 precedes()는 task명을 전달인자로 받아 그 task들을 동시에 실행되게 해주는 함수로 NXC언어에서는 다중 태스크를 정의하여 사용할 수 있고, 멀리쓰레딩기법을 사용하여 여러 개의 태스크를 동시에 실행할 수 있다. NXC언어에서 쓰레드는 하나의 태스크를 의미한다.
3.도레미..레미파..미파솔솔..
sweepUp이라는 배열을 사용해도 연주할 수 있어 편하다.
4.자유과제 – 초음파레이더를 장착한 원격제어와 수집이 가능한 자동차
나는 프린터를 만들고 싶은데 진우가 자동차를 만들자고 했다.
그래서 nxtprograms.com에서 자동차를 찾아보았다. 찾았다!
조금 허름하지만 내가 원하던 자동차다!
많이 개조하면 쓸만하겠는걸…
●제작과정
험난한 제작과정을 거쳐 완성되었다. 조금 추가하거나 수정해야 할 부분이 있으면 다음 기회에…오늘은 피곤하다.
간단한 프로그램을 짜서 모터만 시험해 봤다. (전에 초음파센서 회전하는 소스는 어디 갔는지 안 보인다.(땀)
'내장형하드웨어 > 일일보고서' 카테고리의 다른 글
2011년4월14일..다중 제어문, 구구단, 포인터 (0) | 2011.04.15 |
---|---|
2011년4월13일..for문에서 초기식과 증감식의 변형, gdb(GNU Debugger), 무한반복문, 마인드스톰 자동차 개조 (0) | 2011.04.14 |
2011년4월11일..for문, PC정리, VMWare Player로 리눅스 연습, vi editor (0) | 2011.04.11 |
2011년4월7일...symbol table(메모리), 디버깅 변수값확인, 마인드스톰 Tribot light sensor (0) | 2011.04.07 |
2011년4월6일…while문(반복문), VS6.0에서 디버깅모드, 마인드스톰Tribot touch (0) | 2011.04.07 |