Thx to Isaac White, cooks, hostess ans sushi chef at Fulin.
Author Archives: treetrunkrick
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
twoone ultrasonic sensorsand 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 createdint 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 rangevoid 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;
}
Ring around the sun
Sorry, Alice doesn’t liver here anymore…
Two worries
Two concerns:
1. Haven’t heard frim Ashleigh Brilliant lately, hope he’s alright, and
2. Richard Branson’s face has been looking more swollen lately, a sign of heart circulation problems?
Congrats
Whudyasay?
Ready to take over the desktop robot world?
Advice from philanthropists
Some words of wisdom from the speakers at the Summit on Philanthropy:
- If you have a vision, things flow along and follow that vision
- Vision without execution is hallucination
- A good project needs a strong emotional component
- Protect your capital and grow your investment wisely over time
- Philanthropy equals exercise and promotion of values — in other words, what are your passions?
- Philanthropy is about investment of your time first (volunteer hours) and then your financial resources
- To live, we must give back to others using our skills and talents in service
- Philanthropy is a way of life, a way of thinking, not just a series of events — be willing to give the clothes off your back and help individuals become better people
- Giving starts with us — diverting our daily discretionary funds (e.g., giving up our snacks/Cokes for a week and convincing others to do the same) toward community efforts
- The way to build a charity is to start one
- The best philanthropic project starts with your family — talk to your spouse/kids and get them involved; remember that “no” is just as important as “yes”; make sure it fits into your strategic life plans/vision
- Nonprofit organisations must know the cost of raising funds
- “Don’t sign up — show up!”
- You don’t have to be Mother Theresa to have a positive impact on your community
- Be civically obsessed and keep the spirit of giving alive and well
- Projects successful because they came out of what the community wanted for itself
- “If you want to go fast, go alone; if you want to go far, go together.” — African proverb
- Your mission is to increase giving. Why? To strengthen the community.
Galaxy S3 as WiFi hotspot
So, as a robot hacks road warrior, I’ve got to keep the smack talk to a minimum and code hacking to the max.
Using this ol’ Compaq Presario C501NR notebook PC as my mobile headquarters, I’ve got it bouncing radio waves to the Internet through my Samsung Galaxy S3 o’er the AT&T 4GLTE network.
Speed test results give a decent throughput for what I need to do today:




