Hexapod Simulation in MATLAB

Hello fiends, hope you all are fine and having fun with your lives. In today's tutorial, I am going to share a new project designed in MATLAB and named as Hexapod Simulation in MATLAB. We all know about the Hexapod, its a special kind of robot which has six legs. Hexa is used for six so its quite obvious that hexapod has six legs on it.

I have designed this project on a client's request and today I thought to share it with you guys. Because this Hexapod simulation in MATLAB is designed after a lot of efforts by our TEP team that's why this simulation is not free to download but we have placed a small price on it so that engineering students can buy it easily. So, let's get started with Hexapod Simulation in MATLAB.

Hexapod Simulation in MATLAB

  • First of all, you need to buy this Hexapod Simulation in MATLAB by clicking the below button:

Buy This Simulation

  • When you buy this project, you will get three files in it which are named as:
  • Hexapod.m
  • RobotMotion.m
  • Robot Design.m
  • You need to open the first one named as Hexapod.m, this is the Main file for this Hexapod Simulation in MATLAB.
  • It has the below code in it:
clc;
clearvars;
close all;
imtool close all;
subplot(6,6,1:30)
xlabel('x'); ylabel('y'); zlabel('z'); 
axis([-150 200 -50 150 0 150])
grid on
hold on

Inc = 0;
firstLen = 50;
secondLen = 50;
stepSize = 20;
StepsTaken = 1;
y1 = 0;
y2 = 1;

RobotDesign(firstLen,secondLen)
subplot(6,6,31)
subplot(6,6,32)
subplot(6,6,33)
subplot(6,6,34)
subplot(6,6,35)
subplot(6,6,36)
OldInc = 0;
for b = 0:1:StepsTaken-1

subplot(6,6,1:30)
[Inc OldInc y1 y2]= RobotMotion(firstLen,secondLen,stepSize,Inc,OldInc, y1, y2);

end
  • As you can see in the above code, we can set different parameters like lengths of legs and the steps it can take etc.
  • Let me give a slight overview of Hexapod and how it works. So, have a look at below figure:
  • I have designed a small hexapod and I have colored its legs.
  • The red Color legs are called Gate 1 while the green color legs are called Gate 2.
  • Now, when a Hexapod moves its first three legs (Gate 1) which I have designed in Red Color are first moved in upward motion and after that the Gate 1 moves in the Forward Direction and then finally Gate 1 moves in downward direction.
  • After that the Gate 2 Legs are move in upward Direction and then Gate 2 Legs are moved in Forward Direction and finally Gate 2 moves in downward direction.
  • Now when all legs are moved in Forward direction then finally the Robot Body is moved in Forward Direction.
  • Let me summarize these steps:
  1. Gate 1 (Red Legs) moves in Upward Direction.
  2. Gate 1 (Red Legs) moves in Forward Direction.
  3. Gate 1 (Red Legs) moves in Downward Direction.
  4. Gate 2 (Green Legs) moves in Upward Direction.
  5. Gate 2 (Green Legs) moves in Forward Direction.
  6. Gate 2 (Green Legs) moves in Downward Direction.
  7. Robot Body moves in Forward Direction.
  • These are the 7 steps a hexapod takes to move a single step Forward.
  • Now in the above code, I have used some variables which are:
  1. firstLen = 50;
  2. secondLen = 50;
  3. stepSize = 20;
  4. StepsTaken = 1;
 
  • firstLen is the length of Gate 1 legs which I have set 50 rite now.
  • secondLen is the length of Gate 2 legs.
  • stepSize is how big the step should be.
  • StepsTaken is how much steps it should take.
  • Now when you run the simulation then the first thing you will get is shown in below figure:
  • AS I have given StepsTaken = 1 so it will just take one step, you can change it though and when it takes one step the final position of robot will be as shown in below figure:
  • Now, if you compare the above two figures then you can see the starting position of Hexapod in x direction was 0 but when it took first step then now its position is 20.
  • The below four graphs are showing the angles of your robot gates in radians.
  • The below video will explain this project in detail:
That's all for today. I hope you have liked this Hexapod simulation in MATLAB. Before buying this project you must watch this video so that you have a clear overview of this Hexapod simulation in MATLAB.

Getting Started with myRio

Hello friends, I hope you all are fine and having fun with your lives. Today, I am going to share a tutorial on new board and as you can see in the title, this new board is named as Myrio. So, today, we are gonna have a look at getting started with Myrio. NI myRIO is a combination of dual-core ARM Cortexā„¢-A9 real-time processing and Xilinx FPGA customizable I/O. It is specially designed for engineering students by National Instruments and is a cheap as well as an awesome piece for building your dream projects.

