Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Cara Membangun Sauron Penguasa Robot

Komponen dan persediaan

Arduino Mega 2560
× 1
1Sheeld
× 1
Perangkat Android
× 1

Alat dan mesin yang diperlukan

Pemotong laser (generik)

Aplikasi dan layanan online

Arduino IDE

Tentang proyek ini

Apakah Anda penggemar serial film Lord Of The Rings? Jika demikian pasti Anda tahu "Sauron"!

Dalam proyek ini kami akan membuat robot semi-humanoid berukuran manusia seperti Sauron :)

Robot memiliki dua lengan 3 DOF dan kepala 3 DOF serta alas tetap. Sauron robot dapat beroperasi dalam tiga mode dan Anda dapat beralih di antara mode ini menggunakan dua tombol tekan yang terpasang pada dua pin Input digital:

1. Mode Siaga Mode ini untuk menunjukkan selubung robot di setiap acara, Robot melakukan urutan gerakan untuk menarik perhatian para hadirin.

2. Mode alas permainan Dalam mode ini, peserta acara dapat mengontrol robot menggunakan perisai Gamepad dari Aplikasi 1Sheeld.

3. Mode Imitasi Dalam mode ini robot dapat meniru gerakan peserta acara seperti anak kecil di Film Real Steal. Jadi, Anda akan mengenakan sarung tangan dengan ponsel pintar terpasang di atasnya dan Arduino akan membaca nilai sensor ponsel pintar Anda seperti orientasi dan giroskop, lalu menggunakan nilai ini untuk mengontrol lengan robot.

Saya telah membuat proyek ini untuk berpartisipasi dalam New York Maker Faire untuk membuat anak-anak bahagia dan menginspirasi mereka untuk menggunakan teknologi modern terutama mengembangkan platform seperti Arduino dan 1Sheeld untuk membangun karakter film mereka seperti ATOM dalam film Real Steal atau Sauron dari The Lord Of The Rings seri film. Saya telah menyertakan semua file yang diperlukan (gambar CAD, skema dan tata letak Sirkuit, kode Arduino, dan file dxf untuk pemotong laser) untuk membantu siapa pun membuat Sauronnya sendiri :)

Mari kita mulai membangun Lord Of The Robots.

Langkah 1:Membangun kepala robot

Untuk menghemat waktu dan tenaga, saya memutuskan untuk tidak menemukan kembali roda, jadi alih-alih mendesain kepala robot baru, saya menggunakan kepala robot open source yang fantastis ini "Fritz" dari xyzbot. Saya mengunduh file pemotong laser mereka kemudian saya menggunakan pemotong laser di pembuat terdekat untuk memotong bagian kepala. Dalam kasus saya, saya mencoba mengurangi waktu dan biaya jadi saya melewatkan pencetakan 3D bagian mata kemudian saya melewatkan bibir dan alis .

Saya menggunakan lembaran kayu lapis 3mm untuk menerapkan bagian-bagian kepala, setelah memotong bagian-bagian ini menggunakan pemotong laser, ikuti video terlampir untuk merakit kit tetapi perhatikan poin-poin ini:

1. Anda akan melewatkan perakitan pangkalan.

2. Anda akan melewati semua langkah yang terkait dengan bagian mata yang dicetak 3D.

3. Anda akan melewatkan semua langkah yang berhubungan dengan alis dan bibir.

Open_Source_Files.zip FFRDB2LIKJ8MS1G.dxf

Langkah 2:Membangun tubuh robot

Seperti biasa saya membuat proyek saya menjadi portabel agar mudah dirakit dalam waktu singkat jika saya akan bepergian dengannya untuk menghadiri acara seperti Maker Faire jadi saya membuat tubuh robot menggunakan batang Artelon dan lembaran kayu lapis 3mm.

Saya menggunakan Tongue and Groove Joints untuk memperbaiki dada dengan bahu, leher dan punggung. Kemudian saya menggunakan sekrup 4mm x 20mm untuk memperbaiki bingkai kayu dengan kerangka Artelon dan sekrup 12mm x 30mm untuk memperbaiki kerangka Artelon dengan basis robot. Saya menggunakan sekrup 4mm x 10mm untuk memperbaiki motor servo dengan bingkai kayu. Kerangka Artelon terdiri dari 5 bagian:

1. Tongkat dasar terbuat dari batang Artelon 50mm.

