Sunday, April 26, 2015

Thursday, April 23, 2015

Camera trick(using panorama)

Taken using the panorama option on a mobile phone so that the !moving of the bus cropped the passing vehicle and blended its disappearance quite nicely.

Monday, April 6, 2015

UniPirate

Grabs Uniprot Data from Online( 1 every 100ms) and separates by species:


Sunday, April 5, 2015

VD Editor Update/GUI Overhaul for LaTex and LiveConv coding


GUI Overhaul and an additional package for editing Latex files. HTML, JS, and CSS editing is available in the online version, and I created a converter so that coding for the online version automatically creates an offline version(as above) and vice versa. One can use JQuery of Regex for such a converter. The problem with JQuery is it requires refreshing manually or with a timer.

Antarctic Oil Rig Inspection/Repair/Construction Robot


Two monitors with Full HD cameras(two video channels for each monitor), 1000gph clearing pump(for oil pipes) and tilt enabled single stick control, as well as a second controller for claw control and a cyclic laser metrology machine. The electrodes from the neurohat are used for testing the corrosion rates, of pipelines which input into a microcontroller on the surface after being amplified in the electronics bay(orange) in the rear. Each corner has independent ballast, especially necessary since the pump(1000gph) is rather hefty. Claw is parametric style.

Wednesday, April 1, 2015

Warm and Fuzzy Electroencephalography Setup Hat


Yes, those are the audio-video cables which were so popular in the 90's, and they are wired directly into the hat. I will be posting more of the details on finished product later, I need to pick up some op amps for the final wires, the signal fidelity is obviously always a problem, especially at such low power. Anyway, if you choose to just go ahead with it, then ground thyself to prevent uncomfortable metal-skin contact if you wire your intake up with a ground(microchip side).

In the meantime though, the code, but before I begin, there is background noise(cyclic) on the Analog INPUT pins, but if we use the op amp we won't have to mess with this in the software. So, we will follow the old Russian R&D method and make better hardware and not do the American software approach,although we may make a nice and fancy GUI for it. But for now:



int sensorPin = A0;        
float sensorValue = 0;

void setup() {
 Serial.begin(9600); 
}
void loop() {
  sensorValue = analogRead(sensorPin);
  sensorValue=(sensorValue+analogRead(sensorPin));
   sensorValue=(sensorValue+analogRead(sensorPin));
  sensorValue=(sensorValue+analogRead(sensorPin));
    sensorValue=(sensorValue+analogRead(sensorPin));
   sensorValue=(sensorValue+analogRead(sensorPin));
  sensorValue=(sensorValue+analogRead(sensorPin));
if(sensorValue!=0.00){
  delay(22);
  

  if((sensorValue/22)>300){
  
    Serial.println(("10"));
  }else{
      sensorValue = analogRead(sensorPin);
  sensorValue=(sensorValue+analogRead(sensorPin));
   sensorValue=(sensorValue+analogRead(sensorPin));
  sensorValue=(sensorValue+analogRead(sensorPin));
    sensorValue=(sensorValue+analogRead(sensorPin));
   sensorValue=(sensorValue+analogRead(sensorPin));
  sensorValue=(sensorValue+analogRead(sensorPin));
    if(sensorValue/22>300){
    
    Serial.println("70");
  }
  }
sensorValue=0;
}
}

Okay, this is the Computer(display) side:


int a=1; 
 import processing.serial.*;
 
 Serial myPort;        // The serial port
 int xPos = 1;         // horizontal position of the graph
 
 void setup () {
 // set the window size:
 size(600, 600);        
 
 // List all the available serial ports
 println(Serial.list());
 // I know that the first port in the serial list on my mac
 // is always my  Arduino, so I open Serial.list()[0].
 // Open whatever port is the one you're using.
 myPort = new Serial(this, Serial.list()[0], 9600);
 // don't generate a serialEvent() unless you get a newline character:
 myPort.bufferUntil('\n');
 // set inital background:
 background(0);
 }
 void draw () {
 // everything happens in the serialEvent()
 }
 
 void serialEvent (Serial myPort) {
 // get the ASCII string:
 String inString = myPort.readStringUntil('\n');
 
 if (inString != null) {
 // trim off any whitespace:
 inString = trim(inString);
 // convert to an int and map to the screen height:
 float inByte = float(inString); 
 inByte = map(inByte, 0, 1023, 0, height);
 
 // draw the line:
 stroke(127,34,255);
 line(xPos, height, xPos, height - inByte);
 
 // at the edge of the screen, go back to the beginning:
 if (xPos &rt;= width) {
  //save(a+".png");
 a=a+1;
 xPos = 0;
 background(0); 

 } 
 else {
 // increment the horizontal position:
 xPos=xPos+2;
 
 }
 }
 }