13,325 days/sols to go

While bouncing around in my laboratory/playground, I sometimes forget about the larger goal of Moon/Mars settlement, a mere 13,325 days/sols to go.

We are making a lot of progress in that area and, for my colleagues, I thank you — planet Earth — for providing us the resources and means to make intentional space exploration possible.

After all, waiting around for a large comet to hit our celestial sphere and send chunks out of Earth’s gravitational field is beyond virtuous patience.

Let us give praise to those who focus on the longterm, putting aside the daily distractions that wish to make mountains out of political footballs.

We maintain more than one storyline, a few that give hope to the destitute and desperate, a few that produce more wealth for the wealthy, all in the plans to spread life-as-we-know-it as soon as viably possible, rather than as soon as feasibly feeble.

Now, back to the story subplot currently in progress…the development of robots by a small group of hackers thinking inside and outside of Pandora’s Box.

What sloppy code looks like in process

I never said I was a clean software code writer.

I write code like I draw — tracing and [re]sketching until I get a good feel for the drawing technique.

These lines of code are my “doodles”:

/* Read two one ultrasonic sensors and two PIR sensors, control five LEDs and two servos
Based on code by
David A. Mellis, Tom Igoe,
Kimmo Karvinen and Tero Karvinen
Updated by Joe Saavedra, 2010
http://BotBook.com
*/
/*****************************************************************************/
//    Function: If the sensor detects movement in its detecting range,
//              the LED is turned on. Otherwise, the LED is turned off.
//  Hardware: Grove – PIR Motion Sensor, Grove – LED
//    Arduino IDE: Arduino-1.0
//    Author:     Frankie.Chu
//    Date:      Jan 21,2013
//    Version: v1.0
//    by http://www.seeedstudio.com
//      Modified by: RadioShack Corporation
//      Date: July 18, 2013
//
//  This library is free software; you can redistribute it and/or
//  modify it under the terms of the GNU Lesser General Public
//  License as published by the Free Software Foundation; either
//  version 2.1 of the License, or (at your option) any later version.
//
//  This library is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
//  Lesser General Public License for more details.
//
//  You should have received a copy of the GNU Lesser General Public
//  License along with this library; if not, write to the Free Software
//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
//
/*******************************************************************************/
/*macro definitions of PIR motion sensor pins and LED pins*/
#define PIR_MOTION_SENSOR_LEFT 2//Use pin 2 to receive the signal from the left PIR module
#define PIR_MOTION_SENSOR_RT 5//Use pin 5 to receive the signal from the right PIR module
#define LED_LEFT    6//the LED is connected to D6 of Arduino
#define LED_RT    9//the LED is connected to D9 of Arduino
// Number Two: Sweep
// by BARRAGAN
// For more information on this circuit, go to http://www.oomlout.com/oom.php/products/ardx/circ-04

/*#define trigPin 12 // from forum.arduino.cc
#define echoPin 13 // from forum.arduino.cc*/
#include <Servo.h>

Servo myservo1;  // create servo object to control a servo
Servo myservo2;  // a maximum of eight servo objects can be created

int pos = 0;    // variable to store the servo position

//const int leftPing = 3;
const int rightPing = 12;

//const int leftPIRLed = 6;
//const int leftUSLed1 = 7;
const int rightUSLed1 = 8;
//const int rightPIRLed = 9;
//const int leftUSLed2 = 10;
//const int leftUSLed3 = 11;
const int rightUSLed2 = 11;
const int rightUSLed3 = 3;

const int closeD = 10; // cm; maximum closest distance – 0 to 10 cm range
const int midD = 20; // cm; maximum hand distance – 10 to 20 cm range
const int farD = 30; // cm; maximum farthest distance – 20 to 30 cm range

void setup()
{
myservo1.attach(10);  // attaches the servo 1 on pin 10 to the servo object
myservo2.attach(4);  // attaches the servo 2 on pin 4 to the servo object
pinsInit();

Serial.begin(9600);
//  pinMode(leftPIRLed, OUTPUT);
//  pinMode(leftUSLed1, OUTPUT);
//  pinMode(leftUSLed2, OUTPUT);
//  pinMode(leftUSLed3, OUTPUT);
//  pinMode(rightPIRLed, OUTPUT);
pinMode(rightUSLed1, OUTPUT);
pinMode(rightUSLed2, OUTPUT);
pinMode(rightUSLed3, OUTPUT);

//pinMode(trigPin, OUTPUT); //from forum.arduino.cc
//pinMode(echoPin, INPUT); //from forum.arduino.cc
}

