Akshayan Sinha
Published © MIT

Turret/Sentry - Mighty Shooter

A basic shooter with most basic components. You can build the mechanism within a day, once you have the structure READY.

IntermediateWork in progressOver 1 day357
Turret/Sentry - Mighty Shooter

Things used in this project

Hardware components

SG90 Micro-servo motor
SG90 Micro-servo motor
×1
DC Motor, 12 V
DC Motor, 12 V
×1
Bolt WiFi Module
Bolt IoT Bolt WiFi Module
×1

Software apps and online services

Bolt Cloud
Bolt IoT Bolt Cloud

Story

Read more

Code

index.html

HTML
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Turret Trigger-Hammer</title>
        <meta charset="utf-8">
        <link rel="stylesheet" href="main.css">
        <link href="https://fonts.googleapis.com/css?family=Itim&display=swap" rel="stylesheet">

      <!---  <script type = "text/javascript" src="control.js"></script> --->
      
    </head>

    <body>
        <center>
            
            
            <div id="set" onclick="set()">SET</div>
            <br>
            <div id="lock" onclick="lock()">LOCK</div> 
            <br>
            <div id="launch" onclick="launch()">LAUNCH</div> 
                        
        </center>
        

         <script type = "text/javascript" src="control.js"></script>
    </body>

</html>

main.css

CSS
body{

    margin-top: 50px;
    background: #0E101C;
    font-size: 50px;
}


#set,#lock,#launch {
    height:  150px;
    width: 300px;

    background-color: #3f4245;
    border: 3px solid #00ADB5;  
    border-radius: 3px;

    transition: 0.3s ease;

    line-height: 270%;
    color: #00ADB5;
    font-family:Itim,handwriting;

}    

#set.on, #lock.on, #launch.on{
    background-color: #00ADB5;
    color: #5a5d61;
}

control.js

JavaScript
var set1=0;
var lock1=0;
var launch1=0;

var api_key = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX";
var d_name = "BOLTXXXXXXX";
var base_url = "https://cloud.boltiot.com/remote/";


function set(){
        set1 = 1;
        lock1 = 0;
        launch1 = 0;

        servoWrite(0,150);
}

function lock(){
        set1 = 0;
        lock1 = 1;
        launch1 = 0;

        servoWrite(0,180);  
}

function launch(){
        set1 = 0;
        lock1 = 0;
        launch1 = 1;

        servoWrite(0,0);    
}

function servoWrite(pin,val) {
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            
            //console.log(xmlhttp.responseText);
            var obj = JSON.parse(xmlhttp.responseText);
            //console.log(obj.success);
            
            if(obj.success=="0"){

                document.body.style.backgroundColor = "#8c0f0f";
                
                setTimeout(function() {document.body.style.backgroundColor = "#0E101C";},500);

                

                //alert(obj.value);
            }
            else if (obj.success=="1"){

                if (set1 == 1){

                    document.getElementById("set").classList.add("on");
                    window.localStorage.setItem("set", "on"); 


                    document.getElementById("lock").classList.remove("on");
                    localStorage.removeItem("lock");

                    document.getElementById("launch").classList.remove("on");
                    localStorage.removeItem("launch");

                }

                else if (lock1 == 1){
                    document.getElementById("lock").classList.add("on");
                    window.localStorage.setItem("lock", "on"); 


                    document.getElementById("set").classList.remove("on");
                    localStorage.removeItem("set");

                    document.getElementById("launch").classList.remove("on");
                    localStorage.removeItem("launch");
                }

                else if (launch1 == 1){

                    document.getElementById("launch").classList.add("on");
                    window.localStorage.setItem("launch", "on"); 


                    document.getElementById("lock").classList.remove("on");
                    localStorage.removeItem("lock");

                    document.getElementById("set").classList.remove("on");
                    localStorage.removeItem("set");
                }
            
            }    
        }
    };
    xmlhttp.open("GET",base_url+api_key+"/servoWrite?pin="+pin+"&value="+val+"&deviceName="+d_name,true);
    xmlhttp.send();
}   




function ReadAll(){
    if (window.localStorage.getItem('set') == 'on'){
        document.getElementById("set").classList.add("on"); 
    }
    if (window.localStorage.getItem('lock') == 'on'){
        document.getElementById("lock").classList.add("on"); 
    }
    if (window.localStorage.getItem('launch') == 'on'){
        document.getElementById("launch").classList.add("on"); 
    }
}


ReadAll();

Credits

Akshayan Sinha
28 projects • 28 followers
Robotics Software Engineer with a makermind.
Contact

Comments

Please log in or sign up to comment.