As planned from last week, this week I successfully finished the implementation of the user-facing modules. When viewing an individual module as an admin, the admin can add images and exercises as they please. When viewing the module as a non admin, they will only be able to view the content, images, and exercises, and will not be able to add new images. Module and text within the modules themselves can all be added and managed from another page. The current implementation for the module pages will also work for the experiments, so next week I will simply copy the design of the modules into the experiment pages, and add additional functionalities to the experiment page such as animations. Thus, this week I have finished the software part, and will be ready and preparing for integration next week with the Arduino data scraper. The current look of the modules is like this: (the content is just dummy content right now, not finalized content).
There still needs to be fine tuning on the front end design, webpage security and navigation, but overall the web application is entirely functional (without the parts requiring integration). I believe I am on schedule, and next week I will prepare for integration on the web side of things, and coordinate with Shizhen and Mudit in working on the Arduino.
This week I implemented the Faraday’s law experiment using the components we purchased.
As the figure below shows, I glued two ceramic magnets onto a bolt, and placed the magnets inside an inductor coil wound with magnet wire around a frame made of cardboard. The poles of the magnets are located at the large top and bottom surfaces, so the magnetic flux in the coil changes as the bolt is rotated, inducing an emf. The two ends of the coil are then connected to an oscilloscope and a red LED, which is used as a visual indicator of the strength of the induced emf.
The plot below shows the time-varying induced electromotive force. Note that each vertical division represents 500 mV, so the peak voltage induced is about 2V, which is higher than the turn on voltage of a red LED, and it indeed lit up.
I believe I am still on schedule, as I completed the tasks outlined in last week’s report.
Plan for next week
I think it will be interesting to connect another LED that is in the opposite direction as the first one to the coil to see if they alternate lighting up (which should be the case) next week. Additionally, I will try to learn to use the laser cutters in TechSpark and cut a nicer frame for the experiment after I polish the design.
Currently, our most significant risk would be the integration of the induced voltage measurements into our database. In the upcoming weeks, we will be working on getting the Arduino data into our web application under the specified latency limit. We have tested the Arduino sample gathering timing, which appears to be under 1 ms per sample. The remaining part of the latency would be to send the data to a SQLite database and have our web app gather that data from the database itself.
As of now, no changes have been made to our existing design of the system and the schedule remains intact. In the following 2 weeks, we will finalize our experiments by soldering them such that they are ready to be presented in the booth. By then, the web app framework will also be prepared such that we can start adding content to it in the following weeks.
This week I worked on the ethics considerations for our project. This included doing the readings, answering the questions and the reflections on how our project can impact public safety, among other ethical considerations. I followed that up by building a mock circuit of the ampere-maxwell experiment with the ordered components on a breadboard. The circuit worked with the SPDT switch and the solenoid we purchased, as shown below.
My progress is on schedule and in the next 2 weeks, I plan to finalize my experiment design by soldering the components together such that the experiment is ready to be placed in the booth.
This week I focused mostly on the design review report and added a few implementations and design edits to the web application. For the report, I worked on the Use Case Requirements section, the Design Implementation section, and the web application and software-hardware bridge parts of the Design trade studies and System Implementation section .
For the web application, I worked on implementing quiz questions into the database, and thought about alternatives to inserting images with forms into AJAX. It may be easier to implement web images if they can be edited from the web page itself rather than the edit page, and while this will not remove functionality, it will make it slightly more frustrating for our admins to use. However, since we are the admins, and this will not affect the user experience, I believe it is better to move on rather than spending more time trying to insert images into innerHTML created by AJAX, because this is a more complex process that requires usage of PHP and jQuery. Next week, I plan to implement the images and exercises, and have fully functional user facing modules. Then, I will add content to the modules and experiment pages, and begin to work on making animations for the experiment pages.
This week I mainly worked on modifying the Faraday’s law experiment and writing the design review report.
Faraday’s Law Experiment
Since the induced voltage in the original Faraday’s law experiment was too small and transient to turn on an LED, I searched for related papers to see how the set-up can be modified, and found one paper that meets our needs.
Using the equations and methods described in the paper, I was able to determine quantitatively the values of the components (e.g. turns of induction coil, radius of the coil). I documented the new design in the design review report in detail and included a 3D model of the experiment.
Design Review Report
In addition to documenting the implementation of the Faraday’s law experiment, I worked on the introduction and design requirements. I also proofread, formatted and finalized the report.
Because writing the design review report took much longer than I expected, I did not have a chance to work on improving the accuracy of the Arduino analog measurements. However, we will allocate time to work on it after the break. Overall, I believe I am on schedule and have caught up according to the previous week’s plan. Next week I plan to verify the calculated quantities for the Faraday’s law experiment by making a mock-up of the design. I will adjust the values as needed so that the induced emf will be large enough to turn on LEDs.
Having done the design report and having received the materials for our experiments, the most significant risk right now would be not getting our experiments to work as intended (unreadable/undetectable voltage values in the Faraday experiment, unnoticeable changes to compass in the Ampere-Maxwell Experiment). We intend to make mockups of the two experiments with the materials we have received and test the results of various inputs to ensure our experiments are viable and contribute to our learning objectives for the booth. For contingencies, we already have various fixes lined up for the kinds of issues we expect (using magnets instead of compass if Ampere-Maxwell output is not visible, using capacitors to lengthen duration of voltage spike in Faraday experiment, using amplifiers to increase voltage output in Faraday experiment for more measurable values, etc).
No changes have been made to the existing design of the systems other than the modifications to the Faraday’s law experiment, as were mentioned/shown in the design review report. The schedule remains unchanged as well from what was shown in the report.
As for new tools that we will need to learn, we have determined that we will use the Arduino to read voltage values and send it to a SQLite database, which will be queried by the web application to reflect the induced voltage scores on screen. As a team, we have some experience in using Arduino and SQLite, but we may need to explore more details to ensure we are reading, sending and querying values in the most efficient way possible. We probably also need to learn how to 3D print some custom parts using the 3D printers in TechSpark.
This week I focused mostly on the design review report and ordering equipment for the ampere-maxwell experiment. For the report, I worked on the ampere-maxwell experiment section in the Design trade studies and system implementation section, as well as the Test, Verification and validation section and the Project Management section. For the project management section, it was helpful to create the bill of materials table that helped us to define our expenditure and budget.
Our progress is on schedule as we have received the materials we ordered. In the next week, I will implement the Ampere-Maxwell Experiment with the materials I have received. This will be a mockup of the circuit (actual equipment but not soldered or installed fully for presentation purposes).
This week we confirmed that the Arduino board can transmit voltage data to a local database through USB connection. However, we discovered that the measurements are not as accurate as we expected, especially for signals at higher frequencies. Additionally, Python may not be fast enough to read and write data of high frequency signals in real time. The inaccuracy and latency will cause the animations of the E and B fields to be inaccurate or delayed. To mitigate this risk, we will look for ways to improve the accuracy and latency. If this approach fails, we will resort to using other hardware.
Changes to the existing plan and team work assignments
Because the Faraday’s law experiment that relies on linear motion does not generate enough electromotive force, Shizhen will work on modifying the design, possibly incorporating circular motion instead in the next few days. Aaron struggled with some web implementation this week, but is overall still on track and will work to cover this implementation next week along with the current schedule for next week.
Otherwise there are no changes to our schedule as we are generally on track. We are also not making any changes to the Ampere’s law experiment as the mockup has confirmed its feasibility. We will proceed in the next week by ordering our circuit components and building the actual experiments afterwards, while testing the Arduino chip with our experiment mockups. As we wait for the circuit components to arrive, we will also work on improving the accuracy of the voltage sensing method, a new task that arose from the recently discovered design challenge.
Progress
As tested by Shizhen, the Arduino chip is able to send serial voltage data via a USB cable into a CSV file with Python. The database that Aaron is implementing for the web app functions on python as well, so integration seems easier. This averts the major risk that we mentioned in our previous report. We will now focus on delivering the CSV data to the web application.
This week I primarily worked on testing the Faraday’s law experiment and the Arduino MKR 1010 Wi-Fi board.
Faraday’s Law Experiment
Since I do not have a magnet yet, I constructed an electromagnet by winding wire around a thin, long metal rod, which is somewhat ferromagnetic. I then shorted the wire with two 9V batteries connected in series, and the current was measured to be about 2.00 A. I then put an “induction coil” (a spool of wire) through the electromagnet, and connected two ends of the coil to an oscilloscope to measure the induced electromotive force. The set-up is shown in the image below.
When the power supply is turned on or off, an appreciable amount of voltage (~1V) change can be observed, but it decays very quickly, decreasing to almost 0V in less than 5ms. Additionally, moving the induction coil induces a small voltage (~100mV), and it is also quite transient. Some oscilloscope graphs are shown below. Therefore, it appears relying on linear motion cannot generate the required voltage to turn on an LED, which is deemed an important visual aspect of the demonstration.
Arduino MKR 1010 Wi-Fi
I tested the Arduino MKR 1010 Wi-Fi to see if the voltage measured by the analog pins can be directly sent to a CSV file or a MySQL database through a USB cable. I discovered the PySerial library can communicate with the Arduino board and wrote a few scripts to test its viability.
I first generated a 100 Hz, 1V peak-to-peak signal with a 1V DC bias with ADALM and used one of the analog pins on the Arduino to sense the signal at 2000 Hz. I then used Python to collect the voltage data and write it into a CSV file. There appear to be ways to write the data to a MySQL database, too. As the waveform below shows, the frequency is more or less correct, but the peak-to-peak voltage is about 1.5V, 0.5V higher than the actual value, and the signal bias appears to be 1.5V, not 1V.
Therefore, this method of sensing voltage is probably acceptable for measuring the polarity of the voltage in the Ampere’s law experiment. However, some calibration is needed to accurately measure the time-varying induced electromotive force in the Faraday’s law experiment, and the actual voltage in the Ampere’s law experiment.
Looking ahead
My progress is a little behind, as the original design for the Faraday’s law experiment needs to be modified, and the Arduino voltage sensor is not as accurate as expected. To catch up, I plan to spend more time next week to tackle these problems as my schedule appears to be more flexible. I will work on improving the accuracy of the Arduino analog pins and the design for the Faraday’s law experiment.