2. Kerangka terbuat dari batang Artelon 25mm.

3. Batang lebar -> robot memiliki 3 bagian untuk memperbaiki dada dengan punggung dengan bantuan kerangka Artelon, bagian ini terbuat dari batang Artelon 15mm.

Anda dapat memeriksa gambar terlampir untuk informasi lebih lanjut tentang pembuatan semua bagian ini.

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

Langkah 3:Membuat basis Robot

  • Saya menggunakan Solidworks untuk mendesain alas ini untuk memasang robot ke meja saya, Anda dapat menggunakan tiga sekrup untuk memasangnya ke meja atau Anda dapat menggunakan dua klem C 4 inci.
  • Saya menggunakan lembaran logam 6mm untuk membuat alas ini, dan saya membuat lubang ini untuk mengurangi beratnya.
  • Saya menggunakan sekrup 12mm x 30mm untuk memperbaiki alas dengan kerangka Artelon.
  • Anda dapat menggunakan file .dxf terlampir untuk mengimplementasikan milik Anda.
FMZODFWIKMXHHIV.dxf

Langkah 4:Membangun Lengan robot

Lengan robot adalah titik tantangan terbesar dalam proyek ini. Saya ingin mereka menjadi modular dan mudah dirakit dan dibongkar agar memungkinkan saya bepergian dengan robot ke Amerika Serikat.

Saya ingin senjata ini menjadi tujuan umum dan saya dapat memodifikasinya dengan mudah. Jika saya ingin robot ini menjadi bajak laut saya dapat menggunakan pedang dan kail dan jika saya ingin robot menjadi petinju seperti Atom di film Real Steal saya dapat menambahkan dua tinju dan saya dapat menambahkan dua gripper untuk membuatnya menjadi tujuan umum robot, Jadi saya merancang sendi lengan bawah untuk tujuan ini.

Saya menggunakan lembaran kayu lapis 3mm untuk mengimplementasikan rangka lengan dan kemiringan panci aluminium untuk sendi bahu kemudian saya menggunakan lembaran Balsa untuk memotong senjata pedang dan kail.

Saya menggunakan Solidworks untuk menghitung torsi yang diperlukan dan hasilnya adalah saya perlu menggunakan motor servo 3kg/cm tetapi saya menggunakan motor yang lebih besar untuk membuat robot mengangkat sesuatu. Alih-alih melakukan banyak pemesinan pada mesin bubut untuk mengimplementasikan lengan bawah sambungan Saya menggunakan Autodesk 123D Make untuk membaginya menjadi rak irisan, lalu saya menggunakan pemotong laser untuk memotongnya.

Saya memasang desain lengan robot di Solidworks sehingga Anda dapat melakukan modifikasi dan menghitung torsi.

Langkah 5:Cosplay helm dan baju besi Sauron

Sampai saat ini robot tersebut terlihat seperti ATOM dari film Steal asli, bantu ATOM menjadi Sauron :D

Teman saya Kareem membantu saya menerapkan cosplay. Kami mengikuti instruksi fantastis ini untuk membuat helm dan pelindung robot, tetapi saya sedikit memodifikasinya agar sesuai dengan dimensi robot.

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

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

Jika Anda memiliki pertanyaan tentang bagian cosplay, Anda dapat menanyakannya melalui halaman FB-nya

Terima kasih kepada Nate Space.

Langkah 6:Elektronik Robot

1. Saya menggunakan Arduino Mega dengan 1Sheeld untuk mengontrol lengan robot dan motor servo kepala.

2. Saya menggunakan catu daya 5V/5A untuk memberi daya pada motor dan Arduino.

3. Saya menggunakan papan tempat memotong roti kecil untuk menghubungkan semua motor Vcc dan GND bersama-sama dengan catu daya

4. Saya menggunakan 1Sheeld untuk mengontrol robot menggunakan ponsel pintar saya.1Sheeld adalah platform prototyping cepat untuk Arduino yang memungkinkan Anda memanfaatkan sensor dan kemampuan ponsel cerdas Anda dan memungkinkan Anda menggunakannya dalam proyek Arduino Anda. Pada dasarnya, Ini adalah pelindung perangkat keras yang berada di atas papan Arduino Anda dan berkomunikasi melalui Bluetooth ke aplikasi Android ini, untuk mentransfer data antara itu dan ponsel cerdas Anda.

