no image
UVC(USB Video Class) Camera
시중에 파는 USB 카메라는 대게 UVC(USB Video Class) 규격을 따른다.다만 descriptor 응답과 실제 동작이 일치하지 않는 경우가 있지만,그래도 전반적인 구조와 동작 방식은 UVC 규격을 따르는 편이다. UVC에 대해 알아보자. UVC 전체 동작 구조 Device)" data-ke-size="size20">시스템 계층 관점[Application] ↓ [UVC Handling Layer] ↓ [USB Transport Layer] ↓ ================ USB ================= ↓ [UVC Device Firmware] ├─ Control Interface (제어) └─ Streaming Interface (영상) ↓ [Sensor + I..
2026.04.10
no image
라플라스 변환, 전달 함수, 특성 방정식, DC gain
ConvolutionConvolution의 정의는 total 통증이다.Laplace transformfinal value theorem, 라플라스 변환/역변환transfer function(전달 함수)실제 장비로 정교한 임펄스 function을 만드는 건 어렵기에 임펄스 응답을 라플라스 하는 것은 어렵다.그래서 전달 함수는 출력/입력으로 정의하는게 낫다. G(s) = Y(s)/U(s)시간 도메인에서 y(t)시간 도메인에서 y(t)는 라플라스 역변환을 이용하는 것이 간편하다.characteristic function (특성 방정식), DC gain
2024.03.01
no image
Shift Register - 74HC595
Shift RegisterFND(Flexible Numeric Display)를 다룬다고 가정해 보자. 한 자리 숫자만을 출력해도 8개의 핀이 필요하다.이런 경우 시프트 레지스터를 활용하여 하나의 핀으로 8개의 output을 제어할 수 있다. (약간의 delay는 생긴다.)74HC595Q0 ~ Q7 : parallel output pins of registerDS : Serial data input pinSHCP : shift register clock pinSTCP : storage register(Latch) clock pinOE : output enable, Latch의 출력을 끌 수 있다.MR : master re-clear, 시프트 레지스터를 reset 할 수 있다. Shift register의..
2024.02.19
no image
아두이노 DAC, PWM
Digital-to-Analog Converter (DAC)아두이노는 DAC기능이 없어 연속적인 아날로그 값을 만들 순 없지만 PWM을 이용해 비슷한 기능을 할 수 있다. (UNO R4는 있는 듯)Pulse Width Modulation (PWM)LED 밝기 조절을 예시로 살펴보자.어떻게 전압의 펄스 폭 조절이 밝기에 변화를 줄 수 있을까?=> 펄스의 주기는 매우 빠르기 때문에 사람 눈으로 본다면 펄스 폭이 50%인 것은 밝기가 50%인 것과 같게 보인다. 아두이노의 AnalogWriteMega.ino example을 실행시켜보자.const int lowestPin = 4;const int highestPin = 6;void setup() { // set pins 2 through 13 as outpu..
2024.02.18
no image
I2C Communication
Inter-Integrated circuit communication I, 2개를 따서 I2C 통신이라 부른다.일대다 통신이 가능하다. 하나의 Master node와 여러 개의 Slave node 가 있다. Two-pin protocolSDA (Serial data): data transmissionSCL (Seerial clock): clock transmission = 동기를 맞추는 역할을 한다.위의 2개의 핀으로 통신한다.Timing diagramFree state - SCL과 SDA 둘 다 HIGH인 상태로 시작한다.Start condition - SDA가 LOW가 되면 Slave node 들은 데이터를 수신할 준비가 된다. I2C는 일대다 통신으로 Master가 통신할 slave node를 지정..
2024.02.17
no image
교착상태 Deadlock
교착상태 발생 조건 상호 배제 - 하나의 자원은 하나의 프로세스에 의해서만 사용된다. 점유와 대기 - 하나의 자원을 점유한 상태로 추가 자원 요청 비선점 - 점유된 자원에 대해 경쟁할 수 없다. 환형 대기 - 자원의 점유와 대기가 원형을 구성한 상태 해결 방법 예방 - 상호 배제를 제외한 나머지 발생 조건을 부정하는 방법 * 점유 자원 해제 후 새 자원 요청 * 이미 점유된 자원 경쟁 가능 * 원형 구성이 안되도록 하나의 프로세스 요청을 먼저 다 처리하기 회피 - 데드락이 발생하지 않도록 어떻게든 알고리즘을 잘 짜라 (예방보다 덜 엄격한 제한) * 은행가 알고리즘 발견, 복구 - 알고리즘으로 교착 상태를 감지하고 해결한다. * 자원할당 그래프 (발견) * 프로세스 kill (복구) - 프로세스를 순차적으..
2023.09.18
no image
stack/heap memory
Stack Memory 함수의 호출과 관계되는 지역 변수와 매개변수가 저장되는 영역이다. 함수가 호출되면 호출이 끝난 뒤 돌아갈 반환 주소값, 함수의 매개변수, 함수에서 선언된 지역 변수 등이 스택에 저장되고 호출이 완료되면 소멸한다. stack memory의 모든 과정은 컴파일 타임에 미리 결정된다. 즉, 개발자가 코드를 작성하지 않는다. stack은 독립적인 스레드에서 실행된다. stack은 heap보다 할당/해제가 빠르다. why => 스택은 미리 예약된 메모리이기 때문에 메모리 할당이 따로 필요없으며, 사용한 메모리를 굳이 반납하지 않고 (= 삭제 작업을 거치지 않고) 단순히 스택 포인터를 감소시킴으로써 스택 공간을 제한시킨다. 스택 포인터를 감소시키면서 남아있던 데이터는 스택 포인터가 다시 증가..
2023.09.16