A modular physical interface for preference input from decision-maker for solving multiobjective optimization problems and decision making.
- From desdeo_interface/ArduinoFiles copy all modules (folders with no sub folders, i.e. CRC8) except UniversalNode to the arduino libraries folder.
- (TODO: Figure out relative imports)
- If modifying these files, you must copy the modified file again to the libraries folder (relative would handle this).
- From the arduino library manager install PJON and ADS1X15.
- To install webusb follow the installation guide: https://github.com/webusb/arduino
- Uploading webusb code requires upgrading device USB 2.0 to USB 2.1. This requires changing a line in a header file.
- (windows) After the upgrade one must include the webusb library in the sketch. Uploading a sketch without the library will cause windows to not recognize the device. To fix this you can upload a sketch from a linux/mac pc.
- After this you should be able to upload the UniversalNode sketch to a webusb supported board.
- Reconfiguring resets roles... would be better if it didn't
- Use the states better
- Handle disconnection/quitting
- Handle errors
- Verify node drawing works as intended
- Handle drawing disconnected nodes properly:
- Instead of outlining just the one that disconnected, outline each one that might of disconnected as well because of the disconnection
- i.e. 3 nodes side by side => master - node 1 - node 2. Say node 1 disconnected then also node 2 disconnects...
- Make it prettier
- Add crc check
- A set value function for each component might be a good idea
- How to send these values as we're already sending a struct type without id
- Send pjon struct packets with an id.
- Currently only sending one struct => it can be identified as it is the only packet without an id
- ADS seems to cause some issues sometimes as getting values takes too long and the node misses receiving data
- Same issue with interrupts so I removed interrupts, you might want to include that again, not sure
- i.e. Constantly changing rot values will call interrupt function over and over again -> not receiving/sending data.
- Strings to char arrays or something else
- Try to save some memory?
- Increase the sampling frequency of the ADC.
- Change the connectors to 90 degree headers or magnetic pogo pin connectors.
- PCB revision would be the first step. A stable system will be required for a comprehensive test.
Some or actually quite many solders are weak on these prototype pcbs, maybe make them better. Problems with pcb in image: