Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Human Head to Robot Head

Componenten en benodigdheden

Arduino UNO
× 1
servomotor
× 3
Android-apparaat
× 1
Gereguleerde voedingskaart
× 1

Benodigde gereedschappen en machines

Soldeerbout (algemeen)

Apps en online services

SensoDuino

Over dit project

Plan om iets nieuws te doen, maar niet zo duur. Ik hou erg van robotica. Maar vanwege de eis van servo's en andere onderdelen hou ik er niet van om het te maken. Nu heb ik 4 servomotoren die slechts $ 13 kosten. Ik heb al Link it one board en Arduino board.

Dus ben van plan om een ​​robotkop te maken die als ons hoofd in alle assen beweegt, maar goedkoop. Studeren voor verschillende sensoren en methoden, maar eindelijk een manier vinden met alle items in mijn hand. Veel dingen bestudeer ik tijdens dit project. Kom op, ik leg uit wat ik studeer. Ik vermeld wat ik leer in vette letters.

Gebruik de Smart Mobile Tilt-sensor om het hoofd te bedienen

Stap 1:Benodigde materialen

Materialen die ik heb gebruikt

1) Arduino uno.

2) Linkit één bord.

3) 3 servomotoren.

4) SensoDuino gratis Android-app Download hier.

5) Gereguleerde voedingskaart (12V,5V,3.3V).

6) Gewone printplaat.

7) PCB mannelijke connectoren

8) Afgesneden stuk aluminium voertoevoer.

9) Heet lijmpistool.

10) 12V- en 5V-adapter.

11) Nog wat items om te versieren.

Waarom Linkit one board en Arduino uno

Als je een Linkit-kaart en een 3V-servomotor hebt, heb je geen Arduino UNO nodig omdat mijn 5V-servo niet goed werkt in Koppel één bord.

Als u een Arduino uno- en Bluetooth-module hebt, is . niet nodig Koppel één bord.

Ik heb geen blue tooth shield, dus ik ga met Linkit one board en Arduino uno.

Stap 2:Eigen servoschild

1) Maak een servomotorschild voor Arduino. (Wees voorzichtig als u zelfs 3v-servo's gebruikt, Linkit one heeft slechts 2 PWM-pinnen)

2) Ik maak een schild zoals PCB voor servomotor.

3) Met behulp van dit bord kunnen we 6 servomotoren van arduino pind (3,5,6,9,10,11) aansturen.

4) Hier worden 3 draadservo's gebruikt. waar de voeding wordt gegeven door een externe 5 V-voedingskaart van de regelaar.

5) Gebruik tijdens de servobesturing de adaptervoeding voor het Arduino-bord. Omdat PC USB-voeding trillingen veroorzaakt. Dit veroorzaakt oververhitting in de servomotor en beschadigt de Servomotor . (een van mijn servoschade)

Stap 3:Maak van Linkit één verbinding

1) Linkit wil met Arduino praten om de servo's te besturen.

2) Sluit daarvoor de Tx van het Linkit one-bord aan op de Rx van het Arduino-bord en beide Gnd.

3) wanneer de ontvangen gegevens ooit naar de Arduino worden verzonden.

Opmerking:-

Als je een Arduino Bluetooth-schild hebt, bestuur je de hele setup met één bord.

Stap 4:Servopositie

1) Stel alle servomotoren in op 90 graden. Upload daarvoor het bovenstaande programma naar arduino..

2) Sluit de servo- en arduino-voeding aan op de voedingskaart van de regelaar op 5V- en 12V-pinnen.

3) Sluit de vrouwelijke servoconnector aan op de mannelijke connector als de PCB die we maken in Arduino digitale pinnen 3,5,6.

3) Sluit de 12V-adapter aan op de voedingskaart van de regelaar.

4) Schakel de adapter in.

5) Nu draaien alle motoren 90 graden volgens programma.

Koppel nu de motoren los om ze samen te voegen zonder de rotor te storen.

Positie Arduino IDE-code wordt gegeven als Servoposition.ino


Stap 5:Plan

1) Hoofd roteren in 3 assen x,y,z.

2) De rotaties zijn

a) Yaw - Zie links en rechts.

b) Pitch -Zie boven en beneden

c) Roll-Shake zijwaarts.

3) Gebruik eerst dubbelzijdig plakband om de servo's te plannen.

4) Snijd het aluminium scheidingsstuk in L-vorm om de bovenste servo aan de tweede te bevestigen.

