
рдЗрд╕ рдмрд╛рд░ рд╣рдо ARDUINO (AVR) рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рдореБрдЦ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдереЛрдбрд╝рд╛ рдЧрд╣рд░реЗ рдирдЬрд╝рд░ рдЖрдПрдВрдЧреЗ, рдЬреЛ MIRO рд░реЛрдмреЛрдЯ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВред рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛ рдЙрди рд╕рднреА рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛, рдЬреЛ рдпрд╣ рд╕реЛрдЪрддреЗ рдереЗ рдХрд┐ рд╕рд░рд▓рддрдо рдПрдиреНрдХреЛрдбрд░ рдХреЗ рд╕рд╛рде рдореЛрдЯрд░реНрд╕ рд╕реЗ рд▓реИрд╕ ARDUINO рдкрд░ рд░реЛрдмреЛрдЯ рдХреА рд░реИрдЦрд┐рдХ рдФрд░ рдХреЛрдгреАрдп рдЧрддрд┐ рдХреЛ рдХреИрд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред
рд╕рд╛рдордЧреНрд░реА рдХреА рддрд╛рд▓рд┐рдХрд╛:
рднрд╛рдЧ 1 ,
рднрд╛рдЧ 2 ,
рднрд╛рдЧ 3 ,
рднрд╛рдЧ 4 ,
рднрд╛рдЧ 5рдУрдбреЛрдореЗрдЯреНрд░реА рдХреЗ рд╕рд╛рде рдбреНрд░рд╛рдЗрд╡рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рддрд░реАрдХреЗ рдЕрднреА рднреА рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдореЗрдВ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ, рдХреНрдпрд╛, рдФрд░ рдХреНрдпреЛрдВред рд░реЛрдмреЛрдЯ рдХреА рдЧрддрд┐ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреЛ рдЬреЛ рдкрд╣рд▓реА рдЪреАрдЬ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рд╡рд╣ рд╕рд░рд▓ рдФрд░ рд╕реНрдкрд╖реНрдЯ рддрдереНрдп рд╣реИ рдХрд┐ рд░реЛрдмреЛрдЯ рдХреЗ рдХрд▓реЗрдХреНрдЯрд░ рдореЛрдЯрд░реНрд╕ рдХрднреА рднреА рдмрд┐рдирд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдорд╛рдпреЛрдЬрди рдХреЗ рд╕рдорд╛рди рдЧрддрд┐ рд╕реЗ рдирд╣реАрдВ рдШреВрдорддреЗ рд╣реИрдВред рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреНрд▓рдЪ, рдЪрд╛рд▓рдХ рдЪреИрдирд▓реЛрдВ рдХреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрдЙрдЯрдкреБрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ, рдЧрд┐рдпрд░рдмреЙрдХреНрд╕ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рдЗрд▓реЗрдХреНрдЯреНрд░рд┐рдХ рдореЛрдЯрд░реНрд╕ рдФрд░ рд╕реНрдиреЗрд╣рдиред
рджреВрд╕рд░рд╛ рддрдереНрдп рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрдВрдЬрди рдореЗрдВ рдЬрдбрд╝рддрд╛ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдмрдбрд╝реЗ рдЧрд┐рдпрд░ рдЕрдиреБрдкрд╛рдд рдХреЗ рд╕рд╛рде рднреАред рдпрд╛рдиреА рдореЛрдЯрд░ рдЯрд░реНрдорд┐рдирд▓реЛрдВ рд╕реЗ рд╡реЛрд▓реНрдЯреЗрдЬ рдХреЛ рд╣рдЯрд╛рддреЗ рд╕рдордп, рдкрд╣рд┐рдпрд╛, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рдЖрдВрджреЛрд▓рди рдХреЛ рдХреБрдЫ рдФрд░ рдбрд┐рдЧреНрд░реА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдЕрддрд┐рд░рд┐рдХреНрдд рдШреБрдорд╛рд╡ рдХреА рднрдпрд╛рд╡рд╣рддрд╛ рддрдирд╛рд╡ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд░реЛрдЯреЗрд╢рди рдХреА рдЧрддрд┐ рдкрд░, рдкрд╣рд┐рдпрд╛ рдкрд░ рд▓реЛрдбрд┐рдВрдЧ рдмрд▓ рдФрд░ рдЧрд┐рдпрд░рдмреЙрдХреНрд╕ рдореЗрдВ рд╕реНрдиреЗрд╣рдХ рдХреЗ рдкреНрд░рдХрд╛рд░ рдФрд░ рдорд╛рддреНрд░рд╛ рдЬреИрд╕реЗ рд╕рдорд╛рди рдЕрджреГрд╢реНрдп рдХрд╛рд░рдХреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред
рдпреЗ рддрдереНрдп рдУрдбреЛрдореАрдЯрд░ рд╕реЗрдВрд╕рд░ (рдПрдордЖрдИрдЖрд░рдУ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдкрд╣рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд┐рдЯрд▓ рдПрдирдХреЛрдбрд░) рд╕реЗ рд▓реИрд╕ рдЪреЗрд╕рд┐рд╕ рдХреЗ рдЖрдВрджреЛрд▓рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рддрд░реАрдХреЛрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдореЗрдВ рдЪреМрдереЗ рднрд╛рдЧ рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛, рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдореЙрдбрд▓ рдореЗрдВ
рдЪреЗрд╕рд┐рд╕ рдХреНрд▓рд╛рд╕ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЪреЗрд╕рд┐рд╕ рдЗрдВрдЬрдиреЛрдВ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рдЬреЛрд░ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ - рдЪреЗрд╕рд┐рд╕, рдЯреНрд░реЙрд▓реА рдХреЗ рдЖрдВрджреЛрд▓рди рдХрд╛ рдирд┐рдпрдВрддреНрд░рдг рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЯреНрд░реЙрд▓реА рдХреЗ рдЗрдВрдЬрдиреЛрдВ рдХрд╛ рдирд┐рдпрдВрддреНрд░рдгред рдЯреНрд░реЙрд▓реА рдХрд╛ рд╕реАрдзрд╛ рдирд┐рдпрдВрддреНрд░рдг
рд░реЛрдмреЛрдЯ рдФрд░
рдорд┐рд░реЛ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЪрд▓реЛ рдКрдкрд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдиреАрдЪреЗ
Miro рд╡рд░реНрдЧ рдХреА рдПрдХ рд╡рд┐рдзрд┐ рджреА рдЧрдИ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд░реИрдЦрд┐рдХ (
lin_speed , m / s) рдФрд░ рдХреЛрдгреАрдп (
ang_speed , deg / s) рдЧрддрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рджреВрд░реА (
рдбрд┐рд╕реНрдЯ , рдореАрдЯрд░) рд░реЛрдмреЛрдЯ рдХреА рдЧрддрд┐ рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред
рд╣рдо рдЕрднреА рддрдХ
en_break рдкреИрд░рд╛рдореАрдЯрд░ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗ рд░рд╣реЗ рд╣реИрдВред
int Miro::moveDist(float lin_speed, float ang_speed, float dist, bool en_break) { float _wheelSetAngSpeed[WHEEL_COUNT]; _wheelSetAngSpeed[LEFT] = MIRO_PI2ANG * (lin_speed - (ROBOT_DIAMETER * ang_speed / (2 * MIRO_PI2ANG))) / WHEEL_RADIUS; _wheelSetAngSpeed[RIGHT] = MIRO_PI2ANG * (lin_speed + (ROBOT_DIAMETER * ang_speed / (2 * MIRO_PI2ANG))) / WHEEL_RADIUS; float _wheelSetAng[WHEEL_COUNT]; _wheelSetAng[RIGHT] = _wheelSetAngSpeed[RIGHT] * dist / lin_speed; _wheelSetAng[LEFT] = _wheelSetAngSpeed[LEFT] * dist / lin_speed; return this->chassis.wheelRotateAng(_wheelSetAngSpeed, _wheelSetAng, en_break); }
рдЗрд╕ рдкрджреНрдзрддрд┐ рдореЗрдВ, рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рдЗрдВрдЬрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХреЛрдгреАрдп рд╡реЗрдЧреЛрдВ рдХреА рдЧрдгрдирд╛ рдкрд╣рд▓реЗ рдХреА рдЬрд╛рддреА рд╣реИред рдХрд╛рдлреА рд╕реНрдкрд╖реНрдЯ рд╕реВрддреНрд░реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЬреЛ рдХрдЯреМрддреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред рдХреЗрд╡рд▓ рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рд╡рд┐рдзрд┐ рдореЗрдВ рд░реИрдЦрд┐рдХ рд╡реЗрдЧ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдореАрдЯрд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХреЛрдгреАрдп рд╡реЗрдЧ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб (рд░реЗрдбрд┐рдпрди рдореЗрдВ рдирд╣реАрдВ)ред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдирд┐рд░рдВрддрд░
MIRO_PI2ANG = 57.29 = 180 / pi рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ
ред ROBOT_DIAMETER - рд░реЛрдмреЛрдЯ рдХреЗ рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рдкрд╣рд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдХреА рджреВрд░реА (рдореАрдЯрд░ рдореЗрдВ),
WHEEL_RADIUS - рдкрд╣рд┐рдпрд╛ рддреНрд░рд┐рдЬреНрдпрд╛ (рдореАрдЯрд░ рдореЗрдВ рднреА)ред рдЗрд╕ рддрд░рд╣ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕реНрдерд┐рд░рд╛рдВрдХ рдбрд┐рдлреЗрдХреНрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдорд╛рд╣рд┐рдд рд╣реИрдВ, рдФрд░ config.h рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░реЛрдмреЛрдЯ рдФрд░ рдЪреЗрд╕рд┐рд╕ рдХрд╕реНрдЯрдо рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВред
рдЙрд╕рдХреЗ рдмрд╛рдж, рдХреЛрдг рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддреНрдпреЗрдХ рдкрд╣рд┐рдпрд╛ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рд░реЛрдмреЛрдЯ рджреВрд░реА (рдореАрдЯрд░ рдореЗрдВ рднреА) рджреВрд░реА рдХреА рдпрд╛рддреНрд░рд╛ рдХрд░реЗред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЗрд╕ рд╕реНрддрд░ рдкрд░ рд╣рдо рд░реЛрдмреЛрдЯ рдЪреЗрд╕рд┐рд╕ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкрд╣рд┐рдпрд╛ рдХреЛ рдШреБрдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕ рдЧрддрд┐ рдФрд░ рдХрд┐рд╕ рдХреЛрдг рдкрд░ рдЖрддреЗ рд╣реИрдВред рдФрд░ рдлрд┐рд░
рдЪреЗрд╕рд┐рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛
рд╡реНрд╣реАрд▓рд░реЛрдЯреЗрдЯрдПрдВрдЧ () рд╡рд┐рдзрд┐ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
WheelRotateAng рдореЗрдердб
(рдлреНрд▓реЛрдЯ * рд╕реНрдкреАрдб, рдлреНрд▓реЛрдЯ * рдПрдВрдЧрд▓, рдмреВрд▓ рдПрди_рдмреНрд░реЗрдХ) рдХрд╛ рдЙрдкрдпреЛрдЧ рд░реЛрдмреЛрдЯ рд╡реНрд╣реАрд▓реНрд╕ рдХреЛ рд░реЛрдЯреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
, рдЬрд┐рд╕реЗ рдПрдВрдЧ [] рдПрд░реЗ (рд╕рд░рдгреА рдореЗрдВ) рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдПрдВрдЧрд▓ рджреНрд╡рд╛рд░рд╛
рд╕реНрдкреАрдб [] рдПрд░реЗ (рдПрдо / рдПрд╕) рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЛрдгреАрдп рдЧрддрд┐ рдХреЗ рд╕рд╛рдеред рдЕрдВрддрд┐рдо рдкреИрд░рд╛рдореАрдЯрд░
en_break (рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рд╕реЗ рдорд┐рд▓рд╛ рд╣реБрдЖ) рдЙрди рдкрд░ рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рд░рд┐рд╡рд░реНрд╕ рд╡реЛрд▓реНрдЯреЗрдЬ рд▓рд╛рдЧреВ рдХрд░рдХреЗ рдПрдХ рдореЛрдбрд╝ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж рдкрд╣рд┐рдпреЛрдВ рдХреЗ рдПрдХ рдХрдард┐рди рдкрдбрд╝рд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд░реЛрдмреЛрдЯ рдХреА рдЬрдбрд╝рддрд╛ рдХреЛ рджрдмрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЗрд╕реЗ рдореЛрдЯрд░реНрд╕ рд╕реЗ рдирд┐рдпрдВрддреНрд░рдг рд╡реЛрд▓реНрдЯреЗрдЬ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрд╡рд╢реНрдпрдХ рджреВрд░реА рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рд░реЛрдХрдирд╛ рдЪрд╛рд╣рд┐рдПред рдкреВрд░реНрдг рд╕рдВрддреБрд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ,
рд╡реНрд╣реАрд▓рдЖрд░реЛрдЯреЗрдЯрдПрдПрдирдЬреАрдЖрд░рдПрдбреА () рд╡рд┐рдзрд┐ рд╣реИ,
рд╡реНрд╣реАрд▓рдЖрд░реЛрдЯреЗрдЯрдПрдПрдирдЬреА () рдХреЗ рд╕рдорд╛рди рдЕрдВрддрд░ рд╣реИ рдХрд┐ рдпрд╣ рд░реЗрдбрд┐рдпрди рдФрд░ рд░реЗрдбрд┐рдпрди рдореЗрдВ
рд╕реЗрдХреЗрдВрдбреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд░реЛрдЯреЗрд╢рди рдХреЛрдгреЛрдВ рдФрд░ рдХреЛрдгреАрдп рд╡реЗрдЧреЛрдВ рдХреЗ рдорд╛рди рдХреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИред
WheelRotateAng () рд╡рд┐рдзрд┐ рдХрд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИред
1. рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ,
рдЧрддрд┐ рд╕реЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдкрддреНрд░рд╛рдЪрд╛рд░
[] рдФрд░
рдХреЛрдг [] рдХреБрдЫ рд╕реАрдорд╛ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЪреЗрд╕рд┐рд╕ рдХреА рдкрд╣рд┐рдП рдХреЗ рд░реЛрдЯреЗрд╢рди рдХреА рдЕрдзрд┐рдХрддрдо рдХреЛрдгреАрдп рдЧрддрд┐ рдФрд░ рдиреНрдпреВрдирддрдо (рдЪрд▓рддреА рдЧрддрд┐ рдХреА рдиреНрдпреВрдирддрдо рдЧрддрд┐) рджреЛрдиреЛрдВ рдкрд░ рднреМрддрд┐рдХ рд╕реАрдорд╛рдПрдВ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЛрдг рдореЗрдВ рдХреЛрдг
[] рд░реЛрдЯреЗрд╢рди рдХреЗ рдиреНрдпреВрдирддрдо рддрдп рдХреЛрдг рд╕реЗ рдХрдо рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдПрдиреНрдХреЛрдбрд░реНрд╕ рдХреА рд╕рдЯреАрдХрддрд╛ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред
2. рдЕрдЧрд▓рд╛, рдкреНрд░рддреНрдпреЗрдХ рдкрд╣рд┐рдпрд╛ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХреА рджрд┐рд╢рд╛ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрддреНрдкрд╛рдж рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ
рдХреЛрдг [i] * рдЧрддрд┐ [i] ;
3. рдкреНрд░рддреНрдпреЗрдХ рдкрд╣рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП "рд░реЛрдЯреЗрд╢рди рдХреА рджреВрд░реА"
рдбреНрд╡рд╛ [i] рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ - рдПрдирдХреЛрдбрд░ рдирдореВрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЬреЛ рджрд┐рдП рдЧрдП
рдХреЛрдг [i] рджреНрд╡рд╛рд░рд╛ рдШреВрдордиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрд╣ рдорд╛рди рд╕реВрддреНрд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
рдбреНрд╡ [i] = рдПрдВрдЧ [i] * WHEEL_SEGMENTS / 360 ,
рдЬрд╣рд╛рдВ
WHEEL_SEGMENTS рдПрдирдХреЛрдбрд░ рд╡реНрд╣реАрд▓ (рдкреВрд░реНрдг рдХреНрд░рд╛рдВрддрд┐) рдХреЗ рд╕реЗрдЧрдореЗрдВрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИред
4. рдореЛрдЯрд░ рдЪрд╛рд▓рдХ рдкрд░ рд╡реЛрд▓реНрдЯреЗрдЬ рдорд╛рди рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрдВрдЬрдиреЛрдВ рдкрд░ рд╡реЛрд▓реНрдЯреЗрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ* рдкреАрдбрдмреНрд▓реВрдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдореЛрдЯрд░реНрд╕ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдореЛрдЯрд░ рдХреЛ рдЖрдкреВрд░реНрддрд┐ рдХрд┐рдП рдЧрдП рд╡реЛрд▓реНрдЯреЗрдЬ рдХреЛ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, рдореЛрдЯрд░ рдЪрд╛рд▓рдХ рдХреА рдЖрдкреВрд░реНрддрд┐ рд╡реЛрд▓реНрдЯреЗрдЬ рдХреЛ рдЬрд╛рдирдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред MIRO рд░реЛрдмреЛрдЯ рдореЗрдВ, рдбреНрд░рд╛рдЗрд╡рд░ рд╕реАрдзреЗ рдмреИрдЯрд░реА рдкрд╛рд╡рд░ рд╕рд░реНрдХрд┐рдЯ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИред рдлрд╝рдВрдХреНрд╢рди рдлреНрд▓реЛрдЯ getVoltage (); VOLTAGE_DIVIDER рдХреЗ рдПрдХ рдХрд╛рд░рдХ рдХреЗ рд╕рд╛рде рд╡реЛрд▓реНрдЯреЗрдЬ рд╡рд┐рднрдХреНрдд рд╕реЗ рд╡реЛрд▓реНрдЯреЗрдЬ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдПрдбреАрд╕реА рд╕рдВрджрд░реНрдн рд╡реЛрд▓реНрдЯреЗрдЬ: 5 рд╡реАред рдлрд┐рд▓рд╣рд╛рд▓, рд░реЛрдмреЛрдЯ рдореЗрдВ VOLTAGE_DIVIDER рдХрд╛ рдорд╛рди 2 рд╣реИ, рдФрд░ рдмреИрдЯрд░реА рдХреЗ рдПрдХ рдмреИрдВрдХ (1S) рд╕реЗ рд╡реЛрд▓реНрдЯреЗрдЬ ADC рдЗрдирдкреБрдЯ (PIN_VBAT) рдХреЛ рдЖрдкреВрд░реНрддрд┐ рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ рдХрд┐ рдмреИрдЯрд░реА рдмреИрдВрдХ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рдирд┐рд░реНрд╡рд╣рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрддреБрд▓рди рдЦреЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди, рдЬреИрд╕рд╛ рдХрд┐ рдЕрднреНрдпрд╛рд╕ рдиреЗ рджрд┐рдЦрд╛рдпрд╛ рд╣реИ, рд╕рдВрддреБрд▓рди рдХреЗ рд╕рд╛рде рдмреИрдЯрд░реА рдХреЗ рд▓рдЧрд╛рддрд╛рд░ рдЪрд╛рд░реНрдЬ рдХреЗ рд╕рд╛рде, рд╕рдорд╛рдзрд╛рди рдХрд╛рдлреА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╣рдо рджреЛ рдХреИрди рдХреА рдмреИрдЯрд░реА рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдбрд┐рд╡рд╛рдЗрдбрд░ рдмрдирд╛рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред
5. рдкреНрд░рддреНрдпреЗрдХ рдкрд╣рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЕрдВрд╢рд╛рдВрдХрди рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, PWM рд╕рд┐рдЧреНрдирд▓ рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рдЧрддрд┐
рдЧрддрд┐ [i] рдХреЗ рд╕рд╛рде рдкрд╣рд┐рдпрд╛ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред рдХрд┐рд╕ рддрд░рд╣ рдХреА рдХреИрд▓рд┐рдмреНрд░реЗрд╢рди рдЯреЗрдмрд▓ рд╣реИ рдФрд░ рдпрд╣ рдХрд╣рд╛рдВ рд╕реЗ рдЖрдпрд╛ рд╣реИ - рд╣рдо рдЖрдЧреЗ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗред
6. рд░реЛрдЯреЗрд╢рди рдХреА рдЧрддрд┐ рдФрд░ рджрд┐рд╢рд╛ рдХреА рдЧрдгрдирд╛ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЗрдВрдЬрдиреЛрдВ рдХрд╛ рд░реЛрдЯреЗрд╢рди рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд░реНрдЧ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдкрд╛рда рдореЗрдВ,
_wheel_rotate_sync () рдирд┐рдЬреА рд╡рд┐рдзрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред
рд╣рдо рдФрд░ рднреА рдЧрд╣рд░реЗ рдЬрд╛рддреЗ рд╣реИрдВред рдирд┐рдореНрди рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреЗ рдЕрдиреБрд╕рд╛рд░
_wheel_rotate_sync () рд╡рд┐рдзрд┐ рдХрд╛рдо рдХрд░рддреА рд╣реИ:
1. рдПрдХ рдЕрдирдВрдд рд▓реВрдк рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдкрд╣рд┐рдпреЗ рдХреЗ рд▓рд┐рдП рдЯрд░реНрдирд┐рдВрдЧ
рдбрд┐рд╕реНрдЯ рдбреЗрд╡ [i] рдХреЗ рдПрдирдХреЛрдбрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪреЗрдХ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдХрд╛рдЙрдВрдЯрд░
рдбреНрд╡ [i] рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдкрд╣реБрдВрдЪ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рднреА рдкрд╣рд┐рдП рдЪрдХреНрд░ рдХреЛ рд░реЛрдХрддреЗ рд╣реИрдВ рдФрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдлрд╝рдВрдХреНрд╢рди (рдЪрд░рдг 5) рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддреЗ рд╣реИрдВред рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд░реЛрдЯреЗрд╢рди рдХреЗ рдХреЛрдг рдХреЛ рдорд╛рдкрдиреЗ рдХреА рд╡рд┐рд╕рдВрдЧрддрд┐ рдХреЗ рдХрд╛рд░рдг, рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рд╣реИ рдЬрдм рдПрдХ рдкрд╣рд┐рдпрд╛ рдХреА рдЧрдгрдирд╛ рдХреА рдЧрдИ рджреВрд░реА
рдбреНрд╡ [i] рдПрдХ рдЧреИрд░-рдкреВрд░реНрдгрд╛рдВрдХ рдорд╛рди рдХреЛ рдПрдХ рдЫреЛрдЯреЗ рдкрдХреНрд╖ рдореЗрдВ рдФрд░ рджреВрд╕рд░реЗ рдкрд╣рд┐рдпреЗ рдХреЗ
рдбреНрд╡ [рдЬреЗ] рдХреЛ рдмрдбрд╝рд╛ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рдмрд╛рдж, рджреВрд╕рд░рд╛ рдкрд╣рд┐рдпрд╛ рдПрдХ рдореЛрдбрд╝ рдмрдирд╛рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИред рдЕрдВрддрд░ рдбреНрд░рд╛рдЗрд╡ рдХреЗ рд╕рд╛рде рдЪреЗрд╕рд┐рд╕ рдХреЗ рд▓рд┐рдП (рдФрд░ рдХрдИ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП), рдпрд╣ рдХрд╛рд░реНрдп рдХреЗ рдЕрдВрдд рдореЗрдВ рд░реЛрдмреЛрдЯ рдХреЗ рдЕрдирд┐рдпреЛрдЬрд┐рдд "рдЯрд░реНрди" рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдкреВрд░реЗ рдЪреЗрд╕рд┐рд╕ рдХреЗ рд╕реНрдерд╛рдирд┐рдХ рдЖрдВрджреЛрд▓рди рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕рднреА рдЗрдВрдЬрдиреЛрдВ рдХреЛ рд░реЛрдХрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
2. рдпрджрд┐
рдбреНрд╡ [i] рдирд╣реАрдВ рдкрд╣реБрдБрдЪрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд▓реВрдк рдореЗрдВ рдПрдирдХреЛрдбрд░ рдХреЗ рдЕрдЧрд▓реЗ рдСрдкрд░реЗрд╢рди рдХреЗ рддрдереНрдп рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ (рдЪрд░
_syncloop [w] , рдЬреЛ рдПрдирдХреЛрдбрд░ рдЗрдВрдЯрд░рдкреНрдЯ рд╕реЗ рдЕрдкрдбреЗрдЯ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдЕрдирдВрдд рд▓реВрдк рдореЗрдВ рд░реАрд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ)ред рдЬрдм рдЕрдЧрд▓рд╛ рдЪреМрд░рд╛рд╣рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕реНрдкрд╖реНрдЯ рд╕реВрддреНрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреНрд░рддреНрдпреЗрдХ рдкрд╣рд┐рдпрд╛ (рдбрд╛рдЙрди / рдПрд╕) рдХреА рд╡рд░реНрддрдорд╛рди рдХреЛрдгреАрдп рдЧрддрд┐ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ:
рдбрдмреНрд▓реНрдпреВ [i] = (рейремреж * рддрд╛рдК [i]) / WHEEL_SEGMENTS ,
рдЬрд╣рд╛рдВ:
рддрд╛рдК [i] - рдПрдиреНрдХреЛрдбрд░ рдХреЗ рдЕрдВрддрд┐рдо рджреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдХреЗ рд╕рдордп рдХрд╛ рдФрд╕рдд рдореВрд▓реНрдпред рдФрд╕рдд рдлрд┐рд▓реНрдЯрд░ рдХреА "рдЧрд╣рд░рд╛рдИ"
MEAN_DEPTH рдФрд░ 8 рдХреА рдЪреВрдХ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддреА рд╣реИред
3. рдЧрдгрдирд╛ рдХреА рдЧрдИ рдкрд╣рд┐рдпрд╛ рдЧрддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдкреВрд░реНрдг рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдЧрдгрдирд╛ рд╕реЗрдЯ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЛрдгреАрдп рдЧрддрд┐ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХреА рдЬрд╛рддреА рд╣реИред
4. рдЧрдгрдирд╛ рдХреА рдЧрдИ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдкреНрд░рддреНрдпреЗрдХ рдореЛрдЯрд░ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдг рдХреНрд░рд┐рдпрд╛ (рдкреАрдбрдмреНрд▓реВрдПрдо рд╕рд┐рдЧреНрдирд▓ рдореВрд▓реНрдп) рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
5.
рдбреНрд╡ [i] рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рдмрд╛рдж, рд╕рдХреНрд░рд┐рдп
рдПрди_рдмреНрд░реЗрдХ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ,
рдореЛрдЯрд░реЛрдВ рдкрд░ рд░рд┐рд╡рд░реНрд╕ рд╢реЙрд░реНрдЯ-рдЯрд░реНрдо рд╡реЛрд▓реНрдЯреЗрдЬ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдЖрд╢рдп рдХреА рдЕрд╡рдзрд┐ рдЕрдВрд╢рд╛рдВрдХрди рддрд╛рд▓рд┐рдХрд╛ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ) рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддреА рд╣реИ рдФрд░ рдЖрдорддреМрд░ рдкрд░ 15 рд╕реЗ 40 рдПрдордПрд╕ рддрдХ рд╣реЛрддреА рд╣реИред
6. рдЗрдВрдЬрди рд╕реЗ рддрдирд╛рд╡ рдХрд╛ рдкреВрд░реНрдг рд╡рд┐рдореЛрдЪрди рд╣реИ рдФрд░
_wheel_rotate_sync () рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВред
рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрдВрд╢рд╛рдВрдХрди рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рджреЛ рдмрд╛рд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд░реЛрдмреЛрдЯ рдореЗрдореЛрд░реА рдХреА EEPROM рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдореВрд▓реНрдпреЛрдВ рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖ рддрд╛рд▓рд┐рдХрд╛ рд╣реИ рдФрд░ рддреАрди рд╕рдВрдмрдВрдзрд┐рдд рдореВрд▓реНрдпреЛрдВ рдХреЗ рд░рд┐рдХреЙрд░реНрдб рд╣реИрдВ:
1. рдореЛрдЯрд░ рдЯрд░реНрдорд┐рдирд▓реЛрдВ рдкрд░ рд╡реЛрд▓реНрдЯреЗрдЬред рдЗрд╕рдХреА рдЧрдгрдирд╛ PWM рд╕рд┐рдЧреНрдирд▓ рдХреЗ рдореВрд▓реНрдп рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реЛрд▓реНрдЯреЗрдЬ рдореЗрдВ рдмрджрд▓рдХрд░ рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП,
WheelRotateAng () рд╡рд┐рдзрд┐ рдХреЗ рдЪрд░рдг 4 рдореЗрдВ, рдЗрдВрдЬрди рдЪрд╛рд▓рдХ рдкрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реЛрд▓реНрдЯреЗрдЬ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
2. рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд╡реЛрд▓реНрдЯреЗрдЬ рдХреЗ рдЕрдиреБрд░реВрдк рдкрд╣рд┐рдпрд╛ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХреА рдХреЛрдгреАрдп рдЧрддрд┐ (рдХреЛрдИ рднрд╛рд░ рдирд╣реАрдВ)ред
3. рдЗрд╕ рдХреЛрдгреАрдп рд╡реЗрдЧ рдХреЗ рдЕрдиреБрд░реВрдк рд╣рд╛рд░реНрдб рд╕реНрдЯреЙрдк рд╕рд┐рдЧреНрдирд▓ рдХреА рдЕрд╡рдзрд┐ред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЕрдВрд╢рд╛рдВрдХрди рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЖрдХрд╛рд░ 10 рд░рд┐рдХреЙрд░реНрдб рд╣реИ (
config.h рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░рдВрддрд░
WHEEL_TABLE_SIZE рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд) - рдорд╛рди "рд╡реЛрд▓реНрдЯреЗрдЬ - рдХреЛрдгреАрдп рд╡реЗрдЧ - рд╕реНрдЯреЙрдк рд╕рд┐рдЧреНрдирд▓ рдХреА рдЕрд╡рдзрд┐" рдХреЗ 10
рддреНрд░рд┐рдЧреБрдг ред
рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ 2 рдФрд░ 3 рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рд╕реЗ рдорд╛рдиреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ -
WheelCalibrate (рдмрд╛рдЗрдЯ рд╡реНрд╣реАрд▓) ред
рдЪрд▓реЛ рдЗрд╕рдореЗрдВ рдереЛрдбрд╝рд╛ рджреЗрдЦреЛред рдпрд╣ рд╡рд┐рдзрд┐ рдЗрдВрдЬрди / рдкрд╣рд┐рдпрд╛ рдЕрдВрд╢рд╛рдВрдХрди рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд▓рд╛рдкрддрд╛ рдорд╛рдиреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИ, рд╕рд╛рде рд╣реА рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдиреНрдпреВрдирддрдо рдХреЛрдгреАрдп рдЧрддрд┐ рдФрд░ рдкрд╣рд┐рдпрд╛ рдХреА рдЕрдзрд┐рдХрддрдо рдХреЛрдгреАрдп рдЧрддрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
рдЕрдВрд╢рд╛рдВрдХрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд░реЛрдмреЛрдЯ рдХреЛ рдПрдХ рд╕реНрдЯреИрдВрдб рдкрд░ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрдВрд╢рд╛рдВрдХрди рдХреЗ рджреМрд░рд╛рди рд╕рднреА рдкрд╣рд┐рдпрд╛ рд░реЛрдЯреЗрд╢рди рд▓реЛрдб рдХреЗ рдмрд┐рдирд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
1. рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдиреНрдпреВрдирддрдо рд╢реБрд░реБрдЖрддреА рдЧрддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓рддрд╛ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдЪрдХреНрд░ рдореЗрдВ, рдирд┐рдпрдВрддреНрд░рдг рдкреАрдбрдмреНрд▓реВрдПрдо рдХреЛ рдЗрдВрдЬрди рд╕реЗ рдЦрд┐рд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, 0 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред 1 рдХреЗ рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рдеред рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдореЗрдВ, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреБрдЫ рд╕рдордп рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдирд┐рд░рдВрддрд░
WHEEL_TIME_MAX (рд╕рд╛рдорд╛рдиреНрдп
рд╡рд┐рд▓рдВрдм () ) рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕рдордп рдмреАрдд рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╢реБрд░реБрдЖрдд рдкреВрд░реА рд╣реЛ рдЧрдИ рд╣реИ (рдПрдирдХреЛрдбрд░ рдХрд╛рдЙрдВрдЯрд░ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдмрджрд▓рдХрд░)ред рдпрджрд┐ рдкреБрд▓рдЕрд╡реЗ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдкрд╣рд┐рдпрд╛ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХреА рдХреЛрдгреАрдп рдЧрддрд┐ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдЕрдзрд┐рдХ рдирд┐рд╢реНрдЪрд┐рддрддрд╛ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд╢реБрд░реБрдЖрддреА рдЧрддрд┐ рдХреЗ рдЕрдиреБрд░реВрдк PWM рдХреЗ рдореВрд▓реНрдп рдореЗрдВ 10 рдХрд╛ рдорд╛рди рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ "рдореЛрдЯрд░ рдкрд░ рд╡реЛрд▓реНрдЯреЗрдЬ" - "рдХреЛрдгреАрдп рд╡реЗрдЧ" рдорд╛рдиреЛрдВ рдХреА рдкрд╣рд▓реА рдЬреЛрдбрд╝реА рджреЗрддрд╛ рд╣реИред
2. рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЧрддрд┐ рдорд┐рд▓рдиреЗ рдХреЗ рдмрд╛рдж, PWM рдХрджрдо рдХреА рдЧрдгрдирд╛ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЕрдВрд╢рд╛рдВрдХрди рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреА рдЬрд╛рддреА рд╣реИред
3. рдЪрдХреНрд░ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдирдП рдкреАрдбрдмреНрд▓реВрдПрдо рдорд╛рди рдХреЗ рд▓рд┐рдП, рдкрд╣рд┐рдпрд╛ 2 рдкреВрд░реНрдг рдШреБрдорд╛рд╡реЛрдВ рдХреЛ рдШреБрдорд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХреЛрдгреАрдп рд╡реЗрдЧ
_wheel_rotate_sync () рд╡рд┐рдзрд┐ рдХреЗ рд╕рдорд╛рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдорд╛рдкрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рд╣реА рдЪрдХреНрд░ рдореЗрдВ, рдХреНрд░рдорд┐рдХ рд╕рдиреНрдирд┐рдХрдЯрди рджреНрд╡рд╛рд░рд╛, рд╣рд╛рд░реНрдб рд╕реНрдЯреЙрдк рд╕рд┐рдЧреНрдирд▓ рдЕрд╡рдзрд┐ рдХрд╛ рдЗрд╖реНрдЯрддрдо рдореВрд▓реНрдп рдорд╛рдкрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдорд╣рд╛рди рдореВрд▓реНрдп рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ "рдЯрд░реНрди-рд╕реНрдЯреЙрдк" рдореЛрдб рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╖реНрдЯрддрдо рдХреЗ рд░реВрдк рдореЗрдВ, рд╕реНрдЯреЙрдк рд╕рд┐рдЧреНрдирд▓ рдХреА рдЕрд╡рдзрд┐ рдХрд╛ рдЕрдзрд┐рдХрддрдо рдореВрд▓реНрдп рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рд╕реЗрдЯ "рдЯрд░реНрди рдбрд┐рд╕реНрдЯреЗрдВрд╕" рдХреЛ рдкрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд╕рд┐рдЧреНрдирд▓ рдХреА рдЕрд╡рдзрд┐ рдХрд╛ рдРрд╕рд╛ рдореВрд▓реНрдп, рдЬрд┐рд╕рдХреА рдПрдХ рдУрд░ рдЗрдВрдЬрди рдХреА рдЖрдкреВрд░реНрддрд┐ рдкрд░, рдЬрдбрд╝рддрд╛ рджрдмрд╛ рджреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рджреВрд╕рд░реА рдУрд░, рдХреЛрдИ рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рд░рд┐рд╡рд░реНрд╕ рдЖрдВрджреЛрд▓рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ (рдЬреЛ рдПрдХ рд╣реА рдПрдирдХреЛрдбрд░ рджреНрд╡рд╛рд░рд╛ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
4. рдХреИрд▓рд┐рдмреНрд░реЗрд╢рди рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдХреИрд▓рд┐рдмреНрд░реЗрдЯреЗрдб рдореЛрдЯрд░ рдкрд░ рдХрдВрдЯреНрд░реЛрд▓ рд╡реЛрд▓реНрдЯреЗрдЬ рд▓рд╛рдЧреВ рд╣реЛрдирд╛ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рд╡реНрд╣реАрд▓ рдХрд╛ рдХреИрд▓рд┐рдмреНрд░реЗрд╢рди рдЯреЗрдмрд▓ EEPROM рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рддреБрдЪреНрдЫрддрд╛рдУрдВ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдФрд░ рд╕рд╛рд░ рдХреЛ рдмрддрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐
WheelRotateAng () рдФрд░
wheelRotateAngRad () рд╡рд┐рдзрд┐рдпрд╛рдБ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд░реЛрдХ рд░рд╣реА рд╣реИрдВред рдпрд╣ рдЖрдВрджреЛрд▓рди рдХреА рд╕рдЯреАрдХрддрд╛ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдХреЗрдЪ рдореЗрдВ рдХрд╛рдлреА рд╕рд░рд▓ рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдп рд╣реИред рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯрд╛ рдХрд╛рд░реНрдп рдкреНрд░рдмрдВрдзрдХ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рд╕рдордп рдХреЛрдЯрд╛ рдореЗрдВ рдЕрдкрдиреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд╕рдЦреНрддреА рд╕реЗ рдПрдореНрдмреЗрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдФрд░ рдПрдХ рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП, рдПрдкреАрдЖрдИ рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди
рд╡реНрд╣реАрд▓рд░реЛрдЯ (рдлреНрд▓реЛрдЯ * рд╕реНрдкреАрдб) рд╣реИ ред рдпрд╣, рдЬреИрд╕рд╛ рдХрд┐ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рд╕реВрдЪреА рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмрд╕ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЧрддрд┐ рдХреЗ рд╕рд╛рде рдкрд╣рд┐рдпреЛрдВ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред рдФрд░ рд░реЛрдЯреЗрд╢рди рдХреА рдЧрддрд┐ рдХреЛ рд░реЛрдмреЛрдЯ рдЪреЗрд╕рд┐рд╕ рдХреЗ
рд╕рд┐рдВрдХ () рд╡рд┐рдзрд┐ рдореЗрдВ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЙрд╕реА рдирд╛рдо рдХреА Miro рд╡рд░реНрдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ
рд╕рд┐рдВрдХ () рд╡рд┐рдзрд┐ рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕реНрдХреЗрдЪ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ ARDUINO рд╕реНрдХреЗрдЪ рдХреЗ рдореБрдЦреНрдп
рд▓реВрдк () рд▓реВрдк рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЪрд░рдг 4 рдореЗрдВ,
_wheel_rotate_sync () рд╡рд┐рдзрд┐ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ, рдореИрдВрдиреЗ рдЗрдВрдЬрди рдХреЗ "рдирд┐рдпрдВрддреНрд░рдг рд╕реБрдзрд╛рд░" рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ред рдЖрдкрдиреЗ рдХреИрд╕реЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛)? рдпрд╣ рдкреАрдЖрдИрдбреА тАЛтАЛрдирд┐рдпрдВрддреНрд░рдХ рд╣реИ)ред рдареАрдХ рд╣реИ, рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рдкреАрдбреА рдирд┐рдпрдВрддреНрд░рдХред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ - рд╣рдореЗрд╢рд╛ рдирд╣реАрдВ), рдирд┐рдпрд╛рдордХ рдХреЗ рдЧреБрдгрд╛рдВрдХ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдЪрдпрди рд╣реИ)ред Config.h рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реИ:
#define DEBUG_WHEEL_PID
рдпрджрд┐ рдЖрдк рдЗрд╕реЗ
рдЕрдирд╕реБрдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЬрдм рдЖрдк рдорд┐рд░реЛ рдХреНрд▓рд╛рд╕ рдХреЗ
рдореВрд╡рдбрд┐рд╕реНрдЯ () рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд░реЛрдмреЛрдЯ рдХрдВрд╕реЛрд▓ (рдмрд╛рдПрдВ) рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЗ рдХреЛрдгреАрдп рд╡реЗрдЧ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рд╛рдкреЗрдХреНрд╖ рддреНрд░реБрдЯрд┐ рдХрд╛ рдЙрд▓рдЯрд╛ рдЧреНрд░рд╛рдл рд░реЛрдмреЛрдЯ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдХреНрдпрд╛ рдХреБрдЫ рднреА рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИ)? рдиреАрдЪреЗ рд╕рдордп рд╣реИ (рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рд░ рдирд┐рдпрдВрддреНрд░рдг рдЪрдХреНрд░ рдХрд╛ рдПрдХ рдЪрд░рдг рд╣реИ), рдФрд░ рддреНрд░реБрдЯрд┐ рдорд╛рди рджрд╛рдИрдВ рдУрд░ рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛ рд╣реИ (рд╕рдВрдХреЗрдд рд╕рдВрд░рдХреНрд╖рд┐рдд рдХреЗ рд╕рд╛рде)ред рдкреАрдбреА рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдЧреБрдгрд╛рдВрдХ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдкреИрдорд╛рдиреЗ рдкрд░ рдЧреНрд░рд╛рдлрд╝ рдХреЗ рджреЛ рдЬреЛрдбрд╝реЗ рд╣реИрдВред "рд╣рдореНрдкреНрд╕" рдУрд╡рд░рд╢реВрдЯ рдХреА рд╕рд┐рд░реНрдл "рд▓рд╣рд░реЗрдВ" рд╣реИрдВред рдХреНрд╖реИрддрд┐рдЬ рд╕рд▓рд╛рдЦреЛрдВ рдкрд░ рд╕рдВрдЦреНрдпрд╛ рдПрдХ рд╕рд╛рдкреЗрдХреНрд╖ рддреНрд░реБрдЯрд┐ рд╣реИ (рд╕рдВрдХреЗрдд рдХреЗ рд╕рдВрд░рдХреНрд╖рдг рдХреЗ рд╕рд╛рде)ред рдирд┐рдпрд╛рдордХ рдХреЗ рд╕рд░рд▓ рджреГрд╢реНрдп, рдЧреБрдгрд╛рдВрдХ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рд╕рдордп рдХреЗ рд╕рд╛рде, рдореИрдВ рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕реЗрдЯрдЕрдк рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдПред
рдпрд╣рд╛рдБ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╣реИ :-)
рдЦреИрд░, рдЕрдВрдд рдореЗрдВ, рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред рд╕реАрдзреЗ API_Miro_moveDist рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ:
#include <Miro.h> using namespace miro; byte PWM_pins[2] = { 5, 6 }; byte DIR_pins[2] = { 4, 7 }; byte ENCODER_pins[2] = { 2, 3 }; Miro robot(PWM_pins, DIR_pins, ENCODER_pins); int laps = 0; void setup() { Serial.begin(115200); } void loop() { for (unsigned char i = 0; i < 4; i++) { robot.moveDist(robot.getOptLinSpeed(), 0, 1, true); delay(500); robot.rotateAng(0.5*robot.getOptAngSpeed(), -90, true); delay(500); } Serial.print("Laps: "); Serial.println(laps); laps++; }
рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдкрд╛рда рд╕реЗ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ - рд╡реАрдбрд┐рдпреЛ рдореЗрдВред
600 x 600 рдорд┐рдореА рдЯрд╛рдЗрд▓ рдФрд░ 5 рдорд┐рдореА рдЯрд╛рдЗрд▓ рдЕрдВрддрд░рд╛рд▓ред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд░реЛрдмреЛрдЯ рдХреЛ 1 рдореАрдЯрд░ рдХреЗ рдХрд┐рдирд╛рд░реЗ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд░реНрдЧ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдмреЗрд╢рдХ, рдкреНрд░рдХреНрд╖реЗрдкрд╡рдХреНрд░ "рджреВрд░ рддреИрд░рддрд╛ рд╣реИ"ред рд▓реЗрдХрд┐рди рдирд┐рд╖реНрдкрдХреНрд╖рддрд╛ рдореЗрдВ рдпрд╣ рдХрд╣рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд░реЛрдмреЛрдЯ рдХреЗ рдЬрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдореИрдВрдиреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝рд╛ рд╣реИ, рдЙрд╕рдореЗрдВ рдХрд╛рдлреА рдШреВрдордиреЗ рд╡рд╛рд▓реЗ рдЗрдВрдЬрди рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдзреАрд░реЗ-рдзреАрд░реЗ рдЪрд▓рд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рд▓реЗрдХрд┐рди рдЙрдЪреНрдЪ рдЧрддрд┐ рдФрд░ рдлрд┐рд╕рд▓рди рдореЗрдВ рдПрдХ рдЬрдЧрд╣ рд╣реИ, рдФрд░ рдЬрдбрд╝рддрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред рдЙрдЪреНрдЪ рдЧрд┐рдпрд░ рдЕрдиреБрдкрд╛рдд рдХреЗ рд╕рд╛рде рдЗрдВрдЬрди (рдЬреИрд╕реЗ рдХрд┐ рд╣рдорд╛рд░реЗ MIRO рд░реЛрдмреЛрдЯ рдореЗрдВ, рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рдмрд╕ рд╣рд╛рде рдкрд░ рдирд╣реАрдВ) рдХреБрдЫ рдмреЗрд╣рддрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЕрдЧрд░ рдХреЛрдИ рдЕрдЪреВрдХ рдХреНрд╖рдг рд╣реИрдВ - рдореИрдВ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ, рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдФрд░ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рдкреНрд░рд╕рдиреНрди рд╣реВрдВред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЖрдо рддреМрд░ рдкрд░ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред