Week 11 - lglik/Portfolio GitHub Wiki
10/31/18 - 11/06/18
Day One:
I tried various block diagram and schematic programs but a lot of them crashed or were not what I was looking for. The project was going to be taken to the Exploratorium for temporary display in a few days so I realized I needed to start getting it ready for that. First, I reverted the code back to a version in which everything worked, and then I tried to figure out why the hidden button. Apparently, the previous programmer for the project had named the button "access" in one location and named it "acess" in the other, so it didn't work. Once, I fixed the typo and knew where the hidden buttons, I was able to use them correctly. I also walked through turning on and using the project with the people who would be going on the trip. I realized that I would need an easier way to get the project working, since having to manually run 3 different python files was somewhat challenging for people who do not program. A GUI would obviously be the easiest choice so I decided to make a starting screen with Kivy.
Day Two:
I found an example Kivy screen with buttons and labels and modified it. Instead of the 3 python files needing to be run manually, there were three buttons, one for each program. I copied the code from two of the files directly into the code for the menu. However, the third one, main.py, is thousands of lines of code and would be unwieldy to add in like that. I worked for quite some time to try to write code that would execute main.py. This would not work since Kivy can only have one full screen window at a time, and when I would run main.py it would fail because there was no available screen. I created three two shell scripts. Each one would run either battery12.py or battery34.py and then afterwards, run main.py. the scripts were named accordingly and placed on the desktop. I used "chmod u+x" to make it so that double-tapping on the icons on the monitor would execute them. This was necessary since at the museum, they will not have a keyboard or mouse. for the rest of the day, I helped tape up and prepare my project, and others for shipping.
Day Three:
I spent some time helping move project to the truck, lifting them in using the platform on the back and securing them for transport. Since, I could no longer work on actually programming my project. I worked on improving the documentation for it. I looked around at various schematics makers such as Scheme-it. In the end, I used draw.io which while not meant for engineering or hardware, is a very useful online graphics maker. I spent a lot of time familiarizing myself with the existing documentation. Some of it was quite useful, but a lot of the rest is not. Many of the notes are probably only meaningful to the person who wrote them which is quite unfortunate. I added all the I2C, SPI, and GPIO devices to my diagram, though not connected yet. I found the documentation online for each of the components and added links to it in the schematic.
Day Four:
This morning, the group of students who went to the bay area returned with all of the projects. I spent the first half of the day helping unload the truck and moving the projects back into P-1. I then connected the surface tablet to the project and checked that everything still works. Unfortunately, all the iron filings had shifted to one side of the project so the dome will have to back taken off, and the iron filings manually moved back. I worked some more on the schematic. I added in all of the magnetic trees and the motor controllers hooked up to them. I also went through the code and found out which I2C addresses correspond to which pieces of hardware and added that information to the schematic. I removed the dome and used a brush as well as my hands (in rubber gloves) to redistribute the filings. I also discovered that some some of the magnets are not glued in place and others are glued in upside down which will be something to fix later.
The schematic for how the 16-channel I2C bus, motor controllers, and magnetic trees connect to each other.
Day Five:
Absent.