inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

전동킥보드로 배우는 임베디드 실전 프로젝트

쓰로틀 신호 입력 받기 - ADC 이론

81. 소프트웨어 작성 방법론에 대해 문의 드립니다.

2

윤남경

작성한 질문수 29

0

얼마전에 면접보는데 로봇 소프트웨어 코딩을 어떻게 하겠냐고 물어 봤는데 대답을 잘 하지는 못했습니다. 많은걸 배우게 하는 면접이었던것 같습니다.

초기화, 그다음 센서나 모듈별 작동 순서 정의, 제어루프 실행 이라 말햇는데 너무도 부족한 대답이었던것 같습니다.


지금 수업에서 예로든 전동 킥보드라면 어떻게 적용해야 할까요 ?

첫번째, 제어주기 얼마안에 속도 피드백 루프를 돌아야 한다 라는 제한 조건을 세운다.

두번째, 필요한 하드웨어 선정: 배터리 용량 결정, dc모터스펙 결정(요구되는 토크량 예측), stm32mcu 선택 (-너무 고스펙 아니냐고 물어 볼수도 있을것 같습니다)

세번째, 소프트웨어 구상 : 엔코더의 회전속도 피드백을 통한 속도제어 PI컨트롤러 설계, 통신방식은 rs232/can,

대략 이렇게 대답 하면 될까요 ?

특히 소프트웨어 구조라는게 대체 어디 까지를 의미 하는지 모르겠습니다. 인터럽트로 처리한다. 아니면 상태머신으로 관리한다 등등이 대답이 될수 잇을까요 ?


임베디드 stm32 hardware motordriver artwork

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 윤남경님.

로봇이나 전동 킥보드 소프트웨어를 설계할 때는 요구사항 정의 → 하드웨어 선정 → 소프트웨어 구조 설계 → 제어주기 및 태스크 정의 → 구현 및 검증 순서로 접근하면 좋습니다. 질문자님께서 말씀하신 배터리, 모터, MCU, 센서, 제어기, 통신 방식에 대한 고려 방향은 적절합니다.

특히 면접에서는 단순히 부품 목록을 나열하기보다 다음과 같이 설명하면 설계 의도를 더 명확하게 전달할 수 있습니다.

  • 목표 속도, 최대 하중, 등판 능력, 주행 시간 등 요구사항 정의
  • 요구 토크와 속도를 계산하여 모터 및 배터리 선정
  • 엔코더, 전류 센서, 속도 센서 등 피드백 센서 결정
  • 속도 제어 루프의 주기와 우선순위 결정
  • 빠른 제어 루프와 통신·진단 등 느린 태스크 분리
  • STM32는 필요한 PWM, 타이머, ADC, 엔코더 인터페이스, CAN 등의 주변장치와 성능을 기준으로 선정
  • PI 제어기 구현 후 시뮬레이션 및 실제 모터 실험으로 검증
  • 과전류, 과전압, 센서 오류, 통신 오류 등에 대한 예외 처리 추가

예를 들어 전동 킥보드라면 모터 전류 제어는 수십 kHz, 속도 제어는 수백 Hz 수준으로 구성할 수 있으며, 통신이나 상태 표시 태스크는 이보다 느린 주기로 실행하도록 설계할 수 있습니다. 다만 정확한 주기는 모터, 인버터, 센서, MCU 성능과 시스템 요구사항에 따라 결정해야 합니다.

이와 같이 시스템의 plant가 무엇인지, 어떤 입력을 주고 어떤 센서값을 피드백받는지, 제어 목표와 제어주기를 어떻게 정했는지를 함께 설명하면 설계 방법론을 잘 보여줄 수 있습니다.

유사하게 제어 대상인 plant를 정하고 제어 목표와 모델, 제어기, 실험 결과를 연결해 설명한 기존 답변도 참고해 보세요.

조언 부탁드립니다.

해당 답변에서는 모터 제어 시스템을 설계할 때 어떤 plant를 제어하는지, 제어 목표를 어떻게 설정하는지, 모델링과 제어기 구현 및 검증 경험을 어떻게 정리해야 하는지 설명하고 있습니다. 질문자님의 면접 답변을 구성할 때에도 “무엇을 제어하는가 → 어떤 센서로 측정하는가 → 어떤 주기로 제어하는가 → 어떻게 검증하는가”의 흐름으로 정리하면 도움이 됩니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

00. stm32cubeIDE를 회사에서도 사용하나요 ?

0

4

1

상전류 읽는 타이밍 관련 문의

0

19

2

uart, tera term 실습이 잘 안됩니다.

0

32

2

80. 인터럽스와 일반함수 차이

0

23

1

79. int main(void)선언 없이 어떻게 동작하나요 ?

0

26

1

79. int main(void)선언 없이 어떻게 동작하나요 ?

0

18

1

74. 포인터 크기는얼마인가요 ?

0

30

1

73. 왜 hex를 사용하나요 ?

0

34

2

71. 40초쯤에 소리가 안납니다.

0

23

1

70. 강의에 사용되는 보드는 어떤것인가요 ?

0

39

2

00. 인버터 회로만 보고 소비전력을 예측 가능하나요 ?

0

38

1

58강, 유니폴라, 바이폴라 방식중 바이폴라가 대세라고 보면 되나요 ?

0

39

2

57강. 모터인데 왜 전압제어를 하나요 ?

0

37

2

57강. PWM은 sine을 만들어 내는 걸로 이해 하면 되나요 ?

0

36

2

49강. 제어이론의 구체적 다이어그램 설명 요청드립니다.

0

31

2

55강. dead time을 고려하면, 원래의 original신호와는 달라지지 않나요 ?

0

24

2

스위칭 주파수 설정

0

43

2

P6KE47CA 이 부품에 대해서 궁금합니다.

0

49

1

교육용 보드 쓰로틀 질문입니다.

0

75

3

모스펫 기생 커패시터에 대한 내용 누락

0

54

1

강의 자료 어디 있을까요?

0

52

2

STM32 보드 연결 방법 없이 바로 코딩으로 넘어가서 당황스러운데

0

67

3

대역폭 강의 없어요.

0

54

2

섹션 3,4. 6,7강의듣고 섹션5나중에 들어도 괜찮은건가요?

0

61

2