Recently I got a chance to work on this NI Myrio board and I really enjoyed while working on them as they not only awesome but also easy in programming. Moreover, because of its awesome speed you can ask it to do any kind of embedded work. You can read more about myRio on the Official Site of National Instruments. Today, I am not gonna design any project on this NI myRio board, instead I am gonna give you a quick overview of getting started with myRio. So, what's the delay :P Let's have a look at getting started with myRio board.

Getting Started with myRio

  • I ordered my myRio board about a month ago and I got it delivered within 10 days.
  • Below are the items which I have received in the myRio box:
    • myRio board itself.
    • USB Cable to plug myRio board with computer.
    • Three CDs which contains the software.
    • A manual having the instructions for myRio use.
  • If you have also ordered the myRio board then you must have also received the same things in the box.
  • Now first of all, what you need to do is to arrange a 12V adapter for power up your Myrio board.
  • The one I have used is of 12V and 1.5A.
Note:
  • There are different models of myRio available online and the one I received is myRio 1900, which has the Wifi functionality in it.
  • There's also another myRio board called myRio 1950 which doesn't has the WiFi functionality in it so if you got that one then there's no need to be worried as both boards works exactly the same so if you have any other model then still you can follow today's tutorial as its valid for all myRio boards.
  • Now I assume that you have arranged a 12V adapter and ready to plug it in your myRio board. :P
  • So, why are you waiting ??? :P Simply plug you adapter in the myRio board and two lights on it will get on as shown in the below figure:
  • So, you can see in the above figure that when I plugged the adapter in my myrio, the Power LED and the Status LED turned ON.
  • After some time the status LED will turned OFF.
  • Now next thing you need to do is to connect your USB cable with your computer from one side and with myRio from the other side.
  • As soon as you connect the USB cable, the myRio will start installing the driver on your computer. It will take some time.
  • Once the driver is installed, then a pop up window will open up as shown in below figure:
  • Now, if you got this pop up window then it means your myRio driver has installed successfully.
  • This window is giving you some information about your myRio board like mine is NI myRio 1900, yours could be 1950.
  • Now next thing you need to do is to click the first button which says "Launch the Getting Started Wizard".
  • Now when you click it, a new window will open up as shown in below figure:
  • Now in the above window, it is showing the connected NI myRio device, if you can't see your device then click on the Refresh button.
  • If your device is listed as mine then you need to press the Next Button.
  • When you press the Next button a new window will pop up as shown in below figure:
  • In the above window, you can change the name of your myRio board, if you want but I have left it as it is and clicked the Next button and below window opened up:
  • Now finally we have reached the control window, from this window we are gonna control all the four LEDs labelled as LED0, LE1, LED2 and LED 3 and also gonna get notification for the button pressed and will also get values for X, Y and Z axis.
  • IF your check your myRio board, rite now then you will see that LED2 and LED3 are ON now and you can see in above figure that LED2 and LED3 are green.
  • Now you can click these buttons to turn your respective LED ON or OFF.
  • Similarly when you press the button on your myRio board then this black small circle will go green.
  • Moreover, if you change the orientation of your myRio board then its axes values will also change as it has built in gyroscope.
  • You can check more detail on this below video:

So, that's all about getting started with Myrio. Today, we have seen how to get started with your new NI myRio board and also how to control the built in LEDs, button and gyroscope of myRio board. I hope now you can play a little with your myRio board. That's all for today. In the coming post, I am gonna discuss How to Configure NI myRIO on Wifi. So, till then take care and have fun !!! :)

How to Install and Download Proteus Software

Hello everyone, I hope you all are fine and having fun. Today, I am not going to share a project. Instead, I am gonna share a tutorial in which I will teach you How to download Proteus and install it. It's going to be a quick tutorial because there's not much in it to say. You know Proteus is a Paid software and you must pay the company because they have put really great effort into designing this software. So, if you can afford then you must buy the latest version of Proteus software from their Official Website.

In today's post, I am going to share the Full version of Proteus software and it is Proteus 7 Professional, I am sharing it for engineering students. I hope you are going to enjoy this software its not only free but also complete and the Professional version. So, let's get started with How to Install and Download Proteus Software. Please watch this youTube video for better guidance:

How to Install and Download Proteus Software ???

  • First of all, download the Proteus 7 Professional software by clicking the below button:
