• How to make an Alarm Clock using Tkinter and Python

    To make the python code into an executable. I followed this guide How to make a python script into an executable file.

    Python Code

    from tkinter import *
    from tkinter import ttk
    import time
    
    timeVar = time.localtime()
    #time.struct_time(tm_year=2022, tm_mon=12, tm_mday=3,
    #tm_hour=13, tm_min=3, tm_sec=45, tm_wday=5, tm_yday=337, tm_isdst=0)
    
    #print(timeVar.tm_sec)
    
    root = Tk()
    
    root.title("Time Display")
    hourVar = StringVar()
    minVar = StringVar()
    secVar = StringVar()
    
    Ahour = StringVar()
    Amin = StringVar()
    Asec = StringVar()
    AsetTimeHour = StringVar()
    AsetTimeMin = StringVar()
    AsetTimeSec = StringVar()
    
    frame = ttk.Frame(root)
    frame.grid()
    
    frame11 = ttk.Frame(root, padding = 10)
    frame11.grid(column = 1,row=0)
    
    s = ttk.Style()
    s.theme_use("alt")
    
    def update():
        global timeVar
            #while(1):
        timeVar = time.localtime()
        hourVar.set(str(timeVar.tm_hour))
        minVar.set(str(timeVar.tm_min))
        #minVar.set(str(59))
        secVar.set(str(timeVar.tm_sec))
        if ( (hourVar.get() == Ahour.get()) and (minVar.get() == Amin.get()) and (secVar.get() == Asec.get()) ):
            alarmWin = Toplevel(root)
            root.bell()
            alarmWin.title("Alarm")
            
            #alarmWin.geometry("200x100")
            s.configure("Aframe.TFrame", background = "cyan")
            Aframe = ttk.Frame(alarmWin, style ="Aframe.TFrame" ,padding = 100)
            #Aframe.configure(background = "cyan")
            Aframe.grid()
            
            ttk.Label(Aframe, text = "Alarm ").grid(column=2,row=0,sticky = (W,E))
            ttk.Button(Aframe, text="QUIT", command = alarmWin.destroy).grid(column=0, row=10)
            #root.update()
            #time.sleep(1)
        root.after(1000,update)
            
    
    
    def alarmset():
        
        childWin = Toplevel(root)
        childWin.title("Alarm Set")
        frame1 = ttk.Frame(childWin)
        frame1.grid()
        ttk.Label(frame1, text = "Hour").grid(column=2,row=0,ipadx = 20,ipady=10)
        ttk.Entry(frame1,textvariable = AsetTimeHour).grid(column=2,row=1)
        ttk.Label(frame1, text = "Min").grid(column=3,row=0)
        ttk.Entry(frame1,textvariable = AsetTimeMin).grid(column=3,row=1)
        ttk.Label(frame1, text = "Sec").grid(column=4,row=0)
        ttk.Entry(frame1,textvariable = AsetTimeSec).grid(column=4,row=1)
        def Aset():
            try:
                xyz = AsetTimeHour.get()
                Ahour.set(str(int(AsetTimeHour.get())))
            except:
                Ahour.set("")
            try:
                Amin.set(str(int(AsetTimeMin.get())))
            except:
                Amin.set("")
            try:
                Asec.set(str(int(AsetTimeSec.get())))
            except:
                Asec.set("")
            #root1.destroy()
        
        ttk.Button(frame1, text="QUIT", command = childWin.destroy).grid(column=0, row=10)
        ttk.Button(frame1, text="Set", command = Aset).grid(column=1, row=10)
        
    def alarmset15sec():
        global timeVar
        #timeVar.tm_min = 58
        x = int((timeVar.tm_sec + 15) if (timeVar.tm_sec + 15) <= 59 else (timeVar.tm_sec + 15)-60 )
        y= 0
        z = 0
        if x < 15:
            y = int((timeVar.tm_min + 1) if (timeVar.tm_min + 1) <= 59 else (timeVar.tm_min + 1)-60 )
            #y = ((int(minVar.get()) + 1) if (int(minVar.get()) + 1) <= 59 else int(minVar.get()) + 1 - 60)
            z = int((timeVar.tm_hour ))
            if y < 1:
                z = int((timeVar.tm_hour + 1) if (timeVar.tm_hour + 1) <= 23 else (timeVar.tm_hour + 15)-24 )
            try:
                Amin.set(str(y))
            except:
                Amin.set("")
            try:
                Asec.set(str(x))
            except:
                Asec.set("")
            try:
                Ahour.set(str(z))
            except:
                Ahour.set("")
                
        if x >= 15:
            y = int((timeVar.tm_min ))
            z = int((timeVar.tm_hour ))
            try:
                Amin.set(str(y))
            except:
                Amin.set("")
            try:
                Asec.set(str(x))
            except:
                Asec.set("")
            try:
                Ahour.set(str(z))
            except:
                Ahour.set("")
       
        
        
        
    
            
    s.configure("timelabel.TLabel", font="Arial 24", padding = 20)
    hourLabel = ttk.Label(frame, textvariable = hourVar, style = "timelabel.TLabel")
    hourLabel.grid(column=1, row = 1,sticky = (E))
    ttk.Label(frame,text = " : ", style = "timelabel.TLabel").grid(column=2,row=1)
    minLabel = ttk.Label(frame,textvariable = minVar, style = "timelabel.TLabel")
    minLabel.grid(column=3, row = 1,sticky = (E))
    ttk.Label(frame,text = " : ", style = "timelabel.TLabel").grid(column=4,row=1)
    secLabel = ttk.Label(frame, textvariable = secVar, style = "timelabel.TLabel")
    secLabel.grid(column=5, row = 1,sticky = (E))
    
    ttk.Label(frame11, text = "Alarm Time").grid(column=1,row=0)
    ttk.Label(frame11, text = "Hour").grid(column=1,row=2)
    ttk.Label(frame11, textvariable= Ahour).grid(column=1,row=3)
    
    ttk.Label(frame11,text = " : ").grid(column=2,row=3)
    
    ttk.Label(frame11, text = "Min").grid(column=3,row=2)
    ttk.Label(frame11, textvariable= Amin).grid(column=3,row=3)
    
    ttk.Label(frame11,text = " : ").grid(column=4,row=3)
    
    ttk.Label(frame11, text = "Sec").grid(column=5,row=2)
    ttk.Label(frame11, textvariable= Asec).grid(column=5,row=3)
    
    ttk.Button(frame, text="Quit", command=root.destroy).grid(column=1, row=10)
    ttk.Button(frame, text="Alarm Set", command = alarmset).grid(column=2, row=10)
    ttk.Button(frame, text="Alarm Set 15 sec", command = alarmset15sec).grid(column=3, row=10)
    update()
    root.mainloop()
    
  • How to make a python script into an executable file

    To run a python script. You have to open python in either the command prompt or its IDLE.

    We can make use of pyinstaller module. Which will take your script and add all the dependencies and create a standalone executable file which you can use just like any other software.

    To install pyinstaller

    open your command prompt and execute the following code

    pip install pyinstaller

    This will install pyinstaller .

    After doing it. Browse into your script folder.

    pyinstaller --onefile your-python-script.py

    If you run the above line it will create a self containing executable file.

    You can also have a directory in which all the dependency files are placed along with the executable file.

    pyinstaller --onedir your-python-script.py

    If you do want to have a console.

    pyinstaller --onefile --noconsole your-python-script.py

    If you want your executable file to have a custom icon. You can put a icon file in the same directory along with your Python script.

    pyinstaller --onefile --noconsole -i "icon.ico" your-python-script.py
  • How to make a calculator in Python using Tkinter module

    Python Code

    from tkinter import *
    from tkinter import ttk
    expression = ""
    def btn_entry(num):
        global expression
        expression = expression + str(num)
        equation.set(expression)
    
    def exp_eval():
        try:            
            global expression
            expression = str(eval(expression))
            equation.set(expression)
        except ZeroDivisionError:
            print(expression)
            equation.set("Division by Zero Error ")
            expression = ""
            
    def exp_clear():
        global expression
        expression = ""
        equation.set(expression)
        
    sc = Tk()
    sc.title("Calculator")
    
    sc.geometry("480x280")
    sc.configure(background ="white")
    
    s = ttk.Style()
    print(s.theme_use())
    s.theme_use("alt")
    #s.theme_use("default")
    
    mainframe = ttk.Frame(sc)
    
    #Resize window
    for x in range(10):
        sc.columnconfigure(x,weight=x)
        sc.rowconfigure(x,weight=x)
    
    equation = StringVar()
    s.configure("keys.TButton",font="Arial 16")
    key_1 = ttk.Button(sc,style = "keys.TButton",width = 10, text="1", command=lambda:btn_entry(1))
    key_1.grid(column=0,row=1, sticky =(E))
    key_2 = ttk.Button(sc,style = "keys.TButton",width = 10, text="2", command=lambda:btn_entry(2))
    key_2.grid(column=1,row=1, sticky =(E))
    key_3 = ttk.Button(sc,style = "keys.TButton",width = 10, text="3", command=lambda:btn_entry(3))
    key_3.grid(column=2,row=1, sticky =(E))
    key_4 = ttk.Button(sc,style = "keys.TButton",width = 10, text="4", command=lambda:btn_entry(4))
    key_4.grid(column=0,row=2, sticky =(E))
    key_5 = ttk.Button(sc,style = "keys.TButton",width = 10, text="5", command=lambda:btn_entry(5))
    key_5.grid(column=1,row=2, sticky =(E))
    key_6 = ttk.Button(sc,style = "keys.TButton",width = 10, text="6", command=lambda:btn_entry(6))
    key_6.grid(column=2,row=2, sticky =(E))
    key_7 = ttk.Button(sc,style = "keys.TButton",width = 10, text="7", command=lambda:btn_entry(7))
    key_7.grid(column=0,row=3, sticky =(E))
    key_8 = ttk.Button(sc,style = "keys.TButton",width = 10, text="8", command=lambda:btn_entry(8))
    key_8.grid(column=1,row=3, sticky =(E))
    key_9 = ttk.Button(sc,style = "keys.TButton",width = 10, text="9", command=lambda:btn_entry(9))
    key_9.grid(column=2,row=3, sticky =(E))
    key_0 = ttk.Button(sc,style = "keys.TButton",width = 10, text="0", command=lambda:btn_entry(0))
    key_0.grid(column=1,row=4, sticky =(E))
    key_dec = ttk.Button(sc,style = "keys.TButton",width = 10, text=".", command=lambda:btn_entry("."))
    key_dec.grid(column=0,row=4, sticky =(E))
    
    key_add = ttk.Button(sc,style = "keys.TButton",width = 10, text="+", command=lambda:btn_entry("+"))
    key_add.grid(column=3,row=1, sticky =(N))
    key_sub = ttk.Button(sc,style = "keys.TButton",width = 10, text="-", command=lambda:btn_entry("-"))
    key_sub.grid(column=3,row=2, sticky =(N))
    key_mul = ttk.Button(sc,style = "keys.TButton",width = 10, text="*", command=lambda:btn_entry("*"))
    key_mul.grid(column=3,row=3, sticky =(N))
    key_div = ttk.Button(sc,style = "keys.TButton",width = 10, text="/", command=lambda:btn_entry("/"))
    key_div.grid(column=3,row=4, sticky =(N))
    
    s.configure('equal.TButton',background='light green' ,font="Arial 16", embossed = 1)
    key_equal = ttk.Button(sc,style = "equal.TButton", text="=",width = 30, command=lambda:exp_eval())
    key_equal.grid(column=1,row=5,columnspan=3, sticky=(W))
    
    s.configure('clear.TButton',background='pink' ,font="Arial 16", embossed = 1)
    key_clr = ttk.Button(sc, text="CLEAR", style="clear.TButton",width = 10, command=lambda:exp_clear())
    key_clr.grid(column=0,row=5, sticky =(E))
    
    s.configure("display.TLabel",background ='yellow' ,padding =20 ,font = "Arial 24")
    exp_display = ttk.Label(sc, textvariable = equation, style = "display.TLabel")
    exp_display.grid(column=0,columnspan =3,row = 0,sticky=(S,E))
    exp_display.columnconfigure(1,weight = 2)
    
    
    sc.mainloop()
    
  • How to copy files from raspberry pi to PC using SCP

    scp pi@192.168.0.159:

    Introduction

    Suppose there is a file on your raspberry pi, which you want on your desktop PC or laptop.

    You can download the file from your raspberry pi.

    To do this you must be connected to the same router.

    SCP stands for Secure Copy Protocol

    Suppose there is a movie in your download folder named “movie.mkv”

    SCP Code

    scp pi@192.168.0.159:~/Downloads/movie.mkv movie.mkv

    The above code needs to run in your command prompt

    It will ask for a password. You type in your raspberry pi password.

    NOTE: the typed password will not be displayed.

  • How to make an analog clock using Python Turtle Graphics – 3

    Python Code

    import turtle
    from datetime import datetime
    
    screen1 = turtle.Screen()
    screen1.setup(500,500,0,0)
    screen1.screensize(480,480, bg="#c0c0c0")
    screen1.tracer(0)
    
    don = turtle.Turtle()
    #don.speed("fastest")
    don.width(1)
    don.hideturtle()
    
    def draw_square(startx, starty, length):
        don.penup()
        don.home()
        don.goto(startx, starty)
        don.pendown()
        for side in range(4):
            don.forward(length)
            don.right(90)
        don.penup()
    
    def draw_hand(length,rot):
        don.penup()
        don.home()
        don.pendown();
        don.right(1*rot+90*3)
        don.forward(length)
        don.penup()
        don.home()
        
    def print_time(hou,minu,sec):
        don.penup()
        don.goto(-180,-190);
        don.pendown()
        data = str(hou)+" : "+str(minu)+" : "+str(sec)
        don.color("white")
        don.write(data, move = False,align='left', font=('Arial', 16, 'normal'));
        don.penup()
    
    def draw_watchface():
        don.penup()
        for x in range(0,360,30):
            don.home()
            don.color("black")
            don.right(x)
            don.forward(150)
            don.pendown();
            don.forward(20)
            don.penup()
            
        for x in range(0,360,6):
            don.home()
            don.color("black")
            don.width(1)
            don.right(x)
            don.forward(150)
            don.pendown();
            don.forward(10)
            don.penup()
        don.penup()
        
    def draw_frame(hou,minu,sec):
        don.goto(-200,200);
        don.pendown()
        draw_square(-200,200,400)
        draw_watchface()
        don.color("blue")
        draw_hand(140,sec*6)  #seconds
        don.color("red");
        don.width(3)
        draw_hand(140,minu*6)  #minutes
        don.color("green");
        don.width(10)
        draw_hand(140,hou*6*5)  #hours
        don.width(2)
        don.penup()
        don.goto(-220,-230);
        don.pendown()
        don.write("exasub.com", move = False,align='left', font=('Arial', 16, 'normal'));
        don.penup()
        print_time(hou,minu,sec)
        #print(str(hou)+" : "+str(minu)+" : "+str(sec))
    
    def draw_time():
        while(1):
            t = datetime.today()
            sekunde = t.second 
            minuten = t.minute 
            houren = t.hour
            
            don.clear()
            draw_frame(houren,minuten,sekunde);
            screen1.update()
    
        
    if __name__ == "__main__":
        draw_time()
        turtle.done()
    
  • How to make simple graphics in Turtle Graphics – 2

    Python Code

    from turtle import * 
    
    def frame():
        #setup (width=200, height=200, startx=0, starty=0)
        setup(500,500,0,0);
        screensize(canvwidth = 480, canvheight = 480, bg = "cyan")
    
    def box1(size, angle):
        penup()
        goto(-(size/2),(size/2))
        pendown()
        forward(size)
        right(angle)
        forward(size)
        right(angle)
        forward(size)
        right(angle)
        forward(size)
        penup()
    
    def text():
        goto(-230,-230)
        pendown()
        #turtle.write(arg, move=False, align='left', font=('Arial', 8, 'normal'))
        write("exasub.com", False, align="left", font = ('Arial', 16, 'normal'))
        
    if __name__ == "__main__":
        frame();
        box1(400,90);
        text();
        mainloop()
    

    Python Code

    from turtle import * 
    
    def frame():
        #setup (width=200, height=200, startx=0, starty=0)
        setup(500,500,0,0);
        screensize(canvwidth = 480, canvheight = 480, bg = "cyan")
    
    def box1(size, angle):
        penup()
        goto(-(size/2),(size/2))
        pendown()
        forward(size)
        right(angle)
        forward(size)
        right(angle)
        forward(size)
        right(angle)
        forward(size)
        penup()
    
    def text():
        goto(-230,-230)
        pendown()
        #turtle.write(arg, move=False, align='left', font=('Arial', 8, 'normal'))
        write("exasub.com", False, align="left", font = ('Arial', 16, 'normal'))
        penup()
    
    def drawCircle():
        # Draw a circle in Anticlockwise direction
        goto(0,0)
        pendown()
        color("red")
        begin_fill()    # Start Filling the semi-circle
        circle(100,-180,40); # circle(radius, angle, steps)
        end_fill()      # Stop Filling the semi-circle
        penup()
        #Draw a circle in Clockwise Direction
        goto(0,0)
        pendown()
        color("green")
        begin_fill()
        circle(100,360,40)
        end_fill()
        penup()
    
    def drawTriangle():
        home()
        pendown()
        color("grey")
        begin_fill()
        circle(50, 360, 3)
        end_fill()
        penup()
    
        
    if __name__ == "__main__":
        frame();
        box1(400,90);
        text();
        drawCircle();
        drawTriangle()
        #drawCircle();
        mainloop()
    
    
  • Python Turtle Graphics Introduction – 1

    Turtle is a simple, easy and fun way to learn graphical programming.

    It contains very simple commands. By combining together these and similar commands, intricate shapes and pictures can easily be drawn.

    You can create simple drawings using the turtle module.

    You can also create simple animations.

    If you want to learn about the nitty-gritty of Turtle you can read their documentation.
    https://docs.python.org/3/library/turtle.html#introduction

    You do not have to install anything apart from the python programming language.

    You can download the python programming language from
    https://www.python.org/downloads/

  • How to make a SONAR based on an ultrasonic sensor

    SONAR stands for Sound Navigation and Ranging.

    SONAR uses the concept of ultrasonic waves that get reflected from the object in front of it. And the time it takes between the transmission and reception tells us about the distance it has traveled.

    Components Required

    • Arduino UNO
    • Servo Motor
    • Ultrasonic Sensor
    • Jumper wires
    • Laptop
    Circuit Diagram

    After making the connection you have to make a sketch and copy paste the below Arduino code into your arduino and upload the code.

    Then you have to download the Processing Software

    Download link for processing software https://processing.org/download

    Then you have to extract the processing software and open the processing.exe and copy and paste the processing code given below.

    After you done that you have to connect your ardunio to your computer.

    Open the arduino software.

    Go to the TOOLS > PORTS

    In the port list you will the something like com26 or com6

    You have to remeber this com## (HERE ## represent the number)

    Then in the processing code you have to change this line shown in the figure below

    Arduino Code

    // Includes the Servo library
    #include <Servo.h>. 
    // Defines Tirg and Echo pins of the Ultrasonic Sensor
    const int trigPin = 10;
    const int echoPin = 11;
    // Variables for the duration and the distance
    long duration;
    int distance;
    Servo myServo; // Creates a servo object for controlling the servo motor
    void setup() {
      pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
      pinMode(echoPin, INPUT); // Sets the echoPin as an Input
      Serial.begin(9600);
      myServo.attach(12); // Defines on which pin is the servo motor attached
    }
    void loop() {
      // rotates the servo motor from 15 to 165 degrees
      for(int i=15;i<=165;i++){  
      myServo.write(i);
      delay(30);
      distance = calculateDistance();// Calls a function for calculating the distance measured by the Ultrasonic sensor for each degree
      
      Serial.print(i); // Sends the current degree into the Serial Port
      Serial.print(","); // Sends addition character right next to the previous value needed later in the Processing IDE for indexing
      Serial.print(distance); // Sends the distance value into the Serial Port
      Serial.print("."); // Sends addition character right next to the previous value needed later in the Processing IDE for indexing
      }
      // Repeats the previous lines from 165 to 15 degrees
      for(int i=165;i>15;i--){  
      myServo.write(i);
      delay(30);
      distance = calculateDistance();
      Serial.print(i);
      Serial.print(",");
      Serial.print(distance);
      Serial.print(".");
      }
    }
    // Function for calculating the distance measured by the Ultrasonic sensor
    int calculateDistance(){ 
      
      digitalWrite(trigPin, LOW); 
      delayMicroseconds(2);
      // Sets the trigPin on HIGH state for 10 micro seconds
      digitalWrite(trigPin, HIGH); 
      delayMicroseconds(10);
      digitalWrite(trigPin, LOW);
      duration = pulseIn(echoPin, HIGH); // Reads the echoPin, returns the sound wave travel time in microseconds
      distance= duration*0.034/2;
      return distance;
    }

    Processing Code

    import processing.serial.*; // imports library for serial communication
    import java.awt.event.KeyEvent; // imports library for reading the data from the serial port
    import java.io.IOException;
    Serial myPort; // defines Object Serial
    // defubes variables
    String angle="";
    String distance="";
    String data="";
    String noObject;
    float pixsDistance;
    int iAngle, iDistance;
    int index1=0;
    int index2=0;
    PFont orcFont;
    void setup() {
      
     size (1200, 700); // ***CHANGE THIS TO YOUR SCREEN RESOLUTION***
     smooth();
     myPort = new Serial(this,"COM18", 9600); // starts the serial communication
     myPort.bufferUntil('.'); // reads the data from the serial port up to the character '.'. So actually it reads this: angle,distance.
    }
    void draw() {
      
      fill(98,245,31);
      // simulating motion blur and slow fade of the moving line
      noStroke();
      fill(0,4); 
      rect(0, 0, width, height-height*0.065); 
      
      fill(98,245,31); // green color
      // calls the functions for drawing the radar
      drawRadar(); 
      drawLine();
      drawObject();
      drawText();
    }
    void serialEvent (Serial myPort) { // starts reading data from the Serial Port
      // reads the data from the Serial Port up to the character '.' and puts it into the String variable "data".
      data = myPort.readStringUntil('.');
      data = data.substring(0,data.length()-1);
      
      index1 = data.indexOf(","); // find the character ',' and puts it into the variable "index1"
      angle= data.substring(0, index1); // read the data from position "0" to position of the variable index1 or thats the value of the angle the Arduino Board sent into the Serial Port
      distance= data.substring(index1+1, data.length()); // read the data from position "index1" to the end of the data pr thats the value of the distance
      
      // converts the String variables into Integer
      iAngle = int(angle);
      iDistance = int(distance);
    }
    void drawRadar() {
      pushMatrix();
      translate(width/2,height-height*0.074); // moves the starting coordinats to new location
      noFill();
      strokeWeight(2);
      stroke(98,245,31);
      // draws the arc lines
      arc(0,0,(width-width*0.0625),(width-width*0.0625),PI,TWO_PI);
      arc(0,0,(width-width*0.27),(width-width*0.27),PI,TWO_PI);
      arc(0,0,(width-width*0.479),(width-width*0.479),PI,TWO_PI);
      arc(0,0,(width-width*0.687),(width-width*0.687),PI,TWO_PI);
      // draws the angle lines
      line(-width/2,0,width/2,0);
      line(0,0,(-width/2)*cos(radians(30)),(-width/2)*sin(radians(30)));
      line(0,0,(-width/2)*cos(radians(60)),(-width/2)*sin(radians(60)));
      line(0,0,(-width/2)*cos(radians(90)),(-width/2)*sin(radians(90)));
      line(0,0,(-width/2)*cos(radians(120)),(-width/2)*sin(radians(120)));
      line(0,0,(-width/2)*cos(radians(150)),(-width/2)*sin(radians(150)));
      line((-width/2)*cos(radians(30)),0,width/2,0);
      popMatrix();
    }
    void drawObject() {
      pushMatrix();
      translate(width/2,height-height*0.074); // moves the starting coordinats to new location
      strokeWeight(9);
      stroke(255,10,10); // red color
      pixsDistance = iDistance*((height-height*0.1666)*0.025); // covers the distance from the sensor from cm to pixels
      // limiting the range to 40 cms
      if(iDistance<40){
        // draws the object according to the angle and the distance
      line(pixsDistance*cos(radians(iAngle)),-pixsDistance*sin(radians(iAngle)),(width-width*0.505)*cos(radians(iAngle)),-(width-width*0.505)*sin(radians(iAngle)));
      }
      popMatrix();
    }
    void drawLine() {
      pushMatrix();
      strokeWeight(9);
      stroke(30,250,60);
      translate(width/2,height-height*0.074); // moves the starting coordinats to new location
      line(0,0,(height-height*0.12)*cos(radians(iAngle)),-(height-height*0.12)*sin(radians(iAngle))); // draws the line according to the angle
      popMatrix();
    }
    void drawText() { // draws the texts on the screen
      
      pushMatrix();
      if(iDistance>40) {
      noObject = "Out of Range";
      }
      else {
      noObject = "In Range";
      }
      fill(0,0,0);
      noStroke();
      rect(0, height-height*0.0648, width, height);
      fill(98,245,31);
      textSize(25);
      
      text("10cm",width-width*0.3854,height-height*0.0833);
      text("20cm",width-width*0.281,height-height*0.0833);
      text("30cm",width-width*0.177,height-height*0.0833);
      text("40cm",width-width*0.0729,height-height*0.0833);
      textSize(40);
      text("exasub.com", width-width*0.875, height-height*0.0277);
      text("Angle: " + iAngle +" °", width-width*0.48, height-height*0.0277);
      text("Distance: ", width-width*0.26, height-height*0.0277);
      if(iDistance<40) {
      text("        " + iDistance +" cm", width-width*0.225, height-height*0.0277);
      }
      textSize(25);
      fill(98,245,60);
      translate((width-width*0.4994)+width/2*cos(radians(30)),(height-height*0.0907)-width/2*sin(radians(30)));
      rotate(-radians(-60));
      text("30°",0,0);
      resetMatrix();
      translate((width-width*0.503)+width/2*cos(radians(60)),(height-height*0.0888)-width/2*sin(radians(60)));
      rotate(-radians(-30));
      text("60°",0,0);
      resetMatrix();
      translate((width-width*0.507)+width/2*cos(radians(90)),(height-height*0.0833)-width/2*sin(radians(90)));
      rotate(radians(0));
      text("90°",0,0);
      resetMatrix();
      translate(width-width*0.513+width/2*cos(radians(120)),(height-height*0.07129)-width/2*sin(radians(120)));
      rotate(radians(-30));
      text("120°",0,0);
      resetMatrix();
      translate((width-width*0.5104)+width/2*cos(radians(150)),(height-height*0.0574)-width/2*sin(radians(150)));
      rotate(radians(-60));
      text("150°",0,0);
      popMatrix(); 
    }
  • How to make a simple Traffic Light using Arduino UNO

    Everyone must have seen those big lights in red, yellow, and green color at the corner of every road. Some even flash. Some stay lit all day long.

    Big junctions have a separate controller which synchronizes these lights. So that the traffic flows smoothly. And the possibility of having a deadlock is minimized. That is very complex and requires a deep understanding of road traffic and human perception.

    To make a simple traffic light. You will require three LED in RED, Yellow, and Green color.

    Components Required:

    Arduino
    Red 5mm LED
    Yellow 5mm LED
    Green 5mm LED
    330-ohm resistor
    Jumper wires
    Breadboard small

    Arduino Code

    #define red 8
    #define yellow 7
    #define green 4
    
    void setup()
    {
      pinMode(red, OUTPUT);
      pinMode(yellow, OUTPUT);
      pinMode(green, OUTPUT);
    }
    
    void loop()
    {
      digitalWrite(green, HIGH);
      delay(10000); // Wait for 10 second(s)
      digitalWrite(green, LOW);
      digitalWrite(yellow, HIGH);
      delay(4000); // Wait for 4 second(s)
      digitalWrite(yellow,LOW);
      digitalWrite(red, HIGH);
      delay(5000);
      digitalWrite(red,LOW);
    }
  • Python – Basic Mathematical Programs

    How to perform addition.

    # Addend + Addend = Sum
    a = 19
    b = 15
    
    sum = a + b
    
    print("Total Sum of a and b =",sum)
    

    How to perform subtraction

    #Minuend - Subtrahend = Difference
    
    Minuend = 22
    Subtrahend = 140
    
    Difference = Minuend - Subtrahend
    
    print("The Difference equals to ",Difference)
    

    How to perform multiplication

    # Multiplicand X multiplier = product
    
    Multiplicand = 56
    Multiplier = 12
    
    Product = Multiplicand * Multiplier
    
    print("The product of the Multiplicand and mulitplier is ",Product)
    

    How to perform division

    # Dividend / Divisor = Quotient (Remainder)
    
    Dividend = 18
    Divisor = 5
    
    Quotient = Dividend / Divisor
    
    print("The quotient + reminder = ",Quotient)
    

    How to perform if-else operations

    # If-else Python
    
    a = 1
    b = 1
    
    if (a < b):
        print("A is Lesser than B")
    elif (a ==b):
        print("A is equal to B")
    else:
        print("A is Greater than B")
    

    How to perform a while loop operation

    # While Loop
    # Using While Loop to perform multiplication using Addition
    
    A = 13131313
    
    sum = 0;
    counter = 1
    
    while (counter < 11):
        sum = A + sum
        print(A," x ",counter," = ",sum)
        counter = 1 + counter