아학아학 443

RC 헬기

드론의 4개의 프로펠라를 돌리는 게 힘이나 제어 측면에서 더 좋을거라는 생각을 하고 있지만 4개의 프롭을 돌리면 소음이 더 심해지고 배터리 소모도 더 크지 않을까? 라는 그냥 개인적인 생각에 고전 헬기를 바라보고 있습니다.이래저래 유튜브에서 보다보니 메인 프롭의 축을 기울여주는 것으로 헬기의 진행방향을 결정해주고 꼬리 프롭이 헬기가 회전하지 않도록 잡아준다는 설명을 보았습니다.그런데...보다보니 저가 헬기에는 메인 프롭이 2개 달리고 꼬리 프롭도 일반 헬기와 달리 축이 위쪽으로 달려 있었습니다.뭘까 고민하다 혹시 이런건 아닐까 생각해 보았습니다. 오늘부터 1일인 관계로 아마 조금 더 공부하다보면 많이 알아가게 되겠지요. 카메라쪽은 Sony의 imx 시리즈를 보고 있었는데 Zeeann의 센서쪽은 어떨까 보..

OLED QG-2864KSWLG01 내부 펌프 초기 코드

OLED QG-2864KSWLG01를 구해서 프로그램을 넣었습니다.웹에 도는 소스코드와 데이터시트로 구현을 하여도 동작을 하지 않았습니다.명령어를 넣을 때 데이터 시트와 웹에서는 0x80을 실제로는 0x00을 넣어야했습니다.그리고 ACK 자리에도 데이터 시트와 웹에서는 1을 실제로는 0을 넣어야 했습니다.아래 샘플코드입니다.I2C가 패리패럴로 구현되지 않고 IO로 구현되어있습니다.RES는 회로상에서 NPN TR로 ON/OFF 해서 High와 Low가 역으로 되어있습니다. #define OLED_ADDRESS 0x78 #define I2C_PORTGPIOB#define I2C_SCLGPIO_Pin_6 #define I2C_SDAGPIO_Pin_7 #define LCDRSTPORTGPIOE#define LC..

Uart 데이터 Byte 입력상의 입력 사이즈 초기화

C#에서 입력 Uart 처리 입력 사이즈를 확인하였던 intRecSize를 초기화해 주지 않으니 0x00의 비어있는 값이 버퍼에 쌓이는 경우가 있었습니다. private void ComPort_DataReceived(object sender, SerialDataReceivedEventArgs e) { if (rbAscii.Checked == true) { InputData = ComPort.ReadExisting(); if (InputData != String.Empty) { this.BeginInvoke(new SetTextCallback(SetText), new object[] { InputData }); } } else { /* 입력된 데이터 량 */ int intRecSize = ComPort.B..

Partial Erase Done (areas with no algorithms skipped!) 에러 발생

Keil 컴파일러를 사용하여 다운로드할 때 발생하는 에러 처리 방법 다운로드할 칩의 메모리 사이즈가 맞지 않을 경우 발생 Load "STM32F401xx\\STM32F401xx.axf" No Algorithm found for: 0806E000H - 0806FFFFHNo Algorithm found for: 08070000H - 0807FFF3HPartial Erase Done (areas with no algorithms skipped!)No Algorithm found for: 0806E000H - 0806FFFFHNo Algorithm found for: 08070000H - 0807FFF3HPartial Programming Done (areas with no algorithms skipped!)..

Tamper 사용

내부 백업레지스터의 정보를 제거하는 용도로 사용하는 TAMPER 패리패럴을 설정하고 사용하는 방법입니다.주요 정보를 저장해두고 유사시에 제거하는 용도로 사용하도록 설정하여 사용하면 될 것 같습니다.TAMPER 핀은 PULL-DOWN해두고 유사시에 TAMPER 핀에 HIGH 신호를 주는 설정으로 하였습니다. 전원 OFF 시에 전원이 TAMPER 핀으로 들어가지 않게 하기 위함이었습니다. /******************************************************************************** Function Name : * Parameters : * Return : none* Description : *************************************..

다중 이동식 저장장치

사용 MCU : STM32F103Zx사용한 MassStorage 타입 : SD, NandFlash, InterFlash mass_mal.c에서 수정 #include "stm32f10x.h"#include "stdio.h"#include "bsp_sdio_sd.h"#include "usr_nand.h"#include "mass_mal.h" #include "usr_led.h"#include "usr_uart.h" //#define MASSPRINT DEBUGPRINT#define MASSPRINT(...) typedef enum _MASS_ID{MASS_SD = 0,MASS_NAND = 1,MASS_INTERNNAL = 2,}MASS_ID_E; #define MAL_OK 0#define MAL_FAIL 1..