Kart/DC motor controller

From FSI
(Difference between revisions)
Jump to: navigation, search
(HTTP 301)
 
(11 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{TOC right}}
+
#REDIRECT [[Kart]]
 
+
[[File:Kart_dc_module.jpg|center|600px|DC motor module]]
+
 
+
== DC motor ==
+
 
+
The DC motor is a [http://www.conrad.ch/ce/fr/Search.html?search=%22modelcraft%20rb%20350018%202a723r%22 Modelcraft RB350018-2A723R].
+
 
+
It is powered in 12 V and draws a maximal current of 0.7 A.
+
 
+
The [[Media:Kart_dc_stepper_schematic.pdf|control board]] hosts a dual full-bridge
+
and a circuitry to create the switching dead-times and the direction of the current.
+
 
+
== FPGA design ==
+
 
+
The DC motor controller has to generate a <code>pwm</code> and a <code>forwards</code> signals to control the [[Kart|kart's]] speed.
+
The <code>speed</code> is set in the [[Kart/serial_link#SmartPhone_to_Kart|DC motor speed register]], while the frequency is given by the
+
prescaler in the [[Kart/serial_link#SmartPhone_to_Kart|DC motor prescaler register]] with the formula f = fclk / (PWMsteps * prescaler) = 10M / (16 * prescaler).
+
 
+
To begin with, the [[Kart#FPGA_Design|design environment]] has to be downloaded,
+
which contains the registers and events manager and an empty <code>dcMotorPwm</code> block which is to be completed.
+
 
+
=== Functionality ===
+
 
+
The block receives a <code>speed</code> signed number and has to drive the DC motor with a <code>pwm</code> and a <code>forwards</code> signal.
+
These signals are internally converted to two driving signals to control an [http://en.wikipedia.org/wiki/H_bridge H-bridge]
+
(they take into account the dead-times to avoid short-circuiting the motor while switching).
+
 
+
The mean amplitude of the DC motor's voltage is controlled by a [http://en.wikipedia.org/wiki/Pulse-width_modulation Pulse Width Modulation] (PWM).
+
 
+
The <code>forwards</code> signal is derived from the sign of the <code>speed</code> control.
+
The <code>pwm</code> signal is derived from the absolute value of <code>speed</code>.
+
 
+
{{WarningBox|content=
+
The [http://en.wikipedia.org/wiki/Pulse-width_modulation PWM] signal is implemented with the help of a free-running counter and a comparator.
+
However:
+
* the power transistors cannot switch at too high frequencies
+
* there is a need for a dead time where all power transistors are open between the PWM transitions
+
 
+
Because of this, the PWM period is limited to a certain value.
+
This is achieved with the help of an '''en''' signal generated by a counter dividing the clock frequency.
+
The counter only increments when this signal is '1'.
+
}}
+
 
+
{{TaskBox|content=
+
Draw the schematics of the <code>dcMotorPwm</code> block.
+
}}
+
 
+
The minimal value of the PWM signal is studied in another part of the [[Kart|kart project]].
+
The period of the <code>en</code> pulse train is set in the [[Kart/serial_link#SmartPhone_to_Kart|DC motor PWM period register]]
+
and given by the formula f = fclk / (PWMsteps * prescaler) = 10M / (16 * prescaler).
+
 
+
=== Hardware orientation ===
+
 
+
The mechanical design can either lead the Kart to drive forwards or backwards when a positive voltage is applied to the DC motor.
+
 
+
In order to cope with this, a setup signal, <code>normalDirection</code>, is provided to the block.
+
<code>normalDirection</code> being '1' means that a positive voltage applied to the DC motor lets the kart drive forwards.
+
 
+
{{TaskBox|content=
+
Update the schematics of the <code>dcMotorPwm</code> block in order to cope for the different mechanical design possibilities.
+
}}
+
 
+
The setup bit is configured in the [[Kart/serial_link#Hardware_control_register|hardware control register]].
+
 
+
=== Bluetooth connection ===
+
 
+
When the Bluetooth connection is lost, the DC motor should not turn.
+
 
+
In order to cope with this, a control signal, <code>btConnected</code>, is provided to the block.
+
When <code>btConnected</code> is '0', the DC motor must stop.
+
 
+
{{TaskBox|content=
+
Update the schematics of the <code>dcMotorPwm</code> block in order to stop the motor on connection loss.
+
}}
+
 
+
The BT connection bit is configured in the [[Kart/serial_link#Hardware_control_register|hardware control register]].
+
  
 
[[Category:Kart]]
 
[[Category:Kart]]

Latest revision as of 20:34, 17 September 2024

  1. REDIRECT Kart
Personal tools
Namespaces
Variants
Actions
Navigation
Modules / Projects
Browse
Toolbox