무료
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결바닥부터 시작하는 STM32 드론 개발의 모든 것
cubemx에서 설정관련
강의에서 cubemx에서 타이머1/2/3/4 등 설정한 후 어떤 타이머 옆에는 체크표시가 되어 있어 ok인데 어떤 타이머 옆에는 삼각형안에 ! 표시(ng)가 되어 있는 것은 내부적으로 충돌이 되었을 때 발생하는 것으로 알고 있습니다. 강의 동영상 cubemx에서도 동일한 문제가 나타나고 있는데 괜찬은가요 ChrisP님?
- 미해결바닥부터 시작하는 STM32 드론 개발의 모든 것
배터리 연결에 문제가 생긴 것 같습니다.
안녕하세요, 강의 잘 듣고 있습니다. 우선 6-4 선택적 캘리브레이션까지는 코드 작성을 완료했고, 부저음이 울리는 것 까지 확인한 상태입니다. 다만 6-4를 테스트하던 중 갑자기 조종기에서 보드에 배터리가 연결되지 않았다는 경고를 띄웠고, 확인해보니 연결 상태가 안좋은 것 같아서 다시 납땜을 진행했습니다. 문제는 그 다음부터 배터리를 연결해도 따로 보드에 전원 공급도 되지 않고, 조종기 역시 배터리가 연결되지 않았다고 뜨네요ㅜㅜ STLink를 연결한 상태에서는 다운로드도 그렇고 부저 작동도 제대로 되는데, 배터리가 연결이 안되는 것은 BEC의 문제인지 보드의 문제인지 확인할 방법이 있을까요?
- 미해결바닥부터 시작하는 STM32 드론 개발의 모든 것
1-3 UART 통신에서 com 인식 안되는 문제
안녕하세요, 강의 잘 듣고 있습니다. 다름이 아니라 UART통신에서 terminal 프로그램을 사용하려고 하는데, 노트북의 통신 포트가 다음과 같이 사용할 수 없는 상태로 뜹니다. 노트북 자체의 문제인 것인지, 아니면 보드와 호환되는 드라이버가 없어서인지 알고 싶어요. 만약 다른 이유가 있다면 해결법 알려주시면 감사하겠습니다ㅜㅜ
- 미해결바닥부터 시작하는 STM32 드론 개발의 모든 것
Telemetry 질문입니다.!
안녕하세요! 텔레메트리 품절로인해 100mw짜리를 구매하여 하고있습니다. 배송이 오늘 드디어 도착했네요 ㅎ 이렇게 보내는대로 출력이 안되고 이상한 문자가 나오는 이유는 뭘까요?
- 미해결바닥부터 시작하는 STM32 드론 개발의 모든 것
STM CubeIDE 설치 시 NSIS error
안녕하세요, 말씀해주신 방법으로 설치를 시도하고자 하였으나 설치 파일조차도 열리지 않아 문의 드립니다. 관련 에러로 구글링하여 시도할 수 있는 것들은 대부분 시도해 보았으나 여전히 실행 파일 자체가 열리지 않고 에러가 발생해서, 이런 경우 어떻게 대처해야하는지 알려주세요ㅜㅜ 처음에는 NSIS error가 발생하여 관리자 권한으로 열기, 국가 설정 확인하고, 디렉터리 바꿔서 cmd로 여는 것 까지 모두 시도해 보았습니다. 그러고 나서는 아래와 같은 에러창이 뜨네요..
- 미해결바닥부터 시작하는 STM32 드론 개발의 모든 것
3DR telemetry 모듈 고장
안녕하세요! telemetry모듈 2개중 하나가 집에있는 micro 5핀을 꽂았는데 데이터라인이 없는거 였습니다. 보드 온도가 높게 올라가더니 초록 led는 들어오지만 com포트로 잡히지가 않고 인식이 안됩니다. uart ic가 손상된거 같은데 다시 구매를 하려 Aliexpress 사이트를 들어가보니 현재는 판매를 하지 않더군요ㅜㅜ https://ko.aliexpress.com/item/32600166627.html?spm=a2g0s.9042311.0.0.5f764c4dmYNa82 혹시 여분이 있으시면, 제가 구매 가능한가요?
- 미해결바닥부터 시작하는 STM32 드론 개발의 모든 것
유료 강좌 수강 후 유튜브나 카레를 찾아보니 동일한 강좌가 있는것 같아서 문의드립니다.
두 강좌가 서로 다른점이 있나요? 무료로 공개를 하신 것인지.. 결제를 하고 찾다보니 유튜브와 카페에 동일한 강좌가 있는 것 같아서요.. 강의와 관련있는 질문을 남겨주세요.• 강의와 관련이 없는 질문은 지식공유자가 답변하지 않을 수 있습니다. (사적 상담, 컨설팅, 과제 풀이 등)• 질문을 남기기 전, 비슷한 내용을 질문한 수강생이 있는지 먼저 검색을 해주세요. (중복 질문을 자제해주세요.)• 서비스 운영 관련 질문은 인프런 우측 하단 ‘문의하기’를 이용해주세요. (영상 재생 문제, 사이트 버그, 강의 환불 등) 질문 전달에도 요령이 필요합니다.• 지식공유자가 질문을 좀 더 쉽게 확인할 수 있게 도와주세요.• 강의실 페이지(/lecture) 에서 '질문하기'를 이용해주시면 질문과 연관된 수업 영상 제목이 함께 등록됩니다.• 강의 대시보드에서 질문을 남길 경우, 관련 섹션 및 수업 제목을 기재해주세요. • 수업 특정 구간에 대한 질문은 꼭 영상 타임코드를 남겨주세요! 구체적인 질문일수록 명확한 답을 받을 수 있어요.• 질문 제목은 핵심 키워드를 포함해 간결하게 적어주세요.• 질문 내용은 자세하게 적어주시되, 지식공유자가 답변할 수 있도록 구체적으로 남겨주세요.• 정확한 질문 내용과 함께 코드를 적어주시거나, 캡쳐 이미지를 첨부하면 더욱 좋습니다. 기본적인 예의를 지켜주세요.• 정중한 의견 및 문의 제시, 감사 인사 등의 커뮤니케이션은 더 나은 강의를 위한 기틀이 됩니다. • 질문이 있을 때에는 강의를 만든 지식공유자에 대한 기본적인 예의를 꼭 지켜주세요. • 반말, 욕설, 과격한 표현 등 지식공유자를 불쾌하게 할 수 있는 내용은 스팸 처리 등 제재를 가할 수 있습니다.
- 미해결바닥부터 시작하는 STM32 드론 개발의 모든 것
리틀앤디언 빅앤디언 질문입니다.!!
안녕하세요 저번에 질문드렸었는데요~ stm은 리틀앤디언으로 저장해야된다고 하셨었는데 보다보니 너무 헷갈려서 질문드립니다~ㅎㅎ ibus와 ICM20602의 함수는 그냥 각각 1바이트 배열값을 2바이트 변수값에 높은 자리수에 맞게 쉬프트 시킨거 아닌가요? 리틀앤디언은 낮은자리 바이트가 낮은 주소에 오는걸로 아는데 여기에 리틀앤디언 저장을 한건가요?ㅜㅜ헷갈립니다.
- 미해결바닥부터 시작하는 STM32 드론 개발의 모든 것
쿼터니언을 사용하여 회전을 구하는 이유가 뭔가요?
강의와 관련있는 질문을 남겨주세요.• 강의와 관련이 없는 질문은 지식공유자가 답변하지 않을 수 있습니다. (사적 상담, 컨설팅, 과제 풀이 등)• 질문을 남기기 전, 비슷한 내용을 질문한 수강생이 있는지 먼저 검색을 해주세요. (중복 질문을 자제해주세요.)• 서비스 운영 관련 질문은 인프런 우측 하단 ‘문의하기’를 이용해주세요. (영상 재생 문제, 사이트 버그, 강의 환불 등) 질문 전달에도 요령이 필요합니다.• 지식공유자가 질문을 좀 더 쉽게 확인할 수 있게 도와주세요.• 강의실 페이지(/lecture) 에서 '질문하기'를 이용해주시면 질문과 연관된 수업 영상 제목이 함께 등록됩니다.• 강의 대시보드에서 질문을 남길 경우, 관련 섹션 및 수업 제목을 기재해주세요. • 수업 특정 구간에 대한 질문은 꼭 영상 타임코드를 남겨주세요! 구체적인 질문일수록 명확한 답을 받을 수 있어요.• 질문 제목은 핵심 키워드를 포함해 간결하게 적어주세요.• 질문 내용은 자세하게 적어주시되, 지식공유자가 답변할 수 있도록 구체적으로 남겨주세요.• 정확한 질문 내용과 함께 코드를 적어주시거나, 캡쳐 이미지를 첨부하면 더욱 좋습니다. 기본적인 예의를 지켜주세요.• 정중한 의견 및 문의 제시, 감사 인사 등의 커뮤니케이션은 더 나은 강의를 위한 기틀이 됩니다. • 질문이 있을 때에는 강의를 만든 지식공유자에 대한 기본적인 예의를 꼭 지켜주세요. • 반말, 욕설, 과격한 표현 등 지식공유자를 불쾌하게 할 수 있는 내용은 스팸 처리 등 제재를 가할 수 있습니다. 안녕하세요. 강의 잘 보고있습니다. 학부 시절 쿼드콥터를 잠깐 맛 봤다가 좀 더 전문적으로 배우고 싶어 수강신청하게 되었습니다. FC는 가지고있는 Sp racing f3 보드를 사용하고 있는데 이 센서엔 MPU6050이 달려 있어 각도는 제가 따로 구해야할 것 같더라구요. 그런데 각도를 계산하는 과정에서 왜 쿼터니언을 사용하는지 이해가 잘 안됩니다. 자이로 센서의 데이터를 그냥 적분하는 데이터 X축에 대한 회전각 (Roll), Y축에 대한 회전각(Pitch)와 가속도 센서를 이용하여도 자세를 구할 수 있는 것으로 알고있는데 쿼터니언을 사용하여 각도를 구하는 이유가 무엇인가요? 구글링을 많이 해봤지만 제 검색 능력 부족인지, 확답을 구할 수 없었습니다. 그래서 이렇게 질문을 남겨봅니다. 감사합니다.
- 미해결바닥부터 시작하는 STM32 드론 개발의 모든 것
LPS22HH_Get_Temp함수 질문입니다.!ㅎㅎ
1. LPS22HH 의 Get_Temp함수에선 ICM20602와 다르게 Readbytes함수를 호출해서 (unsigned char*) 형태로 조금 다른데 이뜻은 unsigned char 로 형변환하여 구조체 멤버변수에 저장하는건가요??ㅎㅎ 2. Get_Temp함수와 Get3Axis 함수에서 Readbytes 함수를 호출할때 장치주소를 한번만 쓰시는데 그 이유가 궁금하고 그 뜻은 구조체 멤버변수에 배열형태로 주소가 이어져있기때문에 가능한건가요?? 따로 다른 IC를 쓸때 참고하려고 여쭤봅니다.ㅎㅎ
- 미해결바닥부터 시작하는 STM32 드론 개발의 모든 것
단축키 질문입니다.
안녕하세요 항상 좋은 답변 감사드리고 2가지 질문이 있습니다. 1. 강의보다보면 줄맞춤 하시는 단축키가 있는거 같은데 어떤것인지 궁금합니다.! c언어 줄맞춤 이런거 검색해서 적용해봤는데 잘안되는거 같더라고요ㅜ 2.가끔 Ctrl + / 할때 안먹히고 문장이 사라지는 경우가 있는데 CubeIDE 껐다가 다시켜도 증상은 여전합니다. 컴퓨터를 재부팅해야만 원상복구 되는데 다시 정상적으로 복구하는 단축키가 있나요?
- 미해결바닥부터 시작하는 STM32 드론 개발의 모든 것
1-3 uart 질문
강의와 관련있는 질문을 남겨주세요.• 강의와 관련이 없는 질문은 지식공유자가 답변하지 않을 수 있습니다. (사적 상담, 컨설팅, 과제 풀이 등)• 질문을 남기기 전, 비슷한 내용을 질문한 수강생이 있는지 먼저 검색을 해주세요. (중복 질문을 자제해주세요.)• 서비스 운영 관련 질문은 인프런 우측 하단 ‘문의하기’를 이용해주세요. (영상 재생 문제, 사이트 버그, 강의 환불 등) 질문 전달에도 요령이 필요합니다.• 지식공유자가 질문을 좀 더 쉽게 확인할 수 있게 도와주세요.• 강의실 페이지(/lecture) 에서 '질문하기'를 이용해주시면 질문과 연관된 수업 영상 제목이 함께 등록됩니다.• 강의 대시보드에서 질문을 남길 경우, 관련 섹션 및 수업 제목을 기재해주세요. • 수업 특정 구간에 대한 질문은 꼭 영상 타임코드를 남겨주세요! 구체적인 질문일수록 명확한 답을 받을 수 있어요.• 질문 제목은 핵심 키워드를 포함해 간결하게 적어주세요.• 질문 내용은 자세하게 적어주시되, 지식공유자가 답변할 수 있도록 구체적으로 남겨주세요.• 정확한 질문 내용과 함께 코드를 적어주시거나, 캡쳐 이미지를 첨부하면 더욱 좋습니다. 기본적인 예의를 지켜주세요.• 정중한 의견 및 문의 제시, 감사 인사 등의 커뮤니케이션은 더 나은 강의를 위한 기틀이 됩니다. • 질문이 있을 때에는 강의를 만든 지식공유자에 대한 기본적인 예의를 꼭 지켜주세요. • 반말, 욕설, 과격한 표현 등 지식공유자를 불쾌하게 할 수 있는 내용은 스팸 처리 등 제재를 가할 수 있습니다. 안녕하세요. 1-3장 보면서 강의를 따라하고 있습니다. ascii값으로 받으면 데이터가 안뜨고 hex데이터로 받으면 98값을 받습니다. main.c에서 "A"를 전달하든 "B"로 수정하여 전달하든 값을 같습니다. 아두이노에서 사용하던 usb to uart 모듈을 사용했는데 이 것이 문제인지 모르겠습니다. 강의에서 보여주신 모듈은 4pin 모듈이지만 제가 가지고 있는 모듈은 6pin 모듈입니다. 제가 가지고 있는 제품은 아래 사진에 첨부했습니다. 참고로 아두이노를 동작시켰을 때는 잘 동작하는 것을 보면 UART 컨버팅 모듈이 잘못된 것 같지는 않습니다. 모듈과 FC의 와이어 연결 상태는 2~3번 확인을 했고 코드도 2~3번 체크를 했습니다. 그래도 문제현상이 해결되지는 않고 있습니다. 무엇이 문제인지 모르겠습니다ㅎㅎ
- 미해결바닥부터 시작하는 STM32 드론 개발의 모든 것
소스파일 사라졌어요ㅜ
이렇게 소스파일이 사라진 이유가 뭘까요? 다시 코드를 작성하면 되긴하는데 이유를 알고싶습니다! 파일관리할때도 알고있으면 좋을거같네요ㅎㅎ
- 미해결바닥부터 시작하는 STM32 드론 개발의 모든 것
방전된 배터리 사용으로 인한 보드 오류
안녕하세요. 강의를 따라가던 중 배터리가 방전된 사실을 모르고 실습진행을 하다가 led에 불이 들어오지 않는 현상을 보았습니다. 구체적으로는 3v를 표시하는 led가 불이 안들어옵니다. 혹시나 해서 배터리체크를 해보니 방전이 되어있었네요.. 그런데 원래 배터리연결없이 stm32 v-link로만 연결을 해도 연결이되고 led 3v에 불이 들어왔었는데 이제는 link로 연결을 하여도 3v에 led는 들어오지 않습니다... 방전된 배터리를 연결하여서 보드에 문제가 생긴것일까요??
- 미해결바닥부터 시작하는 STM32 드론 개발의 모든 것
u-blox M8N GNSS Module 을 구매하기 위한 링크가 필요합니다.
u-blox M8N GNSS Module을 구매하려고 했는데 강의에 나온 readytosky gps module에 대한 정보를 찾을 수 없었습니다. 다른 제품을 사용하려고했지만 설정 프로그램인 u-center가 제공되는지 알 수 없어서 이렇게 문의 드립니다. 강좌에 적용 가능한 gps모델을 구입할 수 있는 링크를 알려주실 수 있으신가요?
- 해결됨바닥부터 시작하는 STM32 드론 개발의 모든 것
usb to uart
usb to uart말고 usb to ttl을 이용하여 실습할수도있나요?
- 미해결바닥부터 시작하는 STM32 드론 개발의 모든 것
UBX-NAV-PVT
PVT도 공부차 라이브러리 작성을 진행하고 있습니다. POSLLH와 다른점이 비트필드가 존재하더라구요. 기존 typedef struct안에 다른 iTow나 Lon아래에 그대로 정의해놓고 구조체를 추가로 작성하여 진행하는게 정공법인지 다른 방법이 있는지 궁금하여 질문 드립니다.
- 미해결바닥부터 시작하는 STM32 드론 개발의 모든 것
배터리연결
컴파일 시에 배터리 연결없이 st link로만 연결을 하여 컴파일을 해도 코드수행이 되는것 같습니다. 앞으로도 이렇게 진행하여도 괜찮을까요??
- 미해결바닥부터 시작하는 STM32 드론 개발의 모든 것
EEPROM Page Write 관련 질문
unsigned char devAddress = ((page*16)>>8)<<1 | 0xA0; HAL_I2C_Mem_Write(&hi2c1, devAddress, wordAddress, I2C_MEMADD_SIZE_8BIT, &data[0], sizeof(data), 1); HAL_I2C_Mem_Read(&hi2c1, devAddress, wordAddress, I2C_MEMADD_SIZE_8BIT, &data[0], sizeof(data), 1); 이 부분에서, R/W bit(don't care) 때문에 "<<1" 한 것은 이해하겠는데, 해당 devAddress를 바로 I2C Write 함수에 넣으면 R/W bit는 '0'이 되어 항상 쓰기 아닌가요? 이 부분이 I2C Read에도 그대로 적용되어서 R/W bit에는 계속 '0'이 들어갈텐데 어떻게 Read를 하는지 궁금합니다.
- 미해결바닥부터 시작하는 STM32 드론 개발의 모든 것
4-1 FS-i6 수신 테스트
안녕하세요. 강의대로 따라한다고 하지만 결과가 항상 달라 애를 먹고 있습니다. 현상 : 수신 결과가 깨져서 나옵니다 UART5에서 수신된 데이터를 UART6으로 보는 것에서 각 통신속도가 115200으로 같은데 왜 안나올까요. 아래 코드에서 확인 가능할까요? ? ?. void MX_UART5_Init(void) { LL_USART_InitTypeDef USART_InitStruct = {0}; LL_GPIO_InitTypeDef GPIO_InitStruct = {0}; /* Peripheral clock enable */ LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_UART5); LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOC); LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOD); /**UART5 GPIO Configuration PC12 ------> UART5_TX PD2 ------> UART5_RX */ GPIO_InitStruct.Pin = LL_GPIO_PIN_12; GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE; GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL; GPIO_InitStruct.Pull = LL_GPIO_PULL_UP; GPIO_InitStruct.Alternate = LL_GPIO_AF_8; LL_GPIO_Init(GPIOC, &GPIO_InitStruct); GPIO_InitStruct.Pin = LL_GPIO_PIN_2; GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE; GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL; GPIO_InitStruct.Pull = LL_GPIO_PULL_UP; GPIO_InitStruct.Alternate = LL_GPIO_AF_8; LL_GPIO_Init(GPIOD, &GPIO_InitStruct); /* UART5 interrupt Init */ NVIC_SetPriority(UART5_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(),0, 0)); NVIC_EnableIRQ(UART5_IRQn); USART_InitStruct.BaudRate = 115200; USART_InitStruct.DataWidth = LL_USART_DATAWIDTH_8B; USART_InitStruct.StopBits = LL_USART_STOPBITS_1; USART_InitStruct.Parity = LL_USART_PARITY_NONE; USART_InitStruct.TransferDirection = LL_USART_DIRECTION_RX; USART_InitStruct.HardwareFlowControl = LL_USART_HWCONTROL_NONE; USART_InitStruct.OverSampling = LL_USART_OVERSAMPLING_16; LL_USART_Init(UART5, &USART_InitStruct); LL_USART_ConfigAsyncMode(UART5); LL_USART_Enable(UART5); } /* USART6 init function */ void MX_USART6_UART_Init(void) { LL_USART_InitTypeDef USART_InitStruct = {0}; LL_GPIO_InitTypeDef GPIO_InitStruct = {0}; /* Peripheral clock enable */ LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_USART6); LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOC); /**USART6 GPIO Configuration PC6 ------> USART6_TX PC7 ------> USART6_RX */ GPIO_InitStruct.Pin = LL_GPIO_PIN_6|LL_GPIO_PIN_7; GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE; GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL; GPIO_InitStruct.Pull = LL_GPIO_PULL_NO; GPIO_InitStruct.Alternate = LL_GPIO_AF_8; LL_GPIO_Init(GPIOC, &GPIO_InitStruct); /* USART6 interrupt Init */ NVIC_SetPriority(USART6_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(),0, 0)); NVIC_EnableIRQ(USART6_IRQn); USART_InitStruct.BaudRate = 115200; USART_InitStruct.DataWidth = LL_USART_DATAWIDTH_8B; USART_InitStruct.StopBits = LL_USART_STOPBITS_1; USART_InitStruct.Parity = LL_USART_PARITY_NONE; USART_InitStruct.TransferDirection = LL_USART_DIRECTION_TX_RX; USART_InitStruct.HardwareFlowControl = LL_USART_HWCONTROL_NONE; USART_InitStruct.OverSampling = LL_USART_OVERSAMPLING_16; LL_USART_Init(USART6, &USART_InitStruct); LL_USART_ConfigAsyncMode(USART6); LL_USART_Enable(USART6); }