5) Sluit de servomotorhoorn aan volgens uw plan of zoals weergegeven in de afbeelding

6) Het midden van de servo's moet recht zijn in 90 graden.

7) plak alle servo's en het aluminium L-stuk met dubbelzijdig plakband en controleer of de beweging andere servo's niet kan storen.

Stap 6:Constructie

1) Nu is het tijd om het permanent te repareren.

2) Verwijder de dubbelzijdige sticker één voor één en bevestig deze permanent met een heet lijmpistool.

3) Wees voorzichtig en beschadig de servo's niet.

4) Sluit de servoconnector opnieuw aan op het Arduino-bord en schakel de voeding in

5) conform alle staan ​​rechtop zoals laatste afbeelding.

Stap 7:Details Android-app

1) Open SensoDuino op je Android-telefoon. Het heeft opties om alle uitlezingen van mobiele sensoren te bekijken en deze via blue tooth te verzenden.

2) Alle nieuwste sensoren worden vermeld en we kunnen alleen selecteren welke sensoren beschikbaar zijn in onze telefoon.

3) Ga naar het menu en selecteer Bluetooth verbinden.

4) De lijst toont de beschikbare Bluetooth-apparaten.

5) Selecteer de Linkit one bluetooth.

6) Voor ons project gebruiken we Oriëntatiesensor. Vink het eerste vakje aan en het tweede vakje om gegevens via blue tooth te verzenden.

7) We stellen ook de prestaties van elke sensor in door de prestatie-optie in het menu te selecteren. Wijzig het tijdsinterval voor elke meting.

Stap 8:Coderen

1) Twee coderingen zijn hier één voor Linkit één.

Met behulp van blue tooth haalt het gegevens op van de mobiel en stuurt het naar de Arduino via de seriële poort

2) Arduino-programma

Wanneer gegevens worden ontvangen in de seriële poort, worden de tekens samengevoegd als een tekenreeks. En met behulp van indexof en substring deel je een volledig setresultaat. Gebruik in die set opnieuw de indexof en substring om elke positie te krijgen. Van dat met behulp van de kaart in Arduino om de servo te besturen van 0 tot 180 graden. Als u Bluetooth-schild gebruikt, wijzigt u het programma volgens het vereiste.

Hoe het programma werkt

1) Met behulp van de oriëntatiesensor draait de robot het hoofd zoals wij.

a) Yaw is de rotatie, het is van 0 tot 360 graden volgens de magnetische positie. Daarvoor gebruiken we 90 tot 270 graden waarbij 180 de 90 graden is voor servo. Dus we willen 180 graden onder ogen zien als een touwtje wanneer we de pet dragen.

b) Pitch is voorzijde op en neer. De sensorwaarde is -180 tot + 180. We gebruiken -90 tot +90.

c) De rol wordt zijdelings geschud, het is 0 tot 90 tot 0 tot -90 tot 0. we gebruiken -90 tot 90.


Linkit one-code wordt gegeven in Linkitonehead.ino

Arduino-code wordt gegeven in Arduinohead.ino


Stap 9:Bestel de borden

1) sluit beide schildborden aan op de bovenkant van beide microcontrollers.

2) Plak alles met dubbelzijdige sticker over elkaar.

3) Pas op dat je op geen enkele terminal schiet.

Stap 10:Trail met de hand

Schakel nu alle voeding in en gebruik de mobiel in de hand. Ga 180 graden in de bocht zitten en gebruik de mobiel om alle drie de servomotoren te bedienen.

Stap 11:een gezicht repareren

1) Het is kerst, dus ik heb veel kerstmanpoppen in de winkel gevonden.

2) Koop een pop en bevestig het hoofd met een dubbelzijdige tik op de bovenste servo-arm.

Stap 12:Maak een controlehoed

1) Neem een ​​normale hoed.

2) Plak een dubbelzijdige sticker op de voorkant van de dop zoals weergegeven in de afbeelding.

3) Plak je mobiele telefoon over de dubbelzijdige tape.

Stap 13:Video testen

Lage prestaties testen betekent de vernieuwingsfrequentie van de sensor om de 250 milliseconde.

Stap 14:laatste video

Bekijk de actie bij een sensorleessnelheid van één meting per 100 milliseconde

Code

  • Servoposition.ino
  • Linkitonehead.ino
  • Arduinohead.ino
