Wifi Controlled Mini Blimp
There are 3 components to the Magic Mirror: The mirror, the monitor, and the frame. The monitor is powered by a Raspberry Pi 3 that displays the Magic Mirror interface. The frame encases both the mirror and monitor to create the Magic Mirror illusion.
Area of Interest
Mechanical/ Aerospace Engineering
Fordham Leadership Academy
The ESP-8266 was pre-soldered to the custom PCB and in order to get access to the programming pins, I soldered wires directly to it. What made programming so confusing was that each tutorial used different ESP-8266 models and wanted to use additional pins. In addition, the custom PCB was designed to program using a Tag Connect cable. A Tag Connect Cable can vary in size and pin number but its main purpose is to communicate data transmitted by serial and adapt it to Universal Serial Bus (USB) data so that the Arduino IDE can recognize it as a device. At the time I did not have a Tag connect cable so in the meantime waiting for it, I improvised and used the Elegoo Uno R3 as a Serial-to-USB. In order to do this I again looked up more information on YouTube with the guidance of a few mentors and was able to send an arduino example to make the ESP-8266’s built-in LED blink.
Overall, this milestone tested my patience and perseverance in learning about how Printed Circuit Boards (PCBs) work and doing proper research on the smallest components such as motor drivers or resistors. Throughout this milestone I made a series of mistakes such as shorting circuiting the board or giving the ESP-8266 5 volts of electricity instead of 3.3 volts. But the biggest mistake I made was not taking the module out of programming mode after uploading code to it from the Arduino IDE. If I did not figure out this mistake I would not have been able to test to see if the ESP-8266 was responding to the code.
My First Milestone for the Wifi Controlled blimp was to program the ESP-8266. This consisted of soldering wires directly to the module and using a breadboard and Elegoo Uno R3 to help connect it to my computer for programming. The ESP-8266 is a wifi module that is the brain and heart of this project. Programming the ESP-8266 was not straightforward. Based off a series of tutorial videos on YouTube, Forum Posts, Datasheets, and trial and error I figured out that I needed the Tx, Rx, VCC, GND, GPIO0, and RST (reset) pins in order to program the ESP-8266.
How to customize the modules
All the customization is done in the config.js file within the MagicMirror folder. However, if I wanted to use a third party module, I would have to clone the repository into the MagicMirror/modules folder first. In the config.js file, I can choose where to display the module (top_left, center, bottom_bar, etc), the header, and the configurations specific to the individual modules. The configurations can be found at the GitHub repository.
Most modules use an Application Programming Interface. An API is set of protocols and routines to build software applications. For example, I use Twitter’s API. There are two types: Rest API (Data Base) and Search API (Connects to my account). In order to use an API, I needed an API key. API keys are used to track and control how to the API is being used i.e to prevent malicious use of the API. It also acts as unique identifier and as a secret token for authentication.
Every single module on my MagicMirror uses an API because I wanted a customized interface that suited my personal needs.
My Starter Project is the Useless Machine, a highly addictive waste of someone’s time. When you flip the switch, an acrylic arm will come out and push it back to its original place. I enjoyed this project because I was able to learn the properties of various resistors, practice soldering terminal placements, switches, and screw tapping.
B = The full assembly of the project
A = This is a side shot of the Machine in its resting position
C = Machine in action, getting ready to push the switch
D = Machine pushes switch back and is returning to rest
F = Machine currently in a rest position
How it works
This machine works by me flipping a switch that activates a motor. This motor then responds by moving an acrylic arm to push the switch back in its initial position. What is not explicitly shown is that the switch is set in an either forward or reverse motion and is not an off switch. When the acrylic arm pushes the switch back to its initial position it sets the motor in reverse to later be stopped by a lever styled switch to stop the motor. The internals consisted of a custom Printed Circuit Board which holsters all the electrical components together and makes connections between them with embedded copper. In addition to the two resistors, two light emitting diodes, and other miscellaneous pieces such as velcro, and a battery holder.
Aside from the external laser cut acrylic pieces, the assembly was relatively simple. I followed step-by-step instructions on where to solder these components to the PCB and its orientation and many other things. Most of the challenges of this project were in assembly. Merging the acrylic top and the side pieces was difficult because the protruding switch had kept the top piece from merging with the side pieces. I fixed this by removing washers and nuts pieces from the switch to have the top piece sit flush with the side pieces.