Learning journal Mike Tool
Laser cutting (Wednesday 22 nov)
In the previous project I hadn't touched laser cutting beforehand, so in this project it was intruiging to use the design to start laser cutting.
Going to the makerslab with my teammate helped going trough it fairly easily. Also having received a design beforehand made using that to go trough the process smoothly.
I personally partook in converting the design into the right size for the lasercutter, aswell as experimenting to get a mini version of the design in order to use the entire plane.
We ended up making far more than we originally needed but gives us plenty of room to experiment.
Issue 110 Local Tunnel In docker (Friday 24 nov)
Learning Question:
How do I use Localtunnel in order to use our website remotely and how does it function?
Also the other question of: How do I use docker in order to setup the local tunnel?
learning journey
While we were provided a docker file in the individual project. We as a team wanted to host our website and I tought using tunnel and NGINX, Which was used in the individual project. While we were provided the docker itself we, atleast I never got an explanation for how exactly those two works, so I had to look it up. I did it mainly by using my prior knowledge of docker and getting it to start up. I also used the doc's for tunnel to look around and see what it does. And if i were to encounter errors i would use ChatGPT. It seemed mainly straightforward, It takes the NGINX docker container and sends the traffic over to the tunnel. And writes a file for the output. We also in the dockerfile make sure we install the required libraries for tunnel and start the tunnel up using the DOMAIN_NAME we setup in the .env file within the docker compose.
At last the main issue with the creation of the tunnel itself was to find a domain name that doesn't seem to be used. After some trial and error I was able to get a proper domain name that is related to the project. Once the main page is made the page should be visible on the tunnel page.
Learning achievements
Trough the use of local tunnel and reading trough the documentation and other website sources linked before, I found out how localtunnel at a basic level works. To sum it up in my own words Local tunnel allows us to have a platform that can be used remotely for out local application which isn't limited to webservices. it creates a unique url which we could specify and will send those details over to our local service. Local tunnel in our case is very usefull as our prototype doesn't require a extensive webserver but allows the teammembers and maybe other outside members to enter our website and fill in data in order to get the cart moving for example.
The second achievement I've made in this process is find out how NGINX works that was provided before. This wasn't in the original learning question but was essential to the understanding of how our website is hoster. As NGINX is a webserver of itself. While in order to fully host a website we'd need something more than local tunnel. We also need a webserver in order to get a website to be hosted locally that's what NGINX is for. NGINX is a open source web server software, this means if you let this software run it will basically run your code as a server. This server will take and receive the data and such needed to keep the website running. This will allow us to see our website running with using things like libraries and other similair scripts.
Third and final achievement is finding out how to run both using docker. Docker can be used to create a virtual enviroment, this is helpfull so that our local machine doesn't get overloaded with the strain needed to host a website. Aswell as get it so there is no difference in versions used that between teammembers will be the same, as it's not machine dependent. Altough it didn't go a smoothly as hoped I did figure out how to be able to get Tunnel to be usable with docker and what is required to get it to start running.
Sources:
Issue 197 Diameter testing for penHolder design
Before I could start creating the PenHolder I needed to find out what would be the perfect diameter for it. I needed to test it on two items one being the Baseplate of the cart and the other being a marker. The baseplate that we've cut out before wasn't perfect as the penslot wasn't in the middle and the wheels were a bit too wide to be stable on the motors so we had to reprint it. Which also made it fairly convenient to get a proper size for the pen holder hole. Beforehand I made some circles with my 3D printer in order to test the diameter, aswell as using the same material as will be used for the holder. I used these while we were creating new baseplates, Trying a couple different diameters for the penhole. We also used a whiteboard marker in the process the test out the different hole sizes and find the one that fits one of them. Eventually we settled on the best size which in the test also worked with the marker aswell as work with the test circle. The diameter that we found was effective was 20mm for the hole within the plate and 18 for the diameter for the inside of the holder. I'll use these to create a full design on the penholder and get it attatched to the stepper motors brackets.
The Files used for the cylinders will be found in ../physical_design/penholder/TestCylinders
Issue 274: Mqtt connection sending over to the new cart system
Since we changed the carts to not use the little endian code and just use the normal accelstepper library, The code for the mqtt connection needed to work with the new code and be combined for the review. The main thing I did for this was to get the code we use and coppied it towards the existing code that had the little endian with the mqtt connection. Added the existing code and tested it. Though it didn't seem to work immideatly so I asked a teammate who worked on the connection if he knew. Trough troubleshooting the python code seemed to be working fine and seems to send json data it just seems to be that the arduino part didn't seem to be taking in the information. Which makes it hard to continue with the code. The code still stands ready for testing just missing the connection. Afterwards Me and my teammate Mairo went trough the code and got the embedded device to atleast read the data that is being send. But at first it didn't manage to drive with the given variables. I later looked trough the code again and found out the stepper runs were only run once which doesn't work with the Accelstepper library as they're booleans that are on true till it reached their destination. So in order to get it to move I changed the runs to the standard loop, It moved but not very far. The lack of movement could be due to lack of power coming to the motors or the WeMos can't keep the connection going while also sending the motors forward. This will require a new Issue to address.