--- title: Mussel-driven voting system date: 2025-04-23 toc-depth: 2 format: stylish-report-pdf: pdfversion: "2.0" pdfstandard: [A-4f, UA-2] pdftestphase: latest metadata-files: - _actors.yml keywords: - voting - bioindicator - Arduino breaks: false --- # Abstract TODO # Introduction A system in Poland to monitor water treatment plants uses mussels as bioindicators [@FerreiraRodriguez2023]. The system, SYMBIO, measures once per second the opening level of 8 freshwater mussels by way of a magnet glued to each mussel [@Prote2024]. If either half of the mussels close rapidly or one of them remains closed for longer time, an alarm is triggered and further laboratory tests are done [@Nazaruk2016]. This project will implement mechanisms like the polish system. ## Detecting stressful mussel behavior The use of a mussel as biodetector requires distinction between slow-paced valve gaping change (normal), paused valve gaping at the closed position (resting or starved) and rapid valve gaping change (stressed) [@Miller2022 p. 1097; @Robson2006 p. 1200]. Detecting behavioural change to a rapid gaping pace, measurements are needed at a much higher sampling rate than that of the normal gaping pace. E.g. one mussel with normal gaping pace of about 1 minute required a sample rate of 5 seconds to detect its normal pace, and another mussel with normal gaping pace of 3-4 minutes required a sample rate of 0.5 seconds to detect more rapid cycles [@Robson2009 p. 195]. Another measurement of both normal and stressed behaviour, assuming that x-axis is in seconds (not hours as indicated), similarly shows a need for fast sampling rate to detect a normal pace of about 1.2 minutes and a stressed pace faster than the visualized resolution of about 1 second [@FerreiraRodriguez2023 fig. 2]. ## Copyright and licensing To encourage collaboration and stimulate a circular gift economy as introduced by @Mikkelsen2000, this project is copyleft licensed: Code parts are licensed under the GNU Public Licence version 3 or newer, and non-code parts are licensed under the Creative Commons crediting share-alike 4.0. # Project Planning TODO # Analysis and Design TODO # Description of the Program Use of the library in a sketch... ```{.plantuml} !include Mussel/examples/seconds/seconds.puml ``` TODO ## Library function `begin()` ```{.plantuml} !include Mussel/Mussel_begin.puml ``` ## Library function `read()` ```{.plantuml} !include Mussel/Mussel_read.puml ``` # User Guide TODO # Testing TODO # Discussion TODO # Conclusion TODO # Bibliography {.appendix} \begingroup \raggedright ::: {#refs} ::: \endgroup \appendix # Mussel library {.appendix} ## Headers ```{.c include="Mussel/Mussel.h" code-line-numbers="true"} ``` ## Source code ```{.c include="Mussel/Mussel.cpp" code-line-numbers="true"} ``` ## Example sketch ```{.c include="Mussel/examples/seconds/seconds.ino" code-line-numbers="true"} ```