Greetings, and welcome to today's tutorial. In the last tutorial, we learned how to construct a system for tallying individuals using Raspberry Pi, astute subtraction, and blob tracking. We demonstrated the total number of building entrances and exits. Feature computation and HOG theory were also discussed. The tests proved that a device based on the raspberry pi could effectively function as a people counting station. One of the many benefits of the Pi 4 is its internet connectivity, which is especially useful for home automation projects due to its low price and ease of use. We're going to see if we can use a web page's buttons to manage our air conditioner today. With this Internet of Things (IoT) based home automation, you can command your home gadgets from the comfort of your couch. The user can access this web server from any gadget capable of loading HTML apps, such as a smartphone, tablet, computer, etc.
Where To Buy? | ||||
---|---|---|---|---|
No. | Components | Distributor | Link To Buy | |
1 | Breadboard | Amazon | Buy Now | |
2 | Diodes | Amazon | Buy Now | |
3 | Jumper Wires | Amazon | Buy Now | |
4 | LEDs | Amazon | Buy Now | |
5 | Resistor | Amazon | Buy Now | |
6 | Transistor | Amazon | Buy Now | |
7 | Raspberry Pi 4 | Amazon | Buy Now |
The needs of this project can be broken down into two broad classes: hardware and software.
Raspberry Pi 4
Memory card 8 or 16GB running Raspbian Jessie
5v Relays
2n222 transistors
Diodes
Jumper Wires
Connection Blocks
LEDs to test.
AC lamp to Test
Breadboard and jumper cables
220 or 100 ohms resistor
We'll be using the WebIOPi framework, notepad++ on your PC, and FileZilla to transfer files (particularly web app files) from your computer to the raspberry pi and the Raspbian operating system.
As a good habit, I constantly update the Raspberry Pi before using it for the first time. In this project phase, we will handle the web-to-raspberry-pi connection by upgrading the Pi and setting up the WebIOPi framework. The python Flask framework provides a potentially more straightforward alternative, but getting your hands dirty and looking at how things operate makes DIY appealing. When you get to that point, the fun of DIY begins. Use the updated commands below to upgrade your Raspberry Pi and restart the RPi.
sudo apt-get update
sudo apt-get upgrade
sudo reboot
After this is finished, we can set up the webIOPi framework. Using, verify that you are in your home directory.
cd ~
To download the files from the google page, type wget.
wget http://sourceforge.net/projects/webiopi/files/WebIOPi-0.7.1.tar.gz
Then, once the download is complete, unzip the file and enter the directory;
tar xvzf WebIOPi-0.7.1.tar.gz
cd WebIOPi-0.7.1/
Unfortunately, I could not locate a version of WebIOPi that is compatible with the Pi 4; thus, we have to download a patch before proceeding with the setup. Run the instructions below from within the WebIOPi directory to apply the patch.
wget https://raw.githubusercontent.com/doublebind/raspi/master/webiopi-pi2bplus.patch
patch -p1 -i webiopi-pi2bplus.patch
Once we have those things, we can begin the WebIOPi setup installation process by using the;
sudo ./setup.sh
Just click "Yes" when prompted to install more components during setup. Upon completion, restart your Pi.
sudo reboot
Before diving into the schematics and programs, we should power on the Raspberry Pi and ensure our WebIOPi installation is functioning as expected. Execute the command below;
sudo webiopi -d -c /etc/webiopi/config
After running the above command on the pi, open a web browser and navigate to http://raspberrypi.mshome.net:8000 (or HTTP;//thepi'sIPaddress:8000) on the computer that is attached to the pi. When logging in, you'll be asked for a username and password.
Username is webiopi
Password is raspberry
You may permanently disable this login if you no longer need it. Still, it's important to keep unauthorized users from taking control of your home's appliances and Internet of Things (IoT) components. After you've logged in, go to the GPIO header link.
Make GPIO 17 an output; we'll use it to power an LED in this Test.
Following this, attach the led to the Pi 4 as depicted in the schematics.
When you're ready to activate or deactivate the LED, return to the web page where you made the connection and select the pin 11 button. This allows us to use WebIOPi to manage the Raspberry Pi's GPIO pins. If the Test is successful, we can return to the console and exit the program by pressing CTRL + C. Please let me know in the comments if this arrangement has any problems. Once the pilot is finished, we can begin the actual project.
In this section, we will alter the WebIOPi service's standard setup and inject our code to be executed on demand. FileZilla or another FTP/SCP copy program will be the first tool we install on our computer. You'll agree that using the terminal to write code on the Pi is a stressful experience, so having access to Filezilla or another SCP program will be helpful. Let's make a project directory in which all our web scripts will be stored before we begin writing the HTML, CSS, and javascript programs for this Internet - of - things Home automated Web app and transferring them to the RPi.
First, make sure you're in your home directory using; next, create the folder; finally, open the newly constructed folder and make an HTML folder inside it.
cd ~
mkdir webapp
cd webapp
mkdir HTML
Make subfolders inside the HTML folder for scripts, CSS, and graphics.
mkdir html/css
mkdir html/img
mkdir html/scripts
Now that we have our files prepared, we can start coding on the computer and transfer our work to the Pi using Filezilla.
Writing the javascript will be our first order of business. An easy-to-use script for interacting with the WebIOPi server. Our four-button web app will only use two relays in the demonstration, and we only intend to control four GPIO pins for this project.
webiopi().ready(function() {
webiopi().setFunction(17,"out");
webiopi().setFunction(18,"out");
webiopi().setFunction(22,"out");
webiopi().setFunction(23,"out");
var content, button;
content = $("#content");
button = webiopi().createGPIOButton(17," Relay 1");
content.append(button);
button = webiopi().createGPIOButton(18,"Relay 2");
content.append(button);
button = webiopi().createGPIOButton(22,"Relay 3");
content.append(button);
button = webiopi().createGPIOButton(23,"Relay 4");
content.append(button);
});
Once the WebIOPi is ready, the preceding code is executed. To help you understand JavaScript, we've explained below:
webiopi().ready(function()
All this tells our system to make this function and call it once the webiopi is set.
webiopi().setFunction(23,"out")
We can instruct the WebIOPi program to use GPIO23 for output. Four buttons are now available, but you may add more if necessary.
var content, button
With this line, we're instructing the system to make a new variable called content into a button.
content = $("#content")
We will continue using the content variable in our HTML and CSS. As a result, the WebIOPi framework generates everything connected to #content when it is mentioned.
button = webiopi().createGPIOButton(17,"Relay 1")
WebIOPi can make several distinct types of push buttons. This code instructs the WebIOPi program to generate a GPIO key that operates on the GPIO pin identified as "Relay 1" above. The other ones are the same, too.
content.append(button)
Add this code to the button's existing HTML or external code. New buttons can be made that are identical to this one in every respect. This is especially helpful while coding or writing CSS.
If you made your JS files the same way I did, you can save them and then move them with Filezilla to webapp/HTML/scripts after you've finished making them. Now we can move on to developing the CSS.
With the aid of CSS, our Internet of Things (IoT) Rpi 4 home automation website now looks fantastic. So that the website will look like the one in the picture below, I built a custom style sheet called smarthome.css.
I don't want to paste the entire CSS script here, so I'll use a subset for the explanation. If you want to learn CSS, all you have to do is read the code. You can skip this and use our CSS code if you want to.
The first section of the script, displayed below, represents the web application's main stylesheet.
body {
background-color:#ffffff;
background-image:URL('/img/smart.png');
background-repeat:no-repeat;
background-position:center;
background-size:cover;
font: bold 18px/25px Arial, sans-serif;
color:LightGray;
}
The above code, which I hope needs no explanation, begins by setting the background colour to white (#ffffff), adds a background image to the document from the specified folder (remember the one we created earlier? ), makes sure the picture doesn't duplicate by setting the background-repeat to no-repeat, and finally tells the CSS to center the background. Next, we adjust the background's text size, font, and colour.
After finishing the main content, we styled the buttons with CSS.
button {
display: block;
position: relative;
margin: 10px;
padding: 0 10px;
text-align: center;
text-decoration: none;
width: 130px;
height: 40px;
font: bold 18px/25px Arial, sans-serif; color: black;
text-shadow: 1px 1px 1px rgba(255,255,255, .22);
-WebKit-border-radius: 30px;
-Moz-border-radius: 30px;
border-radius: 30px;
}
Everything else in the script is similarly optimized for readability and brevity. You can play with them and see what happens; this kind of learning is known as "learning by doing," I believe. However, CSS's strengths lie in its simplicity, and its rules are written in plain English. The button's text shadow and button shadow are two of the few supplementary features found in the block's other section. To top it all off, pressing the button triggers a subtle transition effect, making it look polished and lifelike. To guarantee optimal page performance on all browsers, these are defined independently for WebKit, firefox, opera, etc.
The following code snippet notifies the WebIOPi service that it is receiving data as input.
input[type="range"] {
display: block;
width: 160px;
height: 45px;
}
Providing feedback on when a button is pressed will be the last element we want to implement. As a result, the screen's colour scheme and button hues provide a quick indicator of progress. To accomplish this, the following line of code is added to each button's HTML.
#gpio17.LOW {
background-color: Gray;
color: Black;
}
#gpio17.HIGH {
background-color: Red;
color: LightGray;
}
The code snippets up top alter the button's color depending on the user's selection. The button's background is gray when it is inactive (at LOW) and red when it is active (at HIGH). Now that we have our CSS under control let's save it as smarthome.css, upload it to our raspberry pi's styles folder using FileZilla (or another SCP client of your choosing), and fix the remaining HTML code.
The HTML code unifies the style sheets and java scripts.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="mobile-web-app-capable" content="yes">
<meta name="viewport" content = "height = device-height, width = device-width, user-scalable = no" />
<title>Smart Home</title>
<script type="text/javascript" src="/webiopi.js"></script>
<script type="text/javascript" src="/scripts/smarthome.js"></script>
<link rel="stylesheet" type="text/CSS" href="/styles/smarthome.css">
<link rel="shortcut icon" sizes="196x196" href="/img/smart.png" />
</head>
<body>
</br>
</br>
<div id="content" align="center"></div>
</br>
</br>
</br>
<p align="center">Push button; receive bacon</p>
</br>
</br>
</body>
</html>
The head tag contains several crucial elements.
<meta name="mobile-web-app-capable" content="yes">
The code line above makes it possible to add the web app to the mobile device's home screen when using Chrome or Safari. You can access this function using the Chrome menu. This makes it so the app may be quickly launched on any mobile device or desktop computer.
The following line of code provides a measure of responsiveness for the web app. Because of this, it can take up the entire display of any gadget on which it is run.
<meta name="viewport" content = "height = device-height, width = device-width, user-scalable = no" />
The web page's title is defined in the following line of code.
<title>Smart Home</title>
The following four lines of code all connect the Html file to multiple resources it requires to function as intended.
<script type="text/javascript" src="/webiopi.js"></script>
<script type="text/javascript" src="/scripts/smarthome.js"></script>
<link rel="stylesheet" type="text/CSS" href="/styles/smarthome.css">
<link rel="shortcut icon" sizes="196x196" href="/img/smart.png" />
The first line above directly connects to the WebIOPi framework JavaScript, which is stored in the server's root directory. This method must be invoked whenever WebIOPi is used.
The second line tells the HTML document where to find our jQuery script, and the third tells where to get our style sheet. The last line prepares an icon for the mobile desktop, which can be useful if we use the website as an app or a favicon.
To ensure that our HTML code displays whatever is contained in the JavaScript file, we include break tags in the body portion of the code. The definition of our button's content was made previously in the JavaScript code, and its id="content" should bring that to mind.
<div id="content" align="center"></div>
Everybody is familiar with the routine of saving an Html file as index.html and then transferring it to the Pi's HTML folder via Filezilla.
Before we can begin sketching out circuit diagrams and running tests on our web app, we need to make a few adjustments to the webiopi service's configuration file, instructing it to look for configuration information in our HTML folder rather than the default location.
Edit the configuration by executing the following commands as root:
sudo nano /etc/webiopi/config
Find the section of the configuration file labelled "HTTP" and look for the line that begins with "#" Modify the directory where HTML and resources are stored by default with doc-root.
Remove the # comments from anything below it, and if your folder is organized like mine, set the doc-root to the location of your project file.
doc-root = /home/pi/webapp/html
Lastly, save your work and exit. If you already have another server installed on the Pi utilizing port 8000, you may easily change it. If not, let's stop saving and call it a day.
It's worth noting that the WebIOPi service password can be changed using the command;
sudo webiopi-passwd
A new login name and password will be required. Getting rid of this entirely is possible, but safety comes first.
Finally, issue the following command to start the WebIOPi service.
sudo /etc/init.d/webiopi start
If you want to see how the server is doing, you can do so by;
sudo /etc/init.d/webiopi status
That's why there's a way to halt its execution:
sudo /etc/init.d/webiopi stop
Setup WebIOPi to start automatically with;
sudo update-RC.d webiopi defaults
To do the opposite and prevent it from starting up automatically, use the following;
sudo update-RC.d webiopi remove
Now that we have everything set up, we can begin developing the schematics for our Web-controlled home appliance.
Whereas I could not procure relay modules, which in my experience, make electronics projects simpler for do-it-yourselfers. So, I'm going to draw some diagrams for regular, single-relay, 5V-powered standalone devices.
Join the components as seen in the fritzing diagram. It's important to remember that your Relay's COM, NO (usually open), and NC (typically Close) contacts could be on opposite sides. Please verify this with a millimetre.
Relays can be found anywhere that electricity is being switched, from a simple traffic light controller to a high-voltage switchyard. Relays, in the broadest sense, are equivalent to any other switch. They can connect or disconnect a circuit and are frequently employed to activate or deactivate an electrical load. However, this is a comprehensive statement; there are many other relays, and each Relay behaves slightly differently depending on the task at hand; as the electromechanical Relay is one of the most widely used relays, we will devote more space to discussing it here. In spite of variations in design, all relays work according to the same fundamental concept, so let's dive into the nuts and bolts of relays and talk about how they function.
A relay is called an electromechanical switch that may either establish or rupture an electrical connection. A relay is like a mechanical switch, except that it is activated and deactivated by an electronic signal rather than by physically flipping a switch. It comprises a flexible movable mechanical portion controlled electrically through an electromagnet. Once again, this Relay operating concept is suitable exclusively for electromechanical relays.
A common and widely used relay consists of electromagnets typically employed as a switch. However, there are many kinds of relays, each with its purpose. When a signal is received on one side of the device, it controls the switching activity on the other, much like the dictionary definition of Relay. That's right, a relay is an electromechanical switch that can open and close circuits. This device's primary function is to establish or sever contact with the aid of a signal to turn it ON or OFF automatically and without human intervention. Its primary use is to allow a low-power signal to exert control over a circuit with a high power consumption. Typically, the high-voltage circuit is controlled by a direct current (DC) signal.
The following diagram depicts the internal structure and design of a Relay.
A coil of copper wire is wound around a core, which is then placed inside a housing. When the coil is electrified, it attracts the movable armature, which is supported by a spring or stand and has a metal contact attached to one end. This assembly is positioned over the core. In most cases, the movable armature is a shared connection point for the motor's internal components and the other wiring harness. The usually closed (NC) pin is linked to the common terminal, while the ordinarily opened (NO) pin is not used in operation. By connecting the armature to the usually open contact whenever the coil is activated, current can flow uninterruptedly through the armature. When the power is turned off, it returns to its starting position.
The picture below shows a schematic of the Relay's circuit in its most basic form.
In the images below, you can see the main components of an electromechanical relay—an electromagnet, a flexible armature, contacts, a yoke, and a spring/frame/stand. They have been thoughtfully placed into a relay.
The workings of a Relay's mechanical components have been outlined below.
Electromagnet
An electromagnet is crucial to the operation of a relay. This metal lacks magnetic properties but can be transformed into a magnet when exposed to an electrical current. It is healthy knowledge that a conductor takes on the magnetic characteristics of the current flowing through it. Thus, a metal can operate as a magnet and attract magnetic objects within its range when wound with a conductive material and powered by an adequate power source.
Movable Armature
A moveable armature is just one piece of metal that can rotate or stand on its own. It facilitates connection-making and -breaking with the contacts attached to it.
Contacts
Internal conductors are the wires that run through a device and hook up to its terminals.
Yoke
It's a tiny metal piece attached to a core that attracts and retains the armature whenever the coil is activated.
Spring (optional)
While some relays can function without a spring, those that do have one attach it to the armature at one end to prevent any snagging or binding. One can use a metal "stand" in place of a spring.
Let's examine the differences between a relay's normally closed and normally open states.
If no current flows through the core, there will be no magnetic field, and the device will not be a magnet. As a result, it is unable to draw in the flexible framework. So, the ordinarily closed position of the armature is the starting point (NC).
When a high enough voltage is supplied to the core, it begins to have a strong magnetic field around itself, allowing it to function as a magnet. The magnetic field produced by the core attracts the movable armature whenever it comes within its field of influence, changing the armature's location. As it has been wired to a normally open relay pin, any external circuits attached to it will no longer operate in the same way.
It is important to connect the relay pins correctly so that the external circuit can do its job. When a coil is powered, the armature is drawn toward it, revealing the switching action; when the power is cut, the coil loses its magnetic property, and the armature returns to its original location. The animation provided below shows the Relay in action.
There is nothing complicated about a transistor, yet there is a lot going on inside it. Okay, so first, we'll tackle the easy stuff. An electronic transistor is a small component that can switch between two functions. It's a switch that can also act as an amplifier.
An amplifier is a device that takes in a little electric current and outputs a significantly larger electric current (called an output current). It can be thought of as a current booster. One of the earliest applications for transistors, this is particularly helpful in devices like hearing aids. A hearing aid contains a microscopic microphone that converts ambient sound into electrical signals. These are then amplified by a transistor and used to power a miniature loudspeaker, which reproduces the ambient noise at a much higher volume.
It is possible to use a transistor as a switch. A transistor is a device that allows for the passage of one electrical current to induce a much larger current to flow through the next part of the device. What this means is that a relatively small current can activate a much larger one. All computer chips function in this general way. As an illustration, a memory chip may have as many as a billion individually controllable transistors. Due to the fact that each transistor can exist in either of two states, it is capable of storing either a zero or a one. A chip's ability to hold billions of zeroes and ones, as well as almost as many regular numbers and letters, is made possible by its billions of transistors.
Diodes can range in size from what's shown in the image up top. They feature a cylindrical body that is usually black with a stripe at one end and certain leads that protrude so that we may plug it into a circuit. The opposite terminal is called the cathode and is opposite the anode.
A diode is an electrical component that restricts current flow in one direction.
To illustrate, picture a swing valve fitted in a water line. The water pressure inside the pipe will force open the swing gate, allowing the water to flow uninterrupted. In contrast, the gate will be forced shut, and water flow will stop if the river alters its course. As a result, there is only one direction for water to flow.
Very much like a diode, which we also employ to alter the current flow through a circuit, it allows us to switch it on and off at will.
We have now animated this process using electron flow, in which electrons move from negative to positive. However, traditional flow, positive to negative, is the norm in electronics engineering. It's usually best to start with the conventional current because it's more familiar to most people, but feel free to use either one; we'll assume you're aware of the difference.
It's important to remember that the light-emitted diode will only light up properly if the diode is connected to the circuit in the correct orientation when adding it to a simple Light emitted diode circuit like the one shown above. Only one direction of current can travel through it. Accordingly, its conductive or insulating properties are determined by the orientation in which it is mounted.
So that it can conduct electricity, you must join the black end to the neutral and the striped end to the positive. The forward bias is the condition in which current can flow. If we invert the diode, it will become an insulator and stop the passage of electricity. The term for this is "the reverse bias."
You probably know that electricity is the transfer of electrons between atoms that are not bound. Because of its high number of unpaired electrons, copper is widely used for electrical wiring. Since rubber is an insulator—its electrons are kept very securely, so they cannot flow between atoms—it is used to wrap around the copper wires for our protection.
In a simplified form of a metal conducting atom, the nucleus is at the center, and the electrons are housed in a series of shells around it. It takes a specific amount of energy for an electron to be absorbed into each shell, and each shell has a max number of electrons it can hold. Those electrons that are furthest from the nucleus are the most energetic. Conductors have between one and three electrons in their outermost "valence" shell.
The nucleus acts as a magnet, keeping the electrons in place. However, there is yet another layer, the conduction band. If an electron gets here, it can leave its atom and travel to another. Because the valence shell and conduction band of a metal atom overlap, the electron can move quickly and easily between the two.
The insulator has a tightly packed outer layer. No free space for electrons to occupy. Because of the strong attraction between the nucleus and the electrons and the great distance between the nucleus and the conduction band, the electrons are trapped inside the nucleus and cannot leave. Because of this, electricity is unable to travel through it.
Of course, a semiconductor is also a different type of material. A semiconductor might be silicon, for instance. This material behaves as an insulator because it has one more electron than is necessary in its outermost shell to be a conductor. However, with enough external energy, a few valence electrons can generate enough momentum to hop across to the conduction band, where they can finally break free. Consequently, this substance can perform the roles of both an insulator and a conductor.
Due to the lack of free electrons in pure silicon, engineers must add a small number of materials (called "doping") to the silicon to alter its electrical properties.
This process gives rise to P-type and N-type doping, respectively. The diode itself is a combination of these doped materials.
Two leads connect the anode and cathode to various thin plates inside the diode. P-Type doped silicon is on the anode side of these plates, and the cathode side is N-Type doped silicon—an insulating and protective resin that coats the entire structure.
Consider the material to be pure silicon before it has been doped. There are four silicon atoms surrounding each one. Because silicon atoms need eight electrons to fill their valence shells but only have four available, they share one with their neighbours. Covalent bonding describes this type of interaction.
Phosphorus, an N-type element, can be substituted for a number of silicon atoms in a compound semiconductor. Phosphorus has a 5-electron valence shell because of this. This extra electron isn't needed because particles are sharing them to reach the magic number of 8. This means there's an extra electrons in the material, and it's free to go wherever it wants.
In P-type doping, a substance like aluminum is introduced. Due to its limited valence electron pool of 3, this atom is unable to share an electron with any of its four neighbours. An electron-sized void is therefore made available.
We now have silicon with either too many or too few electrons, depending on the doping method.
Upon joining, the two substances forge a p-n junction. This is a depletion region, and it forms at the intersection. Here, some of the surplus electrons on the N-type side migrate over to fill the vacancies on the P-type side. By moving in this direction, electrons and holes will accumulate on either side of a barrier. Holes are thought to be positively charged since they are the opposite of electrons, which are negatively charged. The resulting accumulation produces two distinct regions, one slightly negatively charged and the other slightly positively charged. This forms an electric field that blocks the path of any more electrons. In regular diodes, the voltage drop over this area is only 0.7V.
By applying a voltage across the diode with the P-Type anode linked to the positive and the N-Type cathode attached to the negative, a forward bias is established, and current can flow. The electrons can't get over the 0.7V barrier unless the voltage source is higher.
We can achieve this by connecting the positive terminal of the power supply to the cathode of an N-type device and the negative terminal to the anode of a P-type device. The diode functions as a conductor to block current because the barrier expands as holes are drawn toward the negative and electrons are drawn toward the positive.
A resistor is a two-terminal, non-active electrical component that reduces the amount of current in electric and electronic circuits. A certain amount can lower the current by strategically placing a resistor in a circuit. From the outside, most resistors will appear identical. But if you crack it open, you'll find a ceramic rod used for insulation within, with copper wire covering the rest of the structure. Those copper twists are crucial to the resistance. When copper is sliced thinner, resistance rises because electrons have more difficulty penetrating the material. We now know that electrons can move more freely through some conductors than insulators.
George Ohm investigated the correlation between resistor size and material thickness. His proof showed that an object's resistance (R) grows in proportion to its length. Because of this, the resistance offered by the lengthier and thin wires is greater. However, wire thickness has a negative effect on resistance.
Once everything is hooked up, you can start your server by browsing to the IP address of your RPi and entering the port you chose earlier (as mentioned in the previous section), entering your password and username and seeing a page that looks like the one below.
All it takes is a few clicks of your mouse to operate four AC home appliances from afar. This can be controlled from a mobile device (phone, tablet, etc.) and expanded with additional switches and relays. Thank you all for reading to the end.
This guide showed us how to set up a web-based control system for our home automation system based on the Raspberry Pi 4. We have learned how to utilize the WebIOPi API to manage, debug, and use raspberry Pi's GPIO, sensors, and adapters from an internet browser or any application. We have also implemented JavaScript, CSS, and HTML code for the web application. For those who thrive on difficulty, feel free to build upon this base and add whatever demanding module you can think of to the project. The following tutorial will teach you how to use a Raspberry Pi 4 to create a Line Follower robot that can navigate obstacles and drive itself.
Metal fabrication refers to the manufacturing of sheet metal and other types of metal to fit different shapes.
The metal fabrication industry is vital to a wide range of industries. That’s due to the reliance on metal fabrication for vehicle parts, train tracks, building equipment, electrical devices, etc. A metal fabrication shop has various pieces of equipment needed to design and fabricate a myriad of metals. So, what, then, is custom fabrication?
Custom metal fabrication refers to the production or fabrication of a range of metals to meet unique specifications. Custom metal fabrication projects are carried out for a specific purpose. It involves cutting, bending, rolling, or joining metal to create custom complex shapes based on specific requirements.
Unlike traditional metal fabrication, custom metal fabrication offers more flexibility to meet the product specifications for various industries. It can be used to create tools for construction, mining, aerospace, and energy delivery systems .
Custom metal fabrication offers certain benefits over stock metal fabrication. It can be used to create precise fabrications for use in rail systems, building equipment, automobiles, and many other purposes.
Here are three major benefits of custom metal fabrication:
Improves Product Quality: You can produce durable metal products through custom fabrication. Metal fabricators consider the best materials that can suit the desired application.
Factors such as external forces, stress, and possible strains are also considered during the production process. For custom metal fabrication, the design is application-centered. The custom metal fabricator uses materials that can ensure increased product quality.
Increases Metal Fabrication Efficiency: Instead of using mass-produced metal works for certain services, custom fabrication drives efficiency by producing specialized designs. It allows for the creation of metal structures using a process that suits the requirements the most.
This helps increase efficiency and reduce the time spent on metal fabrication. Also, custom fabrication allows for optimized product processing and product flow. It makes the best use of metal fabrication materials in the production line.
Offers High Component Compatibility: Another major benefit of custom metal fabrication is the high component compatibility it offers. In custom fabrication, the metal works are designed to meet the required specifications, making them compatible with each other. With custom metal fabrication, you can produce custom shapes that work with the hardware you are using.
There are different types of metal fabrication processes. These processes are unique and are utilized based on part geometry, the metal fabrication materials, and the purpose of the product. Below are the common types of metal fabrication processes.
Casting: Casting involves pouring molten metal into a die or mold. The molten metal then cools and hardens into the desired shape. Casting is ideal for the mass production of metal parts with the same shape, for example, in the production of train tracks.
The mold can be reused multiple times to create metal works that are of the same shape. There are different types of casting processes, such as die casting, permanent mold casting, and sand casting.
Cutting: Cutting is one of the most common metal fabrication processes. It involves cutting a large piece into smaller pieces of metal. While sawing remains the traditional and earliest method of cutting, there are other methods, such as laser cutting, waterjet cutting, and plasma arc cutting, among other modern cutting techniques.
Cutting can be done through manual and power tools or through computer-controlled machines. Usually, cutting is the first stage in a metal fabrication process.
Drawing: In drawing, a piece of metal is pulled through tensile force. It is then stretched into a thinner shape. Drawing can be performed at room temperature or at heated temperature. It is known as cold drawing when it is done at room temperature.
However, the metal can be heated to reduce the tensile force needed. Drawing is usually combined with sheet metal fabrication to create box-shaped or cylindrical vessels.
Drilling: In drilling, a rotary cutting tool is used to cut holes in a piece of metal. The drill bit rotates very fast to make a hole in the metal.
Extrusion: In extrusion, the piece of metal is forced between or around a closed or open die. The diameter of the metal will be reduced to the cross-section of the closed or open die if it is forced through.
However, if the metal is forced around a die, it will result in a cavity. The two methods involve a metal slug and a ram to perform the process. Usually, the resulting product is used for piping or wiring. For example, it can be used to create splice kits needed to splice cable.
Extrusion can also be used to create short or long metal pieces. Also, it can be performed at room temperature or at increased temperatures. Cold extrusion is typically used for steel metal fabrication, while hot extrusion is commonly used for copper fabrication.
Forging: This involves the use of compressive force to create metal pieces. The metal fabricator uses a hammer or die to hit the workpiece until it forms the desired shape. It can also be done using high-pressure machinery.
Milling: Milling involves using rotating cutting tools to make perforations into the metal until it forms the desired shape. Usually, milling is done as a finishing or secondary process. It can be done through a CNC machine or manually. There are different types of milling, such as climb milling, form milling, angular milling, and face milling.
Punching: Turrets with unique shapes hit the metal to create metal pieces with holes or shaped metal pieces. It can be used to create delicate metal decorations or for other purposes.
Turning: In turning, a lathe is used to rotate the metal, while a cutting tool is used to shape the metal radially while it spins. The angle of the cutting tool can be adjusted to make different shapes.
The metal fabrication industry caters to many other industries. Metal works are used for different applications, such as rail works, buildings, and other projects. Custom metal fabrication involves applying metal fabrication processes to make specific metal works.
The major benefits of custom metal fabrication are improved product quality, increased metal fabrication efficiency, and high component compatibility. The unique metal fabrication processes are used for different purposes to create specific products. It is important to look for experienced companies with specialized equipment when looking for a metal fabrication service.
A lot of people took engineering for the love of math and machines. Most are introverts as well, diligently doing their project in workshops, plants, or computers. Unless you are in sales, academia, or managerial positions, you don’t meet a lot of people as much as a doctor or a lawyer.
However, this should not stop you from establishing your network. People networks may not be the most popular engineering tool. Albeit, you might be surprised by how useful and powerful it can be.
The good thing is that there are contact management apps nowadays. You can compartmentalize your contacts- suppliers, specialists, laborers, and so on. With the right contact management app , you can reap the following benefits.
Referral fees are sweet. Receiving a check from an old acquaintance because you recommended them to the project you are currently working on may not be an SOP but if it comes, you have the budget for a fancy dinner or a family vacation, all depending on how much you receive of course.
It is ideal to establish your network early, like during your university years. That is when you meet other students taking up engineering courses. For example, you took civil engineering and later, got into residential projects. Someone from the electrical engineering class may be into developing housing units as well. You can easily refer him to your developer because you have an idea of how he performed way back in the undergraduate days and most likely carries a good professional portfolio as well.
Deep but narrow or wide but shallow, that is the question. However, this is the age of information and we can easily swim to different waters. There might be electrical theories that can be tried on fluid flow, especially when you understand voltage deeply. And vice versa.
Knowledge of chemistry may be beneficial for material engineers. Marine engineers may take notes from a marine biologists about how different aquatic life functions so that first can improve their work more.
It’s not imperative that you are in-depth with other fields. The key is knowing who is an authority in those other fields. You just have to be able to ask the relevant questions and understand the basic terminologies in order to sustain a professional collaboration.
It is nice to have a reliable circle that can give technical opinions about your innovations. Peer review helps improve your new machine or novel methodology discovery. After you have performed your calculations and achieved repeatable results to make a conclusion, a review not only from your mentors and colleagues but as well as from other stakeholders or possible users would be beneficial.
If you have a good network, getting insightful feedback would be easy to come by. This would be great especially on product development as usually, you need fresh eyes on something you have been working on for a long while.
When you are operating in the same environment for a long time, it’s difficult to scale how your practice and proficiency translate to the outside world. Connecting with other professionals allows you to get a better understanding of how other people in similar positions go on to have more successful careers. This is called upward comparison. This psychological theory implies that when people compare themselves to someone they perceive to be superior, it motivates them to gain similar achievements.
If you’re eyeing a C-level post in the company on the career ladder, it is not enough that you know only what your institution demands for such a position. Your fellow engineers would be aware of those needed upgrades as well. On the other hand, your connection with several engineering managers even from other industries can be beneficial. It gives you more knowledge regarding people aspiring to be principal engineers than your work colleagues. When one from your network finally gets promoted, you can either directly ask him what he did or simply note the certifications he took and the achievements he fulfilled.
Engineers in the technical field don’t need to accumulate contacts for their work consciously. However, if you will compile all the various suppliers showcasing their innovative designs, the numerous specialists servicing that instrument, or even the more than a dozen consultants that you need signatures from, you might be surprised to know you can already fill an A0 size paper with their contact information and more.
You don’t necessarily need to be at a friend level with all of them. Just keep their calling cards instead of inattentively giving them to the document controller. Better yet, have a contact management app that offers the option to store not only contact typical contact details but also some notes about the person.
Let’s say you’re a building engineer. A salesman walked into your office in order to have a product demo about a new technology in waterproofing. Instead of focusing solely on the technicalities of the product, you can get a little more pleasant with the salesperson and maybe you’ll be able to get better deals than the ordinary sales pitch.
Network, network, network. This is not exactly taught in engineering economics but business graduates already know. You can set up your consultancy in a prime location. However, if your brand is unpopular, you’re just making one person rich: the landlord.
You may have the most efficient system design, but nobody will hear about it if you can’t market it properly. Hence, you will hire a marketing officer and what does he have to do? Build a database of people where he can sell your product.
If you already have accumulated and organized contacts, you don’t have to put up much effort to find initial clients. You save the budget to hire a marketing officer for later when you want an expansion.
It may be HR’s job to hire and fire technicians and laborers. However, keeping a record of all the workers you’ve handled may come in handy.
If you start your own company, it will be easier to have a ready list of employees you want to hire. Pulling up a list of personnel from your phone is more convenient than tracking them one by one after a long time.
Another case in point is as the project is near to end. It is normal to reduce manpower hence some of your team members will have to be let go. Your list of good workers can easily be shared with your other fellow engineers who are just at the peak of their work at another construction site. You share your manpower like you (sometimes) lend your tools to other engineers.
Later on, when you are the one needing extra manpower to recover lost hours due to force majeure, you can easily pull some guys without question on the quality of their work. This mitigates the risks of poor workmanship and possible unprofessional conduct as you have worked with these crews before.
It’s never too late to build your people network. You can gain this new skill set or upgrade your basic knowledge with the help of some contact management tools. Do so and reap more of the benefits of human connections.
Welcome to the next tutorial on our raspberry pi four python programming. In the previous article, we built a system that recognizes when two people are in physical contact using OpenCV and a Raspberry Pi 4. We used the weights from the YOLO version 3 Object Recognition Algorithm to implement the Deep Neural Networks part. Regarding image processing, the Raspberry Pi consistently comes out on top compared to other controllers. A facial recognition program was among the earlier attempts to use Raspberry Pi for sophisticated picture processing. In today's world of cutting-edge technology, digital image processing has expanded rapidly to become an integral feature of many portable electronic gadgets.
Digital image processing is widely used for such tasks as item detection, facial recognition, and people counting. This guide will use a Raspberry Pi 4 and ThingSpeak to create a crowd-counting system based on OpenCV. In this case, we will utilize the pi camera module to take pictures in a continuous loop, and then we will run the images through the Histogram Based Object descriptor to find the things in the photos. Next, we'll compare these images to OpenCV's pre-trained model for facial recognition. The headcount may be seen by anybody, anywhere in the world, because of the public nature of the ThingSpeak channel.
Knowing how many people show up to an event or purchase a newly released product is vital for event management and retail shop owners. Still, it's even more critical that they can use that information to improve future events. To their relief, modern crowd-counting technology has made it simpler for event planners and business owners to acquire actionable data on event attendance that can be used to improve ROI.
Where To Buy? | ||||
---|---|---|---|---|
No. | Components | Distributor | Link To Buy | |
1 | Raspberry Pi 4 | Amazon | Buy Now |
Raspberry Pi 4
Pi Camera
ThingSpeak
Python3
OpenCV3
In this case, the OpenCV framework will make people count. You must first upgrade your Raspberry Pi before you can install OpenCV.
sudo apt-get update
Then, get OpenCV ready for your Raspberry Pi by installing its prerequisites.
sudo apt-get install libhdf5-dev -y
sudo apt-get install libhdf5-serial-dev –y
sudo apt-get install libatlas-base-dev –y
sudo apt-get install libjasper-dev -y
sudo apt-get install libqtgui4 –y
sudo apt-get install libqt4-test –y
Once that is done, use the following command to install OpenCV on your Raspberry Pi.
pip3 install OpenCV-contrib-python==4.1.0.25
We need to get some additional packages on the Raspberry Pi before we can begin writing the code for the Crowd Counting app.
Installing imutils: To perform basic image processing tasks like translating, rotating, resizing, skeletonizing, and displaying Matplotlib images more efficiently in OpenCV, imutils are used. So, run the following command to set up imutils:
pip3 install imutils
matplotlib: The matplotlib library should then be installed. When it comes to Python visualizations, Matplotlib is your one-stop shop for everything from static to animated to interactive.
pip3 install matplotlib
One of the most widely used IoT platforms, ThingSpeak allows us to keep tabs on our data from any location with an Internet connection. The system can also be controlled remotely by using the Channels and web pages provided by ThingSpeak. You must first register for an account on ThingSpeak to create a channel. If you have a ThingSpeak account, please log in with your username and password.
Select Sign up and fill out the required fields.
Double-check your email address and press the "Next" button when you're done. Now that you're logged in, click the "New Channel" button to make a brand-new channel.
When you're ready to begin uploading information, select "New Channel" and give it a descriptive name and brief explanation. One new field, "People," has been added. Any number of areas may be made, as needed. Then, click the "Save Channel" button after entering the necessary information. You'll need to pass your API and channel ID into a Python script whenever you want to submit data to ThingSpeak.
For this OpenCV people-countering project, all you need is a Raspberry Pi and a Pi camera; to get started, plug the camera's ribbon connector into the Raspberry pi's designated camera slot.
The Pi 4 Camera board is a purpose-built expansion board for the Raspberry Pi computer. The Raspberry Pi hardware is connected via a specialized CSI interface. In its native still-capture mode, the sensor's resolution is 5 megapixels. Capturing at up to 1080p and 30 frames/second in video mode is possible. Because of its portability and compact size, this camera module is fantastic for handheld applications.
A ribbon cable connects the camera board to the Raspberry Pi. Camera PCB and Raspberry Pi hardware are associated with a ribbon cable. If you join the ribbon cables correctly, the camera will work. The camera PCB's blue backing must face away from the PCB, while the Raspberry Pi hardware's blue backing must face the Ethernet port.
One example of a feature descriptor is the HOG, similar to the Canny Edge Detector algorithm. Object detection is a typical application of this technique in image processing and computer vision applications. This method uses a count of gradient orientation occurrences in the limited region of an image. There are a lot of similarities between this approach and Scale Invariant Feature Transformation. The HOG descriptor highlights object structure or form. This method of computing features is superior to other edge descriptors because it considers both the magnitude and the angle of the gradient. Histograms are created for the image's regions based on the gradient's intensity and direction.
First, load the image that will serve as the basis for the HOG feature calculation into the system. Reduce the size of the image to 128 by 64 pixels. The research authors utilized and recommended this dimension because improving detection outcomes for pedestrians was their primary goal. After achieving near-perfect scores on the MIT pedestrian's database, the authors of this study opted to create a new, more difficult dataset: the 'INRIA' dataset (http://pascal.inrialpes.fr/data/human/), which includes 1805 (128x64) photographs of individuals cut from a wide range of personal photos.
In this step, we compute the image's gradient. The gradient can be calculated using the image's magnitude and angle. First, we determine Gx and Gy for every pixel in a 3x3 grid. As a first step, we determine the Gx and Gy values for each pixel by plugging their respective values into the following formulas.
Each pixel's magnitude and angle are computed using the following formulae after Gx and are determined.
Once the gradient for each pixel has been calculated, the resulting gradient matrices are each partitioned into eight 8x8 cells that form a block. Each block is assigned a 9-point histogram. Each bin in a 9-point histogram has a 20-degree range, so the resulting histogram has nine bins total. The numbers in Figure 8 are assigned to a 9-bin histogram graphically depicting the results of the calculations. Each of these 9-point graphs can be represented graphically as a histogram whose bins output the relative strength of the gradient across the corresponding intervals. Since a block can have 64 distinct values, the calculation below is carried out for each of the 64 possible combinations of magnitude and gradient. Because 9-point histograms are being used, therefore:
The following terms will define the limits of each jth bin:
The average value of each bucket will be:
Illustration of a histogram with nine discrete bins. For a particular 8x8 block of 64 cells, there will be only one possible histogram. Each of the sixty-four cells will contribute their Vj and Vj+1 values to the array's indices at the jth and (j+1) positions.
When determining the value assigned to cell j in block I, we first determine which bin j will be assigned to it. The following equations will provide the value:
Each pixel's value, Vj, is calculated and stored in the set at the jth and (j+1)the indexes of the bin that serves as the block's bin. Upon completing the preceding steps, the resulting matrix will have dimensions 16 by eight by 9. When the histograms for all blocks have been computed, a new block is formed by joining together four cells of the 9-by-9 histogram matrix (2x2). This chopping is carried out overlappingly, with an 8-pixel stride. We create a 36-feature vector by concatenating the 9-point histograms of each of the four cells that make up the block.
A combined FBI is created from four blocks by traversing a 2x2 grid around the image.
The L2 norm is used to standardize FB values across blocks.
The value of k for normalization is found by applying the following formulae:
Normalizing is performed to lessen the impact of variations in the contrast between photographs of the same object—each section. Data is collected in the form of a 36-point feature vector. Seven blocks line up across the bottom and fifteen at the top. Therefore, the entire length of all histogram-oriented gradient features will be 3780 (7 x 15 x 36). The image's HOG characteristics are extracted.
HOG features are seen parallelly on a single image with the image library.
This page includes the complete Python code for an OpenCV project that counts the people in a crowd. Here, we break down the code's crucial parts so you can understand them better—first, import all the necessary libraries that will be used later in the code.
import cv2
import imutils
from imutils.object_detection import non_max_suppression
import numpy as np
import requests
import time
import base64
from matplotlib import pyplot as plt
from urllib.request import urlopen
Imutils:
For use with OpenCV and either version of Python, this package provides a set of helper functions for everyday image processing tasks such as scaling, cropping, skeletonizing, showing Matplotlib pictures, grouping contours, identifying edges, and more.
Numpy:
You can manipulate arrays in Python with the help of the NumPy library. Matrix operations, the Fourier transform, and linear algebra are all within their purview. Because it is freely available to the public, anyone can use it. That's why it's called "Numerical Python," or "NumPy" for short.
Python's list data structure can replace arrays, but it could be faster. NumPy's intended benefit is an array object up to 50 times quicker than standard Python lists. To make working with NumPy's array object, ndarray, as simple as possible, the library provides several helpful utilities. Data science makes heavy use of arrays because of the importance placed on speed and efficiency.
Requests:
You should use the requests package if you need to send an HTTP request from Python. It hides the difficulties of requests making behind a lovely, straightforward API, freeing you to focus on the application's interactions with services and data consumption.
Time:
In Python, the time module has a built-in method called local time that may be used to determine the current time in a given location depending on the time in seconds that have passed since the epoch (). tm isdst will range from 0 to 1 to indicate whether or not daylight saving time applies to the current time in the region.
Base64:
If you need to store or transmit binary data over a medium better suited for text, you should look into using a Base64 encoding technique. There is less risk of data corruption or loss thanks to this encoding method. Base64 is widely used for many purposes, such as MIME-enabled email storing complicated data in XML and JSON.
Matplotlib:
When it comes to Python visualizations, Matplotlib is your one-stop shop for everything from static to animated to interactive. Matplotlib facilitates both straightforward and challenging tasks. Design graphs worthy of publication. Create movable, updatable, and zoomable figures.
urllib.request:
If you need to make HTTP requests with Python, you may be directed to the brilliant requests library. Though it's a great library, you may have noticed that it needs to be a built-in part of Python. If you prefer, for whatever reason, to limit your dependencies and stick to standard-library Python, then you can reach for urllib.request!
Then, after the libraries have been imported, you can paste in the channel ID and API key for the ThingSpeak account you previously copied.
channel_id = 812060 # PUT CHANNEL ID HERE
WRITE_API = 'X5AQ3EGIKMBYW31H' # PUT YOUR WRITE KEY HERE
BASE_URL = "https://api.thingspeak.com/update?api_key= {}".format(WRITE_API)
Set the default values for the HOG descriptor. Several other uses have been found for HOG, making it one of the most often implemented methods for object detection. In the past, an OpenCV pre-trained model for people detection could be accessed through cv2.HOGDescriptor getDefaultPeopleDetector().
hog = cv2.HOGDescriptor()
hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())
Raspberry PI is provided with a three-channel color image inside the detector() function. It then uses imutils to scale the image down to the appropriate size. The SVM classification result is then used to inform the detectMultiScale() method, which examines the image to determine the presence or absence of a human.
def detector(image):
image = imutils.resize(image, width=min(400, image.shape[1]))
clone = image.copy()
rects, weights = hog.detectMultiScale(image, winStride=(4, 4), padding=(8, 8), scale=1.05)
If you're getting false positive results or detection failures due to capture-box overlap, try running the below code, which uses non-max suppressing capability from imutils to activate overlapping regions.
for (x, y, w, h) in rects:
cv2.rectangle(image, (x, y), (x + w, y + h), (0, 0, 255), 2)
rects = np.array([[x, y, x + w, y + h] for (x, y, w, h) in rects])
result = non_max_suppression(rects, probs=None, overlapThresh=0.7)
return result
With the help of OpenCV's VideoCapture() method, the image is retrieved from the Pi camera within the record() function, where it is resized with the imultis before being sent to ThingSpeak.
def record(sample_time=5):
camera = cv2.VideoCapture(0)
frame = imutils.resize(frame, width=min(400, frame.shape[1]))
result = detector(frame.copy())
thingspeakHttp = BASE_URL + "&field1={}".format(result1)
Now that everything is hooked up and ready to go, let's put it through its paces. Launch the program by extracting it to a new folder. You'll need to give Python a few seconds to load all the necessary modules. Start the program. A new window will pop up, showing the camera's output after a few seconds. Make sure your Raspberry Pi camera is operational before running the python script. The following command is used to activate the python script after a review of the camera has been completed:
At that point, a new window will appear with your live video feed inside of it. OpenCV will count the number of persons in the first frame that Pi processes. The appearance of a box will indicate the detection of humans:
Now that you know how many people are expected to show up, you can check the crowd size from the comfort of your own home via your ThingSpeak channel.
You can now efficiently conduct crowd counts with OpenCV and a Raspberry Pi. This technology helps with guaranteeing the safety of those attending large-scale events, which is a top priority for event planners. Knowing how people will flow through a venue or store is crucial for offering effective crowd management services. It will also improve efficiency and customer service because it is helpful for event and store managers to track the number of people entering and leaving their establishments at any one time. Additionally, it is important for event planners to understand dwell time in order to ascertain which parts of the venue are popular with attendees and which are completely bypassed. This gives them information about how the guest felt, which lets them better use the space they have.
import cv2
import imutils
from imutils.object_detection import non_max_suppression
import numpy as np
import requests
import time
import base64
from matplotlib import pyplot as plt
from urllib.request import urlopen
channel_id = 812060 # PUT CHANNEL ID HERE
WRITE_API = 'X5AQ3EGIKMBYW31H' # PUT YOUR WRITE KEY HERE
BASE_URL = "https://api.thingspeak.com/update?api_key={}".format(WRITE_API)
hog = cv2.HOGDescriptor()
hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())
# In[3]:
def detector(image):
image = imutils.resize(image, width=min(400, image.shape[1]))
clone = image.copy()
rects, weights = hog.detectMultiScale(image, winStride=(4, 4), padding=(8, 8), scale=1.05)
for (x, y, w, h) in rects:
cv2.rectangle(image, (x, y), (x + w, y + h), (0, 0, 255), 2)
rects = np.array([[x, y, x + w, y + h] for (x, y, w, h) in rects])
result = non_max_suppression(rects, probs=None, overlapThresh=0.7)
return result
def record(sample_time=5):
print("recording")
camera = cv2.VideoCapture(0)
init = time.time()
# ubidots sample limit
if sample_time < 3:
sample_time = 1
while(True):
print("cap frames")
ret, frame = camera.read()
frame = imutils.resize(frame, width=min(400, frame.shape[1]))
result = detector(frame.copy())
result1 = len(result)
print (result1)
for (xA, yA, xB, yB) in result:
cv2.rectangle(frame, (xA, yA), (xB, yB), (0, 255, 0), 2)
plt.imshow(frame)
plt.show()
# sends results
if time.time() - init >= sample_time:
thingspeakHttp = BASE_URL + "&field1={}".format(result1)
print(thingspeakHttp)
conn = urlopen(thingspeakHttp)
print("sending result")
init = time.time()
camera.release()
cv2.destroyAllWindows()
# In[7]:
def main():
record()
# In[8]:
if __name__ == '__main__':
main()
Crowd dynamics can be affected by several things, such as the passage of time, the layout of the venue, the amount of information provided to visitors, and the overall enthusiasm of the gathering. Managers of large crowds need to be flexible and responsive in case of sudden changes in the environment that affect the situation's dynamics in real-time. Trampling events, mob crushes, and acts of violence can break out without proper crowd management.
The complexity and uncertainty of large-scale events emphasize the importance of providing timely, relevant information to crowd managers. Occupancy control technology helps event planners anticipate how many people will show up to their event, so they can prepare appropriately by ensuring adequate security guards, exits, etc.
Using Raspberry Pi and some smart subtractions and blob tracking, this article describes a system for counting individuals. We show how many people have entered and left a building. The principles of HOG and the calculation of features have also been covered. The testing outcomes demonstrate the viability of using this raspberry pi based device as an essential people-counting station. In the following tutorial, we'll learn how to assemble an intelligent energy monitor based on the Internet of Things and a Raspberry Pi 4.
Hello peeps. Welcome to the next tutorial on deep learning. You have learned about the neural network, and it was an interesting way to compare different types of neural networks. Now, we are talking about deep learning frameworks. In the previous sessions, we introduced you to some important frameworks to let you know about the connection of different entities, but at this level, it is not enough. We are telling you in detail about all types of frameworks that are in style because of their latest features. So before we start, have a look at the list of concepts that will be covered today:
Introduction to the frameworks of deep learning.
Why do we require frameworks in deep learning?
What are some important deep learning frameworks?
What is TensorFlow and for which purpose of using TensorBoard?
Why Keras is famous?
What is the relationship between python and PyTorch?
How can we choose the best framework?
Deep learning is a complex field of machine learning, and it is important to have command over different types of tools and tricks so that you may design, train, and understand several types of neural networks efficiently with the minimum amount of time. Frameworks are used in many different types of programming languages, and this is the software that, by combining different tools, improves and simplifies the operation of the programming language.
The best thing about the frameworks is that they allow you to train their models without knowing or bothering about the algorithms that are running behind the programming. Isn’t it amazing to know that you will get a helping hand to understand and train your model without any worries? Once you know much about the different frameworks, it will be clear to you how these frameworks do some specific types of tasks to make your training process easy and interesting.
In the beginning, when you start the programming of the deep learning process by hand, you will see some interesting results related to your task. Yet, when you move towards complex tasks or when you are at the intermediate level, you will realize that it is strenuous and time-consuming to perform a simple task at a higher level. Moreover, the repetition of the same code can sometimes make you sick.
Usually, the need for a framework arises when you start working with advanced neural networks such as convolutional neural networks, or simply CNN, where the involvement of images and video makes the task difficult and time-consuming. These frameworks have pre-defined types of networks and also provide you with an easy way to access a great deal of information.
With the advancement of deep learning, many organizations are working to make it more user-friendly so that more people can use it for advanced technologies. It is one of the reasons behind the popularity of deep learning that a great deal of deep learning frameworks is introduced every year. We have analyzed different platforms and researched different reports. We found some amazing frameworks, and our experts have been checking them for a long time to provide you with the best framework for your learning. Here is the list of the frameworks that we will discuss in detail with you, along with the pros and cons of each.
Tensorflow
Keras
PyTorch
Theano
DL4J
Lasagna
Caffe
Chainer
We are not going to discuss all of them because it may be confusing for you to understand all the frameworks. Moreover, we believe in smart working, and therefore, we are simply discussing the most popular frameworks so that you may learn the way to compare different parameters, and after that, you will get the perfect way to make modules, train, and test the projects in different ways for smart working.
The first framework to be discussed here is TensorFlow, which is undoubtedly the most popular framework for deep learning because of its easy availability and great performance. The backbone of this platform is directly connected to Google’s brain team, which has represented it for deep learning and provided easy access to almost all types of users. It supports Python and some other programming languages, and the good thing about it is that it also works with dataflows. This point makes it more useful because, when dealing with different types of neural networks, it is extremely useful to understand the progress and the efficiency of your model.
Another important point to notice about TensorFlow is, it creates models that are undemanding to build and contain robust.
A plus point about this framework is another large package called TensorBoard. There are several advantages to this fabulous data package, but some of them are listed below:
The basic working of this package is to provide data visualization to the user, which is a great step for the ease of the user, but unfortunately, people are less aware of this, although it is a useful item.
Another advantage of tensorBoard is that it makes the sharing of the data with the shareholders easy and comfortable because of its fantastic data display.
You can use different packages with the help of TensorBoard.
You can get other basic information about TensorFlow by paying attention to the following table:
TensorFlow |
|
Releasing Dates |
November 9, 2015, and January 21, 2021. |
Programming Languages |
Python, C++, CUDA |
category |
Library of machine learning |
Name of Platforms |
JavaScript, Linux, Windows, Android, macOS, |
License |
Apache License 2.0 |
Website’s Link |
|
The next on the list is another famous and useful library for deep learning that most of you may know about. Keras is one of the favourite frameworks for deep learning developers because of its demand and open-source contributors. An estimate says that 35,000+ users are making this platform more and more popular.
Keras is written in the Python programming language, and it can support high-level neural networks. You must keep in mind that Keras is an API, and it runs on top of highly popular libraries such as TensorFlow and Theano. You will see this in action in our coming lectures. Because of its user-friendly features, Keras is used by a large number of companies as a startup and is a great tool for researchers and students.
The most prominent feature of Keras is its user-friendly nature. It seems that the developers have presented this framework to all types of users, no matter if they are professionals or learners. If users encounter an error or issue, they should receive transparent and actionable feedback.
For me, modularity is a useful feature because it makes tasks easier and faster. Moreover, the errors are easily detectable, which is a big relief. The modularity is shown with a graphical representation or sequence of information so that the user may understand it well.
Here's some good news for researchers and students. Keras is one of the best options for researchers because it allows them to make their own modules and test them according to their choice. Adding the modules to your project is super easy on Keras, and you can do advanced research without any issues.
Keras |
|
Releasing Dates |
March 27, 2015, and June 17, 2020. |
Programming Languages |
N/A |
category |
Almost all types of neural networks |
Name of Platforms |
Cross-platforms |
License |
Massachusetts Institute of Technology (MIT) |
Website’s Link |
|
Our next topic of discussion is PyTorch. It is another open-source library for deep learning and is used to build complex neural networks in an easy way. The thing that attracted me to this library is the platform that introduced it. It is developed under the umbrella of Facebook's AI Research Lab. I'm curious about how powerful it is because every time I open my Facebook app, I find the content I've chosen and wished for. People have been using it for deep learning, computer vision, and other related purposes since 2016, as it is a free open source for AI and related fields. By using PyTorch with other powerful libraries such as NumPy, Tensor, etc., you can build, train, and test complex neural networks. Because of its easy accessibility, PyTorch is popular among people. The versatility of the programming languages and different libraries working with PyTorch is another reason for its success.
A feature that makes it easy to use is its hybrid front-end nature, which makes it faster and more flexible to use. The user-friendly nature of this library makes it the perfect choice for professionally non-technical people.
With the help of its torch-distributed backend, you can have optimal performance all the time and keep an eye on the training and working of the network you are using. It has a powerful architecture, and on an advanced level, you can use it for complex neural networks.
As you can guess, PyTorch is run with the help of Python, which is one of the most popular and trending programming languages, and the plus point is that it allows many libraries to be used with it and work on neural networks.
PyTorch |
|
Releasing Dates |
September 2016, and December 10, 2020. |
Category |
Machine learning library, Deep learning library |
Name of Platforms |
Cross-platforms |
License |
Berkeley Software Distribution (BSD) |
Website’s Link |
Since now, we have been talking about the frameworks, and the basic purpose of discussing different features was to tell you the difference between them. A beginner may believe that all frameworks are the same, but this is incorrect because each framework has its own specialities and the difficulty level of using them varies. So, if you want to work perfectly in your field, first you must learn how to choose the best framework for your task. Keep in mind, these are not the only points that you need to know; all the parameters change according to the complexity of your project.
Not all projects are the same. You do not have to use the same framework every time. You must know more than one framework and choose one according to your needs. For example, for simple tasks, there is no need to use a complex framework or a higher-level neural network. There is versatility in the projects in deep learning, and you have to understand the needs of your project every time before choosing your required framework. As a result, before you begin, you should ask yourself the following questions about the project:
What are you using? Modern deep learning framework or are you interested in the classic ML algorithms?
What is your preferred programming language for the AI modules?
For the process of scaling, which type of hardware and software do you have for the working?
Once you know the different features of the frameworks, you may get the answers to all the questions given above.
Machine learning is a vast field, and with the advancement of different techniques, there is always a need to compare the parameters all the time. Different algorithms follow different types of parameters, and you must know all of them while choosing your framework. Moreover, you must also know if you are going with the classic built-in machine-learning algorithms or want to create your own.
Hence, we learned a lot about the frameworks of deep learning today. It was an interesting lecture where we saw the detailed introduction of the framework and compared TensorFlow, PyTorch, and Keras by discussing several features and requirements of all these frameworks. We will see all the discussion in action in the coming lectures. The purpose of this session was to clear the concept of working and variations in the framework and in this way, you have the idea how deep learning is useful in different ways. Researcher are working in deep learning and it is one of the basic reason behind the develorpment of different frameworks.
Hi Friends! Hope you’re well today. I’ll welcome you on board. In this post, I’ll walk you through How a Hobbyist Can Work on Electronic Projects in America.
From smartphones to security systems and appliances to advanced automation equipment, electronics seem to engulf every aspect of life. And with the recent advancement in technology, this trend will continue to make our lives easy and better for years on end. BUT… before you can take part in the development of innovative and advanced electronic machinery, you need to get your hands dirty with DIY electronic projects. These small and easy-to-handle projects give you confidence that you can do better and put your deliberate effort to delight the lives of people with your intellect.
If you’re just starting, we suggest you visit North America Hot Searched Electronic Platform which houses scores of electronic components that you can use in your electronic projects.
Curious to know more about how a hobbyist can work on electronic projects in America?
Keep reading.
Where To Buy? | ||||
---|---|---|---|---|
No. | Components | Distributor | Link To Buy | |
1 | Arduino Nano | Amazon | Buy Now |
Electronic devices are not cheap, however, there is a catch. Some small electronic devices and electrical projects you find online can be made in homes with a handful of tools and electrical components. There are some ready-made small kits and electrical modules like microcontrollers and Arduino boards that you can use in your electronic projects and develop a mini home-made electronic device.
In the following, I’m going to discuss some DIY projects that you can work on as a starter. No big setup. No advanced equipment is required. All you need to know is some basic computer skills and the right components to build something amazing from scratch.
A liquid level indicator is a simple electronic project used to identify the current level of the liquid. It is widely used in a range of applications like irrigation control, fuel tank level, cooling tower, and level gauging in pumps.
The following are some components used in this project.
3 PNP A1015 transistors
3 LEDs
9V battery
Breadboard
Battery Clips
Probes
Connecting Wires
PVC tubing
The following figure shows the circuit diagram of the project.
The circuit shows the signal by lighting up the LED whenever a tank reaches a certain level. The tank is divided into 3 levels: Low, Medium, and Full, based on the liquid capacity of the tank. Similarly, three LEDs are included to indicate a certain level where Red LED shows the Low level, Yellow shows the Medium level and Green shows the Full level. The transistor base is connected with the copper or aluminum wire that acts as a probe.
Each transistor's base receives an electrical connection to 9V DC through water and the desired probe indicating the liquid level is started to rise. Consequently, this causes the transistors to conduct, causing LEDs to illuminate and show the level of liquid.
A beep circuit is a very handy electronic device mainly used for generating a quick sound in emergencies in places like fire brigade stations, police stations, hospitals, and factory areas for smoke detection. Devices like security and alarm systems use this circuit to send alert warnings of the emergency.
1KΩ, 1.2KΩ, 470Ω Resisters
NPN 2N4401 Transistors
LED
9V Battery
2-input NAND Gate
Connecting Wires
Breadboard
Battery Clips
The following figure shows the circuit diagram of the Beep Circuit.
The output at the pin4 IC continuously goes up and down based on the 2 NAND gates that are wired as a-stable multi-vibrator. This setup switches the 2N4401 transistor ON & OFF which serves as a driving force for the piezoelectric buzzer. In turn, the buzzer produces a beep sound triggering the LED continuously.
This is a simple and cheap circuit. LEDs are widely used to produce durable light with low power. This circuit consists of two AAA cells that are connected in series producing 3V in total. It is enough to generate high-power illumination with an input current of just 20mA.
2 AAA cells (1.5V each)
Push button
LED
Connecting Wires
The following figure shows the diagram of the LED Flash Light Circuit.
In this figure, the LED is connected with the positive and negative terminals of the 3V battery using two cells. A push button is connected in series between the battery and the LED. When you push the button, it will instantly complete the circuit, allowing the charge to pass through LED and, in turn, illuminating it.
Metal detector circuits, as the name suggests, are used to detect the existence of any metal. These devices identify the change of magnetic field which is directly related to the distance of metal objects. They are used for a range of purposes like security screening and detecting the traces of metals in food products.
PVC Tubing
NPN BC548 Transistor
LM7806 Voltage Regulator
10uF/16V Electrolyt ic Capacitor
100pF, 10pF Ceramic Capacitor
Resistors
6V Battery
Breadboard
Connecting Wires
The following figure shows the circuit diagram of the metal detector circuit.
The circuit is made of old radio and a single BC548 transistor. The AM radio produces a hissing sound when you place this circuit in the vicinity of any metal object, indicating the presence of metal within a range. The L1 indicates 60 turns of enameled copper wire that is wired on a 1cm PVC tube. The 6V battery is used to power up the circuit.
Fire alarm electrical device is commonly used in factories to detect the presence of fire. When a fire breaks out in a place, the circuit instantly identifies the smoke produced by the fire, triggering an alarm sound to warn people about it within range.
The following components are used in this circuit.
The device is equipped with LDR to detect smoke
IC UM 66 acts as a tone generator
IC 7805 used to run a tone generator
TDA 2003 IC is an alarm system that acts as an amplifier to give signals to the speakers
9V battery that serves as a power source
Resistors
Capacitors
Breadboard
Connecting Wires
The following figure shows the circuit diagram of the fire alarm circuit.
Sensing the heartbeat is crucial for patients and athletes to identify the current condition of the heart. This way they can do preventive maintenance of the heart to ward off potential diseases. These sensors can be used in chest strips, smartphones, and wristwatches to monitor the heart rate.
Arduino Uno
16x2 LCDs
Push Button
Connecting Wires
10KΩ Potentiometer
Heartbeat Sensor Module with Probe
Breadboard
330Ω Resistor
A method that measures changes in blood volume in an organ is called photoplethysmography . This method tracks variations in the brightness of the light entering the organ. The Heartbeat Sensor operates based on this idea.
An IR LED is commonly used as the light source in the sensor. LDR, photodiode, and photoresistor can be used as photodetectors.
The light source and photodetector can be arranged in two ways:
Reflective Sensor: In this setting, the detector and light source are next to one another. To read the heartbeat rate, the patient holds their finger in front of the sensor.
Transmissive Sensor: In this arrangement, the patient’s finger is placed between the receiver and transmitter, where the detector and source light face each other.
The following figure shows the diagram of the heartbeat sensor.
Wireless doorbell is commonly used in shops, hospitals, factories, offices, and garages.
This doorbell uses an RF module and hence comes with a wide range compared to wired or Wi-Fi doorbells.
434 MHz RF Transmitter Module
434 MHz RF Receiver Module
Arduino UNO
750 KΩ Resistor
HT – 12D Decoder IC
HT – 12E Encoder IC
Push button
9V Power Supply
Buzzer
Breadboard
Connecting Wires
The circuit comes with Arduino Uno and an RF module. The Arduino Uno is mainly used to analyze the data. The RF module is applied for the development of wireless communication.
A wireless doorbell system can be powered by batteries or by connecting to the home's main electrical supply. Wireless doorbell installation is simple since no wiring is required. For the receiver, only a power outlet will do.
The following figure shows the circuit diagram of the wireless doorbell.
We are all aware of how coronavirus rattled the entire world. Apart from wearing masks outside, washing hands was crucial to prevent the wrath of the virus. Since when you don’t wash your hands and touch your face or food, the virus is likely to spread to people around you. This is where the handwash timer comes in handy.
Ultrasonic Sensor HC-SR04
Three LEDs: Red, Blue, Green
Breadboard
Connecting Wires
It is a simple electronic project where Arduino is the brain of the countdown timer. We’ll attach the Arduino with 6 LEDs and an ultrasonic distance sensor.
With the help of the distance sensor, the Arduino transmits ultrasonic sound waves and measures the amount of time it takes for the sound waves to be reflected back to the sensor. It calculates the distance to whatever appears in front of it using the current time. In turn, the Arduino continuously reads the sensor while witnessing your hand come within 20 centimeters.
The Arduino turns on the red LED and waits for you to wash your hands with water and soap for four seconds as soon as it senses movement within 20 centimeters. The 20-second countdown then begins. The five blue LEDs eventually begin to illuminate one by one over 20 seconds.
Turning up the green LED will indicate that you have washed your hands for a considerable amount of time, at which point you can rinse the soap off.
The following figure shows the circuit diagram of the handwash timer.
Rain Alarm is a nifty electronic project to detect the presence of rain. It will turn on the buzzer when its sensors detect rainwater.
BC 547 Transistor
100 Ohm Resistor
Home Fabricated Water Sensor
9V Battery
Piezo Buzzer
Breadboard
Connecting Wires
The following figure shows the Rain Alarm Circuit Diagram.
Raindrops that bridge over the screw tips make up the sensing element. When the drops fall on the screw tips, it allows a tiny electrical current to pass through the metal and turn on the transistor's base. The transistor then begins to conduct and increases the conductivity across its collector/emitter terminals.
In turn, the connected buzzer gets turned ON, giving the signals to the concerned authority to take appropriate action to deal with the rainwater.
Hope you have got enough information about some simple and easy-to-handle electronic projects to give you hands-on experience in dealing with electrical circuits and components. But there are some key considerations that you need to follow that will help you to successfully take your project from start to finish to execution.
Make sure the contact between the soldering iron and the component doesn’t last longer than 1 sec. Otherwise, it will hurt the efficiency of the component, or worse, can completely damage the product.
Always pay special heed to the positive and negative terminals of the components while making connections.
Install the main ICs and modules like microcontrollers at the center of the whole circuit. This will help to evenly manage the connections with the relevant electrical components.
Make a tight connection between the circuit and the components. Loose connection makes affect the working of the final project.
Read the manuals that come with ICs or electronic modules. This will help you have a better understanding of the product and what you can do to avoid damage.
That’s all for today. Hope you’ve enjoyed reading this article. If you’re unsure or have any queries, you can ask me in the section below. I’d love to help you the best way I can. Thank you for reading the article.
Hi Folks! Hope you’re well today. Happy to see you around. In this post, I’ll walk you through Top Online Software Used for PCB Designing.
PCB manufacturing starts from the simple layout design. If your design is free from errors, it will not only save you tons of time and money but also accelerate the production process. You’ll find scores of PCB design software out there. Some are better than others.
So how do you keep up?
This is a difficult task, in fact. Hence we’ve compiled the list of 10 best online software for PCB designing that will help you streamline your design process and get your boards ready for manufacturing.
Keep reading.
Know that if certain software is good for one project it doesn’t it will be equally handy for all electronic projects. Therefore we are giving you tons of options to pick from. Some are free designing tools and others are paid based on the features included in the software. So choose your pick wisely.
Fusion 360 is a unified software platform for electronics, engineering, design, and manufacturing. It combines CAD, CAM, CAE, and PCB design in a single tool, offering a flexible environment to monitor product performance and test your designs before the manufacturing process even begins.
Fusion 360 is a cloud-based tool connecting your entire product development process into a single platform and allowing you to interact with other team members from anywhere in the world. Not only is it handy for electrical engineers, but it also offers design solutions to mechanical engineers, industrial designers, machinists, hobbyists, and startups. You can start with a free trial and get a yearly subscription for only $545 per year.
Moreover, you can get familiar with the software with the video tutorials and self-guided courses available on the website. And get access to the technical staff that contains industry professionals ready to solve your design issues.
Altium Designer is a powerful and intuitive PCB design software that offers a unified design experience, allowing electrical engineers to view every tiny detail of the design process from idea to execution. The tool comes with a sleek and clean interface, empowering designers to access all design tools in one place to limit the possibility of errors.
From schematic to PCB layout to design documentation, the tool makes every process easy and hassle-free. Plus, the software offers seamless integration with other ECAD/MCAD tools including PTC Creo Parametric, SolidWorks, Autodesk Fusion 360, and Autodesk Inventor. This means you can effortlessly collaborate with mechanical engineers for different design requirements without heavy file exchanges.
Altium Designer allows a cloud-based environment, permitting easy collaboration with other team members remotely, so you can get feedback on your design and instantly remove issues, and exchange data whenever and wherever required.
Speed up your design process with OrCAD PCB Software which offers scalable PCB design solutions to create designs as you like better. The company keeps updating the product with future design possibilities to ensure the best design solution for electrical engineers. The program features a range of technologies including schematic capture, PCB editing and routing, librarian tools, auto-routing, signal integrity, and more.
Get familiar with brilliant and spontaneous etch editing and placement capabilities to maximize your productivity. Additionally, with constraint management, you can make sure your final design resonates with certain requirements like length rules, net, spacing, and more.
A worldwide network of Cadence Channel Partners (VARs) sells and supports this software and you can fill up the form online to get an instant quote based on your design requirements. The product includes OrCAD PCB designer, OrCAD PSpice Designer, OrCAD Sigrity ERC, and OrCAD Capture CIS.
Backed with thousands of users worldwide, DipTrace is an intuitive schematic and PCB design software that offers economical and powerful design solutions to electrical engineers and hobbyists.
The program comes with an up-to-date components library that houses more than 160,000 components and 22,000+ patterns developed based on IPC-7351 Standard. Schematic capture is an advanced tool that features multi-sheet and multi-level hierarchical schematics. Using pattern and components editors you can design new components with custom templates.
Another innovative design tool is the pattern generator that automatically creates footprints and 3D models. Exchange your files with other 2D/3D CAD tools like Altinum or OrCAD. The import and export facility allows you to easily convert your schematic to PCB and revert to the same file format. Get high-speed signals and 3D previews from your PCB layout. No matter the stage you are in during your development process, you can analyze it on screen and form an instant decision to make your final decision an ultimate success.
Start with a 30-day free trial and then choose from a range of paid plans that start with 300 pins and 2 signal layers to unlimited pins and unlimited layers.
This tool has been in practice for quite a while now and is still used by big electronic companies, hence providing an easy development process for end users. Eagle is an EDA (electronic design automation) software that is built from the ground up that offers tools for MCAD, true 3D modeling, collaboration, documentation, simulation, and manufacturing. The program allows electrical engineers to effortlessly work on schematic diagrams, components placement, and PCB routing.
Eagle collaborates with Fusion 360 to offer an unparalleled experience for data management, and mechanical and PCB design, streamlining the product development process for everyone to contribute with endless possibilities. Compared to other software, this program comes with a simple interface, where you don’t get inundated by the scores of tools, menus, and buttons. At the time of writing this article, Eagle offers paid plan for $545 per year, however, you can get in touch with the sales team to learn more about the financing options.
Streamline your design process with KiCAD EDA – an open-source platform to meet your design needs. From basic schematic to complex designs, the tool automates the design process to maximize your productivity and turn your imagination into reality. The official library houses tons of thousands of symbols to pick from or gives you the ability to create your custom symbols.
Moreover, you can verify your design with both electrical rules checker and an integrated SPICE simulator. Features like excellent visualization and a powerful interactive router ease your layout tasks with better control over the design. KiCad's 3D Viewer is a remarkable addition to the product that empowers you to examine the mechanical structure and visualize your finished product. Present your work with a built-in raytracer that features customizable lighting to develop realistic images. The program is compatible with a range of operating systems that you can select from the website. However, if your system is not listed on the mentioned OS, you can submit a merge request to get a product that resonates with your operating system settings.
Incorporated with a controlled autorouter and multi-page schematic, PCB Artist offers easy-to-use design solutions to electronic engineers. It features a components library with more than 500,000 parts allowing you to design your PCB with advanced components. The neat and sleek interface allows everyone to create circuit boards with little to no design knowledge. Even a beginner can get familiar with the tool with little effort.
With free live chat support, you can get technical support for your design needs. PCB Artist is committed to delivering flawless services to a range of organizations including small businesses, enterprises, non-profits, govt. and small businesses. Guides and tutorials are available to help you get a hold of the software and dig into designing the most complex parts.
After all this grind and drill, your PCB design is ready. You have carefully created Gerber and BOM files with the final ready-to-use board in mind. Now comes the manufacturing part. And you have tons of options to pick from. To keep you covered, we are describing one of the finest PCB manufacturing houses – PCBWay.
PCBWay is a China-based company that offers a range of services from basic PCB manufacturing, SMD stencil, and PCB assembly to 3D printing and CNC machining. What makes it unique from the competitors? Good question. The quality service at an economical price with brilliant customer support keeps this company above the rest.
They have a team of expert professionals that don’t compromise on quality and make sure every customer is heard, validated, and valued. No matter the product needs, they will help you and treat you like a part of the development stage so you never feel left out in the process.
And the best part – once you become a part of their community and become a regular customer, they give you a discount with every order. Moreover, you can invite friends with the referral link to join the company and can enjoy a 5% commission on each order. You’ll Beans as a reward for every purchase which will help you get parts from the PCBWay online shop. Additionally, you can share your projects on the website and engage a wider audience, and get acquainted with like-minded people.
It all starts with the neat and straightforward website interface that is flooded with information about the company and what they offer. Get familiar with the services they provide with a single click. No back-and-forth run of pages that make you overwhelmed with unnecessary information. You can click PCB Instant Quote option on the front page and start filling out the form with the parameters and the requirement of the final circuit board.
Some people are not adept at installing the components on the board. This is where PCBA service comes in handy. Once you click the instant quote option and scroll down you’ll see the Assembly service which gives you flexible options to either allow PCBWay to source components or you can provide them for the installation on the manufactured board.
PCBWay has established its name in the electronic industry with brilliant service and quality products. This time they have taken one step further. They have recently introduced CNC machining and 3D printing service to satisfy their clients with 3D modeling needs. To get those services, you can pick from the range of materials you want your product to be made from. 3D printing can manufacture parts within hours all the while maintaining accuracy and quality.
Technical support is readily available. If you struggle to make the final decision for your finished product, they will guide you with technical complications so you can get your desired product without errors. Once you upload the Gerber and production files, they will thoroughly review them before confirming the order, so you can fix issues in advance to speed up the production process.
Hope you get familiar with the features of the PCB software mentioned above.
It is wise to get the trial version of the software before going for the paid option. This way you can make an educated decision if this is what you’re looking for.
Once you successfully make your design, it’s time to get a manufacturing service to get your board in real time. And in our opinion, PCBWay is a decent choice to meet your manufacturing needs and properly execute your electronic projects.
That’s all for today. I’m positive that you’ve enjoyed reading this article. If you have any questions, you can ask me in the section below. I’d love to help you the best way I can. Thank you for reading the post.
Hello Learners! Welcome to the next lecture on deep learning. We have read the detailed introduction to deep learning and are moving forward with the introduction of the neural network. I am excited to tell you about the neural network because of the interesting and fantastic applications of neural networks in real life. Here are the topics of today that will be covered in this lecture:
What do we mean by the neural network?
How can we know about the structure of the neural network?
What are the basic types of neural networks?
What are some applications of these networks?
Give an example of a case where we are implementing neural networks.
Artificial intelligence has numerous features that make it special and magical in different ways, and we will be exploring many of them in different ways in this course. So, first of all, let us start with the introduction.
Have you ever observed that your favorite videos are shown to you on Facebook or other social media platforms? Or does the advertisement for the product you are searching for pop up when using the phone applications? All of these are because of the artificial intelligence of the system that is running in the backend of the app and we have discussed it many times before.
To understand well about the neural network, let us discuss the inspiration and the model that has resulted in the formation of the neural network. We all have the idea of the neural network of the human brain. We are the best creation because of the complex and the best brain that calculates, estimate, and predict the results of the repeating processes in a better way. The same is the case with the neural network of computer systems. We have discussed the basic structure of the neural network many times but now, it's time to know about the structure of the neural network.
I always wonder how the answering software and apps such as Siri reply to us accurately and without any delay. The answer to this question was found in the workings and architecture of the network working behind this beautiful voice. I do not want to start the biology class here, but for proper understanding, I have to discuss the process when we hear a voice and understand it through the brain.
When we hear a sound in the surroundings, it is first caught by the ear, and this raw audio is acting as an input for the nerve of the ear. These nerves then pass this signal to the next layers that in return, pass these signals further to the next layers.
The layer makes the result more refined and accurate. Finally, the last layer reaches the brain where the brain makes the decision to respond. The same process is used in the neural network. This statement will be clear to you how it works, but for that, you have to know about the seven types of neural networks.
Feed Forward Neural Network
Recurrent Neural Network
Radial Basis Function (RBF) Neural Network
Convolution Neural Network
Modular Neural Network
Kohonen Self-organizing Neural Network
Multi-Layer Perception
Let me start with the very basic type of neural network so that you may understand it slowly and gradually. The workings of this network are related to its name. The motion of the information or the nerves is unidirectional, and the process is ended in the output. In this type, there is no way to move a neural nerve backwards and train the previous layer. The basic application of this type of network is found in face recognition and related projects, people who are interested in the applications such as speech recognition prefer to choose this type of network to avoid the complexity.
This layer includes the radial function. The working of this function will be clearer when you know about the structure of this layer. Usually, this network has two layers:
Hidden Layer
Output Layer
The radial function is present in the hidden layer. The function is proved helpful in reasonable interpolation during the process in which the data is fitted into the layers. The layer works by measuring the distance of the nerve from the distance of the central part of the network. For the best implementation, this network checks for all types of data points and groups similar data points. In this way, this type of network can be used to make the systems such as power restoration.
As you can guess from the name of this network, it has the ability to recur. It is my favourite type of neural network because it learns from the previous layer, and the data is used to predict the output in a precise way. This is one of the main layers, and its work has been discussed many times in this tutorial.
Contrary to the first type of neural network that we have discussed before, the information can be recurred or moved to the previous layer. Here are some important points about this layer:
The first layer is a simple feed-forward layer. In other words, it can not move to the previous layer.
Each layer transmits the data to the next layer unidirectional in the first phase.
If during the transmission of data, the layer is predicting inaccurate results then it is the responsibility of the network to learn by repeating the saving of data.
The main building block of this network is the process of saving the data into the memory and then working automatically to get accurate results.
It is widely used in the text to speech conversations.
Now coming towards an important type of neural network that has a scope worldwide and engineers are working day and night in this field because of the interesting and beneficial applications of this network. Before going deep into the definition of this network, I must clarify what exactly a convolution is. It is the process of filtering the results in a way that can be used to enable activation. The filtering mechanism is repeating and therefore, it yields the perfect results all the time. Usually, it is used in image processing, natural language processing, and similar tasks because it breaks the image into parts and then represents the results according to the choice of the user. It is one of the classical techniques that are used for different purposes when people are working on images, videos, or other related projects. For example, if you want to find the edges or details of the images to replace or edit them in a better way, then this technique will be helpful all the time because, through it, you can play with the images and the components of the images as we are using the pixels for our purpose. If these things seem difficult or complex to you at the moment, do not worry, because all the things will be cleared with the passage of time.
Modularity is considered the basic building block of the neural network. It is the process of dividing complex tasks into different modules or parts and solving them individually so that in the end, the results may be combined together and, finally, we get the accurate ending. It is a faster way of working. You can understand well by considering the example of the human brain, which is divided into the left and right sides and, therefore, can work simultaneously. There are different tasks that are assigned to each part and they work best in their duties.
Random input vectors are fed into a discrete map of neurons. Dimensions and planes are other names for vectors. Its applications include recognizing patterns in data, such as in medical analysis.
Here, I am now discussing the type of network that has more than one hidden layer. It is a little bit complex, but if you have an idea of the cases discussed before, you will easily understand this one. The purpose of using this network is to provide the type of data that is not linearly separable. There are several functions that can be used while working on this network. The interesting thing about this network is, it consists of a non-linear activation function for work.
Here n is the number of the last layer, which can be from 0 to any number according to the complexity of the network. A more useful network contains more layers and in return, is more useful usually.
At the moment, I want to discuss an example of this network because it has a slightly different type of work, and I hope that with the help of this example, you will get the concept of what I am trying to teach you, Consider the case where we want to talk to the personal assistance in our divide and on the practical implementation, it is a simple task of few seconds yet at the backend, there is a long procedure that is being followed so that you may get the required results. Here is a simple sentence that is to be asked of the personal assistant.
The first step of the network is to divide the whole sentence into words so that these can be scanned easily.
We all know that each word has a specific pattern of sound, and therefore, the word is then sampled into the discrete sound waves. Let me revise that "discrete sound signals are the ones that consists of discontinuous points. We get the results in the following form.
Now, it is the time when the system further divides the single word into a single alphabet. As you can see in the image given above, each alphabet has a specific amplitude. In this way, the values of different alphabets are obtained and this data is then stored in the array.
In the next step, the whole data obtained is then fed into the input layer of the network and here the working of recurrent neural network stars. By passing through the input layer, each weight of the alphabet is assigned to the interconnection between the input layer and the hidden layer of the network. At this moment, we need a transfer function that is calculated with the help of the following formula:
In the hidden layers, the weights get assigned to the hidden layers. This process continues for all types of layers, and as we know, the output of the first layer is used as the input by the second layer, and this process continues until the last layer. But keep in mind, this process is only for the hidden layers.
While using speech recognition with the help of the neural network, we use different types of terms, and some of them are :
Acoustic model
Lexicon
By the same token, there are different types of exits. I am not going to explain these terms right now because it is unnecessary to discuss them at the moment.
In the end, we are reaching the conclusion that neural networks are amazing to learn and interesting to understand while working with deep learning. You will get all the necessary information about these networks in this course. We started with the basic introduction of the neural network and saw the structure of the network in detail. Moreover, we found the types of neural networks in detail and all the basic networks are discussed here so that you may compare well why we are using these networks and what type of network will be best for you for learning and training. We suggest feed-forward neural networks for basic use, and you will see the reason behind this suggestion in our coming lecture. Till then, you have to search for other networks; if you find any, discuss them with us. In the next lecture, you will learn about deep learning and neural networks, so stay tuned with us.
Hello students, welcome to the second tutorial on deep learning in the first one, we have learned the simplest but basic introduction of deep learning to have a solid base about what we are actually going to do with deep learning. In the present lecture, we will take this to the advanced level and will learn the introduction with the intention of learning more and more about the introduction and understanding what we want to learn and how will we implement the concepts easily. So, here is a quick glance at the concepts that will be cleared today:
What do we mean by Deep learning?
What is the structure of calculation in neural networks?
How can you examine the Neural Networks?
What are some platforms of deep learning?
Why did we choose TensorFlow?
How can you work with TensorFlow?
As we have said earlier, artificial intelligence is the field that works to take the tasks and work of the human being from the computer that is, the computer act like the human. Computers are expected to think. It is a revolutionary branch of science that deals with the feeding of the intelligence of a human being in the computer for the welfare of mankind and with the passage of time, it is proving itself successful in the real world. With the advancement and enhancement of the complexity of artificial intelligence, the field is divided into different branches therefore, AI has a branch named machine learning and then it is subdivided into deep learning. The main focus of this course is deep learning therefore, we describe it in detail.
All this discussion was to tell you about the basics and the important introduction of deep learning and if it is still not clear to you then do not worry because by getting the information about it throughout the series you will start practising, things will be cleared here.
We have seen the discussion about the neural network before but it was just related to the concept of the weights in the neural network. In the present tutorial, you are going to see another concept about the neural network and the proper working on these networks will be started in the coming sessions.
The neural network is just like the multiple layers of the human brain that contain the input layer where the data is fed in different ways according to the requirement of the network. Moreover, the multiple layers are responsible for the proper training process again and again in such a way that every second layer is more mature and accurate than the first one and in this way, the last one has the most accurate data among the others and this is then fed into the output layer where we can get the results. All these processes occur in a sequence while we are working on the neural network and it is listed below:
In the first step, the product is calculated by keeping the weight of each channel and the value of the input in mind.
The sum of all the products obtained is then calculated and this is called the weighted sum of the layers.
In the next step, the bias of added to the resultant calculation according to the estimation of the neural network.
In the final step, the sum is then subjected to the particular function that is named the activation function.
As we have mentioned the steps, we know that it is not clear that much now in your mind therefore, we are discussing an example of this. By keeping all the steps in mind, we are now working on the practical application of working on a neural network.
We are considering the example in which the 28*28 pixel of an image is observed for its shape. Each pixel is considered as the input for the neurons of the first layer.
The first step is then calculated by using the formula given below:
x1*w1 + x2*w2 + b1
We have taken the simple text example but added the process of each layer with the product of corresponding weight occurs till you reach the last layer. The next step here is calculated as:
Φ(x1* w1 + x2*w2 + b1)
Here the Φ sign indicates the presence of the activation function as mentioned above in the steps. Now, these steps are performed again and again according to the complexity of the task and training until all the inner layers are calculated well and the results are reached by the output layer and we get the results. An interesting thing here is the presence of a single neuron in the last layer that contain the result of the calculation to be shown as the output. The detail of how the neural network work will be discussed in the next tutorials. For now, just understand the outputs.
It seems that you are now ready to move forward. Till now, you were learning what is deep learning and why it is useful but now, you are going to learn how can you use deep learning for different tasks. If you are a programmer you must know that there are different platforms that provide the platform for the compilation ad working of the programming language and these are specific to the limited programming languages.
For deep learning, there are certain platforms that are used worldwide and the most important one will be disused here:
TensorFlow is one of the most powerful platforms specially designed for machine learning and deep learning and it is a free source software library. Although it is a multi-purpose platform it has special features that are used to train machine learning and deep learning projects. You can have an idea of its popularity by the fact that it is presented by the google brain team and it contains the perfect functionality.
The full form of DL4J is Deep Learning For You and as you can guess, it is specialized for deep learning and is written in java for the java virtual machine. Many people prefer this library because of its lightweight and specific design for deep learning.
If you are wondering if we are talking about a device then it is not true. Torch is an open-source library for deep learning and it provides the algorithm for the working of deep learning projects.
It is the API that is written in the TensorFlow deep learning platform. It is used for the best practice and experience for deep learning experts. The purpose of using this API is to have a clean, easy, and more reusable result of the code in less time. You will see this with the help of examples in the next sessions.
As you can guess, we have chosen TensorFlow for our tutorial and lectures because of some important reasons that we’ll share with you. For these classes, I have tested a lot of software that was specially designed for deep learning as I have mentioned some of them. Yet, I found TensorFlow most suitable for our task and therefore, I want to tell you the core reasons behind this choice.
You will see that the training and other phases depend upon different models this is super easy to do with the help of TensorFlow. The main reason is, it provides multi-level models so that the one that suits you best will be present for you all the time according to the complexity and working of your project. As we have mentioned earlier, the Keras API is used with TensorFlow therefore, the high-level performance of both of them results in marvelous projects.
In machine learning and related branches such as deep learning, production is made easiest with the help of the fantastic performance of TensorFlow. It always provides the perfect path towards production and results. It also allows us to have the independence of using different languages and platforms and therefore, it attracts a large audience towards itself.
What is more important in research than perfect experimentation? Tensorflow is always here for the multiple types of experimentation and research options so that you may test your project in different ways and get the best results through a single software. The advantage of the presence of multiple APIs and the availability of handling several languages makes it best for experimentation.
Another advantage of choosing it for the tutorial is, it supports powerful add-on libraries and interesting models, therefore, it will become easy for us to experiment more and explain the results in a different way to approach all types of students.
These are some highlighted points that attracted us towards this software but overall, it has a lot in it and you will understand the points when you will see all of them in action in this series, We will be working totally on the TensorFlow and will discuss each and every step in detail without skipping any single step. The practical performance of each step will lead you to move forward with more interest and to understand each concept, we will use different examples. Yet, I have an idea that more explanation makes the discussion confusing so there will be a balance in the explanation.
As we have described before, TensorFlow is introduced by the google brain team and it was closely collaborating with the machine learning research organization.
TensorFlow is the software library that works in the collaboration with some other libraries for the best implementations of deep learning projects and you will see its work and projects in detail soon when we will move forward in this series. There are different libraries that are important to attach with the TensorFlow when we try to make it ready for the working of deep learning. Some of them are listed below:
Python package Index
Django
Scipy
Numpy
Following are the steps that are used to work on the TensorFlow. Yet, keep in mind, these steps vary according to the need of the time and type of the project.
Import the libraries in TensorFlow.
Assign paths of data sets. It is important to provide the path to column variables as well.
Create the test and train data and for this, use the Pandas library.
In the next step, the shape of the test and train data is printed.
For the training data sheet, the data type is printed for each column.
Set the label column values of the data.
You have to cunt the total number of unique values related to the datasheets.
Add features for the different types of variables.
Built the relationship for the features with a bucket.
Add features for the proper definition of the features.
Train and evaluate the model.
Predict the model and set the output to the test set.
Do not worry if these steps are new to you or if they are confusing for you at the moment, you will see the detail of them in the coming future. Moreover, Some of these steps may be different for different people because coding is a vast area and therefore, it has multiple ways to work in a different environments. So, today we learnt several concepts through this single lecture. We have revised and added some other information in the introduction of deep learning, We also have a discussion about neural networks and saw it working. Moreover, the platforms of deep learning were discussed here out of which, we chose the tensor flow and the reason for this choice was also explained well with the help of different points. In the end, we saw the brief procedure to train and predict the project and you will see all these concepts in action in the coming lectures so stay tuned with us.
Hello friends, I hope you all are having fun. Today, we are bringing you one of the most advanced and trending courses named "Deep Learning". Today, I am sharing the first tutorial, so we will discuss the basic Introduction to Deep Learning, and in my upcoming lectures, we will explore complex concepts related to it. Deep Learning has an extensive range of applications and trends and is normally used in advanced research. So, no matter which field you belong to, you can easily understand all the details with simple reading and practicing. So without any further delay, let me show you the topics that we are going to cover today:
So, let's get started:
Deep Learning is considered a branch of Machine Learning which itself comes under Artificial Intelligence. So, let's have a look at these two cornerstone concepts in the computing world:
Artificial intelligence or AI is the science/engineering behind the creation of intelligent machines, particularly intelligent computer programs. It enables computers to understand human intelligence and behave like it. AI has a broader expertise and does not have to limit itself to biologically observable methods as in deep learning.
It is a field that combines the computer and the robust data set to solve the problems of life. Moreover, it is important here to mention the definition of machine learning:
Machine learning is the branch of artificial intelligence, it learns from the experience and data fed into it and works intelligently on its own without the instruction of the human being. For instance, the news feed that arises on Facebook is directed by machine learning on the data so the content of the user’s choice appears every time when they scroll Facebook. As you put more and more data into the machine, it will learn in a better way to provide intelligent results.
Deep learning uses neural network techniques to analyze the data. The best way to describe the neural network is to relate it to the cells of the brain. A neural network is the layers of nodes much like the network in our brain and all these nodes are connected to each other either directly or indirectly. Neural Network has multiple layers to refine the output and it gets deeper as the number of layers increases.
In the human brain, each neuron is able to receive hundreds or thousands of signals from the other neurons and selects signals based on priority. Similarly, in deep learning networks, the signals travel from node to node according to the weight assigned to them. In this way, the neurons with the heavyweight have more effect on the adjacent layer. This process flows through all the layers and the final layer compiles the weight of the resultant and produces the output.
The human brain learns from its experience i.e. as you get old, you get wiser. Similarly, deep learning has the ability to learn from its mistakes and keeps on evolving.
The process of network formation and its working is so complex that it requires powerful machines and computers to perform complex mathematical operations and calculations. Even if you have a powerful tool and computer, it takes weeks to train the neurons.
Another thing that is important to mention here is that neural network works on binary numbers only. So, when the data is being processed, it classifies the answers as a series of binary numbers and performs highly complex calculations. Face recognition is the best example in this regard because in this process, the machine examines the edges and lines of the face to be recognized and it also saves the information of more significant facial parts.
Understanding the layers in deep learning is important to get an idea of the complex structure of deep learning neural networks. The neurons in the deep learning architecture are not scattered but are arranged in a civilized format in different layers. These layers are broadly classified into three groups:
The working of each neural network in deep learning depends on the arrangement and structure of these layers. Here is a general overview of each layer:
This is the first layer of the neural network and takes the information in the form of raw data. The data may be in the form of text, values, images, or other formats and may be arranged in large datasets. This layer takes the data and applies processing to make it ready for the hidden layers. Every neural network can have one or many input layers.
The main processing of data occurs in the hidden layers of the neural networks. These are crucial layers because they provide the processing necessary to learn the complex relationship between the input feature layer and the required output layer.
There are a great number of neurons in the hidden layers, and the number of hidden layers varies according to the complexity of the task and the type of neural network. These layers perform operations such as improved accuracy, feature extraction, representation learning, etc.
These are the final layers responsible for the production of the network’s predictions. A neural network may have one or more output layers, and the activation function of the network depends on the type of problem to be solved in the network. One such example is the softmax activation function, which divides the output according to the probability distribution over different classes.
To understand well, usually, the example of object or person recognition is explained to the students. Let's say, we want to recognize or detect a cat in the picture. We know that different races of cats do not look alike. Some of them are fluffy, some are short, and some are thin in appearance. By the same token, the different angles of the images of the same cat will not be the same and the computer may be confused to recognize these cases. Therefore, the training process includes the amount of light and the shadow of the object in the observation.
In order to train a deep-learning machine to recognize a cat, the following main procedures are included:
In the modern computing world, deep learning has a wide range of applications in almost every field. We have mentioned a few examples in our above discussion i.e. Facebook newsfeed and driverless cars. Let's have a look at a few other services utilizing deep learning techniques:
Digital assistants i.e. voice recognition, facial recognition, text-to-speech conversion, voice-to-text conversion, language translation, plagiarism checker etc. are using deep learning techniques to recognize the voice or to process languages. Grammarly, Copyscape, Ahrefs etc. are a few real-life examples using Deep Learning techniques.
Paypal is using deep learning to prevent fraud and illegal transactions. This is one of the most common examples of the banking facility that I am mentioning here otherwise, there are different applications in security and privacy that are connected to deep learning.
Some object recognition applications such as CamFind allow the user to use pictures of the objects and with the help of mobile vision technology, these apps can easily understand what type of objects have been captured.
Another major application of deep learning is the self-driven car that will not only be able to minus the need for drivers in the car but are also able to avoid traffic jams and road accidents. It is an important topic and most companies are working day and night in deep learning to get the perfect results.
As we have said earlier, deep learning is the process of training the computer like humans, therefore, people are working best to train the machine so they can easily examine trends and predict future outcomes such as stock marketing and weather prediction. Isn't it helpful that your computer or the assistant tells you about the stock marketing rates and predicts the best option to be picked for your investments?
In the medical field, where doctors and experts are working hard to save the lives of people, there is no need to explain the importance of technologies such as deep learning that can predict and control the values in body changes and suggest the best remedy and solution of the problem being observed.
Once you have read about the application and the working process of deep learning, you must be thinking if it is the future, why choose deep learning as your career? Let me tell you, if you excel in deep learning, the future is yours. The careers in deep learning are not yet declared but in the coming few years, you are going to see tremendous exposure to deep learning and related subjects and if you are an expert in it, you will be in demand all the time because it is coming with the endless opportunities. Machine learning engineers are in high demand because neither data scientists nor software engineers possess the necessary skills.
To fill the void, the role of machine learning engineer has evolved. According to experts, the deep learning developer will be one of the most highly paid ones in the future. I hope, in the future, almost all fields will require the involvement of deep learning in their network to work easily and to get more and more efficient work without the involvement of human beings. In simple words, with the help of a neural network, we are replacing human beings with machines and these machines will be more accurate.
So in this way, we have introduced you to the amazing and interesting sub-branch of machine learning that is connected to artificial intelligence. We have seen the working and procedures of deep learning and to understand well, we have seen the examples of deep learning processes. Moreover, the trends and techniques discussed related to deep learning where we have seen that most popular apps and websites are using deep learning to make their platforms more user-friendly and exciting. In the end, we saw the careers and professions of deep learning for the motivation of the students. I know at this step, you will have many questions in your mind but do not worry because I am going to explain everything without skipping a single concept and will learn new things with you while explaining to you. So stay with us for more interesting lectures.