void loop()
{
if(isPeopleDetectedLeft())//if the left PIR sensor detects movement, turn on LED.
turnOnLEDLeft();
else//if the left PIR sensor does not detect movement, do not turn on LED.
turnOffLEDLeft();
if(isPeopleDetectedRt())//if the right PIR sensor detects movement, turn on LED.
turnOnLEDRt();
else//if the right PIR sensor does not detect movement, do not turn on LED.
turnOffLEDRt();
//  ping(leftPing, leftUSLed1, leftUSLed2, leftUSLed3);
ping(rightPing, rightUSLed1, rightUSLed2, rightUSLed3);
//  delay(500);
/*int duration, distance,pos=0,i;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2)/29.1;
Serial.print(distance);
Serial.println(” cm”);
//if(distance<15)
if(rightPing<5)
{
myservo.write(90);
}
else{
myservo.write(0);
}
delay(10);*/

/*    for(pos = 0; pos < 180; pos += 1)  // goes from 0 degrees to 180 degrees
{                                  // in steps of 1 degree
myservo.write(pos);              // tell servo to go to position in variable ‘pos’
delay(15);                       // waits 15ms for the servo to reach the position
}
for(pos = 180; pos>=1; pos-=1)     // goes from 180 degrees to 0 degrees
{
myservo.write(pos);              // tell servo to go to position in variable ‘pos’
delay(15);                       // waits 15ms for the servo to reach the position
}*/
}

void pinsInit()
{
pinMode(PIR_MOTION_SENSOR_LEFT, INPUT);
pinMode(LED_LEFT,OUTPUT);
pinMode(PIR_MOTION_SENSOR_RT, INPUT);
pinMode(LED_RT,OUTPUT);

}
void turnOnLEDLeft()
{
digitalWrite(LED_LEFT,HIGH);
myservo2.write(180);
}
void turnOffLEDLeft()
{
digitalWrite(LED_LEFT,LOW);
myservo2.write(90);
}
void turnOnLEDRt()
{
digitalWrite(LED_RT,HIGH);
myservo2.write(0);
}
void turnOffLEDRt()
{
digitalWrite(LED_RT,LOW);
myservo2.write(90);
}
/***************************************************************/
/*Function: Detect whether there is movement in the PIR sensor’s detecting range*/
/*Return:-boolean, true is movement is detected.*/
boolean isPeopleDetectedLeft()
{
int sensorValue = digitalRead(PIR_MOTION_SENSOR_LEFT);
if(sensorValue == HIGH)//if the sensor value is HIGH?
{
return true;//yes,return true
}
else
{
return false;//no,return false
}
}
boolean isPeopleDetectedRt()
{
int sensorValue = digitalRead(PIR_MOTION_SENSOR_RT);
if(sensorValue == HIGH)//if the sensor value is HIGH?
{
return true;//yes,return true
}
else
{
return false;//no,return false
}
}
boolean ping(int pingPin, int ledPin1, int ledPin2, int ledPin3)
{
int d = getDistance(pingPin); // cm
boolean pinActivated1 = false;
boolean pinActivated2 = false;
boolean pinActivated3 = false;
if (d < closeD) {
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
myservo1.write(180);
pinActivated1 = true;
pinActivated2 = false;
pinActivated3 = false;
} else {
if (d < midD) {
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, LOW);
myservo1.write(90);
pinActivated1 = false;
pinActivated2 = true;
pinActivated3 = false;
}
else {
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, HIGH);
myservo1.write(0);
pinActivated1 = false;
pinActivated2 = false;
pinActivated3 = true;
}
}
return pinActivated1, pinActivated2, pinActivated3;
}

int getDistance(int pingPin)
{
long duration, inches, cm;

pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);

pinMode(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);

inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);
Serial.print(inches);
Serial.print(“in, “);
Serial.print(cm);
Serial.print(“cm”);
Serial.println();
return(cm); // You could also return inches
}

long microsecondsToInches(long microseconds)
{
return microseconds / 74 / 2;
}

long microsecondsToCentimeters(long microseconds)
{
return microseconds / 29 / 2;
}

 

Guin in the glen by the den

The harvesters sucked up tonne after tonne of Martian soil, dehydrating the clumps and analysing samples for potential mineral processing, storing valuable water for use by the colonists.

Guin hugged Shadowgrass tighter.

She had not known had much missing him had put an ache inside her which had turned her muscles to stone.

“Mom, how did you keep the ISSA Net from knowing your location? It’s virtually impossible!”

Guin looked at her son in wonder and awe.

At little over two years of age, almost three, Shadowgrass was already a man in many ways. He knew so much more than she did, building vast complex networks of memories and calculative intuition circuitry across the solar system, she was surprised when he asked her a question for which he didn’t know the answer or hadn’t developed a strong hypothesis to support or debate what he knew she was about to say.

“You really don’t know?”

He shook his head.

Was it really a black hole she and Lee had passed through?

It WAS something, something that had changed their relationship, enjoining them in ways that physical intimacy could not explain.

Guin sent a thought to Lee that the ISSA Net could not trace. Lee laughed in his thoughts and agreed — the unknown was more fun than the known.

“Well, sweetheart, I don’t have an answer for you.”

“I still want to get revenge on Collapsaricus!”

” I know you do but we don’t know what it was or where it went.”

“But we do! An astronomer is tracking a high-speed change in the flow of dust on another spiral arm of the galaxy. He thinks it might be disturbance caused by Collapsaricus.”

“Let’s not worry about it right now. Instead, why don’t you tell me about your new friend. She seems interesting.”

“She is. I’ve examined my set of thoughts and determined through testable theories that I’m experiencing what you and Dad described as the time you first fell in love with each other.”

“That’s wonderful! Isn’t love grand?”

He nodded his head.

Guin watched the clouds of dust billowing out from behind the harvesters. She wanted to rush back to the lab and catch up on her work but holding Shadowgrass felt so good. She had missed too much of his growing up for her to lose any more precious moments with her son.

She sighed and put her chin on his shoulder.

What if Shadowgrass’ new girlfriend wanted to move back to Earth? Would he go with her? What if they had children? Would Guin want to see them, spend time with them, return to a planet that had nurtured her and encouraged her to explore Mars? What did Lee think? And where was Bai?

Make: Robotic Hacks, the Robotic Experts presentation

Tonight on a Google+ Hangout, we listened to a group of robotic experts, many in the 3D DIY printing specialty, who talked about their creations:

…second installment of Robot Hacks, a Maker Session.
This will be a team presentation featuring +Michael Overstreet (I, bioloid) talking about his 3D printed humanoid robotic projects; Aaron Park (Robotis) open sourced DARwIn-mini, Dr Chi Thai (University of Georgia) and +Michael Paulishen programming the open sourced CM-904; +Erin RobotGrrl shows us RoboBrrd and her 3D printed robot; +Heriberto Reynoso (NASA) teaches kids how to build and program robots; and +lem fugitt talks about robot developments outside of the US and the application of 3D printing to robot design.

Join the conversation on the Robot Hacks community page.

Robot Hacks is the latest Maker Session presented by Make magazine and +General Electric. This 3 week program is designed to engage teams of makers around the world to participate in an open source “Robot Hacking and Making” program.

The standout image for me amongst all the cool ideas and commercial products?

A high school robotics education program:

robot-experts-presentation-24

To be clear, robotic development programs by full-grown humans is important but we old ones (say, age 35+) are merely pointing the way for the next generation.

In any case, here are some more screenshots of tonight’s presenters with their “children”:

robot-experts-presentation-08

Oops!  Technical difficulties — video echo, echo echo echoechoecho…

robot-experts-presentation-10a

robot-experts-presentation-13

robot-experts-presentation-17

robot-experts-presentation-02 robot-experts-presentation-29

Thanks to everyone involved, including the behind-the-scenes people who maintain servers/routers, design webcams and otherwise keep the Internet loosely bound together across the globe and beyond!

Preproductpreannouncement

In an attempt to counter the competition before it comes up with an over-the-counter product under-the-table and off-the-shelf commercially, the team that brings good things to light (or was that “we bring good things to life?”), together with the team that puts the intel inside the intel inside, in conjunction with the team that promotes the tiny mouse that roars (or is that the Minnie Mouse that roars at Mickey?), has announced a new line.

Bringing back the Nosferatu in nostalgia (or is that the pleurisy in heresy? (or hypocrisy in plutocracy?)), the team of teams threw a mad dash to a flash mob and popped up a tent in the middle of Times Square (because the crash party at Tienanmen Square had already closed down that block).

They demonstrated an open source set of proprietary software modules that can be downloaded into their new line of 3D printers that will allow you to personalise your own characters that fit into a kid’s Carousel of Progress Playhouse, complete with miniature version of yourself dressed in Mickey Mouse ears (or Minnie (or Goofy (or Pluto (no, not Pluto, he’s no longer fully-qualified to orbit on the same planetary plane as the other characters)))).