1Sheeld Mobile Application memiliki daftar perisai yang panjang, Anda harus memilih Perisai Gamepad, Perisai Orientasi, Perisai Pemutar Musik, Perisai Terminal, dan tombol sakelar dari daftar ini.

1. Perisai Gamepad yang merupakan GUI di smartphone saya yang memiliki beberapa tombol seperti joystick PlayStation dan terhubung ke Arduino melalui Bluetooth dan saya menggunakannya untuk mengontrol motor servo secara manual. Saat Anda menekan tombol apa saja dari pelindung Gamepad, aplikasi akan mengirimkan data ke 1Sheeld, lalu Arduino akan mengontrol motor servo pada lengan dan kepala robot.

2. Perisai Orientasi :Saya memakai sarung tangan dengan smartphone saya terpasang di atasnya kemudian saya memetakan nilai dari sensor smartphone untuk mengirimkannya sebagai sudut ke motor servo.

3. Perisai Pemutar Musik: Saya menggunakan pelindung pemutar musik untuk memutar trek suara yang memiliki suara Sauron saat dia menggerakkan mulutnya ke atas dan ke bawah.

4. Tombol beralih Perisai: Saya menggunakan perisai ini untuk memilih mode yang diinginkan daripada menambahkan tombol tekan fisik

5. Perisai Terminal: Saya menggunakan shield ini daripada menggunakan serial monitor Arduino IDE karena 1Sheeld tidak bisa berkomunikasi dengan PC dan modul Bluetooth secara bersamaan.

Langkah 7:Kode Arduino

Langkah 1: Tempatkan 1Sheeld Anda di papan Arduino Anda lalu colokkan Arduino ke laptop atau PC Anda.

Langkah 2: Unduh Aplikasi 1Sheeld ke ponsel pintar Anda. Aplikasi ini tersedia di Google Play Store di http://1sheeld.com/app

Langkah 3: Unduh perpustakaan 1Sheeld Unduh perpustakaan OneSheeld ke komputer Anda melalui tautan ini.

Langkah 4: Ekstrak folder, salin, dan tempel di direktori perpustakaan Arduino Anda.

Langkah 5: Buka Sketsa Arduino saya (Anda akan menemukannya di file terlampir)

Langkah 6: Unggah sketsa Anda

Inilah bagian terpenting dari keseluruhan tutorial, alihkan 1Sheeld ke mode Uploading (ini adalah sakelar berlabel UART Switch di papan) sebelum Anda mengunggah sketsa ke papan Arduino untuk menghindari konflik serial antara 1Sheeld dan Arduino, lalu tekan tombol Unggah di IDE.

Mode unggah dihidupkan ketika sakelar UART didorong menjauh dari logo 1Sheeld. Setelah Anda menyelesaikan unggahan Anda, Anda perlu mengalihkan 1Sheeld kembali ke mode operasi.

Jangan lupa! Jika Anda tidak mengalihkan UART Switch kembali ke mode operasi, proyek Anda tidak akan berfungsi dengan baik karena Anda tidak akan memiliki komunikasi antara 1Sheeld dan papan Arduino. Mode pengoperasian diaktifkan saat sakelar UART ditekan paling dekat ke logo 1Sheeld.

Langkah 7: Gunakan Aplikasi 1Sheeld Buka aplikasi 1Sheeld di ponsel pintar Android Anda. Aplikasi pertama-tama akan memindai melalui Bluetooth untuk 1Sheeld Anda, ini akan memakan waktu beberapa detik dan telepon akan menemukannya. Setelah muncul di layar Anda sebagai 1Sheeld #xxxx, Anda akan diminta untuk memasukkan kode pasangan (kode pasangan default adalah 1234) dan terhubung ke 1Sheeld melalui Bluetooth.

CATATAN: Jika Anda mengalami masalah, pastikan Bluetooth diaktifkan untuk ponsel Android Anda dan ponsel Android dekat dengan 1Sheeld Anda.

Langkah 8 : Pilih Gamepad Shield, Orientation Shield, Music Player Shield, dan tombol Toggle Shield dan Terminal shield dari daftar shield, lalu tekan ikon beberapa shield di kanan atas aplikasi.

