In the summer of 2015, I was formally introduced to the world of electrical engineering with an opportunity to intern for a small engineering company, Digilent Inc. As one of the only people in my friend group with a creative based education background (I graduated with a degree in Apparel Merchandising), I had grown up listening to my friends discuss their science and math academic backgrounds for years. This experience, and a confidence in pushing my academic boundaries, led me to believe that this new internship opportunity would help me transcend the common “fashion student stereotypes”. So I set out to overcome my apprehensiveness and quickly left a well-known and cherished comfort zone behind.
At the culmination of my first week, it is embarrassing to admit that I felt thoroughly defeated. After looking through countless Digilent Instructables, reading most of the online Learn Modules, and browsing blog posts, I had no idea where to start as an engineer when I already felt so behind. A year later, I still recall my first few weeks and how this influx of information presented an enormous obstacle as I tried to harness what information was relevant to the projects I desired to make.
Thus, following a fervent search to harness the engineering universe, the idea for this Instructable was born. In this Instructable I will layout the concepts I found to be most important for people (like me) wanting to become involved in engineering without a formal educational background. In the following steps I will provide a brief overview of the concepts, equipment, and references one might find helpful when beginning their adventure into the world of engineering (with a maker/creative background). In the spirit of helping creative minds conquer the seemingly immense technological realm, I present The Engineering Crash Course (for Makers).
As a maker you are most likely interested in the construction of a project, but as many have discovered over the years, it’s the technical and theoretical concepts that can make or break an awesome idea. While working at an electrical engineering company, I have found the four following concepts to be the most essential when incorporating electronics into a project.
Circuits: The common concept that rules electrical engineering projects and brings your electronic project to life.
When beginning to try my hand at electronics projects, I noticed that circuit references were everywhere. As one of the main fundamentals of electrical engineering, circuits have the ability to power your project or cause endless problems without proper precaution. On the Learn website, the overarching concept of circuits is presented using an analogy that compares the flow of electrons through a project (i.e. what power your motors, etc.) to water flowing through pipes. In essence, electrons provide energy to your project by moving through a controlled network (or pipeline) that requires monitoring in order to function without complications.
These closed loop “pipelines” are what drive electrons through your project and enable functionality. Controlling how these electrons move will give you greater design capabilities, such as allowing you to turn your project’s power on/off or switching the direction of a motor. These elements can be controlled with the use of resistors, or by introducing a break in the circuit. Resistors are regularly used to change the levels of resistance within a circuit by providing an obstacle that current must pass through. Engineers also control circuits by introducing a break, whereby current cannot make its complete journey from the positive terminal to the negative terminal of the power source. In projects, this is usually accomplished with the addition of an interaction device like a switch or a button.
As many of you may have noticed when starting your adventure into electronics, circuits can become confusing very quickly. Even with the provision of diagrams, you may need further explanation before understanding the circuit. To help you understand some of the basic circuits you may run across, I have included a hand drawn diagram in Image 1 that is labeled to explain each design element. For further information on circuits you can also comment beneath the confusing project’s Instructable, as I have done many times before when looking for help, or check out these resources (1, 2, 3, 4, 5).
Coding: The backbone of your project and electronic equipment communication.
Since the fundamentals of coding should be covered across multiple Instructables (like the one found here), I am instead choosing to cover the basics of coding in regards to embedded processing devices (i.e. microcontrollers). While browsing Instructables I have noticed that many of the basic electronic projects use microcontrollers, such as the uC32 and the WF32, due to their simplicity and cost efficiency. Microcontrollers are also supported by countless online projects that provide inspiration for makers at all levels of the technical knowledge spectrum. They provide a method of making amazing projects without requiring the user to understand advanced coding processes, unlike FPGA boards. To explain the difference between FPGAs and microcontrollers, a co-worker provided this analogy:
With an FPGA you are programming the layout of a city. The roads that wind between the buildings help direct cars and lead them towards whatever function they are told to attend. These roads can be redirected by reprogramming the FPGA, and therefore provide a great advantage to individuals who understand the city blueprints (or necessary knowledge to reprogram). Microcontrollers are different in that they are predefined by the manufacturer (or city architect) and instead of reprogramming the entire city, the maker can reprogram the traffic lights. This often makes projects more manageable as creative individuals without a large technical background only need to tell the cars where they want them to go.
Thankfully, most makers will not have to worry about coding if their project mimics another project found in the vast online database of microcontroller creations. Most makers are very generous and post their example code, which can be easily edited following a few coding basics. An example of a basic project code is provided as Image 2 (above) and the original code can be found in Step 3 of this Monster Box Instructable. Commentary in the margins of Image 2 explains how to read some of the common elements found in provided project codes.
When beginning a code, the basic coding elements you may run across include: a library reference, variable definitions, a setup function, a loop function, and user-defined functions. Each code you run across may present each of these elements differently than the provided example, so it is important to ask the author questions if the coding components don’t make sense. Below you can read about what each of these functions contribute to a basic project code.
A Library Reference: Indicates what materials may be required for running the code. In the example code, the library reference specifies the use of a servo, whose function is explained in the following code elements.
Variable Definitions: This list defines how each action performed by the code will be referenced (i.e. what each action will be called). The example code in Image 2 provides in depth explanations of each action in the green annotations on the right.
Setup Function: The setup function explains what happens when power is first connected to your project. This function is what starts your project moving and precedes the loop function, only happening once while the project is powered. It will repeat each time you power your project, but never repeat following the loop function.
Loop Function: If your project requires a repeating action, the loop function will define what is repeated. How the repetition is performed will be listed in the user-defined functions (coming up next). The provided example code uses a loop function to repeat servo movements over a specified time period.
User-Defined Functions: These define the actions taking place during the loop function, such as what happens when certain phrases are listed. In the example code the user-defined functions state what happens when openMouth and closedMouth functions are referenced (i.e. the servo moves a specified amount of degrees to change the box lid angle).
By using these coding elements, you can edit a provided project code with any board the system recognizes. To learn more about what boards are recognized by each software system, please read on to Step 3 in this Instructable.
Soldering: A way to connect your electrical communication components so that circuits can be completed.
Depending on the type of project you are attempting to make, soldering can be a useful skill to understand and use. Many projects may only require the use of jumper wires, such as the Monster Box example project, but there are some projects that require greater connective power. In these circumstances, soldering is used to connect project components that necessitate conductive properties. Unlike alternative bonding mechanisms, solder can be reheated and is conducive to minor corrections if mistakes are made. The general process is fairly inexpensive, making it ideal for makers who are working on personal projects, and it is well documented online (check out a popular soldering Instructable here). You will need to invest in some startup materials when beginning to solder, like the basic soldering setup in Image 3, so it is important to review online documentation to find out what your project might require (such as this Instructable describing the different types of soldering tips you might use).
Measurement Fundamentals (current vs. voltage): Essential in keeping your project alive and you out of harm's way.
While working on projects you may run across problems as your project fails to work as expected. In these scenarios it may be helpful to know a little about measurement fundaments, especially current and voltage and how these are applied in electronics. In engineering, voltage is referred to as the measurement of energy differences, which an electric charge experiences as it moves between points on a circuit. Current, on the other hand, refers to the rate at which this charge moves (find more information here and here).
When starting your journey into electronics, measuring and understanding current and voltage readings can help you avoid potentially hazardous situations with your microcontroller or FPGA board (explained in Step 2). Each component you work with will have specific current limitations that you need to meet to make your component work. The same goes for the opposite outcome as every component has a limitation in what amount of current causes it to cease working (or die completely). Current and voltage measurements between circuit components will therefore explain the flow of electrons and whether this flow is more than your board can handle.
You can make an attempt to overcome these potential issues by doing thorough research on how current and voltage work (see the links above), by strictly following another maker’s Instructable, and/or by using a Multimeter to measure your current and voltage. When using a Multimeter, you can measure current and voltage by testing the path of less resistance or by breaking your circuits following the methods listed (in better detail than I can explain personally) here and here.
Now that you have read through a basic introduction of electrical engineering concepts, in the next step I will review some of the materials you might run across when browsing technology-based projects.