For the adult in the kid in you, you can print a scale model of yourself that includes self-powered swappable body parts that are recharged wirelessly (“No more bulky power pack!  ”Your minime will automatically locate and lie down on the recharging pad just like you taking a nap to recharge if you want a full recharge!  If not, your minime will be able to remove any ‘tired’ body part and swap in a fully-charged one!”); the smallest scale version will be prewired for plugging in body parts and the largestscale version will include body parts that communicate wirelessly with each other, reducing the number of wires in the body.

Industrial Musicals: While I let Abi torture me with love…

…or did she love me with torture?

Yeah, it’s that recurring theme again — the love of mine for a woman I’d spend more time with if I could afford the torture.

Afford?

Oh, indeed.

Today, I sat through several hours of people up on a dais dazzling me in a daze about their love and passion for philanthropy.

The only factor that kept me awake and alert during their entertainment of financial advisors, their clients and nonprofit organization representatives, other than seeing some familiar faces, was knowing that my reward for creating a derriere falling fast asleep would be getting Abi’s hands, wrists and elbows on me.

And boy, did she ever!

I’ve never been one of those sadomasochists who gets a certain thrill from pain.

Well…I mean, sure, I do get a certain thrill from pain but…is it getting hot in here?

Where was I?

Seriously, with my body supine and then prone, either way, Abi worked her magic on me.

That beautiful woman has a spell on me that I can’t describe.

I’m just glad she’s still in love with her man and I’ve got a steady woman of my own.

Otherwise…growl!

She is the only woman, and I mean the only one, not even my wife, who I would let touch me the way she does, working on knots in my back, neck and chest muscles that almost make this grown man cry.

I still don’t know if I’ve experienced the level of pain I’ve endured under the careful, delicate surgical procedure of Abi’s massage work.

I don’t know if I want to ever again.

Yet, somehow, I go back for more, letting the special love of my life have her way with me.

In those moments, alone on the massage table, my thoughts adrift on puffy clouds in a blue sky, just her and me in her flat, a crime drama on the tellie, her elbowing me while texting with clients for upcoming weekend massages at dance competitions, I ask myself how special is our love.

She doesn’t let me drive my elbows into her back or twist my fingers into her biceps.

She knows I love her even if I hate her when she’s sending me into Dante’s deepest levels of hellish pain.

For her, I would hunt animals, killing for meat bare-handed.

She has opened up my body for new experiences, giving me the happiness and courage I sought to feel confident on the dance floor, adding Jessica to the list of new dance wives.

Jenn, Abi, Jessica…and, of course, my wife…and Kelly…the list of fun dance partners grows.  Is Naomi next?  And, after her, who will look me in the eyes and want to have fun like there never was any fun before?

I was distracted most of the day today from work on the desktop robotic art sculpture that serves as a scale model for a yard art sculpture piece I’ve been slowly working on between daydreaming about the imaginary life this set of states of energy has convinced itself is real.

I returned this evening to program four LEDs and some sensors after working out the design details on dancing mannequins.

Abi, I’ll miss you desperately while you’re physically out of my life for the next two weeks.  You torture me in so many ways I’ve got to add sadomasochist to the list of adjectives in front of my name, or does the acronym S&M get added afterward like “Esq,” “PhD” or “MD”?

Thank goodness, there’s Jenn still teaching dance lessons.  And Naomi.  And maybe even Jessica.

Jenn the mechanical/rocket propulsion engineer inspired me to create a robot.  Abi the creative/artistic dance instructor/massage therapist inspired me to create robotic dancing mannequins.  My wife the rocket test engineer inspired me to create dancing snake charmers.  Naomi the hair stylist inspired me to colour my hair and let loose on the dance floor.  Jessica has inspired me to have chaotic fun while remembering to dance the West Coast Swing style.  And now Kelly has inspired me to see that not only can a person be a fiduciary advisor by day but dance “Sexual Healing” with a financial client at night and say it was good fun!

Thanks to the folks at Baron Bluff for hosting the philanthropy summit today; The Ledges for hosting Fred Lanier of JP Morgan who gave an economic seminar tonight on wealth management; Mandy at Club Rush.

I was happy to see the core group of Rocket Westies work out organizational problems tonight — without you guys, I wouldn’t be here right now.

And Jessica, darling, I’ll miss you, too, while you’re gone.

Now, time for some shuteye — I’m already a day behind on my coding but we’re a day ahead on our dancing mannequin design schedule!