From 2064817f2f5f6a0f2419687b7f80cf48ac90d490 Mon Sep 17 00:00:00 2001 From: Wouter Horlings Date: Thu, 21 Jan 2021 11:37:28 +0100 Subject: [PATCH] Add software --- content/case_experiment_prototype.tex | 42 +++++++++++++++++++++------ 1 file changed, 33 insertions(+), 9 deletions(-) diff --git a/content/case_experiment_prototype.tex b/content/case_experiment_prototype.tex index 7cd1587..ac6324b 100644 --- a/content/case_experiment_prototype.tex +++ b/content/case_experiment_prototype.tex @@ -1,14 +1,38 @@ -To ensure that the design method resulted in a functional system, a prototype will be build from the current state of the design. -Although the development resulted in only a partial design, I determined that a prototype is more valuable than repeating the development cycle for the next feature. -For the construction of the prototype \ac{ots}-parts are used as much as possible and the mechanical linkages of the SCARA will be printed. -To write characters on a whiteboard; drivers and controlloop are implemented in software. - +%&tex +To validate the dynamical and mechanical models, I will build a prototype of the current design. +For the mechanical design, the CAD model is used to print the custom parts. +Other components, such as steppers, microcontroller, screws and miscellaneous electronics, are ordered. +To test the dynamics, the steppers and servo have to be actuated. +To achieve this actuation a control law is written in software. \subsection{Mechanical Construction} +With the 3D printed parts the SCARA was easy to construct. +The diameter of the holes in the parts were printed slightly undersized. +This was on purpose, such that the holes can be drilled to the specified size. +To connect the bodies on the joints, a bolt with washers is used. +Although this is clearly not the ideal technique to build joints, it was by far the easiest option. + +During assembly I noticed that the bolts of a joint and those that hold the stepper motor in place collided. +This was possible because the bolts were not included in the CAD-model. +In hindsight this should have been included. +Fortunately there was enough clearance to mount the SCARA slightly further on the axle. +Resulting in an operating SCARA without having to redesign the mechanics. +\subsection{Control of the SCARA} +Although the focus of the design plan was specifically not the software, it still forms a important part of the development. +To run the hardware, I chose for for a STM32 \ac{mcu}. This is a powerfull processor with sufficient IO available. +RIOT-OS was chosen as an operating system due to prior experience and available support. +To be able to write characters on the board the following tasks have to be implemented in software: +\begin{itemize} + \item Driver for the stepper controller + \item Driver for servo motor + \item Control/Path planning +\end{itemize} -\subsection{Implementing Behavior} - Now with a physical SCARA, the last step is to implement the behavior. - The stepper motors are powered via a stepper controller. - The path planning for the SCARA and the operation of the stepper controller is implemented on a \ac{mcu}. +The stepper controller chip can be configured over UART and has two simple IO pins for step and direction signal. +To simplify the control, the software driver configures the stepper controller and includes functions to move the stepper motor to a certain angle. +Meaning that the feedforward control of the steppers is handled by the software driver class. +The angle of the servo motor is controlled by the duty cycle of a \SI{50}{\hertz} PWM signal. +The PWM signal generation is offloaded to the IO peripherals and the software driver has a toggle function to lift the marker from the board. +Most of the code for the software driver was already available as a module in RIOT-OS.