Inflearn brand logo image

인프런 커뮤니티 질문&답변

Hyeon Kyeong Cho님의 프로필 이미지
Hyeon Kyeong Cho

작성한 질문수

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

전동킥보드 펌웨어 코드 분석 (2)

속도 계산에 대한 문의입니다.

해결된 질문

작성

·

33

0

안녕하세요, 속도 계산하는 코드에 질문이 있습니다.

 

speed_km_h = motor_speed_rpm * (3.14159f * 0.6283f) * 60.0f / 1000.0f;

위 코드에서 0.6283f 라는 숫자에 대해서 궁금하여 글 남깁니다.

 

인 휠 모터의 지름은 20cm라고 알고 있습니다. 이를 미터로 계산하면 0.2m이고 둘레를 계산하기 위해 3.14159를 곱하면 0.6283184라는 숫자가 나오더군요.

 

(둘레 x RPM x 60) / 1000 해서 km/h를 구하는 용도의 코드인 것 같은데 3.14159가 한번 더 중복되어 곱해진 것 아닌가 하여 글 남깁니다. 감사합니다.

답변 2

1

제어쟁이님의 프로필 이미지
제어쟁이
지식공유자

아 네 맞습니다 ㅠㅠ 최종 코드 정리할 때 실수가 있었나봅니다.

말씀하신 부분이 완전히 맞으니 수정 부탁드립니다.

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. Hyeon Kyeong Cho님.

속도 계산 코드에서의 상수와 논리적 연산에 대해 질문을 주셨군요. 이와 같은 코드에서 각 상수의 역할은 정확한 속도 계산을 보장하는 데 중요한 역할을 합니다.

코드 분석

해당 코드의 각 상수는 다음과 같은 의미를 가지고 있습니다:

  • motor_speed_rpm: 모터의 회전 수를 분당 회전 수(RPM)로 나타냅니다.
  • 3.14159f: 원주율(π)로, 원의 둘레 계산에 사용됩니다.
  • 0.6283f: 여기서 0.6283f는 인 휠 모터의 원의 둘레를 미터 단위로 변환하여 얻게 되는 값입니다.
  • 60.0f: 초 단위의 시간을 분 단위로 변환하기 위해 사용됩니다.
  • / 1000.0f: 결과를 미터 단위에서 킬로미터 단위로 변환합니다.

주어진 코드에서 3.14159 * 0.6283는 단지 원주율이 중복 계산되는 것이 아니라, 정확한 미터 단위로의 변환을 위한 조정이 이루어질 가능성이 큽니다.

다시 말해, 실제로 0.6283은 간단히 계산된 둘레의 값을 표현하므로, 곱해진 3.14159와는 별개로 생각할 수도 있습니다. 그러나 코드 작성자의 의도나 오해를 피하기 위해 정확한 수식 사용이 중요하므로 두 번의 원주율 적용은 필요한 부분은 아니고, 대신 단순히 0.2m의 원주를 3.14159 한 번만 곱해 0.628318, 즉 올바른 값을 사용하여야 합니다.

유사한 주제를 다룬 질문 및 답변을 참조하시길 원하신다면 관련 강의 자료나 해당 강의 질문 게시판을 참고하시기를 권장드립니다.

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

Hyeon Kyeong Cho님의 프로필 이미지
Hyeon Kyeong Cho

작성한 질문수

질문하기