# define CH3 7 | |
# define CH4 4 | |
# define CH5 5 | |
# define CH6 6 | |
void setup() | |
{ | |
Serial.begin(9600); | |
pinMode(CH3, OUTPUT); | |
pinMode(CH4, OUTPUT); | |
pinMode(CH5, OUTPUT); | |
pinMode(CH6, OUTPUT); | |
//Provide power to both LEDs | |
//Turn OFF any power to the Relay channels | |
digitalWrite(CH3, HIGH); | |
digitalWrite(CH4, HIGH); | |
digitalWrite(CH5, HIGH); | |
digitalWrite(CH6, HIGH); | |
delay(2000); //Wait 2 seconds before starting sequence | |
} | |
void loop() | |
{ | |
delay(100); | |
if(Serial.available()) | |
{ | |
//Serial.println(sum1); | |
char c = Serial.read(); | |
Serial.print(c); | |
if(c=='b') | |
{ | |
//coffee off | |
} | |
else if(c=='c')//light on | |
{digitalWrite(CH4 ,LOW); | |
delay(100);} | |
else if(c=='d')//fan on | |
{digitalWrite(CH6,LOW); | |
delay(100);} | |
else if(c=='k')//coffee on | |
{digitalWrite(CH5,LOW); | |
delay(100);} | |
else if(c=='g')//coffee off | |
{digitalWrite(CH5,HIGH); | |
delay(100);} | |
else if(c=='e')//light off | |
{digitalWrite(CH4,HIGH); | |
delay(100);} | |
else if(c=='f')//fan off | |
{digitalWrite(CH6,HIGH); | |
delay(100);} | |
else if(c=='z')//goodbye | |
{digitalWrite(CH6,HIGH); | |
digitalWrite(CH4,HIGH); | |
digitalWrite(CH3,HIGH); | |
digitalWrite(CH5,HIGH); | |
delay(500); | |
digitalWrite(CH5,LOW); | |
delay(500); | |
digitalWrite(CH5,HIGH); | |
delay(500); | |
digitalWrite(CH5,LOW); | |
delay(500); | |
digitalWrite(CH5,HIGH); | |
delay(10000); | |
} | |
} | |
} |
#include <Servo.h> | |
Servo myservo1; | |
Servo myservo2; | |
int pos = 0; // variable to store the servo position | |
void setup() { | |
Serial.begin(9600); | |
myservo1.attach(3); | |
myservo2.attach(5); | |
pinMode(8,OUTPUT); | |
digitalWrite(8,LOW); | |
pinMode(10,OUTPUT); | |
pinMode(11,OUTPUT); | |
pinMode(12,OUTPUT); | |
digitalWrite(10,LOW); | |
digitalWrite(11,LOW); | |
digitalWrite(12,LOW); | |
} | |
void loop() { | |
for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees | |
// in steps of 1 degree | |
myservo1.write(pos); | |
myservo2.write(pos); | |
delay(15); // waits 15ms for the servo to reach the position | |
} | |
// for (pos = 180; pos >= 0; pos -= 1) { | |
// myservo1.write(pos); // tell servo to go to position in variable 'pos' | |
// myservo2.write(pos); // tell servo to go to position in variable 'pos' | |
// delay(15); // waits 15ms for the servo to reach the position | |
// } | |
int ax = analogRead(A0); | |
int ay = analogRead(A1); | |
if(ax > 420) | |
{ | |
digitalWrite(10,HIGH); | |
digitalWrite(12,LOW); | |
digitalWrite(11,HIGH); | |
} | |
else if(ax < 320){ | |
digitalWrite(10,LOW); | |
digitalWrite(11,HIGH); | |
digitalWrite(12,HIGH); | |
} | |
else{ | |
digitalWrite(10,HIGH); | |
digitalWrite(11,HIGH); | |
digitalWrite(12,HIGH); | |
} | |
Serial.print(" x"); | |
Serial.println(ax); | |
//Serial.println(i); | |
//ConfigurePorts.println(i); | |
} |
THE IDEA
We as a team set out to recreate old NASA missions for everyday people to experience the thrills of working on an actual NASA mission. We thank NASA for making a enough data public about few projects which enables developers like us to create projects like this. With the presence of the Glove, Dynamic orientation changing chair and the VR these missions are highly interactive. Our AI Bot JARVIS is a recursive hybrid learning algorithm capable of engaging in conversations, fetch mission details and learn new information on the go.
This project is not merely a game since the flow is non linear and the missions and AI bot's responses changes according to the user's input. But most importantly since JARVIS learnt old NASA Mission details the user can literally converse about old missions. These features make this a learning tool with one of a kind experience.
THE TEAM
We are 5 engineering students from 3 different streams and 5 different domains. While Mantej expertises in Andriod, Anupam creates wonders in IOT, Divyansh knows graphics like the back of his hand, Rajat knows his "data" and Ankit is our Video editor.
The biggest reason we could complete such an extensive project in a time crunch of 24 hrs is because of the diverse expertisation in the team hence we could divide the work and parallelise the workflow.
THE BUILD
We quickly divided the work and prioritized the modules based on the build timeline. Our graphic designer began by creating models for the VR and rigging them for interactivity using MAYA. Parallely we began working on AI BOT and the Hardware components. The AI bot required to be heavily trained for which we used AWS cloud and later created fuzzy associations to hybridise the model. The model had a fall-back of ad-hoc learning which means in cases that it didnt know what to do it would learn the response of user as a true statement. Since the fall back is rare and only used for personal info of user which is late stored with higher priority "Fact" tuple it is hard to mess up the AI BOT. The AI was finally wrapped in an intent launcher which enabled AI to interact with environment (both physical and virtual world)
The Models were assembled and the work on unity began with set the initialization parameter values and incorporating modules as they were being finished.
The hardware team quickly assembled the chair and moved on to create the primary user controller - Glove. OUR glove works on IR sensor setup which are a cheap but equally accurate alternative to the flex sensor. It took us around 20 hrs to finish the glove along with its API which enables the glove to send the data on the Firebase DB in realtime.
once all components were separately finished we included the chair, glove into the VR and later once other equipment were working in harmony we finally attached them all to the AI bot which could not dispatch commands to power up different modules in a fat-client architecture.
SpaceApps is a NASA incubator innovation program.