Proteus 7 Professional Free download Proteus 8.5 Professional Free download

  • Once you downloaded the files, now unrar them and place them in some folder.
  • The next thing you need to do is to run the Setup file from the package and it will start to install.
  • Use the recommended settings and once it's done then it will ask about the key.
  • The default key is given in the package so browse it and upload it to the software.
  • Once the key is uploaded, now complete the setup and you will get yourself a Proteus software.
  • After the completion, one more thing you need to do is to install the software given in the next folder.
  • In the path selection, gave it the path to your Proteus software, which you just installed.
  • Now hit run and after it's complete, your Proteus will become registered.
  • I have made a small video that will explain the above procedure of How to Install and Download Proteus software in a better way.
So, that's all for today, I hope you guys are gonna enjoy this Proteus software free download and gonna write about it in the comments. That's all for today, will meet you guys in the next tutorial. Till then take care !!! :)

DTMF Decoder using MATLAB

Hello friends, hope you all are fine and having fun with your lives. Today, I am going to share a project named as DTMF Decoder using MATLAB. In this project, I have designed a keypad in MATLAB using the GUI functionality of MATLAB. After designing the keypad, I have assigned a tune to each of these buttons. Obviously the tune attached to each button is different and when we press any of these buttons, then the MATLAB recognizes the respective button.

This project is designed in MATLAB and I have tested it on MATLAB 2009 and MATLAB 2014 and it works fine on both of them. Code is given below in this tutorial for download. f you got problem in it then ask in comments and I will try to resolve them. So, let's get started with DTMF decoder in MATLAB.

DTMF Decoder using MATLAB

  • You can download the complete code by clicking the below button:
Download Project Files

  • In this download package, you will get three files and you need to run the file named as decoder.m.
  • When you run the file named as decoder.m, it will start the GUI which will look something as shown in below figure:
  • That's the GUI used for DTMF Decoder using MATLAB.
  • You can see a keypad is shown in the above GUI, now I have assigned a specific tune to each of these buttons and the code for assigning this tune is as follows:
t=[0:0.000125:.05];
fs=8000;
f1=770;f2=1477;
y1=.25*sin(2*pi*f1*t);
y2=.25*sin(2*pi*f2*t);
y=y1+y2;sound(y,fs)
  • So, you can see in the above code that I have generated a sine wave and then created a sound using that sine wave.
  • So, we have such sounds assigned to each of these buttons.
  • Now once button is pressed, the respective sound will be activated and rite after that sound, I have added a subroutine for decoding that sound.
  • This subroutine is placed in a separate file named as subdecode.m.
  • This subdecode.m is responsible for DTMF decoding and its code is as follows:
axes(handles.fig1);
plot(t,y);
set(handles.fig1,'XMinorTick','on');
title('DTMF Input');xlabel('Time');
ylabel('Amplitude');grid;

rmain=2048*2;rmag=1024*2;
cn=9;cr=0.5;
cl=.25;ch=.28;
[b,a]=cheby1(cn,cr,cl);
yfilt1=filter(b,a,y);
h2=fft(yfilt1,rmain);
hmag2=abs(h2(1:rmag));
[b1,a1]=cheby1(cn,cr,ch,'high');
yfilt2=filter(b1,a1,y);
h3=fft(yfilt2,rmain);
hmag3=abs(h3(1:rmag));

axes(handles.fig2);
plot(yfilt1);grid;
title('Filtered Low Freq. Signal');
xlabel('Time');ylabel('Amplitude');

axes(handles.fig3);
plot(yfilt2);grid;
title('Filtered High Freq. Signal');
xlabel('Time');ylabel('Amplitude');

hlow=fft(yfilt1,rmain);
hmaglow=abs(hlow);
axes(handles.fig4);
plot(hmaglow(1:rmag));
title('FFT Low Pass');grid;
xlabel('Time');ylabel('Amplitude');

hhigh=fft(yfilt2,rmain);
hmaghigh=abs(hhigh);
axes(handles.fig5);
plot(hmaghigh(1:rmag));
title('FFT High Pass');grid;
xlabel('Time');ylabel('Amplitude');

m=max(abs(hmag2));n=max(abs(hmag3));
o=find(m==hmag2);p=find(n==hmag3);
j=((o-1)*fs)/rmain;
k=((p-1)*fs)/rmain;

