• No results found

In this section, an overview of the hardware architecture for the UAGV will be given. The selected microcontrollers and the PCBs designed by the previous graduate student will be briefly discussed. In this section, it will become clear from a hardware perspective, how all of the system nodes were designed and implemented onto the CAN bus.

2.3.1 Selected Microcontrollers

The former graduate student decided to use microcontrollers from the ST microelectronics family for the system node development of the associated DRTS which allowed for CAN bus implementation. Thus, these inexpensive STM32 microcontrollers come with all of the CAN features necessary for complete communication across a CAN bus. STM32s are essentially development boards, complete with a

debugger/flash downloader device that interfaces the target microcontroller to an integrated development environment (IDE) on a PC, allowing for rapid firmware development, where the algorithms and

implemented software could be easily and efficiently tested and evaluated.

GPS Node Controller Node Motor Driver Node LIDAR Sensor Node

Two different development boards were chosen to serve as the system nodes for the CAN based DRTS. It was decided that the STM32f308k8 microcontroller would be used for both the motor driver and steering nodes. The student selected this microcontroller for these two nodes due to its small form factor, which allowed it to fit inside the small enclosure box where both nodes also required a motor driver board [5]. One driver module was used to drive the DC motor on the UAGV for translational movement, and the other was utilized to drive the linear actuator which controlled the steering angle of the front two wheels. The selected motor driver module is a 2x12 32 A Sabertooth and can be seen below in Figure 2.5.

Figure 2.5 – Sabertooth dual 32 A motor driver (Retrieved fromhttps://www.amazon.com/Sabertooth- Dual-32A-Motor-Driver/dp/B00O1722NG)

The STM32f308k8, interfaced to the driver boards, included a 72 kHz, 32 bit ARM Cortex M4 processor, and contains all the basic set of peripherals as standard for ST Micros [5]. The other development board used for the development of the UAGV was the STM32f446RE microcontroller. The student selected this development board for the controller and GPS node due to its fast processor clock, as it contains a 180 MHz ARM Cortex M4 processor [5]. Additionally, the STM32f446RE development board was selected to be used for the newly implemented node to the system - the LIDAR sensor node. This development board was tailored for high performance applications and was thus, delegated to handle the more

mathematically intensive and computationally demanding tasks. Pictures of both development boards can be seen below in Figure 2.6 and Figure 2.7.

Figure 2.6 - ST Microelectronics microcontroller development board (F303k8) (Retrieved from https://www.iot-jungle.com/shop/carte-cpu/nucleo/nucleo32/nucleo-f303k8/)

Figure 2.7 – ST Microelectronics microcontroller development board (F446E) (Retrieved from https://www.digikey.ca/product-detail/en/stmicroelectronics/NUCLEO-F401RE/497-14360-ND/4695525)

2.3.2 Board Designs

In order to integrate all of the developed nodes onto a common CAN bus as was shown in Figure 2.2, PCB boards needed to be designed and configured in a way that would allow for the CAN and power lines to inner-connect all of the microcontrollers (or nodes) onto the DRTS. Figure 2.8 and Figure 2.9 show the developed CAN PCBs for both of the two development boards that allowed for all the nodes to be daisy chained together via the connection of their CAN and power lines. Both boards were designed by the previous graduate student. The PCB shown in Figure 2.8 was designed for the STM32f446RE while the board seen in Figure 2.9 was designed for the STM32f308k8. As can be gathered from the figures, the student designed the boards in a way that allowed the microcontrollers to be mounted onto the top of the PCBs so as to give access to all of their functional pins.

CAN Lines

Power Lines

Figure 2.8 – CAN PCB for F446E board

Figure 2.9 – CAN PCB for F303k8 Board

The 446 board included screw terminal blocks that connect to the CAN bus signaling pins as well as the power and ground lines, where the power, ground, and CAN line traces all went directly across the board to the terminal blocks on both sides of the PCB thereby allowing for the external wiring (or daisy

Power Lines

CAN Lines

PWM (Motor) Lines

chaining) of these lines across all of the nodes that comprise the system. Vias were also added between these traces to improve the noise immunity of those respective traces on the board [5]. The main

components for this PCB include a SN65HVD250 CAN bus transceiver, a 1 amp ATO fuse mount, and a switching power supply module. The fuse was integrated into the power regulator circuitry to provide protection from back EMF from the DC motors used in the steering and motor driver nodes. Some

additional status indicator LEDs were also implemented onto to the board to provide visual feedback, thus aiding in debugging and troubleshooting.

For the 308k8 PCB, the board design was similar but with some distinct differences. Like the first board, this PCB also included screw terminals for the CAN bus signal pins in addition to the power and ground lines which again, allowed for the daisy chain connection of all the nodes onto the CAN bus.

Additionally, screw terminals were used for providing access to analog input channels and pulse width modulation (PWM) output channels. For the analog channels (which were traced to ADC peripheral pins on the STM32), the student implemented a clamping filter for transient surge protection purposes [5]. The analog and PWM lines enabled the boards to be interfaced to the appropriate sensors, motors, and/or modules according to what was called for in the initial robot design. As the intent of this section was to just give the reader a brief overview of the implemented hardware, a more detailed, in-depth explanation of these boards can be found in pages 22-24 and pages 91-96 of [5].