본문 바로가기

분류 전체보기

(32)
인터럽트(Interrupt) 방식 폴링 방식은 CPU의 효율이 떨어지는 것과 동시에 여러 작업이 진행될 때 하나의 작업이 실행이 지연되거나 실행할 수 없는 단점이 있다고 했다. 이러한 문제점을 해결할 수 있는 방식 중 하나가 인터럽트 방식이다. main문을 실행하고 있는 도중에 입출력 장치에서 필요할 때 마다 즉각적으로 CPU에게 인터럽트 신호를 전송하게 된다. 해당 인터럽트가 요청한 작업을 실행하기 위해 하고있는 동작을 멈추고 ISR(인터럽트 처리 루틴)으로 이동한다. ISR이 완료되면 CPU는 수행을 멈춘 곳으로 되돌아가 중지된 작업을 계속한다. 인터럽트 처리 과정 평소에는 노란색 LED와 파란색 LED를 번갈아가며 1초마다 깜빡이다가 스위치를 누르면 1초간 빨간색 LED를 켜고 다시 노란색, 파란색 LED를 계속 깜빡이게 개발한다고..
폴링(Polling) 방식 입출력의 상호작용을 할 때는 크게 3가지 방식이 존재한다. 오늘은 폴링을 먼저 알아보겠다. 폴링은 프로그램에 의한 입출력 방식이다. 데이터의 입출력이 CPU가 수행하는 프로그램의 입출력 명령에 의해 실행되고 입출력을 수행할 준비가 되었는지 알기 위해 CPU가 주변장치의 상태를 계속 감시한다. 폴링(Polling) 방식 CPU가 주변 입출력 장치들(키보드, 센서, LCD 등)에서의 변화를 지속적으로 계속 확인하고 그에 따라 프로그램을 처리하는 방식을 말한다. 프로그램은 쉽게 구현할 수 있지만 예를 들어 컴퓨터의 키보드를 폴링방식으로 구현한다고 생각해보자. 컴퓨터로 영화를 보고 있는데도 키보드를 치고 있는지 아닌지 계속 확인하는 작업을 한다면 CPU의 성능을 제대로 활용할 수 없다. 하지만 아두이노, AVR..
ESC throttle range calibration 캘리브레이션을 하는 이유 모터를 구동시키는 신호를 보내는 것은 변속기가 아니라 FC이다. 변속기는 FC의 신호를 통해 어떤 속도로 모터를 돌려야할 지 결정하게된다. 그렇기 때문에 변속기가 입력값의 FC에서 오는 값의 최소값과 최대값을 알 수 있도록 변속기 캘리브레이션을 해주어야한다. 내가 사용하는 Afro ESC의 범위는 1060us~1860us이다. 만약 FC에서 발생하는 PWM 범위를 1500us~1800us으로 설정했다면 1500us 펄스를 발생시켰을 때 어떻게 될까? 원래는 모터가 돌아가지 않아야하지만 1060us~1860us로 변속기가 설정되있다면 모터가 빠르게 돌아갈 것이다. 그러므로 변속기의 범위를 1060us~1860us로 설정해주어야한다. 또 여러개의 변속기를 사용할 때 작동범위를 통일하..
변속기(Electronic Speed Control) Flight Control에서 받은 정보로 배터리에서 보낸준 전기 에너지를 조절해서 모터의 회전속도를 제어해주는 부품이다. Outrunner/Inrunner가 있는데 멀티 콥터에선 주로 3개의 선이 달린 Outrunner Brushless Motor를 사용한다. 모터는 어떤 무리한 부하가 발생하더라도 신호에 따라 회전하려고 한다. 이때 발생한 부하를 소화하기 위해 많은 양의 전류가 필요하게 되면 그만큼의 양을 배터리에서 당기게 된다. 그 양이 ESC가 허용하는 양보다 크면 ESC가 고장난다. 그래서 모터가 필요로 하는 최대 전류량보다 큰 ESC를 선택해야 하고 ESC 허용전류보다 큰 용량을 소화할 수 있는 배터리를 선택해야한다. 배터리 방전율(C) > ESC 허용 전류(A) > 모터 소비 전류 (A) 종..
리튬 폴리머 배터리 특징 기본 전지의 무게보다 31%가볍다. 다양한 크기나 모양으로 제조할 수 있고 다른 2차 전지에 비해 용량이 훨씬 크므로 더 많은 전력을 사용할 수 있다. 2차 전지이므로 충전 가능하고 반복 사용할 수 있다. 단위 셀의 수 및 전압: 한 셀의 정격 전압은 3.7V다. 11.1V 배터리의 경우 네 개의 셀을 직렬로 연결했다는 의미이다. 배터리 전압에 따라 드론의 속도가 결정된다. 전압은 전기 모터의 RPM에 직접적인 영향을 미친다. 3S 배터리로 3500kV의 브러시리스 모터를 구동할 경우. (11.1V * 3500)RPM이다. 용량: 기본적으로 배터리가 얼마나 많은 전력을 저장할 수 있는지를 측정하는 척도이다. 단위: mA/h 2000mA/h는 1시간 동안 2000mA를 흘려보낼 수 있다는 이론적 수치..
Drone Components list Components 리튬 배터리 가속도 자이로 센서(MTI-7) 조종기(Futaba) 수신기 프레임 변속기 UBEC BLDC 모터 프로펠러 Flight Controller(stm32 F767Zitx)
Qaudcopter Flow chart - Software, Hardware
How drone fly in the sky
Ziegler-Nichols Method(지글러-니콜스 방법) PID를 튜닝을 많이 해봤지만 도무지 감이 안온다. 노가다식으로 하는거말고 뭐 별다른 방법이 있나? 싶어서 찾아봤더니 있었다. 바로 지글러 니콜스 방법이다. 방법은 간단했다. I gain과 D gain을 0으로 설정한 후 P gain값을 늘리다보면 기체가 일정하게 진동하는 임계상태에 도달한다. 이 때의 P gain값을 임계이득(Kc), 진동주기를 임계주기(Tc)로 하여 구한다. 그 다음 아래에 table을 보고 Type에 맞춰서 Gain값을 구하면 된다. 지글러 니콜스 방법은 두 가지가 있는데 계단응답곡선을 사용하는 방법과 방금 내가 설명한 주파수 응답 방법을 사용하는 것이다. 따라서 위에 표에서 From frequency response 부분을 참고하면 될 것이다.
[STM32]ST-Link 사용법 및 IAR 디버깅 방법 ST-Link는 무엇일까? 해석 - ST-LINK/V2는 STM8 및 STM32 마이크로컨트롤러 제품군을 위한 회로 내 디버거 및 프로그래머다. SWIM 및 JTAG/SWD 인터페이스는 애플리케이션 보드에 위치한 모든 STM8 또는 STM32 마이크로컨트롤러와 통신하기 위해 사용된다. 대충 ST-Link는 STM계열의 보드에 프로그램을 업로드 하거나 디버깅할 때 사용하고, 그 인터페이스로 SWIM, JTAG, SWD를 사용할 수 있다는 것 같다. 하드웨어 디버거과 소프트웨어 디버거 주로 시리얼 포트로 터미널 프로그램에 메서지를 출력하며 디버깅하는 것을 소프트웨어 디버깅이라하고 ST-Link등 디버깅 장비와 SWIM, JTAG/SWD 등의 인터페이스로 브레이킹 포인트를 걸고 코드를 한줄 한줄 실행시키고 멈..