Langkah 9: Setelah Anda menyalakan robot, itu akan beroperasi dalam mode siaga secara default jika Anda ingin mengontrolnya secara manual menggunakan Gamepad, akses perisai tombol sakelar dan pilih pin 2 lalu tekan On. Jika Anda ingin kembali ke mode siaga, tekan OFF.

Langkah 10: Jika Anda ingin mengontrolnya secara manual menggunakan Sensor Orientasi, akses perisai tombol sakelar dan pilih pin 3 lalu tekan Hidup. dan pastikan status pin 2 LOW.

F5KJZGXIKMXG3DG.ino

Langkah 8:Sauron di Maker Faire New York

Sekarang mari kita saksikan Sauron di antara para penggemarnya di Maker Faire New York :)

Langkah 9:Pekerjaan Masa Depan

Menganggap petunjuk ini: Saya akan merekam video untuk saya saat merakit robot lalu mencoba tiga mode.

Salam kepala robot: Dalam iterasi ini saya memutuskan untuk mengurangi biaya jadi saya hanya menggunakan 3 motor di kepala, Pada iterasi berikutnya saya akan menambahkan sisa motor dan saya akan mencetak 3D bagian mata seperti (kelopak mata, braket mata, eyering, pin clevis, bola mata cangkang)

Salam basis robot: Saya akan mengganti basis tetap dengan basis robot roda 4 mecanum untuk memberikan robot kemampuan untuk bergerak bebas.Saya selesai merancang basis Solidworks tetapi saya tidak punya waktu untuk menggabungkannya dengan robot.

Kode

  • Kode Arduino Sauron
