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

Bluetooth Nerf Turret

Komponen dan persediaan

Arduino Nano R3
× 1
Modul Bluetooth HC-05
× 1
Pengubah uang LM2596
× 1
servo MG-90s
× 3
motor dc tipe 130
× 2
Dioda penyearah FR207
× 1
RFP30N06LE mosfet
× 1
colokan colokan 2.1x5.5mm
× 1
resistor 10kΩ
× 1
resistor 330Ω
× 1
resistor 680Ω
× 1
Sekrup self-tapping M2x10
× 30
Sekrup countersunk M5*20
× 4
konektor dupont
× 15
Batang logam 1,5 mm
× 1
kabel
× 1
tabung heatshrink
× 1
pita karet 20mm
× 1
catu daya 9V (minimum 2,5 amp)
× 1

Alat dan mesin yang diperlukan

obeng
pencabut kabel
tang
besi solder
multimeter
alat crimping
Printer 3D

Aplikasi dan layanan online

Microsoft Windows 10

Tentang proyek ini

Terima kasih telah memeriksa proyek menara Nerf yang dikontrol Bluetooth saya. Saya rasa tidak ada terlalu banyak penjelasan untuk dilakukan di sini, ini adalah menara Nerf yang dikendalikan melalui Bluetooth baik dari perangkat Android atau PC.

....................https://www.littlefrenchkev.com/bluetooth-nerf-turret.............. .....

BAGAIMANA CARA KERJANYA?

Tidak ada yang super rumit. Gerakan memiringkan dan menggeser ditangani oleh 2 servo yang digerakkan oleh Arduino Nano.

Anak panah ditembak menggunakan 2 rol yang dipintal oleh 2 motor DC kecil. Servo mendorong anak panah ke dalam roller saat perintah untuk menembak dikirim.Magazin dapat menampung 7 anak panah.

Seperti disebutkan di atas, ini dikontrol melalui Bluetooth baik dari perangkat android atau PC.

BAGAIMANA MEMBANGUNNYA?

PERAKITAN :

Tripod dan majalah hadir dalam dua versi berbeda. Satu dirancang untuk servos MG-90s dan yang lainnya untuk servos MG996r. Servo MG996r bisa haus daya. Pastikan catu daya Anda berfungsi dengan baik jika Anda memutuskan untuk menggunakannya.

Tripod :

Majalah :

KABEL :

PERANGKAT LUNAK DAN UJI !!!

BEBERAPA FOTO TAMBAHAN KARENA KENAPA TIDAK!!!


Kode

  • Kode Arduino