if j<=732.59 & k<=1270.91;
   disp('---> Key Pressed is 1');
   elseif j<=732.59 & k<=1404.73;
      disp('---> Key Pressed is 2');
   elseif j<=732.59 & k<=1553.04;
      disp('---> Key Pressed is 3');
   elseif j<=732.59 & k>1553.05;
      disp('---> Key Pressed is A');
   elseif j<=809.96 & k<=1270.91;   
      disp('---> Key Pressed is 4');
   elseif j<=809.96 & k<=1404.73;
      disp('---> Key Pressed is 5');
   elseif j<=809.96 & k<=1553.04;
      disp('---> Key Pressed is 6');   
   elseif j<=809.96 & k>1553.05;
      disp('---> Key Pressed is B');  
   elseif j<=895.39 & k<=1270.91;
      disp('---> Key Pressed is 7');
   elseif j<=895.39 & k<=1404.73;
      disp('---> Key Pressed is 8');
   elseif j<=895.39 & k<=1553.04;
      disp('---> Key Pressed is 9');
   elseif j<=895.39 & k>1553.05;      
      disp('---> Key Pressed is C');   
   elseif j>895.40 & k<=1270.91;   
      disp('---> Key Pressed is *');
   elseif j>895.40 & k<=1404.73;  
      disp('---> Key Pressed is 0');
   elseif j>895.40 & k<=1553.04;  
      disp('---> Key Pressed is #');
   elseif j>895.40 & k>1553.05;  
      disp('---> Key Pressed is D');
end
  • Now you can see in this code we are applying FFT on each of these sound signals and then comparing them to get our required button press.
  • Now, when I press any of these buttons then the GUI will look something as shown in below figure:
  • You can see in the above figure that first graph is showing the DTMF input, which is actual signal which I have converted to sound on button press.
  • The second graph is showing the Filtered Low Frequency Signal while the third one is showing the Filtered High Frequency Signal.
  • The two graphs on the right side are showing the Amplitude of FFT Low Pass and FFT High Pass.
  • Now if you have a look at the Command window of MATLAB then it will give you the button pressed as shown in below figure:
  • These are the buttons which I have pressed while testing it and it has given me each time which button is pressed.
  • Here's the video which will give you better idea of How this DTMF decoder using MATLAB is working.
That's all about DTMF Decoder using MATLAB. If you have any questions, then ask in comments and I will try my best to resolve them. Till next tutorial take care and have fun !!! :)

LabView Projects

Hello friends, hope you all are fine and having fun with your lives. Today, I am going to share all the LabView Projects, posted on our blog. These LabView projects are entirely designed by the TEP team and I hope they will help you in some way. Rite now the list is quite small but I am gonna post more tutorials and projects related to LabView soon. So, keep visiting or subscribe us via email so that you get these exciting tutorials straight to your inbox.

Moreover, LabView is really a difficult software and it really took us a lot of time in designing these projects so other blogger are more than welcome to share our projects on their blog but do mention the respective link from where you copied as a favor. I am gonna share the complete list here. The benefit of doing this is that it will also organize the projects and you guys can get all of them in one place. So, anyways, let's get started with LabView Projects.

LabView Projects

First of all, you should read these basic LabView Tutorial. In these tutorial, I have given the Introduction of LabView and have explained from very basics how to start working with LabView. So, I would suggest you if you are new to LabView then read these LabView tutorials one by one:
Getting Started with LabView
Basic LabView Projects
These are the basic LabView Projects. So, if you have read the above mentioned basic LabView Tutorials then you should have a look at these basic LabView Projects:
Embedded LabView Projects
Here, I have given few Embedded LabView Projects which we have designed in our lab. These Simulations are given for download in each of these tutorials. So, if you wanna communicate with your Embedded device via LabView then you should read them:
NI myRIO Labview Projects
NI myRIO is an amazing Embedded module which is FPGa supported and is designed by National Instruments itself. I have worked on it during my projects so I have shared few tutorials on NI myRIO, which are as follows:

Interfacing of Multiple DS18B20 Arduino

Hello everyone, hope you all are fine and having fun with your lives. Today, I am going to share a new project named as Interfacing of Multiple Temperature sensors DS18B20 arduino. I have already shared a tutorial on Interfacing of Temperature Senor 18B20 with Arduino but in that tutorial, we have seen how to connect one temperature sensor DS18B20 arduino. But today, I am gonna interface multiple temperature sensors DS18B20 Arduino. For this project I have used two sensors but you can use more if you want.

Temperature sensor DS18B20 is a one wire temperature sensor means we can get its data through a single wire and we can connect as many as we want temperature sensors with this single wire and can call them through their addressing. Each temperature sensor is allotted an address and when we call that address, we get its value. So, in today's project, I have used two sensors and displayed their values on LCD. Both of these sensors are connected with single wire. I am not using both DS18B20 sensors instead I am using one 18B20 and one 18S20 temperature sensors just to give a taste, but you can connect any kind of Dallas Temperature sensor. I have designed the simulation in Proteus and the simulation is also available for download. Anyways let's get started with interfacing of Multiple Temperature Sensors DS18B20 arduino.

