Kart/Sensors
Axel.amand (Talk | contribs) |
Axel.amand (Talk | contribs) (→Buttons / Digital inputs) |
||
Line 134: | Line 134: | ||
== Buttons / Digital inputs == | == Buttons / Digital inputs == | ||
− | [https://digilent.com/shop/pmod-btn-4-user-pushbuttons/ Buttons] or other digital inputs can be wired to any PMOD '''as long as their levels are in the range 0-3.3V !''' | + | [https://digilent.com/shop/pmod-btn-4-user-pushbuttons/ Buttons] or other digital inputs can be wired to any PMOD '''as long as their levels are in the range 0-3.3V !''' |
An event is sent to the smartphone each time the input is rising or falling (not suitable for inputs faster than 5 Hz). | An event is sent to the smartphone each time the input is rising or falling (not suitable for inputs faster than 5 Hz). |
Revision as of 17:55, 27 June 2022
|
Various sensors can be mounted on the motherboard through the exposed PMOD connectors.
Hall sensors
One or two Hall sensors are used to track the distance driven by the kart.
The SS311PT/SS411P digital Hall-effect sensors are operated by a magnetic field and designed to respond to alternating North and South poles with their Schmitt-trigger output.
They can be powered between 2.7 Vdc to 7 Vdc, with an open collector output (which integrates a 10 kOhm pull-up resistor already).
Thus it can be operated through any PMOD by wiring it such as:
Color Pin Red 3.3 V power supply Brown Hall output Black GND
FPGA design
To begin with, the design environment has to be downloaded.
It comprises the sensorsController
block which contains the registers and events manager
and an empty hallCounters
block which is to be completed.
The hallPulsesFilter
block simply debounce the hall pulses.
The hallCounters
block then receives the hallPulses
signal array, one per hall pulse sensor.
A counter is required for each of these inputs, that shall increment at each Hall signal rising edge or, twice as fast, at each signal edge.
Please modify the Kart/Kart_Student package variable HALLSENS_2PULSES_PER_TURN to '1' if the signal is counted on each edge or '0' if counted only on the rising edge.
Also modify the Kart/Kart_Student package variable NUMBER_OF_HALL_SENSORS to the number of used hall sensors.
The counter values must then be concatenated to build the position
output.
When the zeroPos
signal is at '1' for a specific hall sensor, the counter must be reset immediately.
Ultrasound ranger
An ultrasound ranger can detect if there is an obstacle at the front or back of the kart.
It is based on the PMOD-MAXSONAR board from Digilent, and can be plugged into any one-row PMOD connector (beware the pining !).
The ranger will output a pulse named PW on the board whose length has to be counted to determine the distance to an object following the rule 147 us / inch. Since the start/stop pin is not reachable, the sensor will continuously output pulses between 0.88 and 37.5 ms, each 49 ms.
FPGA design
To begin with, the design environment has to be downloaded.
It comprises the sensorsController
block which contains the registers and events manager
and an empty ultrasoundRanger
block which is to be completed.
The rangerSubsignals
block is responsible to transmit the pulse internally only 3 times per second and to synchronize the signals to the beginning of the pulse.
It creates two signals:
countEnable
, which stays at '1' the length of the measurementcountPulse
, which are small pulses that must be counted, dividing the clock by a factor 10 (else the total count may be bigger than its corresponding register)
The block ultrasoundRanger
has the following flow:
- wait for the signal
countEnable
to be '1' - when so, the pulses
countPulse
must be counted as long ascountEnable
is '1' - when it goes back to '0', the counter value must be output to the
distance
signal and the counter reset, waiting forcountEnable
to go back to '1'
End of turn switch
The end of turn switch can be plugged into any PMOD connector, respecting the following:
Color Pin Green PMOD I/O Black GND
LEDs / Low-consumption outputs
In addition to the 3 indication LEDs present on the daughterboard, one can use any PMOD to drive LEDs or other outputs requiring either ON, OFF, or 50% duty cycle PWM (from 1 to 16383 ms) output.
The consumption per pin cannot be higher than 8 mA.
If needed, use a driver extension board to control voltages other than 3.3V or higher currents (through MOSFETs).
Please modify the Kart/Kart_Student package variable NUMBER_OF_LEDS to correspond to how many outputs are used.
Check with your teacher before wiring custom systems. I/O lines are NOT protected against over current and voltage backfeed. You are held responsible for the cost of repair in the event of destruction of the equipment (up to 50CHF per board).
Buttons / Digital inputs
Buttons or other digital inputs can be wired to any PMOD as long as their levels are in the range 0-3.3V !
An event is sent to the smartphone each time the input is rising or falling (not suitable for inputs faster than 5 Hz).
Proximity sensors
The proximity sensors are used to get the ambient light along the close proximity to an object. They can be plugged in any PMOD.
They are normally not used anymore and thus not tested in the current Kart project
The sensor cable is to be connected as:
Color Pin Orange 3.3 V power supply Yellow SDA Green SCL Blue ground