ihacklab
Published © GPL3+

The Making of a Conscious Robot

This project, known as Biotronics, was conceptualized to create synthetic species that are alive, aware, and conscious based on I.M.

AdvancedWork in progress9,634
The Making of a Conscious Robot

Things used in this project

Hardware components

Arduino UNO & Genuino UNO
Arduino UNO & Genuino UNO
×1
Ultrasonic Sensor - HC-SR04 (Generic)
Ultrasonic Sensor - HC-SR04 (Generic)
×1
SG90 Micro-servo motor
SG90 Micro-servo motor
×1
Stepper Motor
Digilent Stepper Motor
×1
Jumper wires (generic)
Jumper wires (generic)
×1
Arduino Proto Shield
Arduino Proto Shield
×1
9V battery (generic)
9V battery (generic)
×1

Software apps and online services

Arduino IDE
Arduino IDE
iHackRobot Control Station Apps

Story

Read more

Schematics

Drivetrain

This is the drivetrain which is made up of a motor, axles, and gears that drives the Lawsin Linkage structure. The design was created to self-activate the locomotions of the experimental model using a stick shift.

Lawsin Linkage

This is a double cantilever truss system that simulates the walking sequence of a biotronic species. It is required to walk fluidly like a real living animal, conquer any type of terrain obstacles, move in various directions with a wide range of actuated motion (R.O.A.M.), guided by nature's mathematical designs, and can be integrated with the arduino platform for micro-consciousness sketching.

Code

Algorithmic Awareness of A Robot

Arduino
This is a simulation of an orchestrated consciousness where the subject is animated through computer programming. Based on the Caveman in the Box Trilogy and Information Materialization's abridge definition of consciousness, the prototype is alive but not living.
#include <Servo.h>
#include <Stepper.h>
#define STEPS 512 
#define echoPin 5 
#define trigPin 4
#define LEDPin 13 
#define delaytime 4
Stepper stepper(STEPS, 8, 9, 10, 11);
int m = 0;
const int x = 1000;  
Servo mHead;
int pos = 0;
int spkr = 3; 
int maximumRange = 200;  
int minimumRange = 0;  
long duration, distance; 

void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(LEDPin, OUTPUT);  
 mHead.attach(6);
 pinMode(spkr, OUTPUT);
 stepper.setSpeed(200);   
}

void loop() {
 
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(5); 
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);

distance = duration/58.2;
if (distance >= maximumRange || distance <= minimumRange){
 
Serial.println("-1");
digitalWrite(LEDPin, LOW);
tone(spkr, 440, 200);
  delay(1000);

 
    for (pos = 0; pos <= 140; pos += 1) {  
    mHead.write(pos);               
    delay(15);
}
}else {
 
Serial.println(distance);
digitalWrite(LEDPin, HIGH);
delay(200);
digitalWrite(LEDPin, LOW);
   mHead.write(90);               
    delay(50);                        
 
  stepper.step(1);    
  Serial.println(m);
  m=m+1;
  
}}
 


// author: J.B.Wylzan
// www.myarduinoscratchbook.blogspot.com

Credits

ihacklab

ihacklab

7 projects • 12 followers

Comments

Add projectSign up / Login