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

Hoe Sauron The Lord of the Robots te bouwen

Componenten en benodigdheden

Arduino Mega 2560
× 1
1Sheeld
× 1
Android-apparaat
× 1

Benodigde gereedschappen en machines

Lasersnijder (algemeen)

Apps en online services

Arduino IDE

Over dit project

Ben je een fan van Lord Of The Rings-filmseries? Zo ja, dan ken je "Sauron" zeker!

In dit project zullen we een semi-humanoïde robot van menselijke grootte bouwen die lijkt op Sauron :)

De robot heeft twee 3 DOF-armen en een 3 DOF-kop en een vaste basis. Sauron de robot kan in drie modi werken en je kunt tussen deze modi schakelen met behulp van twee drukknoppen die zijn bevestigd aan twee digitale invoerpinnen:

1. Standby-modus Deze modus om de robot in ieder geval te laten zien, De robot voert een reeks bewegingen uit om de aanwezigen aan te trekken.

2. Gamepad-modus In deze modus kan de deelnemer aan het evenement de robot besturen met behulp van het Gamepad-schild van 1Sheeld Application.

3. Imitatiemodus In deze modus kan de robot de bewegingen van de deelnemers aan het evenement imiteren, zoals het kind in Real Steal Movie. U draagt ​​dus handschoenen met uw smartphone erop bevestigd en de Arduino leest de waarden van uw smartphonesensoren zoals oriëntatie en gyroscoop en gebruikt deze waarden om de armen van de robot te besturen.