Interfacing of Multiple DS18B20 Arduino

  • You can download the complete simulation along with progrmming code by clicking the below button:

Download Simulation and Code

  • Now, let's design our simulation because its always a good practice to design from basics. So, open your Proteus software and design the below circuit diagram:
  • Now, as you can see in the above figure, I have used two temperature sensors DS18B20 Arduino is used as a micrcontroller and LCD is used for displaying the values of these two temperature sensors.
  • Both of these temperature sensors are connected with a single wire of Arduino board which is Pin # 2.
  • So, now using this single wire we can connect as many temerature sensors as we want.
  • So, now next thing we need to do is to Get the Hex File from Arduino Software. So for that place the below code in your Arduino software and get your hex file.
#include <LiquidCrystal.h>
#include <OneWire.h>

OneWire  ds(2);  // pin 2
LiquidCrystal lcd(13,12,11,10,9,8);

void setup(void) {
  lcd.begin(20,4);
  lcd.print("Temp 1 = ");
  lcd.setCursor(0,1);
  lcd.print("Temp 2 = ");

  lcd.setCursor(1,2);
  lcd.print("www.TheEngineering");
  lcd.setCursor(4,3);
  lcd.print("Projects.com");
}


void loop(void) {
  byte i = 0;
  byte data[9];
  byte addr[8];
  int temp;
  boolean type;
  
  //get the addresses of Temperature Sensors
  if(!ds.search(addr)){
    return; 
  }
  
  switch(addr[0]){
   case 0x10: type = 1; break;//DS18S20
   case 0x22: type = 0; break;//DS1822
   case 0x28: type = 0; break;//DS18B20
   default: break; 
  }

  ds.reset();
  ds.select(addr);
  ds.write(0x44);
  delay(750);

  ds.reset();
  ds.select(addr);
  ds.write(0xBE);

  //Leitura
  for ( i = 0; i < 9; i++) {
    data[i] = ds.read();
  }
  
  if(!type){//DS18B20 ou DS1822
  
  lcd.setCursor(9,1);
  
    if((data[1]>>7)==1){
      data[1] = ~data[1];
      data[0] = (~data[0]) + 1;
      lcd.print("-"); 
    }
    else{
      lcd.print("+"); 
    }
    temp = (data[1]<<4) | (data[0]>>4);
    lcd.print(temp);
    lcd.print(".");
    temp = (data[0] & 0x0F) * 625;
    if(temp>625){
      lcd.print(temp);
    }
    else{
      lcd.print("0");
      lcd.print(temp);
    }
  }
  else{//DS18S20

  lcd.setCursor(9,0);
  
    if((data[1]>>7)==1){
      data[0] = ~data[0];
      lcd.print("-"); 
    }
    else{
      lcd.print("+"); 
    }
    temp = data[0]>>1;
    lcd.print(temp);
    lcd.print(".");
    lcd.print((data[0] & 0x01)*5);
    
  }
  lcd.print(" ");
  lcd.write(223);// degree symbol
  lcd.print("C    ");
}
  • Now, when you uploaded your hex file in Arduino board of your Proteus software then run your Proteus file.
  • If everything goes fine then you will get the results as shown in below figure:
  • So, you can see in the above figure that I am getting the data of both these temperature sensors and displaying them on LCD.
  • Both of these temperature sensors are showing different temperature values and their respective values are displayed over the LCD.
That's all for today, I hope you can now easily interface multiple temperature sensors with Arduino. Will meet in the next tutorial. Till then take care and have fun !!! :)

DC Motor Speed Control using Arduino in Proteus

Hello friends, hope you all are fine and having fun with your lives. Today, I am going to share a tutorial on DC Motor Speed Control using Arduino in Proteus ISIS. In my previous post, we have seen How to design a DC Motor Direction Control Project using Arduino in Proteus ISIS and if you haven't checked it out then I would recommend you to have a look at it first. Because, in today's tutorial, I am gonna extend that tutorial and will add the DC Motor Speed Control in it. So, today, we will control both the direction as well as speed of the DC Motor. Moreover, you should also have a look at How to use Arduino PWM Pins if you are not much familiar with PWM control.

In the previous tutorial, we have seen How to control the direction of a DC Motor, which is important when you are working on some robot and you need to move that robot in both forward and reverse direction. So, in such cases you need to do the direction control of DC motor. But in most projects, along with direction, we also need to control the speed of DC motor so that we can implement some PID algorithm on the motors. So, in such cases, there comes a need for DC Motor Speed control, which we are gonna cover in today's post. So, let's get started with it.