Kode Arduino SauronArduino
#define CUSTOM_SETTINGS#define INCLUDE_GAMEPAD_SHIELD#define INCLUDE_MUSIC_PLAYER_SHIELD#define INCLUDE_TERMINAL_SHIELD#define INCLUDE_ORIENTATION_SENSOR_SHIELD/* Sertakan 1 perpustakaan Sheeld. */#include #include Servo rightArm_Motor1;Servo rightArm_Motor2;Servo rightArm_Motor3;Servo leftArm_Motor1;Servo leftArm_Motor2;Servo leftArm_Motor3;Servo neckHorisontal;Servo leherVertikal; int modePin2 =3;volatile int modeState1 =LOW;volatile int modeState2 =LOW;volatile boolean gamepadMode_Enabled =false;volatile boolean imitationMode_Enabled =false;const int ledPin1 =A0;const int ledPin2 =A1;//------- ----------------------------------- batalkan pengaturan ------------- ---------------------------------------void setup(){ // Mulai komunikasi OneSheeld.begin (); // Tetapkan beberapa pin sebagai output pinMode(modePin1, INPUT); pinMode(modePin2, INPUT); // Atur Led sebagai output dan TINGGI "Saurons Eye" pinMode(ledPin1,OUTPUT); pinMode(ledPin2,OUTPUT); digitalWrite(ledPin1, TINGGI); digitalWrite(ledPin2,TINGGI); // Pin Digital Dapat Digunakan Untuk Interupsi saat menggunakan Mega, Mega2560, MegaADK (2, 3, 18, 19, 20, 21) attachInterrupt(digitalPinToInterrupt(modePin1), gampadMode_ChangeISR, CHANGE); attachInterrupt(digitalPinToInterrupt(modePin2), imitationMode_ChangeISR, CHANGE); /* Hubungkan pin sinyal (Oranye) dari motor ke pin mega PWM Arduino secara langsung kemudian nyalakan motor dari catu daya BUKAN dari Arduino kemudian sambungkan kedua ground Arduino dan catu daya satu sama lain */ 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); mulut.attach(12); // posisi awal 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); mouth.write(100);}//----------------------------------- void loop ---- ---------------------------------------------------- lingkaran kosong ( ){ modeState1 =digitalRead(modePin1); modeState2 =digitalRead(modePin2); // Selalu periksa mode yang diinginkan if (modeState1 ==HIGH) { Terminal.println("Mode GamePad dipilih"); gamePadMode(); } //Pin 12 =Tinggi --> Mode Gamepad else if (modeState2 ==HIGH) { Terminal.println("Mode Imitasi dipilih"); imitasiMode(); } //Pin 13 =Tinggi --> Modus Imitasi else { Terminal.println("Mode Siaga dipilih"); modus siaga(); }}//void loop//----------------------------------------- void Mode Siaga --------------------------------------------- batalkan mode siaga ( ) { // Terminal Mode Siaga.println("Mode Siaga diaktifkan"); // posisi awal Terminal.println("Posisi 1"); 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); // Atur volume// MusicPlayer.setVolume(10); MusicPlayer.play(); for (int i =0; i <=19; i++) { mulut.tulis(100); OneSheeld.delay(150); mulut.tulis(75); OneSheeld.delay(150); }//untuk MusicPlayer.pause(); mulut.tulis(100); OneSheeld.delay(3000); //------------------------------------------------ ---- // Selalu periksa mode yang diinginkan if (gamepadMode_Enabled ==true) { Terminal.println("Sistem Terganggu Dan Ini Akan Mengaktifkan Mode GamePad Sekarang"); gamePadMode(); } //Pin 12 =Tinggi --> Mode Gamepad else if (imitationMode_Enabled ==true) { Terminal.println("Sistem Terganggu Dan Ini Akan Mengaktifkan Mode Imitasi Sekarang"); imitasiMode(); } //Pin 13 =Tinggi --> Modus Imitasi else { // Selesaikan sisa urutan // Pindahkan kepala 90 --> 0 --> 180 --> 90 Terminal.println("2nd 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); OneSheeld.delay(1500); neckHorizontal.write(65); OneSheeld.delay(1500); neckHorizontal.write(140); OneSheeld.delay(1500); neckHorizontal.write(105); neckVertical.write(30); // Atur volume// MusicPlayer.setVolume(10); MusicPlayer.play(); for (int i =0; i <=19; i++) { mulut.tulis(100); OneSheeld.delay(150); mulut.tulis(75); OneSheeld.delay(150); }//untuk MusicPlayer.pause(); mulut.tulis(100); OneSheeld.delay(3000); }//else --> selesaikan sisa urutan //----------------------------------- ----------------- // Selalu periksa mode yang diinginkan if (gamepadMode_Enabled ==true) { Terminal.println("Sistem Terganggu Dan Ini Akan Mengaktifkan Mode GamePad Sekarang"); gamePadMode(); } //Pin 12 =Tinggi --> Mode Gamepad else if (imitationMode_Enabled ==true) { Terminal.println("Sistem Terganggu Dan Ini Akan Mengaktifkan Mode Imitasi Sekarang"); imitasiMode(); } //Pin 13 =Tinggi --> Modus Imitasi else { // Selesaikan sisa urutan // Gerakkan tangan dan kepala ke 45 derajat Terminal.println("3rd position"); 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); neckVertical.write(30); // Atur volume// MusicPlayer.setVolume(10); MusicPlayer.play(); for (int i =0; i <=19; i++) { mulut.tulis(100); OneSheeld.delay(150); mulut.tulis(75); OneSheeld.delay(150); }//untuk MusicPlayer.pause(); mulut.tulis(100); OneSheeld.delay(3000); }//else --> selesaikan sisa urutan //----------------------------------- -------------- // Selalu periksa mode yang diinginkan if (gamepadMode_Enabled ==true) { Terminal.println("Sistem Terganggu Dan Ini Akan Mengaktifkan Mode GamePad Sekarang"); gamePadMode(); } //Pin 12 =Tinggi --> Mode Gamepad else if (imitationMode_Enabled ==true) { Terminal.println("Sistem Terganggu Dan Ini Akan Mengaktifkan Mode Imitasi Sekarang"); imitasiMode(); } //Pin 13 =Tinggi --> Modus Imitasi else { // Selesaikan sisa urutan // Gerakkan tangan kanan dan menuju ke 135 derajat Terminal.println("4th 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(140); 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 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

Skema


Proses manufaktur

  1. Bagaimana Robot Penyemprotan Meningkatkan Konsistensi
  2. Bagaimana Robot Cat Mengurangi Pengerjaan Ulang
  3. Cara Mengurangi Biaya Pengerjaan Ulang di Manufaktur
  4. Apa Realitas Visi Robot?
  5. Apa itu Robot Pemrograman Sendiri?
  6. Robot Industri
  7. Membuat Robot Sibuk
  8. Cara Membangun Tim Implementasi ERP yang Sempurna
  9. Robot SCARA | Cara Membuat Robot Berbasis Arduino Anda Sendiri
  10. Seberapa Cerah Masa Depan Otomasi?