Ik heb dit project gemaakt om deel te nemen aan New York Maker Faire om kinderen gelukkig te maken en hen te inspireren om moderne technologieën te gebruiken, met name ontwikkelingsplatforms zoals Arduino en 1Sheeld om hun filmpersonages zoals ATOM in Real Steal-film of Sauron uit The Lord Of The Rings te bouwen film serie. Ik heb alle benodigde bestanden toegevoegd (CAD-tekeningen, schema's en lay-outs van circuits, Arduino-codes en dxf-bestanden voor lasercutter) om iemand te helpen zijn eigen Sauron te bouwen :)

Laten we beginnen met het bouwen van de Lord Of The Robots.

Stap 1:Het hoofd van de robot bouwen

Om tijd en moeite te besparen besloot ik het wiel niet opnieuw uit te vinden, dus in plaats van een nieuwe robotkop te ontwerpen, gebruikte ik deze fantastische open source robotkop "Fritz" van xyzbot. Ik download hun lasercutter-bestanden en vervolgens gebruikte ik een lasersnijder in een nabijgelegen makerspace om de kopdelen te snijden. In mijn geval probeerde ik de tijd en de kosten te verminderen, dus ik sloeg 3D-printen van de oogdelen over en sloeg de lippen en de wenkbrauwen over .

Ik heb triplexplaat van 3 mm gebruikt om de koponderdelen te implementeren, volg na het snijden van deze onderdelen met de lasersnijder de bijgevoegde video om de kit te monteren, maar let op deze punten:

1. U slaat het monteren van de basis over.

2. Je slaat alle stappen met betrekking tot de 3D-geprinte delen van de ogen over.

3. Je slaat alle stappen met betrekking tot de wenkbrauwen en de lippen over.

Open_Source_Files.zip FFRDB2LIKJ8MS1G.dxf

Stap 2:Het lichaam van de robot bouwen

Zoals gewoonlijk bouw ik mijn projecten om draagbaar te zijn om gemakkelijk in korte tijd te kunnen worden geassembleerd als ik ermee reis om een ​​evenement als Maker Faire bij te wonen, dus bouwde ik het lichaam van de robot met behulp van Artelon-staven en triplexplaten van 3 mm.

Ik heb tong- en groefverbindingen gebruikt om de borst met schouders, nek en rug te fixeren. Daarna gebruikte ik schroeven van 4 mm x 20 mm om het houten frame met het Artelon-skelet te bevestigen en een schroef van 12 mm x 30 mm om het Artelon-skelet met de basis van de robot te bevestigen. Ik gebruikte een schroef van 4 mm x 10 mm om de servomotoren met een houten frame te bevestigen. Het Artelon-skelet bestaat uit 5 delen:

1. De basishengel is gemaakt van 50 mm Artelon staaf.

2. Het skelet is gemaakt van 25 mm Artelon staaf.

3.De breedte staven -> de robot heeft 3 delen om de borst met de rug vast te zetten met behulp van het Artelon-skelet, deze delen zijn gemaakt van 15 mm Artelon-staaf.

U kunt de bijgevoegde tekeningen raadplegen voor meer informatie over de fabricage van al deze onderdelen.

F7DSZV7IKMXH73S.pdf FI5J5H6IKMXH73X.pdf FYPCBU7IKMXH748.pdf FXN90VDIKMXH75Z.pdf F3LCJDQIKMXH763.pdf FZ2QN61IKMXH769.pdf FA2UEZBIKMXH90J.zip

Stap 3:De basis van de robot maken

  • Ik heb Solidworks gebruikt om deze basis te ontwerpen om de robot aan mijn bureau te bevestigen, je kunt de drie schroeven gebruiken om hem aan het bureau te bevestigen of je kunt twee 4 inch C-klemmen gebruiken.
  • Ik heb 6 mm plaatwerk gebruikt om deze basis te maken en ik heb deze openingen gemaakt om het gewicht te verminderen.
  • Ik heb 12 mm x 30 mm schroeven gebruikt om de basis met het Artelon-skelet te bevestigen.
  • U kunt het bijgevoegde .dxf-bestand gebruiken om het uwe te implementeren.
FMZODFWIKMXHHIV.dxf

Stap 4:De armen van de robot bouwen

De robotarmen waren het grootste uitdagende punt in dit project. Ik wilde dat ze modulair waren en zo gemakkelijk mogelijk in elkaar te zetten en uit elkaar te halen, zodat ik met de robot naar de Verenigde Staten kon reizen.

Ik wilde dat deze armen voor algemeen gebruik zouden zijn en ik kan ze gemakkelijk aanpassen. Als ik wilde dat deze robot een piraat zou zijn, kan ik een zwaard en een haak gebruiken en als ik wilde dat de robot een bokser zou zijn zoals Atom in de Real Steal-film, kan ik twee vuisten toevoegen en kan ik twee grijpers toevoegen om hem een ​​algemeen doel te maken robot, dus ik ontwierp het onderarmgewricht voor dit doel.

Ik gebruikte triplexplaten van 3 mm om het armframe en aluminium pan-tilt voor de schoudergewrichten te implementeren, daarna gebruikte ik balsaplaten om de wapens, het zwaard en de haak, door te snijden.

Ik gebruikte Solidworks om het vereiste koppel te berekenen en het resultaat was dat ik servomotoren van 3 kg/cm moest gebruiken, maar ik gebruikte grotere motoren om de robot iets op te laten tillen. In plaats van veel bewerkingen op de draaibank uit te voeren om de onderarm te implementeren gewrichten Ik gebruikte Autodesk 123D Make om ze in een rek met plakjes te splitsen, daarna gebruikte ik de lasersnijder om ze te snijden.

Ik heb het ontwerp van de robotarm op Solidworks bevestigd, zodat je je aanpassingen kunt maken en het koppel kunt berekenen.

Stap 5:Sauron helm en harnas cosplay

Tot nu toe lijkt de robot op ATOM uit de echte Steal-film, laat ATOM helpen om Sauron te zijn :D

Mijn vriend Kareem heeft me geholpen de cosplay te implementeren. We hebben deze fantastische instructables gevolgd om de helm en het pantser van de robot te bouwen, maar ik heb ze enigszins aangepast aan de afmetingen van de robot.

http://www.instructables.com/id/Sauron-Cosplay/

http://www.instructables.com/id/Sauron-Cosplay-Hel...

Als je vragen hebt over het cosplay-gedeelte kun je hem stellen via zijn FB-pagina

Met dank aan Nate Space.

Stap 6:De elektronica van de robot

1. Ik gebruikte Arduino Mega met 1Sheeld om de servomotoren van de robotarmen en het hoofd te besturen.

2. Ik gebruikte een 5V/5A voeding om de motoren en de Arduino van stroom te voorzien.

3. Ik heb een klein breadboard gebruikt om alle motoren Vcc en GND samen met de voeding aan te sluiten

4. Ik heb 1Sheeld gebruikt om de robot te besturen met mijn smartphone.1Sheeld is een rapid prototyping-platform voor Arduino waarmee je gebruik kunt maken van de sensoren en mogelijkheden van je smartphone en ze kunt gebruiken in je Arduino-projecten. Kortom, het is een hardwareschild dat bovenop je Arduino-bord zit en via Bluetooth communiceert met deze Android-app, om gegevens tussen het en je smartphone over te dragen.

1Sheeld Mobile Application heeft een lange lijst met schilden, u moet Gamepad-schild, Orientation-schild, Music Player-schild, Terminal Shield en schakelknop uit deze lijst selecteren.

1. Gamepad-schild dat is een GUI op mijn smartphone met enkele knoppen zoals PlayStation-joystick en via Bluetooth verbonden met Arduino en ik gebruikte het om de servomotoren handmatig te bedienen. Wanneer u op een knop van het Gamepad-schild drukt, stuurt de applicatie gegevens naar 1Sheeld, waarna Arduino de servomotoren van de armen en het hoofd van de robot bestuurt.

2. Oriëntatieschild :Ik draag handschoenen met mijn smartphone erop bevestigd, dan breng ik de waarden van de smartphonesensoren in kaart om deze als hoeken naar de servomotoren te sturen.

3. Muziekspelerschild: Ik gebruik het schild van de muziekspeler om een ​​soundtrack af te spelen met de stem van Sauron wanneer hij zijn mond op en neer beweegt.

4. Toggle-knop Schild: Ik gebruik dit schild om de gewenste modus te kiezen in plaats van fysieke drukknoppen toe te voegen

5. Terminal Shield: Ik gebruik dit schild in plaats van Arduino IDE seriële monitor te gebruiken omdat 1Sheeld niet tegelijkertijd kan communiceren met de pc en de Bluetooth-module.

Stap 7:De Arduino-code

Stap 1: Plaats uw 1Sheeld op uw Arduino-bord en sluit de Arduino vervolgens aan op uw laptop of pc.

Stap 2: Download 1Sheeld Application op uw smartphone. De app is beschikbaar in de Google Play Store op http://1sheeld.com/app

Stap 3: Download 1Sheeld-bibliotheek Download OneSheeld-bibliotheek naar uw computer via deze link.

Stap 4: Pak de map uit, kopieer hem en plak hem in de directory van je Arduino-bibliotheken.

Stap 5: Open mijn Arduino Sketch (je vindt het in de bijgevoegde bestanden)

Stap 6: Upload je schets

Hier komt het belangrijkste deel van de hele tutorial, schakel 1Sheeld naar de uploadmodus (dit is de schakelaar met het label UART Switch op het bord) voordat je je schets uploadt naar het Arduino-bord om seriële conflicten tussen 1Sheeld en Arduino te voorkomen, druk dan op de Upload-knop in de IDE.

De uploadmodus wordt ingeschakeld wanneer de UART-schakelaar van het 1Sheeld-logo wordt weggeduwd. Nadat u uw upload heeft voltooid, moet u 1Sheeld terugzetten naar de bedrijfsmodus.

Niet vergeten! Als u de UART Switch niet terugzet naar de bedrijfsmodus, zal uw project niet goed werken omdat u geen communicatie hebt tussen 1Sheeld en het Arduino-bord. De bedrijfsmodus wordt ingeschakeld wanneer de UART-schakelaar het dichtst bij het 1Sheeld-logo wordt geduwd.

Stap 7: Gebruik 1Sheeld-applicatie Open de 1Sheeld-applicatie op uw Android-smartphone. De applicatie scant eerst via Bluetooth naar uw 1Sheeld, het duurt een paar seconden en de telefoon zal het vinden. Zodra het op uw scherm verschijnt als 1Sheeld #xxxx, moet u de koppelingscode invoeren (de standaardkoppelingscode is 1234) en verbinding maken met 1Sheeld via Bluetooth.

OPMERKING: Als u problemen ondervindt, zorg er dan voor dat Bluetooth is ingeschakeld voor uw Android-telefoon en dat de Android-telefoon zich in de buurt van uw 1Sheeld bevindt.

Stap 8 : Selecteer Gamepad Shield, Orientation Shield, Music Player Shield en Toggle-knop Shield en Terminal shield in de lijst met schilden en druk op het pictogram met meerdere schilden in de rechterbovenhoek van de app.

Stap 9: Zodra u de robot van stroom voorziet, werkt deze standaard in de stand-bymodus als u hem handmatig wilt bedienen met de Gamepad, opent u het schild van de schakelknop en kiest u pin 2 en drukt u vervolgens op Aan. Als u terug wilt naar de stand-bymodus, drukt u op UIT.

Stap 10: Als u het handmatig wilt bedienen met behulp van de Oriëntatiesensor, opent u het schild van de schakelknop en kiest u pin 3 en drukt u vervolgens op Aan. en zorg ervoor dat de status van pin 2 LAAG is.

F5KJZGXIKMXG3DG.ino

Stap 8:Sauron in Maker Faire New York

Laten we nu naar Sauron kijken tussen zijn fans in Maker Faire New York :)