DC Motor Speed Control using Arduino in Proteus

  • As I have explained earlier, I am gonna take it further from our previous tutorial. So, in previous tutorial, what we have done is, we have controlled the direction of DC Motor using Serial Terminal.
  • When we send commands on the Serial Terminal the motor moves in clockwise or Anti-clockwise direction.
  • So, now the above mentioned functionality will remain the same but an addition will be of speed control.
  • I have placed a LDR sensor in the simulation and depending on the value of that LDR sensor our DC motor speed will either increase or decrease.
  • So, you can download the complete simulation of DC Motor Speed Control by clicking the below button:
Download DC Motor Simulation

  • As I always recommend, design this simulation on your own so that you learn most of it.
  • So, first of all, design a circuit as shown in below figure:
  • As you can see in the above figure, its exactly the same as we designed for Direction Control of DC Motor in Proteus ISIS with a slight difference.
  • The difference is NPN transistor which is used for DC Motor speed control.
  • The base of this NPN transistor is connected with PWM pin of Arduino board.
  • So, I am generating a PWM pulse on this pin which is then applied on the base of transistor.
  • Now if I increase the duty cycle of this PWM pulse then the transistor induction will increase and thus the speed of the DC motor.
  • Now in order to control this PWM pulse I have used the LDR sensor, now depending on the LDR sensor the speed of DC motor will increase or decrease.
  • Now upload the below code in your Arduino software and Get the hex file from Arduino software.
int Motor1 = 2;
int Motor2 = 3;

int PWMControl= 6;

int PWM_Input = A0;

int PWM_Value = 0;
void setup() {
  pinMode(Motor1, OUTPUT);
  pinMode(Motor2, OUTPUT);
  pinMode(PWMControl, OUTPUT);
  pinMode(PWM_Input, INPUT);
  Serial.begin(9600);
}

void loop() {
  PWM_Value = analogRead(PWM_Input);
  PWM_Value = map(PWM_Value, 0, 1023, 0, 255);
  analogWrite(PWMControl, PWM_Value);
  if(Serial.available())
  {
    char data = Serial.read();
    Serial.println(data);
    if(data == 'C'){MotorClockwise();}
    if(data == 'A'){MotorAntiClockwise();}
    if(data == 'S'){MotorStop();}
    
  }
}

void MotorAntiClockwise()
{
  digitalWrite(Motor1, HIGH);
  digitalWrite(Motor2, LOW);
}

void MotorClockwise()
{
  digitalWrite(Motor1, LOW);
  digitalWrite(Motor2, HIGH);
}

void MotorStop()
{
  digitalWrite(Motor1, HIGH);
  digitalWrite(Motor2, HIGH);
}
  • So, now I am starting the simulation and then will send the commands via virtual Terminal and it will start moving and then by changing the LDR position DC motor speed control will take place.
  • I know its not clear from above figure so that's why I have designed this video. In the below video you will get the clear idea of DC Motor speed motor.
So, that's all for today. I hope you have got the idea of DC Motor Speed Control. Take care and have fun !!! :)  

Genuino Library for Proteus

Hello friends, hope you all are fine and having fun with your lives. Today, I am going to share a new Genuino Library for Proteus. Genuino boards are just the same as Arduino boards but with slight difference of color and shape. I have already posted a tutorial on Arduino Library for Proteus in which I have explained how to download the Arduino Library and use it in Proteus. Today, I am going to post a similar library but for Genuino boards. Their functionality is exactly the same as the Arduino Library but they have better look and Genuino Color.

II hope you are gonna like this library as well. Other bloggers are welcome to share this library with their reader but do mention our link in creator section, we will be really obliged. Now, let's start with the Genuino Library for Proteus.

Genuino Library for Proteus

  • First of all, download the Genuino Library for Proteus from the below button:
Genuino Library for Proteus

  • In the above link, you will get an rar file which will have two files, named as:
    • GenuinoTEP.LIB
    • GenuinoTEP.IDX
  • Now place these two files in the Library folder of your Proteus software.
Note:
  • Now start your Proteus software and go to Component searching section and search for GenuinoTEP as shown in the below figure:
  • Now place them in your Proteus work space and they will look like as shown in below figure:
  • In the above figure, five of these genuino boards are visible. The sixth board is Arduino Mega1280, which is similar to Arduino Mega 2560 in shape so that's why I have omitted it in the above image.
  • Now you can design any of your project on Genuino board quite easily in Proteus using this Genuino Library for Proteus.
  • In order to upload the code in any of these boards you need to double click it to open its properties.
  • For example I double click the Arduino UNO baord then the Properties panel will look like as shown in below figure:
  • In the above figure, you can see a section named Program file, that's where you are gonna browse your hex file.
  • You should read How to get Hex file from Arduino, if you don't know already.
  • So, get the hex file and upload here and your Genuino board will get active.
  • In the below video, I have explained in detail How to use this Genuino board in Proteus and have already tested the blink example.

