The course website (linked) contains the documentation and bill of materials for each lab assignment. All lectures will be posted online starting 8/22/2022. We'll be synthesizing cricket chirps, animating flocking algorithms, and balancing an inverted pendulum with a reaction wheel. Please feel free to follow along.
It is still a work in progress, but Dmitry Savransky of Cornell is working on an interactive astrodynamics textbook using Jupyter notebooks. Link here:
https://github.com/dsavransky/astrodynamicsbook
I don't unfortunately. I came up with those numbers by using the timers on the PIC32 to measure execution time, in case that's helpful.
Or alternatively (and often more simply) by setting and clearing a GPIO pin before/after the operation being timed, and then using the oscilloscope to measure execution time
On the PIC32, fixed add is ~2 cycles and floating point is is ~60. And about a 2x increase for multiplies. On architectures with floating point hardware some of the advantage is lost, but it's fantastic for DSP on microcontrollers.
I've been experimenting with the PIO (Programmable I/O) system on the new microcontroller from Raspberry Pi. These are coprocessors for which the user can write code in a bespoke assembly language (PIOassm) to drive the GPIO ports. You can do really interesting stuff with these, like implement high-speed communication protocols (e.g. VGA) or offload tasks like driving stepper motors.
I've also been really interested in fractals and chaotic systems. For me, they're a nice bridge between interests in engineering and art. That's why this is drawing the Lorenz system in particular.
They're definitely a bit loose! There's some slack in the etch-a-sketch mechanism too, which is why the tops and bottoms of the curve look a bit flattened. When the motors change direction, the dials must move through a nonzero angle before the mechanism catches and starts moving the plotter. Software can help a little by moving the motor quickly through the dead region.