Stap 9:Toekomstig werk

Betreft dit instructable: Ik zal een video voor me opnemen terwijl ik de robot in elkaar zet en vervolgens de drie modi probeer.

Betreft het hoofd van de robot: In deze iteratie heb ik besloten om de kosten te verlagen, dus ik gebruikte slechts 3 motoren in het hoofd. In de volgende iteratie zal ik de rest van de motoren toevoegen en zal ik de delen van de ogen 3D printen zoals (ooglid, oogbeugel, eyering, gaffelpen, oogbol schaal)

Betreft de basis van de robot: Ik zal de vaste basis vervangen door een robotbasis met 4 mecanumwielen, zodat de robot vrij kan bewegen. Ik ben klaar met het ontwerpen van de basis op Solidworks, maar ik heb geen tijd om deze samen te voegen met de robot.

Code

  • Sauron Arduino-code
Sauron Arduino-codeArduino
#define CUSTOM_SETTINGS#define INCLUDE_GAMEPAD_SHIELD#define INCLUDE_MUSIC_PLAYER_SHIELD#define INCLUDE_TERMINAL_SHIELD#define INCLUDE_ORIENTATION_SENSOR_SHIELD/* Inclusief 1Sheeld-bibliotheek. */#include #include Servo rightArm_Motor1;Servo rightArm_Motor2;Servo rightArm_Motor3;Servo leftArm_Motor1;Servo leftArm_Motor2;Servo leftArm_Motor3;Servo neckHorizontal;Servo neckVertical;Servo mouthP;const 2x int modePin2 =3;vluchtige int modeState1 =LAAG;vluchtige int modeState2 =LAAG;vluchtige boolean gamepadMode_Enabled =false;vluchtige boolean imitationMode_Enabled =false;const int ledPin1 =A0;const int ledPin2 =A1;/-------; ----------------------------------- instelling ongeldig ------------- -------------------------------------- ongeldig setup(){ // Start communicatie OneSheeld.begin (); // Stel enkele pinnen in als output pinMode (modePin1, INPUT); pinMode (modePin2, INPUT); // Stel Led in als output en HOGE "Saurons Eye" pinMode (ledPin1, OUTPUT); pinMode (ledPin2, UITGANG); digitalWrite (ledPin1, HOOG); digitalWrite (ledPin2, HOOG); // Digitale pinnen bruikbaar voor onderbrekingen bij gebruik van Mega, Mega2560, MegaADK (2, 3, 18, 19, 20, 21) attachInterrupt(digitalPinToInterrupt(modePin1), gampadMode_ChangeISR, CHANGE); attachInterrupt(digitalPinToInterrupt(modePin2), imitationMode_ChangeISR, CHANGE); /* Sluit de signaalpinnen (oranje) van de motoren rechtstreeks aan op de Arduino mega PWM-pinnen en voed vervolgens de motoren via de voeding NIET van de Arduino en sluit vervolgens beide aardingen van de Arduino en de voeding op elkaar aan */ rightArm_Motor1.attach(4); rightArm_Motor2.attach(5); rightArm_Motor3.attach(6); leftArm_Motor1.attach(7); leftArm_Motor2.attach(8); leftArm_Motor3.attach (9); neckHorizontal.attach(10); neckVertical.attach (11); mond.bijvoegen (12); // startpositie rightArm_Motor1.write (95); rightArm_Motor2.write(150); rightArm_Motor3.write(20); leftArm_Motor1.write(90); leftArm_Motor2.write(45); leftArm_Motor3.write(180); nekHorizontal.write(105); nekVertical.write(30); mond.schrijf(100);}//---------------------------------- ongeldige lus ---- ----------------------------------------------- ongeldige lus( ){ modeState1 =digitalRead (modePin1); modeState2 =digitalRead (modePin2); // Controleer altijd de gewenste modus als (modeState1 ==HOOG) { Terminal.println ("GamePad-modus is geselecteerd"); gamePadMode(); } //Pin 12 =Hoog --> Gamepad-modus else if (modeState2 ==HOOG) { Terminal.println ("Imitatiemodus is geselecteerd"); imitatieMode(); } //Pin 13 =Hoog --> Imitatiemodus else { Terminal.println ("Stand-bymodus is geselecteerd"); standby modus(); }}// ongeldige lus//----------------------------------------- ongeldig Standby-modus --------------------------------------------- ongeldige standby-modus ( ) { // Standby-modus Terminal.println ("Stand-by-modus geactiveerd"); // startpositie Terminal.println ("1e positie"); rightArm_Motor1.write (95); rightArm_Motor2.write(150); rightArm_Motor3.write(20); leftArm_Motor1.write(90); leftArm_Motor2.write(45); leftArm_Motor3.write(180); nekHorizontal.write(105); nekVertical.write(30); // Stel het volume in// MusicPlayer.setVolume (10); Muziekspeler.play(); for (int i =0; i <=19; i++) {mouth.write(100); OneSheeld.vertraging(150); mond.schrijven(75); OneSheeld.vertraging(150); }//voor Muziekspeler.pauze(); mond.schrijven(100); OneSheeld.vertraging (3000); //------------------------------------------------ ---- // Controleer altijd de gewenste modus als (gamepadMode_Enabled ==true) { Terminal.println ("Systeem was onderbroken en activeert nu de GamePad-modus"); gamePadMode(); } //Pin 12 =Hoog --> Gamepad-modus else if (imitationMode_Enabled ==true) { Terminal.println ("Systeem was onderbroken en activeert nu de imitatiemodus"); imitatieMode(); } // Pin 13 =Hoog --> Imitatiemodus else { // Voltooi de rest van de reeks // Move head 90 --> 0 --> 180 --> 90 Terminal.println ("2e positie"); rightArm_Motor1.write (95); rightArm_Motor2.write(150); rightArm_Motor3.write(20); leftArm_Motor1.write(90); leftArm_Motor2.write(45); leftArm_Motor3.write(180); nekHorizontal.write(105); OneSheeld.vertraging (1500); neckHorizontal.write(65); OneSheeld.vertraging (1500); nekHorizontal.write(140); OneSheeld.vertraging (1500); nekHorizontal.write(105); nekVertical.write(30); // Stel het volume in// MusicPlayer.setVolume (10); Muziekspeler.play(); for (int i =0; i <=19; i++) {mouth.write(100); OneSheeld.vertraging(150); mond.schrijven(75); OneSheeld.vertraging(150); }//voor Muziekspeler.pauze(); mond.schrijven(100); OneSheeld.vertraging (3000); }//else --> voltooi de rest van de reeks //----------------------------------- ----------------- // Controleer altijd de gewenste modus als (gamepadMode_Enabled ==true) { Terminal.println ("Systeem was onderbroken en activeert nu de GamePad-modus"); gamePadMode(); } //Pin 12 =Hoog --> Gamepad-modus else if (imitationMode_Enabled ==true) { Terminal.println ("Systeem was onderbroken en activeert nu de imitatiemodus"); imitatieMode(); } // Pin 13 =Hoog --> Imitatiemodus anders { // Voltooi de rest van de reeks // Beweeg handen en hoofd naar 45 graden Terminal.println ("3e positie"); rightArm_Motor1.write (15); rightArm_Motor2.write(180); rightArm_Motor3.write(0); leftArm_Motor1.write(180); leftArm_Motor2.write(30); leftArm_Motor3.write (145); neckHorizontal.write(65); nekVertical.write(30); // Stel het volume in// MusicPlayer.setVolume (10); Muziekspeler.play(); for (int i =0; i <=19; i++) {mouth.write(100); OneSheeld.vertraging(150); mond.schrijven(75); OneSheeld.vertraging(150); }//voor Muziekspeler.pauze(); mond.schrijven(100); OneSheeld.vertraging (3000); }//else --> voltooi de rest van de reeks //----------------------------------- -------------- // Controleer altijd de gewenste modus als (gamepadMode_Enabled ==true) { Terminal.println ("Systeem was onderbroken en activeert nu de GamePad-modus"); gamePadMode(); } //Pin 12 =Hoog --> Gamepad-modus else if (imitationMode_Enabled ==true) { Terminal.println ("Systeem was onderbroken en activeert nu de imitatiemodus"); imitatieMode(); } // Pin 13 =Hoog --> Imitatiemodus anders { // Voltooi de rest van de reeks // Beweeg de rechterhand en ga naar Terminal.println van 135 graden ("4e positie"); rightArm_Motor1.write (15); rightArm_Motor2.write(150); rightArm_Motor3.write(30); leftArm_Motor1.write(180); leftArm_Motor2.write(30); leftArm_Motor3.write (145); neckHorizontal.write(140); nekVertical.write(30); // Stel het volume in// MusicPlayer.setVolume (10); MusicPlayer.play(); for (int i =0; i <=19; i++) { mouth.write(100); OneSheeld.delay(150); mouth.write(75); OneSheeld.delay(150); }//for MusicPlayer.pause(); mouth.write(100); OneSheeld.delay(3000); }//else --> complete the rest of the sequence //--------------------------------------------------- // Always check the desired mode if (gamepadMode_Enabled ==true) { Terminal.println("System Was Interrupted And It Will Activate GamePad Mode Now"); gamePadMode(); } //Pin 12 =High --> Gamepad mode else if (imitationMode_Enabled ==true) { Terminal.println("System Was Interrupted And It Will Activate Imitation Mode Now"); imitationMode(); } //Pin 13 =High --> Imitation Mode else { // Complete the rest of the sequence // Move head to the center Terminal.println("5th position"); rightArm_Motor1.write(15); rightArm_Motor2.write(150); rightArm_Motor3.write(30); leftArm_Motor1.write(180); leftArm_Motor2.write(30); leftArm_Motor3.write(145); neckHorizontal.write(105); neckVertical.write(30); // Set the volume// MusicPlayer.setVolume(10); MusicPlayer.play(); for (int i =0; i <=19; i++) { mouth.write(100); OneSheeld.delay(150); mouth.write(75); OneSheeld.delay(150); }//for MusicPlayer.pause(); mouth.write(100); OneSheeld.delay(3000); }//else --> complete the rest of the sequence //---------------------------------------------------- // Always check the desired mode if (gamepadMode_Enabled ==true) { Terminal.println("System Was Interrupted And It Will Activate GamePad Mode Now"); gamePadMode(); } //Pin 12 =High --> Gamepad mode else if (imitationMode_Enabled ==true) { Terminal.println("System Was Interrupted And It Will Activate Imitation Mode Now"); imitationMode(); } //Pin 13 =High --> Imitation Mode else { // Complete the rest of the sequence // Move hands up Terminal.println("6th position"); rightArm_Motor1.write(110); rightArm_Motor2.write(0); rightArm_Motor3.write(45); leftArm_Motor1.write(90); leftArm_Motor2.write(180); leftArm_Motor3.write(145); neckHorizontal.write(105); neckVertical.write(30); // Set the volume// MusicPlayer.setVolume(10); MusicPlayer.play(); for (int i =0; i <=19; i++) { mouth.write(100); OneSheeld.delay(150); mouth.write(75); OneSheeld.delay(150); }//for MusicPlayer.pause(); mouth.write(100); OneSheeld.delay(3000); }//else --> complete the rest of the sequence //------------------------------------------------- // Always check the desired mode if (gamepadMode_Enabled ==true) { Terminal.println("System Was Interrupted And It Will Activate GamePad Mode Now"); gamePadMode(); } //Pin 12 =High --> Gamepad mode else if (imitationMode_Enabled ==true) { Terminal.println("System Was Interrupted And It Will Activate Imitation Mode Now"); imitationMode(); } //Pin 13 =High --> Imitation Mode else { // Complete the rest of the sequence /* Move hands to sides o -- | -- ^ */ Terminal.println("7th position"); rightArm_Motor1.write(110); rightArm_Motor2.write(80); rightArm_Motor3.write(60); leftArm_Motor1.write(90); leftArm_Motor2.write(115); leftArm_Motor3.write(140); neckHorizontal.write(105); neckVertical.write(30); // Set the volume// MusicPlayer.setVolume(10); MusicPlayer.play(); for (int i =0; i <=19; i++) { mouth.write(100); OneSheeld.delay(150); mouth.write(75); OneSheeld.delay(150); }//for MusicPlayer.pause(); mouth.write(100); OneSheeld.delay(3000); }//else --> complete the rest of the sequence //--------------------------------------------------- // Always check the desired mode if (gamepadMode_Enabled ==true) { Terminal.println("System Was Interrupted And It Will Activate GamePad Mode Now"); gamePadMode(); } //Pin 12 =High --> Gamepad mode else if (imitationMode_Enabled ==true) { Terminal.println("System Was Interrupted And It Will Activate Imitation Mode Now"); imitationMode(); } //Pin 13 =High --> Imitation Mode else { // Complete the rest of the sequence // Strike right hand Terminal.println("8th position"); rightArm_Motor1.write(0); rightArm_Motor2.write(0); rightArm_Motor3.write(45); leftArm_Motor1.write(90); leftArm_Motor2.write(45); leftArm_Motor3.write(180); OneSheeld.delay(500); rightArm_Motor1.write(180); rightArm_Motor2.write(0); rightArm_Motor3.write(45); OneSheeld.delay(1000); rightArm_Motor1.write(95); rightArm_Motor2.write(150); rightArm_Motor3.write(20); neckHorizontal.write(105); neckVertical.write(30); // Set the volume// MusicPlayer.setVolume(10); MusicPlayer.play(); for (int i =0; i <=19; i++) { mouth.write(100); OneSheeld.delay(150); mouth.write(75); OneSheeld.delay(150); }//for MusicPlayer.pause(); mouth.write(100); OneSheeld.delay(3000); }//else --> complete the rest of the sequence //-------------------------------------------------- // Always check the desired mode if (gamepadMode_Enabled ==true) { Terminal.println("System Was Interrupted And It Will Activate GamePad Mode Now"); gamePadMode(); } //Pin 12 =High --> Gamepad mode else if (imitationMode_Enabled ==true) { Terminal.println("System Was Interrupted And It Will Activate Imitation Mode Now"); imitationMode(); } //Pin 13 =High --> Imitation Mode else { // Complete the rest of the sequence // Strike left hand Terminal.println("9th position"); rightArm_Motor1.write(95); rightArm_Motor2.write(150); rightArm_Motor3.write(20); leftArm_Motor1.write(90); leftArm_Motor2.write(180); leftArm_Motor3.write(110); OneSheeld.delay(500); leftArm_Motor1.write(0); leftArm_Motor2.write(180); leftArm_Motor3.write(110); OneSheeld.delay(1000); leftArm_Motor1.write(90); leftArm_Motor2.write(45); leftArm_Motor3.write(180); neckHorizontal.write(105); neckVertical.write(30); // Set the volume// MusicPlayer.setVolume(10); MusicPlayer.play(); for (int i =0; i <=19; i++) { mouth.write(100); OneSheeld.delay(150); mouth.write(75); OneSheeld.delay(150); }//for MusicPlayer.pause(); mouth.write(100); OneSheeld.delay(3000); }//else --> complete the rest of the sequence //----------------------------------------------------- // Always check the desired mode if (gamepadMode_Enabled ==true) { Terminal.println("System Was Interrupted And It Will Activate GamePad Mode Now"); gamePadMode(); } //Pin 12 =High --> Gamepad mode else if (imitationMode_Enabled ==true) { Terminal.println("System Was Interrupted And It Will Activate Imitation Mode Now"); imitationMode(); } //Pin 13 =High --> Imitation Mode else { // Complete the rest of the sequence // Play Music Player and move the robot's mouth Terminal.println("Return to the home position"); rightArm_Motor1.write(95); rightArm_Motor2.write(150); rightArm_Motor3.write(20); leftArm_Motor1.write(90); leftArm_Motor2.write(45); leftArm_Motor3.write(180); neckHorizontal.write(105); neckVertical.write(30); // Set the volume// MusicPlayer.setVolume(10); MusicPlayer.play(); for (int i =0; i <=49; i++) { mouth.write(100); OneSheeld.delay(150); mouth.write(75); OneSheeld.delay(150); }//for MusicPlayer.pause(); mouth.write(100); Terminal.println("Done"); }//else --> complete the rest of the sequence}// void standby mode//----------------------------------------- void Gamepad Mode ---------------------------------------------void gamePadMode() { Terminal.println("Gamepad mode activated"); // Always check the status of gamepad buttons if (GamePad.isUpPressed()) { // Move both hands up Terminal.println("Up is pressed"); rightArm_Motor1.write(110); rightArm_Motor2.write(0); rightArm_Motor3.write(45); leftArm_Motor1.write(90); leftArm_Motor2.write(180); leftArm_Motor3.write(145); neckHorizontal.write(105); neckVertical.write(30); mouth.write(100); }//Up is pressed if (GamePad.isDownPressed()) { // Move both hands up Terminal.println("Down is pressed"); rightArm_Motor1.write(110); rightArm_Motor2.write(170); rightArm_Motor3.write(45); leftArm_Motor1.write(90); leftArm_Motor2.write(20); leftArm_Motor3.write(145); neckHorizontal.write(105); neckVertical.write(30); mouth.write(100); }//Down is pressed if (GamePad.isRightPressed()) { // Move right hand side Terminal.println("Right is pressed"); rightArm_Motor1.write(110); rightArm_Motor2.write(80); rightArm_Motor3.write(60); leftArm_Motor1.write(90); leftArm_Motor2.write(20); leftArm_Motor3.write(145); neckHorizontal.write(105); neckVertical.write(30); mouth.write(100); }//Right is pressed if (GamePad.isLeftPressed()) { // Move left hand side Terminal.println("Left is pressed"); rightArm_Motor1.write(110); rightArm_Motor2.write(170); rightArm_Motor3.write(45); leftArm_Motor1.write(90); leftArm_Motor2.write(115); leftArm_Motor3.write(140); neckHorizontal.write(105); neckVertical.write(30); mouth.write(100); }//Left is pressed if (GamePad.isRedPressed()) { // Combo 1 Terminal.println("Red is pressed"); rightArm_Motor1.write(180); rightArm_Motor2.write(45); rightArm_Motor3.write(100); leftArm_Motor1.write(90); leftArm_Motor2.write(180); leftArm_Motor3.write(110); neckHorizontal.write(105); neckVertical.write(30); mouth.write(100); }//Red is pressed if (GamePad.isOrangePressed()) { // Combo 2 Terminal.println("Orange is pressed"); rightArm_Motor1.write(15); rightArm_Motor2.write(100); rightArm_Motor3.write(0); leftArm_Motor1.write(180); leftArm_Motor2.write(100); leftArm_Motor3.write(180); neckHorizontal.write(105); neckVertical.write(30); mouth.write(100); }//Orange is pressed if (GamePad.isGreenPressed()) { // Combo 3 Terminal.println("Green is pressed"); rightArm_Motor1.write(95); rightArm_Motor2.write(45); rightArm_Motor3.write(120); leftArm_Motor1.write(90); leftArm_Motor2.write(135); leftArm_Motor3.write(60); neckHorizontal.write(105); neckVertical.write(10); mouth.write(100); }//Green is pressed if (GamePad.isBluePressed()) { // Combo 4 Terminal.println("Blue is pressed"); rightArm_Motor1.write(90); rightArm_Motor2.write(0); rightArm_Motor3.write(90); leftArm_Motor1.write(180); leftArm_Motor2.write(45); leftArm_Motor3.write(180); neckHorizontal.write(105); neckVertical.write(30); mouth.write(100); }//Blue is pressed}// Gamepad mode//----------------------------------------- void Imitation Mode -------------------------------------------void imitationMode() { // Imitation mode Terminal.println("Imitation mode activated"); if (OrientationSensor.getY()> -90 &&OrientationSensor.getY() <=90) { leftArm_Motor1.write(map(OrientationSensor.getY(), -90, 90, 0, 180)); } if (OrientationSensor.getZ()> -70 &&abs(OrientationSensor.getZ()) <=70) { leftArm_Motor2.write(map(OrientationSensor.getZ(), 0, 60, 100, 160)); leftArm_Motor3.write(map(OrientationSensor.getZ(), 0, 60, 160, 100)); }}// void imitation mode//-----------------------------------------------------------------------------------------------------------//-------------------------------------------- Modes ISR ----------------------------------------------------//-----------------------------------------------------------------------------------------------------------void gampadMode_ChangeISR() { if (gamepadMode_Enabled &&!imitationMode_Enabled) { gamepadMode_Enabled =false; imitationMode_Enabled =false; } else { gamepadMode_Enabled =true; imitationMode_Enabled =false; }}//gampadMode_ChangeISR//------------------------------------------------------------------------------------------------------------void imitationMode_ChangeISR() { if (imitationMode_Enabled &&!gamepadMode_Enabled) { gamepadMode_Enabled =false; imitationMode_Enabled =false; } else { gamepadMode_Enabled =false; imitationMode_Enabled =true; }}//imitationMode_ChangeISR

Schema's


Productieproces

  1. Hoe spuitrobots de consistentie verbeteren
  2. Hoe verfrobots nabewerking verminderen
  3. Hoe u de kosten van herbewerking in de productie kunt verlagen
  4. Wat is de realiteit van robotvisie?
  5. Wat is in godsnaam een ​​zelfprogrammerende robot?
  6. Industriële robot
  7. De robots bezig houden
  8. Het perfecte ERP-implementatieteam samenstellen
  9. SCARA-robot | Hoe u uw eigen op Arduino gebaseerde robot kunt bouwen
  10. Raspberry Pi-robot:een Raspberry Pi-robot bouwen
  11. Hoe rooskleurig is de toekomst van automatisering?