Kode ArduinoArduino
kode untuk diunggah ke arduino. Kode tetap sama apakah Anda memilih untuk mengontrol turret melalui aplikasi android atau PC .
#include //-----Deklarasikan servos dan variabelServo recoil_servo;Servo pan_servo;Servo tilt_servo;const byte pan_limit_1 =0;bita konstanta pan_limit_2 =180;bita konstanta tilt_limit_1 =65;bita konstanta tilt_limit_2 =180;bita konstanta recoil_rest =180; // Sudut servo saat byte restconst recoil_pusshed =125; // Sudut yang harus dicapai servo untuk mendorong panah//-----Variabel yang terkait dengan penanganan data serialbyte byte_from_app;const byte buffSize =30;byte inputBuffer[buffSize];const byte startMarker =255;const byte endMarker =254;byte bytesRecvd =0;boolean data_received =false;//-----Variabel yang terkait dengan timing motor dan firingbool is_firing =false;bool can_fire =false;bool recoiling =false;unsigned long firing_start_time =0;unsigned long firing_current_time =0;const long firing_time =150;unsigned long recoil_start_time =0;unsigned long recoil_current_time =0;const long recoil_time =2 * firing_time;const byte motor_pin =12;boolean motors_ON =false;//8===========================Dvoid setup(){ //-----menentukan mode pin motor pinMode(motor_pin, OUTPUT); digitalWrite(pin_motor, RENDAH); //-----melampirkan servo ke pin recoil_servo.attach(9); pan_servo.attach(10); tilt_servo.attach(11); //-----mulai urutan recoil_servo.write(recoil_rest); pan_servo.write(90); penundaan (1000); tilt_servo.write(105); Serial.begin(9600); // memulai komunikasi serial}//8============================Dvoid loop(){ getDataFromPC(); set_motor(); if (data_diterima) { move_servo(); set_recoil(); set_motor(); } fire();}//8============================Dvoid getDataFromPC() { //struktur data yang diharapkan [start byte , jumlah pan, jumlah kemiringan, motor hidup, tombol tembak ditekan, byte akhir] //start byte =255 //jumlah pan =byte antara 0 dan 253 //jumlah kemiringan =byte antara 0 dan 253 //motor hidup =0 untuk off - 1 on //menekan tombol tembak =0 untuk tidak ditekan - 1 untuk ditekan //end byte =254 if (Serial.available()) { // Jika data tersedia dalam serial byte_from_app =Serial.read(); //membaca karakter berikutnya yang tersedia if (byte_from_app ==255) { // mencari byte awal, jika ditemukan:byteRecvd =0; //reset byte yang diterima ke 0(untuk mulai mengisi inputBuffer dari awal) data_received =false; } else if (byte_from_app ==254) { // cari byte akhir, jika ditemukan:data_received =true; // setel data_received ke true agar data dapat digunakan } else { // tambahkan byte yang diterima ke buffer inputBuffer[bytesRecvd] =byte_from_app; //menambahkan karakter ke buffer masukan byteRecvd++; // kenaikan byte yang diterima (ini bertindak sebagai indeks) if (bytesRecvd ==buffSize) { // hanya keamanan jika inputBuffer terisi (seharusnya tidak terjadi) byteRecvd =buffSize - 1; // jika byteReceived> ukuran buffer set byteReceived lebih kecil dari ukuran buffer } } }}//8==========================Dvoid move_servo( ) { byte pan_servo_position =map(inputBuffer[0], 0, 253, pan_limit_2, pan_limit_1);//mengubah nilai inputbuffer menjadi nilai posisi servo pan_servo.write(pan_servo_position); //set posisi pan servo byte tilt_servo_position =map(inputBuffer[1], 0 , 253, tilt_limit_2, tilt_limit_1); //konversi nilai inputbuffer ke nilai posisi servo tilt_servo.write(tilt_servo_position); //set posisi pan servo}//8============================Dvoid set_recoil() { if (inputBuffer[3] ==1) { //jika tombol api ditekan if (!is_firing &&!recoiling) { //dan belum menembak atau mundur can_fire =true; //set can fire to true (lihat efek di void fire()) } } else { // jika tombol fire tidak ditekan can_fire =false; //set can fire to false (lihat efek di void fire()) }}//8==========================Dvoid set_motor () { //-----start dan stop motor menggunakan transisitor MOSFET . if (inputBuffer[2] ==1) { //jika layar menyentuh digitalWrite(motor_pin, HIGH); //menghidupkan motor motors_ON =true; } else { //jika layar tidak disentuh digitalWrite(motor_pin, LOW); //matikan motor motors_ON =false; }}//8============================Dvoid fire() { //jika motor byte on, hidupkan motor dan periksa waktu sudah menyala if (can_fire &&!is_firing &&motors_ON) { //if (can_fire &&!is_firing) { firing_start_time =millis(); recoil_start_time =milis(); is_firing =benar; } fire_current_time =milis(); mundur_saat_waktu =milis(); if (is_firing &&firing_current_time - firing_start_time  recoil_time) { is_firing =false; }}
file python
Aplikasi yang dapat dieksekusi dan android dapat ditemukan di sini:https://www.littlefrenchkev.com/bluetooth-nerf-turrethttps://github.com/LittleFrenchKev/Bluetooth_Nerf_turret

Skema

Berikut adalah diagram pengkabelan utama.
Pengkabelan dibagi menjadi bagian-bagian kecil yang dihubungkan bersama menggunakan konektor dupont. Ini untuk kemudahan perakitan. Ini adalah kabel Bluetooth HC-05 .
Potongan kabel ini termasuk pembagi tegangan untuk memungkinkan 5V yang keluar dari arduino diturunkan menjadi sekitar 3,3V untuk pin Penerima HC-05.

Proses manufaktur

  1. Resistor
  2. Sirkuit Terintegrasi
  3. Turret Penjaga Nerf Otonom
  4. Arduino Digital Dice
  5. Sensor Multi Suhu
  6. Ubah Mobil RC Anda menjadi mobil RC Bluetooth
  7. Pengontrol Game Arduino
  8. MOSMusic
  9. Komponen mesin bor
  10. Komponen mesin pembakaran dalam