Live with robots

Dream

I have ever dreamed about to have my own personal robot that assist me in tasks when i need help in some way.

So i have started to design a first version prototype to get that dream done.

Also i want to everybody that´s share that dream to get involve in this project in the way they can.

  • Electronics
  • Hardware
  • Software Programming
  • 3D Modelling

 

Concept

Mainly it gotta be cappable to:

  • Follow the 3 Laws of  robotics
  • Manages auto charging (solarpanels or electrical net).
  • Recognize voices.
  • 3D Map new places.
  • View and Detect Faces, body complexions, objects, places.
  • Remember people, objects, places.
  • Bring Objects.
  • Store Objects.
  • Protect Home.

It´s gotta be a kind of tool but the fact of communicate wth it makes a more personal relationship so i gotta give a name to it, let´s say “Robbie”.

Structure

Well, the name is given so go to make a main design to Robbie´s structure.

  • It gotta have wheels to move around the place.
  • Arms & hands to handle objects.
  • Sensors to sense the environment.
  • Big Batteries to live longer.
  • Solar panel to recharge Batteries.
  • Wall electric connector.

 

Brain

For the Brain i gotta make it modular in both versions  Arduino and Raspberry PI.

 

Computer Vision And Senses

For the Computer Vision and senses i decided to use a sort of sensors to achieve good results for relevant tasks as map places and recognize objects and people.

  • Ultrasonic Sensor (Measure distance)
  • Video Input Camera Sensor (Measure Colors and shapes)
  • Infrared Sensor (Measure Heat)
  • Humidity Sensor (Measure ambience humidity)

 

Movement

For the Movements i gotta use stepper motors with a nice torque , belts and gears to power up Robbie´s movement and keep them accurate.

Advertisements

Arduino + 16 keypad Matrix 4×4 module and DO, RE, MI scale sounds

matrix_module_sound

Arduino Code:

#include <Keypad.h>

int speakerPin = 12; // speaker connected to digital pin 12

const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns

char keys[ROWS][COLS] = {
{‘a’,’b’,’c’,’d’},
{‘e’,’f’,’g’,’h’},
{‘i’,’j’,’k’,’l’},
{‘m’,’n’,’o’,’p’}
};
byte rowPins[ROWS] = {2, 3, 4, 5}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {6, 7, 8, 9}; //connect to the column pinouts of the keypad

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup(){

Serial.begin (9600);

pinMode(speakerPin, OUTPUT); // sets the speakerPin to be an output

}

void loop(){
char key = keypad.getKey();

if (key != NO_KEY){
Serial.println(key);

if (key==’a’){ beep(speakerPin,2093,100);}
if (key==’b’){ beep(speakerPin,2349,100);}
if (key==’c’){ beep(speakerPin,2637,100);}
if (key==’d’){ beep(speakerPin,2793,100);}
if (key==’e’){ beep(speakerPin,3136,100);}
if (key==’f’){ beep(speakerPin,3520,100);}
if (key==’g’){ beep(speakerPin,3951,100);}
if (key==’h’){ beep(speakerPin,4186,100);}
if (key==’i’){ beep(speakerPin,2093,100);}
if (key==’j’){ beep(speakerPin,2349,100);}
if (key==’k’){ beep(speakerPin,2637,100);}
if (key==’l’){ beep(speakerPin,2793,100);}
if (key==’m’){ beep(speakerPin,3136,100);}
if (key==’n’){ beep(speakerPin,3520,100);}
if (key==’o’){ beep(speakerPin,3951,100);}
if (key==’p’){ beep(speakerPin,4186,100);}
}
}

void beep (unsigned char speakerPin, int frequencyInHertz, long timeInMilliseconds){ // the sound producing function
int x;
long delayAmount = (long)(1000000/frequencyInHertz);
long loopTime = (long)((timeInMilliseconds*1000)/(delayAmount*2));
for (x=0;x<loopTime;x++)
{
digitalWrite(speakerPin,HIGH);
delayMicroseconds(delayAmount);
digitalWrite(speakerPin,LOW);
delayMicroseconds(delayAmount);
}
}

Arduino + Leds Knight Rider Effect

20150915_220640

Arduino Code:

/*
Knight Rider Effect Improved

Knight rider display on 6 LEDs
*/

void setup() {
// set up pins 2 to 8 as outputs
for (int i = 2; i < 7; i++) {
pinMode(i, OUTPUT);
}
}

// function to switch all LEDs off
void allLEDsOff(void)
{
for (int i = 2; i < 7; i++) {
digitalWrite(i, LOW);
}
}

void loop() {
// move on LED to the right
for (int i = 2; i < 6; i++) {
allLEDsOff();
digitalWrite(i, HIGH);
delay(50);
}
// move on LED to the left
for (int i = 6; i > 2; i–) {
allLEDsOff();
digitalWrite(i, HIGH);
delay(50);
}

// move on LED to the right
for (int i = 2; i < 6; i++) {
allLEDsOff();
digitalWrite(i, HIGH);
delay(50);
}
// move on LED to the left
for (int i = 6; i > 2; i–) {
allLEDsOff();
digitalWrite(i, HIGH);
delay(50);
}

allLEDsOff();
delay(250);

}

Arduino + Joystick

joystick

Arduino Code:

int xPin = A1;
int yPin = A0;
int buttonPin = 2;

int xPos = 0;
int yPos = 0;
int button = 0;

void setup() {
Serial.begin(9600);

pinMode(xPin, INPUT);
pinMode(yPin, INPUT);

pinMode(buttonPin, INPUT_PULLUP);

}

void loop() {
xPos = analogRead(xPin);
yPos = analogRead(yPin);
button = digitalRead(buttonPin);

Serial.print(“X: “);
Serial.print(xPos);
Serial.print(” | Y: “);
Serial.print(yPos);
Serial.print(” | Button: “);
Serial.println(button);

delay(50);

}