summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Lukáš Jiřiště [Tue, 10 Dec 2024 15:29:37 +0000 (16:29 +0100)]
Fix type mismatch in interruptable_delay
Lukáš Jiřiště [Tue, 10 Dec 2024 15:20:14 +0000 (16:20 +0100)]
Change the default timing for valve.
Lukáš Jiřiště [Tue, 10 Dec 2024 15:15:10 +0000 (16:15 +0100)]
Fix major bugs caused by minor code oversights
The if statement did not use curly braces, so the following block was
executed unconditionally.
The three-way valve had its values mixed up, which is corrected now.
The sleep is now encapsulated in a while loop to prevent any interrupt
from waking the processor up (other than the one caused by flipping the
switch).
Lukáš Jiřiště [Wed, 4 Dec 2024 10:31:52 +0000 (11:31 +0100)]
Set proper values for valves, remove CellValve
The CellValve is not needed as a separate class, so its only
functionality is absorbed into the Valve class. This is because my
colleague wanted to have the barely open position for the vacuum valve
also and the three-way valve has a closed position in between so the
convention for it is changed and also uses the barely-open argument.
The values for the servos of the valves were measured and so are filled
in the executable.
Lukáš Jiřiště [Tue, 26 Nov 2024 10:21:33 +0000 (11:21 +0100)]
Change to constexpr and add const where possible
Lukáš Jiřiště [Tue, 26 Nov 2024 10:07:34 +0000 (11:07 +0100)]
Put wake up sequence out of measurement loop
Before this change the long evacuation would happen every time the
program switched from desorption to absorption measurement. Now it only
happens when turned on.
Lukáš Jiřiště [Mon, 25 Nov 2024 13:24:17 +0000 (14:24 +0100)]
Change gas_valve handling to a three-way "mode"
It would probably be better to make a separate class for a three-way
valve, but I think this may be more accessible and is not that bad.
In the same way the fill function may not be very object oriented, but I
think this is better left exposed for my colleagues.
Lukáš Jiřiště [Mon, 25 Nov 2024 11:02:26 +0000 (12:02 +0100)]
Implement a basic sequence for a measurement
Lukáš Jiřiště [Mon, 25 Nov 2024 10:54:18 +0000 (11:54 +0100)]
Add close_open_clean method to Valve
This function repeatedly closes and opens the valve. This is meant to
ensure the volumes of the valve to properly equilibrate.
Lukáš Jiřiště [Mon, 25 Nov 2024 09:20:03 +0000 (10:20 +0100)]
Rename Servomatic.h to helpers.h
This is done to make discovery of implementations of function declared
in the header more intuitive.
Lukáš Jiřiště [Tue, 19 Nov 2024 14:30:33 +0000 (15:30 +0100)]
Add .DEFAULT to gitignore
I am not entirely sure, what .DEFAULT is. I think it is used by
arduino-cli for some bookkeeping?
Lukáš Jiřiště [Tue, 19 Nov 2024 14:29:30 +0000 (15:29 +0100)]
Add helpers.ino, fix Servomatic.h and fix a typo
Lukáš Jiřiště [Mon, 18 Nov 2024 14:36:16 +0000 (15:36 +0100)]
Implement interruptable_delay
This enables a fast interruption of the sequence (mainly the
wait_for_equilibrium method).
Lukáš Jiřiště [Mon, 18 Nov 2024 10:03:13 +0000 (11:03 +0100)]
Change pwm_pin to control_pin
This is done because the Servo library does not use the PWM
functionality of the digital pins for the servo control. I thought it
does but it uses an inner timer for timing the pulses.
Lukáš Jiřiště [Mon, 18 Nov 2024 09:59:08 +0000 (10:59 +0100)]
Refactor open_barely out of Valve class to a child
Because the open_barely method would only be used barely, I think it is
better to separate it.
Lukáš Jiřiště [Mon, 18 Nov 2024 09:23:27 +0000 (10:23 +0100)]
Add .gitignore to ignore .compile files
Lukáš Jiřiště [Mon, 18 Nov 2024 09:08:26 +0000 (10:08 +0100)]
Add "barely opened" position to Valve class
When measuring solubility of gasses in liquids, opening of the valve and
the resulting movement of gas may upset the level of the liquid to the
point of blowing droplets somewhere, where they cause problems (mainly
weighing of the sample after measurement).
Opening the Valve barely to make equilibration of the pressures take
more time should prevent the violent gas flow.
Lukáš Jiřiště [Mon, 18 Nov 2024 08:37:23 +0000 (09:37 +0100)]
Add monitor rules to Makefile
Lukáš Jiřiště [Wed, 13 Nov 2024 11:01:51 +0000 (12:01 +0100)]
Reverse the role of p_e and a in optimization
The p_e can be calculated for a fixed a without logarithmization, so the
minimum should be the true minimum. Also some other minor changes to the
function around were made.
Lukáš Jiřiště [Wed, 13 Nov 2024 10:06:17 +0000 (11:06 +0100)]
Update schematics to "final" version
Lukáš Jiřiště [Tue, 12 Nov 2024 10:58:43 +0000 (11:58 +0100)]
Initialize m_time_start, add m_size increment
The m_time_start should be initialized, so that the time measurement
does not overflow sooner then 49 days after the start. Additionally the
m_time_start is reset in clear() method for the same reason.
The m_size was not adjusted upon creating a new measurement. This means
that no measurement but the last is was saved. This is now fixed.
Lukáš Jiřiště [Tue, 12 Nov 2024 07:57:56 +0000 (08:57 +0100)]
Rename measure_until to wait_for_equilibrium
Lukáš Jiřiště [Mon, 11 Nov 2024 16:00:11 +0000 (17:00 +0100)]
Create Measurement to track pressure over time
This is an untested implementation. The new class should provide the
functionality necessary to conveniently control the cell.
Minor changes for compatibility and eventual testing in other files.
Lukáš Jiřiště [Mon, 11 Nov 2024 15:59:09 +0000 (16:59 +0100)]
Name the pins to make it easier to understand
Lukáš Jiřiště [Tue, 5 Nov 2024 15:48:12 +0000 (16:48 +0100)]
Update schematics
Add commentary about pin function
and an on/off switch with indication LED.
Lukáš Jiřiště [Tue, 5 Nov 2024 14:22:14 +0000 (15:22 +0100)]
Add Valve class, change Makefile and Servomatic.ino
The main function needs to have init() before the declaration of first
Valve, because the Valve constructor needs the arduino initialized. One
cannot declare Valve before calling init().
Due to this and me liking variable declaration at the start of a
function, I've written the actual contents of main to a new function.
Lukáš Jiřiště [Tue, 5 Nov 2024 09:11:23 +0000 (10:11 +0100)]
Remove Makefile rules for .upload
The .upload file is not doing much as it needs to be done every time the
compilation is done. And with the addition of another project, it does
not reflect, whether the arduino actually has the program uploaded.
Lukáš Jiřiště [Tue, 5 Nov 2024 09:01:58 +0000 (10:01 +0100)]
Add servotest subproject
This small project aims to get the precise values for PWM of servos.
A potentiometer is used to control the servo signal through the arduino,
and the arduino reports the microseconds value to the serial output.
Lukáš Jiřiště [Mon, 4 Nov 2024 14:16:37 +0000 (15:16 +0100)]
Make the PressureSensor more flexible
Add some parameter to PressureSensor to make using other sensors easier.
Lukáš Jiřiště [Mon, 4 Nov 2024 11:21:37 +0000 (12:21 +0100)]
Add svg file with the schematics
This is not directly connected to the function of the code, but it is
useful for my colleagues, who will use this repo.
Lukáš Jiřiště [Wed, 23 Oct 2024 09:13:40 +0000 (11:13 +0200)]
Change Makefile to better track what to do
Normally the object files and executable are used for tracking but
arduino-cli does not generate any files inside the working directory.
The changes use dotfiles .compile and .upload to keep track of what
needs to be done.
In addition to the dotfiles compile and upload rules were added, that
force the action.
Lukáš Jiřiště [Wed, 23 Oct 2024 08:53:24 +0000 (10:53 +0200)]
Switch from double to float
Float has 24bit significant so it has plenty of precision for the 10bit
AD conversion and should take less space.
Lukáš Jiřiště [Wed, 23 Oct 2024 08:43:22 +0000 (10:43 +0200)]
Implement PressureSensor class and use it in main
Lukáš Jiřiště [Wed, 23 Oct 2024 08:41:47 +0000 (10:41 +0200)]
Fix Makefile dependencies
Lukáš Jiřiště [Tue, 22 Oct 2024 08:28:33 +0000 (10:28 +0200)]
Add a small test program for the UNO
This program makes a LED (pin 4) switch state whenever pin 7 is
connected to ground (through button).
Lukáš Jiřiště [Tue, 22 Oct 2024 08:27:16 +0000 (10:27 +0200)]
Add Makefile for building and uploading to UNO
The Makefile uses arduino-cli.