Je me demandais si l'un de vous aurait des schemas, dessin ou autre plans montrant comment est articulé un robot ...
A part quelque modèle de pince, je n'ai rien trouvé sur google .
Comment fabriquer une main, un bras, une jambe, etc ...
Merci

Beetlejuice n'a pas encore ajouté d'ami.
16 septembre 2012 - 10:57
12 septembre 2012 - 01:57
int IRIn = 2; // We will use an interrupt int IROut= 3; // Where the echoed command will be sent from boolean RSEcho=true; // Should Arduino Echo RS commands boolean RSUsed=true; // Has the last command been used volatile int RSBit=9; // Total bits of data volatile int RSCommand; // Single byte command from IR int bitTime=516; // Bit time (Theoretically 833 but 516) // works for transmission and is faster int last; // Previous command from IR String inputString = ""; // a string to hold incoming data boolean stringComplete = false; // whether the string is complete int serialCommand(0xEF); // Command sent via serial void setup() { pinMode(IRIn, INPUT); pinMode(IROut, OUTPUT); pinMode(10,OUTPUT); digitalWrite(IROut,HIGH); attachInterrupt(0,RSReadCommand,RISING); last=0xEF; // Set last command as " noOp " Serial.begin(115200); } // Receive a bit at a time. void RSReadCommand() { delayMicroseconds(833+208); // about 1 1/4 bit times int bit=digitalRead(IRIn); if (RSBit==9) { // Must be start of new command RSCommand=0; RSBit=0; RSUsed=true; } if (RSBit<8) { RSCommand<<=1; RSCommand|=bit; } RSBit++; if (RSBit==9) RSUsed=false; } // send the whole 8 bits void RSSendCommand(int command) { digitalWrite(IROut,LOW); delayMicroseconds(8*bitTime); for (int i=0;i<8;i++) { digitalWrite(IROut,HIGH); delayMicroseconds(bitTime); if ((command & 128) !=0) delayMicroseconds(3*bitTime); digitalWrite(IROut,LOW); delayMicroseconds(bitTime); command <<= 1; } digitalWrite(IROut,HIGH); delay(250); // Give a 1/4 sec before next } void loop() { if (!RSUsed) { if (RSCommand==0x8E && last==0x8E) { RSEcho=!RSEcho; } last=RSCommand; // print code received from the remote Serial.print("IR Code : "); Serial.println(RSCommand); if (!RSEcho) { digitalWrite(10,HIGH); // Turn on LED let us know we have control our wedge Serial.println("Arduino control ON "); } else { digitalWrite(10,LOW); // No longer in control Serial.println("Arduino control OFF "); RSSendCommand(RSCommand); } RSUsed=true; } while (Serial.available()) { // get the new byte: char inChar = (char)Serial.read(); // add it to the inputString: inputString += inChar; // if the incoming character is a newline, set a flag // so the main loop can do something about it: if (inChar == '\n') { Serial.print ("inputString value: " ); Serial.println (inputString); if (inputString == "RSTurnRight") serialCommand= 0x80; if (inputString == "RSRightArmUp") serialCommand= 0x81; if (inputString == "RSRightArmOut") serialCommand= 0x82; if (inputString == "RSTiltBodyRight") serialCommand= 0x83; if (inputString == "RSRightArmDown") serialCommand= 0x84; if (inputString == "RSRightArmIn") serialCommand= 0x85; if (inputString == "RSWalkForward") serialCommand= 0x86; if (inputString == "RSWalkBackward") serialCommand= 0x87; if (inputString == "RSTurnLeft") serialCommand= 0x88; if (inputString == "RSLeftArmUp") serialCommand= 0x89; if (inputString == "RSLeftArmOut") serialCommand= 0x8A; if (inputString == "RSTiltBodyLeft") serialCommand= 0x8B; if (inputString == "RSLeftArmDown") serialCommand= 0x8C; if (inputString == "RSLeftArmIn") serialCommand= 0x8D; if (inputString == "RSStop") serialCommand= 0x8E; if (inputString == "RSWakeUp") serialCommand= 0xB1; if (inputString == "RSBurp") serialCommand= 0xC2; if (inputString == "RSRightHandStrike") serialCommand= 0xC0; if (inputString == "RSNoOp") serialCommand= 0xEF; Serial.print (" Value sent : " ); Serial.println (serialCommand,HEX); RSSendCommand(serialCommand); Serial.println (" Command sent to robosapien " ); // clear the string: inputString = ""; } } }
12 septembre 2012 - 07:01