That's all for today, I hope you will enjoy this Genuino Library for Proteus. Let me know your suggestions about this library. Have fun !!! :)

Top 10 PCB Design Software

Hello friends, hope you all are fine and having fun with your lives. Today, I am going to share an informational tutorial about top 10 PCB design Software. These PCB design software are used for designing PCBs. In all engineering projects especially related to electronics, PCB designing is an important task and in order to design the PCB we have to use some software. There are many software available in market and today, I am gonna give a complete list of PCB Design software.

Few of these software and free to use and few have limited versions available but in order to get their advanced features you have to buy them. I have also mentioned their features below. If you have read my blog in detail then must have the idea that I use Proteus software for designing my PCB boards. So, if you ask me then I will recommend Proteus software as you can simulate your circuit design in it as well along with PCB designing. I have also used Eagle software for PCB designing and its also quite easy and rich with features. Anyways let's get started with top 10 PCB Design Software

PCB Design Software - Basics

There are few things, which you must remember before starting your PCB design. When you start your project, never jump directly to PCB designing. Instead, you must first design your circuit on wero board or bread board and then test it out. Once you confirmed that all features of your project are working perfectly, then you should move to designing part. If you started the PCB design at first then there's a chance that you miss something in your hardware and then your PCB boards will simply go to waste. So, first design your hardware temporarily adn then test its working and then design your PCB board. You can also simulate your circuit design on some software before designing its PCB. Anyways its up to you. When I design any project then I first design hardware on wero board and then once its perfect then I design its PCB board. Anyways, now let's have a look at top 10 PCB Designing software.

1 Altium

Altium is at first rank in my list of PCB Design software. You can get this software from their official site. Altium is used for designing PCB boards, you can design PCB of any layer in this software. Its very powerful and has a long list of tools for editing or designing your PCB board. Its a paid software and you can buy ti easily from their official site, whose link I have posted above. You can also create the component list, BOM file etc in this software. You can also design flexible PCB designs in it and can also check their 3D simulator to know about the final shape of your PCB baord.

2 Eagle

Eagle is another great PCB design software which comes after Altium software. Its also quite powerful and has great list of tools for designing your PCB board. Eagle is the most commonly used PCB Design software as its easy and quite flexible in its features. Eagle has quite a lot of support available online in forums as its quite an old software. It also provides the component list and the BOM file etc.

3 Proteus

This one is my favorite PCB Design software and if you have read my blog then you must have the idea how much i like this software. In Proteus you not only design your PCB boards but also can simulate your complete circuit design. When I design a PCB board then I first design its simulation in Proteus and then I move on to designing its PCB board. It also has quite flexible tools using which you can design your PCB board and then can also check its 3D design.

So, if you ask me then I will recommend you Proteus software for PCB designing. If you wanna start working in this software then you must read How to do PCB designing in Proteus ARES. I have also shared a the PCB design of Arduino UNO baord which you can also download from this link.

4 Fritzing

Fritzing is another tool used for designing PCB boards. I like its interface. It has quite attractive and user friendly interface and you can design your PCB layout in it quite easily. But drawback of fritzing is that its not professional software, it has quite small list of components available in it so I never thought of using this software for PCB Designing. But if you have simple designing then give ti a try, you are gonna like it.

5 TinyCAD
TinyCAD is also used for PCB Designing. and is quite famous. It also has a long list of tools for designing your PCB boards. Its quite similar to Eagle software and is easy to learn and operate.
6 ZenitPCB
When discussing PCB Design software, then how can we forget ZenitPCB. It also a great PCB Design software which is used for PCB designing in quite efficient way. Its easy to use and has a user friendly interface.
7 ExpressPCB
ExpressPCB is also a cool tool for design your PCB boards. Its good for new users as its easy to use and learn. You canĀ  learn this software just by watching its single video. Its too easy to get started with and have a cool and user friendly interface.
8 KiCAD
KiCAD is an open source software which you can easily download online and is also free to use. Using this software you can design PCB boards up to 16 layer quite easily. It is rich with PCB designing features and can handle complex designs quite easily.
9 DesignSpark PCB
DesignSpark PCB software is also another great tool in the list of free PCB Design software. Its also a flexible software with a lot of tools and options for PCB designing. You are gonna like this one if you need quick and easy PCB designing.
10 EasyEDA
EasyEDA is also used for design PCB boards. It also has a user friendly interface and is good for first time user as it has everything in front and one can design PCB boards quite easily in it. You can also design multi layer PCB boards in it. It has small database of components that's why you have to design your components on your own while using this PCB design software. That's a long list of PCB Design software. These all software are quite easy to use and anyone can work on them just after a little training. So, you can select any of them for designing your PCB boards. If you ask me then I will recommend Proteus and Eagle software as I use the for designing my PCB boards.