Servoposition.inoArduino
#include  Servo leftright;Servo updown;Servo shake;void setup() { Serial.begin(9600); linksrechts.bijvoegen (3); updown.attach(5); schudden.bijvoegen (6); linksrechts.schrijven(90); updown.write(90); schudden.schrijven(90); }void loop() {}
Linkitonehead.inoArduino
#include #include int readval;String inputString ="";String outputString ="";int firstpoint=0;int secondpoint=0;void setup() { if(! LBTServer.begin((uint8_t*)"Sivam_LIO")) {return; }// Serieel.begin(9600); Serial1.begin (9600); }void loop() { uint8_t buf[64]; int bytesRead; if(LBTServer.connected()) { while(true) {bytesRead =LBTServer.readBytes(buf, 32); if(!bytesRead) breken; invoerString=""; for(int j=0;j<32;j++) { char inChar =char(buf[j]); // voeg het toe aan de inputString:inputString +=inChar; }// Serial.println(inputString); Serial1.println(inputString);// firstpoint=inputString.indexOf('>');// Serial.println(inputString);// Serial.println(firstpoint);// if (firstpoint>0)// {/ / secondpoint=inputString.indexOf('>',firstpoint+1);// if (secondpoint>0)// {// outputString=inputString.substring(firstpoint,secondpoint);// inputString=inputString.substring(secondpoint);// Serial.println (outputString);// }// } } vertraging (100); } else { LBTServer.accept(5); }}
Arduinohead.inoArduino
#include  Servo leftright;Servo updown;Servo shake;String inputString ="";boolean stringComplete =false;String teststr2;String sensorid;String sensorrecid;String sensorval1;String sensorval2;String sensorval3;int S1;int S2;int S3;int startchr=0;int endchr=0;int rot1;int rot2;int rot3;void setup() {Serial.begin(9600);// inputString.reserve(200); linksrechts.bijvoegen (3); updown.attach(5); shake.attach(6);}void loop() {}void serialEvent() { while (Serial.available()) { char inChar =(char)Serial.read(); if (inChar !='\n') { inputString +=inChar; } } startchr =inputString.indexOf('>'); if (startchr>=0) { endchr =inputString.indexOf('>',startchr+1); if (endchr>0) {teststr2=inputString.substring(startchr,endchr); inputString=inputString.substring(endchr); startchr =teststr2.indexOf(','); sensorid =teststr2.substring(1,startchr); endchr =teststr2.indexOf(',',startchr+1); sensorrecid=teststr2.substring(startchr+1,endchr); startchr=endchr; endchr =teststr2.indexOf(',',startchr+1); sensorval1=teststr2.substring(startchr+1,endchr); startchr=endchr; endchr =teststr2.indexOf(',',startchr+1); sensorval2=teststr2.substring(startchr+1,endchr); startchr=endchr; sensorval3=teststr2.substring(startchr+1); S1=sensorval1.toInt(); S2=sensorval2.toInt(); S3=sensorval3.toInt(); rot1=kaart (S1, 90, 270, 180, 0); als (rot1<0) rot1=0; anders als (rot1>180) rot1=180; rot2=kaart(S2, -90, 90, 0, 180); als (rot2<0) rot2=0; anders als (rot2>180) rot2=180; rot3=kaart(S3, 90, -90, 0, 180); als (rot3<0) rot3=0; anders als (rot3>180) rot3=180; if (rot1!=0 &rot1!=180) { leftright.write(rot1); } if (rot1!=0 &rot1!=180) { updown.write(rot2); } if (rot1!=0 &rot1!=180) { shake.write(rot3); } vertraging(15); // Serial.print("Sensor-");// Serial.println(sensorid);// Serial.print("Sensor Val1-");// Serial.println(rot1);// Serial.print(" Sensor Val2-");// Serial.println(rot2); // Serial.print ("Sensor Val3-");// Serial.println (rot3); } } }

Productieproces

  1. Raspberry Pi CD Box Robot
  2. Rollende alarmrobot
  3. RaspiRobot Board V2
  4. Maak een Minecraft Creeper Robot
  5. Archimedes:The AI ​​Robot Owl
  6. Open CV Robot
  7. ROS Robot
  8. SONBI ROBOT MENSELIJKE DETECTIE MET KINECT EN RASPBERRY PI
  9. Simple Pi Robot
  10. Menselijk vermogen
  11. Zachte robots gebruiken camera en schaduw om menselijke aanraking te voelen