본문 바로가기
  • 경제적 자유를 얻는 그날까지
728x90
반응형

엔지니어링/임베디드40

728x90
반응형
Ubuntu 22.04에 NVIDIA 그래픽 드라이버 설치 터미널에서 내 하드웨어에 설치된 드라이버를 찾습니다. $ sudo lshw -C display oem@swift:~/workspace/code/vscode$ sudo lshw -c display [sudo] password for oem: *-display description: VGA compatible controller product: GP104 [GeForce GTX 1070] vendor: NVIDIA Corporation physical id: 0 bus info: pci@0000:01:00.0 logical name: /dev/fb0 version: a1 width: 64 bits clock: 33MHz capabilities: pm msi pciexpress vga_controller bu.. 2020. 11. 28.
[PX4 개발자] Ubuntu 18.04에 ROS(Melodic)/Gazebo 설치하기 The supported/tested Linux OS versions for PX4 development are Ubuntu Linux LTS (opens new window) 18.04 (Bionic Beaver) and 20.04 (Focal Fossa). These allow you to build for the most PX4 targets (NuttX based hardware, Qualcomm Snapdragon Flight hardware, Linux-based hardware, Simulation). PX4 개발자 사이트에 가면 현재 리눅스에서 개발하는 OS 버전은 Ubuntu Linux LTS 18.04에 ROS는 Melodic 버전을 사용한다. 이전에 Ubuntu 16.04에서 ROS .. 2020. 11. 25.
Betaflight 이클립스 개발환경 설정 - 2 Global Tools paths에 빌드 툴체인 설정 C:\eclipse\GNU MCU Eclipse\Build Tools\2.12-20190422-1053\bin Environment에 path 설정 Workspace Tool Paths 설정 2. Pack 설치 Packs 화면에서 아래 노란색 순환하는 화살표를 클릭하면 CMSIS package가 업데이트되어야 하는데 아래와 같은 에러가 나면서 실행이 중지되었다. 자세히 보면 자바관련 에러처럼 보이는데 검색을 해보니 xml 의 URL을 가져올 때 https의 프로토콜로 가져오지 않아서 발생하는 문제라는 것을 확인하였다. 따라서 문제의 해결은 아래와 같이 할 수 있다. Window -> Preferences -> C/C++ -> Packages -> Re.. 2020. 4. 15.
Betaflight 이클립스 개발환경 설정 - 1 이클립스에서 betaflight를 build하기 위한 개발환경을 설정한다. 나의 시스템 환경은 아래와 같다. 항목 내용 OS Windows 10 Professional Target Board Raceflight Revolt v2(STM32F405RGT6) Debuger SEGGER J-Link 진행과정은 아래 문서를 참고하였다. https://github.com/betaflight/betaflight/blob/master/docs/development/Building%20in%20Eclipse.md betaflight/betaflight Open Source Flight Controller Firmware. Contribute to betaflight/betaflight development by cre.. 2020. 4. 15.
ESC 프로토콜 입력: PWM 신호 출력: 모터구동 신호 3상 BLDC 모터 드라이브 IC와 MCU 내장 프로토콜 종류 PWM - Onshot125 oneshot 42 multishot Digital - Dshot, 펄스폭 조절 펄스주기 2000us Standard PWM 1000-2000us 500Hz OneShot125 125-250us 주기 500us 4kHz OneShot42 42-84us MultiShot 5-25us Dshot 16bit 데이터 11bit PWM의 디지털 값, 1bit 텔레메트리, 4bit, CRC 캘리브레이션이 필요없고 디지털 0이면 모터 정지, 2047이면 최대출력임 ProShot 16bit의 Dshot을 4개의 펄스방식으로 표현 각 비트는 0~15까지 표현 2020. 4. 14.
Frsky i-Bus 방식 Serial 버스 방식 FS-iA6B 수신기 사용 B 모델이 Serial로 사용이 가능한 모델 output rate 133Hz(7.5ms) ibus 메시지 구조 115200 8N1 32byte 고정 SOF 0x20 0x40 CH1~CH14 unsigned short 짐벌값 하위 12bit ADC 값 0~2047), 상위 4bit 부호값(fail safe 상태표시) checksum 2byte 0xffff에서 배열값을 하나씩 빼나감 oscaliang은 PPM 신호에 대해 자세히 설명되어 있음 failsafe 값 출력? failsafe 오작동할 경우를 대비한 안전장치 FrSky는 값을 바꾸어서 출력해줌 ibus에서는 하위비트는 그대로이고 상위 4bit의 값이 바뀜 PPM에서는 failsafe 전용으로 사용해야.. 2020. 4. 14.
STM32CubeIDE에서 C++ 프로젝트 개발하기 STM32는 주로 C 기반을 개발하지만 좋은 라이브러리를 사용할 때는 클래스로 개발된 것들이 많아서 C++을 사용해야 할 때가 있다. 오늘은 확장성 있는 개발을 위해 STM32CubeIDE에서 C++ 프로젝트를 만드는 것을 다루어본다. 원래 STM32CubeIDE는 C/C++을 지원하고 있으니 클래스 사용이 가능하지만 C/C++로 프로젝트를 생성하더라도 컴파일러가 정상적으로 컴파일 되지 않는다. 아래와 같이 STM32 프로젝트로 생성하고, Target Langeuage를 C++로 생성한다. C++로 프로젝트를 생성했지만 파일들은 *.c로 생성된다. 클래스를 만들고 빌드하면 아래와 같이 빌드 에러가 난다. ../Core/Inc/ClassTest.h:11:1: error: unknown type name '.. 2020. 4. 11.
AHRS - 상보 필터(Complementary Filter) 지난시간에 IMU MEMS 센서에 대해 살펴보았다. 대표적인 예로 MPU6050이 있는데 MPU6050에 있는 자이로 센서와 가속도 센서의 특징도 함께 살펴보았다. 자이로 센서 살펴보기 https://swiftcam.tistory.com/96 IMU MEMS 센서 MPU6050 살펴보기 1 - 자이로 센서 IMU(Inertial Measurement Unit: 관성측정장치)는 각속도와 가속도를 이용하여 물체의 자세를 측정해주는 센서이다. 요즘 스마트폰이나 드론에 IMU 센서를 많이 사용하고 있다. 보통 IMU 센서는 3축 자이로와 3축.. swiftcam.tistory.com 가속도 센서 살펴보기 https://swiftcam.tistory.com/159 IMU MEMS 센서 MPU6050 살펴보기 2 .. 2020. 3. 27.
IMU MEMS 센서 MPU6050 살펴보기 2 - 가속도 센서 지난 번에 MPU6050의 자이로센서에 대해 살펴보고 노이즈 오차를 측정해보았다. 오늘은 MPU6050의 가속도 센서를 살펴보자. IMU MEMS 자이로 센서, 가속도 센서의 특징 및 각도 계산에 대해서는 아래 블로그 참고 https://swiftcam.tistory.com/95 IMU MEMS 센서(Gyroscope + Accelerometer) MEMS 란? MEMS(Micro Electro Mechanical Systems) 라고 한다. 센서의 기술이 발달함에 따라 기계식 센서를 실리콘다이와 같은 반도체 안에 구현한 초소형 센서들을 말한다. MEMS 중 주변에서 쉽게 사용할 수 있는.. swiftcam.tistory.com MPU6050의 자이로 센서 특징 살펴보기는 아래 블로그 참고 https:/.. 2020. 3. 22.
[STM32] printf 함수의 수행시간 측정 지난번에 SysTick을 사용하여 usDelay를 구현해보았다. 관련 내용은 아래 포스트를 참고하면 된다. https://swiftcam.tistory.com/145?category=783715 [STM32] sysTick 을 이용한 usDelay 함수 만들기 STM32CubeIDE에서는 기본적으로 1ms단위로 입력이 가능한 msDelay를 제공한다. 그러나 가끔 시간을 측정하거나 1ms보다 작은 delay를 사용하고자 한다면 msDelay를 사용할 수 없다. us 단위의 delay를 만드는 방법.. swiftcam.tistory.com 오늘은 UART로 printf를 출력할 경우 수행시간을 측정하고 usDelay를 이용하여 수행시간을 단축한 결과와 비교하고자 한다. 1. printf의 함수의 수행시간 .. 2020. 3. 18.