Convolution Calculator in MATLAB

Hello friends, hope you all are fine and having fun with your lives. In today's post, I am gonna design a Convolution Calculator in MATLAB. We all know about convolution but if you don't know then here's the wiki page for convolution which has a detailed description of Convolution. In simple words, convolution is a mathematical operation, which applies on two values say f and g and gives a third value as an output say v. In convolution, we do point to point multiplication of input functions and gets our output function.

Convolution is an important technique and is used in many simulating projects. It has a vital importance in image processing. So, today we are gonna do convolution in MATLAB and will check the output. You should also check Image Zooming with Bilinear Interpolation in MATLAB in which we have used correlation technique which is quite similar to convolution. It will give you a better idea of convolution, I recommend you to read their difference. Anyways, coming back to our today's Convolution Calculator, let's start its designing:

Convolution Calculator in MATLAB

  • MATLAB has a built in command for convolution using which we can easily find the convolution of two functions.
  • Syntax of this builtin convolution command is v=conv(x,h) where x and h are the input functions while v is our output.
  • In my code I have used this builtin function as well as I have also design a small algorithm for calculating the convolution using its formula.
  • After finding both the convolutions, I have simply compared them by plotting them on graph so that we can also verify that our result is correct.
  • You can use this convolution calculator to find convolution of any two functions.
  • So, first of all, copy this code and paste it in your m file and run it in your MATLAB:
clc
close all
clear all


x=input('enter the sequence, x(n)=')
h=input('enter the sequence, h(n)=')

m=length(x);
n=length(h);
subplot(4,1,1)
stem(1:m,x,'fill','r')
grid on;
title('input sequence, x(n)=')
xlabel('time n------>')
ylabel('amplitude----->')

subplot(4,1,2)
stem(1:n,h,'fill','r')
grid on;
title('impulse sequence, h(n)=')
xlabel('time n------>')
ylabel('amplitude----->')
%------linear convolution using inbuilt command------------------------%
v=conv(x,h)
l=m+n-1;
subplot(4,1,3)
stem(1:l,v,'fill','r')
grid on;
title('output sequence using inbuilt command, v(n)=')
xlabel('time n------>')
ylabel('amplitude----->')
%--------linear convolution using 'for' loop------------------------------%
X=zeros(1,l);
H=zeros(1,l);
X(1:m)=x;
H(1:n)=h;
for i=1:l
    Y(i)=0;
    for j=1:i
        Y(i)=Y(i)+X(j)*H(i-j+1);
    end
end
Y
subplot(4,1,4)
stem(1:l,Y,'fill','r')
grid on;
title('output sequence using loop, Y(n)=')
xlabel('time n------>')
ylabel('amplitude----->')
  • The above code for convolution calculator is quite self explanatory but let me explain it a little.
  • First of all, I am asking for inputs from user and they are saved in variables named as x and h.
  • After that I am plotting them using stem function.
  • In the next section, I have used the default MATLAB command for Convolution and calculated the convolution of x and h and saved it in v.
  • Next I applied my simple algorithm and calculated convolution of x and h and saved it in Y and also plotted it.
  • Once you run the simulation and give your input functions, you will get the below results:
  • You can see in the above figure that I have given two inputs x and h and MATLAB Convolution Calculator calculated the convolution and gave us v and Y.
  • v is calculated by default MATLAB command while the Y is calculated by our small convolution algorithm.
  • Their graph representation is shown in the below figure:
  • You can see in the above figure that we have plotted all the four signals, two inputs and two outputs and you can see both the outputs are same.
  • Here's the video for this convolution calculator in MATLAB:
That's how you can design a convolution calculator in MATLAB. Let me know about your experience with this convolution calculator. I am planning to design a GUI for this calculator and will add it in this post.
Syed Zain Nasir

I am Syed Zain Nasir, the founder of <a href=https://www.TheEngineeringProjects.com/>The Engineering Projects</a> (TEP). I am a programmer since 2009 before that I just search things, make small projects and now I am sharing my knowledge through this platform.I also work as a freelancer and did many projects related to programming and electrical circuitry. <a href=https://plus.google.com/+SyedZainNasir/>My Google Profile+</a>

Share
Published by
Syed Zain Nasir