gmarx 2ec85277d6 | 7 months ago | |
---|---|---|
TCLab-sketch | 1 year ago | |
gerber-files | 7 months ago | |
Readme.md | 10 months ago | |
only-top.pdf | 10 months ago | |
only-top.svg | 10 months ago | |
pcb.png | 2 years ago | |
schematic.png | 1 year ago | |
tclab-block.png | 2 years ago | |
tip31c.pdf | 1 year ago | |
tmp35_36_37.pdf | 1 year ago | |
top.pdf | 10 months ago | |
top.svg | 10 months ago |
Readme.md
Introduction
The Temperature Control Laboratory (TCLab) is an application of feedback control with an Arduino, an LED, two heaters, and two temperature sensors that are mainly based on the APMonitor TCLab
project by Jeffrey Kantor and Carl Sandrock.
This TCLab consists of three main parts: hardware, Arduino sketch, and the TCLab
library.
The following guide provides step-by-step instructions to design and build from scratch your own TCLab version that can communicate with Python and Jupyter Notebook.
TCLab hardware
The TCLab is a modular, portable, and inexpensive solution for hands-on process control learning. The heat output produced by the transistor is adjusted by modulating (PWM) the current flow to each of the two devices. Then, thermistors measure the temperatures by the Arduino's ADCs.
The energy from the transistor output is transferred by conduction and convection to the temperature sensor. Heat transfer dynamics provide rich opportunities to implement single and multivariable control systems, modeling, and system identification applications. The TClab is integrated into a small PCB, which can be mounted to any Arduino or Arduino-compatible microcontroller.
The next Figure shows the TCLab version distributed by Jeffrey Kantor and Carl Sandrock.
The device is a resource for model identification, controller development, and machine learning applications. It is a pocket-sized lab with Python software for the purpose of reinforcing control theory for students.
TCLab General Schematic
Below is the TCLab main schematic to attach to the Arduino UNO board.
The board considers the following components:
The TIP31C and TMP36GT data-sheets are in this repository
Quantity | Description | Value | Package | Notes |
---|---|---|---|---|
2 | TIP31C | TO-220 | ||
3 | Resistance | 470 Ohms | 1206 | |
2 | TMP36GT | TO-92 | ||
1 | LED | 1206 | ||
1 | Barrel jack | |||
1 | 10 pins 0.1" | pin header | ||
2 | 8 pins 0.1 in | pin header | ||
1 | 6 pins 0.1 in | pin header |
You will find the complete project with the PCB layout in the open project at Upverter.
Gerber files and PCB layout
In this repository you can the PDF and svg files for the top layer and outline board to build your own TCLab PCB based on the 1v0 at Upverter project.
Arduino Sketch
The Arduino Sketch (TCLab sketch) is a set of methods that supports the Temperature Control Lab when downloaded and installed on a compatible Arduino device. The sketch is used in conjunction with the compatible Python library TCLab
for programmable control of the Temperature Control Lab with Python.
Hardware setup
-
Plug the Temperature Control Laboratory board in an Arduino UNO or Leonardo. Connect your computer to the Arduino via the USB connection. Plug the DC power adapter into the wall and attach it to the power input to the TCLab board.
-
Install Arduino Drivers if needed. For most users, there will be no need. If you are using Windows 10, the Arduino board should connect with no additional drivers. Mac OS users may need to install a serial driver for Arduino Uno clones. A suitable driver can be found here for clones using the CH340G, CH34G or CH34X chipset.
-
Install Arduino Firmware:
- Download and install the Arduino IDE application.
- Download the file TCLab-sketch.ino located in this repository in the folder with the same name.
- Open the Arduino IDE application. Select the Arduino board type from
Tools -> Board -> Arduino Board -> Arduino Uno
or your compatible board, and finally verify the port connection. - Compile and upload
TCLab-sketch.ino
-
Test
To confirm the board's proper operation, use the serial monitor (located under the tools menu of the Arduino IDE). Select serial monitor, set the baud rate to 115200
, and line endings to 'newline.' If the firmware is operating correctly, enter the command
LED 100
this will cause the LED to flash at 100% power for 10 seconds.
Note: if the serial monitor does not answer you when you type a command, double-check the setting in the serial monitor and consider that serial commands are case-sensitive.
You can also try the command SCAN
:
SCAN
19.190
20.995
0.000
0.000
SCAN
get values T1 T2 Q1 Q1 in line delimited values
TCLab library
First, install the Python TCLab library by using:
pip3 install tclab
then open a Python IDE or execute the next code in Jupyter Notebook.
import tclab
with tclab.TCLab() as lab:
print(lab.T1)
if everything was done properly, you should receive a message back indicating the temperature of transistor 1 T1
:
Connecting to TCLab
TCLab Firmware Version 1.2.1 on NHduino connected to port XXXX
21.54
TCLab disconnected successfully.
Main project objective
The TC-Lab
project will be used for the students as a portable temperature controller system to implement several kinds of controllers. Thus, the student should develop the next tasks to reach the final goal (main objective):
- Develop the basic schematic
- Develop the PCB for the
TC-Lab
- Test the
TC-Lab
in the Arduino platform - Acquire temperature data from the heaters
- Develop a regressor and a classifier