[TITLE] [DATE]
--------------------------------------------------------------------------------
[SETTITLE]Control Systems Club Web Controlled Servo Instructions
[SETDATE]1-24-2019
Ok everyone, we'r going to start a web controlled servo project.
What we want, is a webpage where you click "move servo" and a servo moves.
It will work like this, with 4 components we have to write:
The Front End
The Backend
The Servo Controller
The Arduino Firmware
+---Digital Ocean VPS--+ +--Control Computer--+
|HTML/CSS/JS Front End | HTTPS POST |C Servo Controller |
|Golang Backend |====================| |
+----------------------+ +--------------------+
|| ||
||H ||U
||T ||S
||T ||B
||P ||
||S ||S
|| ||e
+-Client Computer-+ ||r
| Some sort of | ||i
| Browser | ||a
| | ||l
| | ||
| | +----------------------+
+-----------------+ |C/C++ Arduino Firmware|
| |
+----------------------+
||
||S
||e
||r
||v
||o
||
||W
||i
||r
||e
||
+-Servo-+
| |
+-------+
The Frontend will consist of html templates, as well as supporting css and js
files, that will implement a simple UI that allows the user to click on a button
that sends a POST request to the backend to move the servo.
W3 Forms Tutorial
Inline CSS Tutorial
CSS Display Property Tutorial
The Backend will be a Golang executable that will be listening for HTTPS
connections, and serves the frontend, as well as listen for POST requests from
both the Frontend and the Control Computer. A POST request from the frontend
updates the desired state of the servo, and a POST request from the Control
Computer will update the actual state. Both the Actual state and the desired
state should also be served as well.
Go net/http and html/template Libraries Tutorial
The Servo Controller will poll the Backend for the desired state, communicate
this to the Arduinoi via the RS-232 Library, and return this desired state via
POST to the backend so as to update the actual state.
RS-232 Library
RS-232 Example
cURL API
cURL Code Examples
The Arduino Firmware will commands over the USB Serial Wire, and output that to
the servo.
Arduino Serial Tutorial
Arduino Servo Tutorial