05/18/2024

Tamamı 3D Baskı Uzaktan Kumandalı Model Pick-Up Yapımı

Düşük maliyetli olması için çok ucuz fırçalı 380 motor ve elyapımı uzaktan kumanda kullandım. 380 motorların çok farklı güçte ve devirde versiyonları mevcuttur. Daha yüksek hız ve tork için onlar kullanılabilir.
Direksiyon kontrolü için 17gr  diye isimlendirilen mini servo gereklidir. Videoda kullandığım çok uygun fiyatlı değildir. Elimde mevcut olduğu için onu kullandım. Bulabildiğiniz en ucuz 17 gr mini servo yeterli olacaktır.

 

Teknik Özellikler:
Uzunluk: 392mm
Genişlik: 165 mm
Ground clearance: 30mm
Wheelbase: 260mm
Ağırlık: 940 gr
Gerekli PLA filament: 565 gr
Gerekli: TPU filament: 115 gr

 

Gerekli malzemeler:
20A ESC: https://shorturl.at/lnKPQ
380 Fırçalı motor: https://shorturl.at/brCTZ
Power Led Lens (45-90°): https://s.click.aliexpress.com/e/_DeHGNCP
10x15x4 Rulman 6700ZZ (10 pcs): https://s.click.aliexpress.com/e/_DFbcNRd
Mini Servo:  https://shorturl.at/atBEL
1W Power Led: https://s.click.aliexpress.com/e/_DCOiAOX
5.6R Direnç: https://s.click.aliexpress.com/e/_DBMnLOx
1K Direnç: https://s.click.aliexpress.com/e/_DC0mHS3
BD139 Transistor: https://s.click.aliexpress.com/e/_DDsaVqx
Delikli plaket: https://s.click.aliexpress.com/e/_DdICY2J
2 Pin JST konnektor and kablo (Dişi & Erkek):
https://shorturl.at/kGR18
https://shorturl.at/nxN57
18650 pil kutusu: https://s.click.aliexpress.com/e/_Dlwva2J
18650 pil (2 adet): https://s.click.aliexpress.com/e/_DlrahcJ
M2.2 or M2.3mm screws: https://s.click.aliexpress.com/e/_Dkj7J3V
M2x14mm screw: https://s.click.aliexpress.com/e/_Dm2HitN
M2x75mm rod: https://s.click.aliexpress.com/e/_DDlLTtv

3D STL Files: https://www.printables.com/model/879237-fully-3d-printed-rc-pick-up

 

 

Bu el yapımı uzaktan kumandanın 6 kanalı vardır. RC Pick-up modeli için sadece 3 kanala ihtiyacımız var. Direksiyon kontrolü için bir kanal, ileri geri ve hız kontrolü için bir kanal ve farları açıp kapatmak için bir kanal. Diğer 3 kanal boşta kalacaktır.

Elyapımı uzaktan kumanda ile farları kontrol edebilmemiz için açma-kapama devresi:

 

Anahtar devresini kullanabilmemiz için alıcı koduna küçük bir ekleme yapmak gerekiyor.
“if (ch_width_6>1400) digitalWrite(8, HIGH); else digitalWrite(8, LOW);”
Bu kod 6. kanal üzerinden ışıkları kontrol etmemizi sağlar.
Alıcının D8 pinine bağlı olan transistör elektronik anahtar olarak kullanılır.
Bu satırın eklenmiş olduğu ful alıcı kodu aşağıdadır.

//  6 Channel Receiver & Transistor Control | 6 Kanal Alıcı ve Transistor Kontrol
// KendinYap Channel

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Servo.h>

int ch_width_1 = 0;
int ch_width_2 = 0;
int ch_width_3 = 0;
int ch_width_4 = 0;
int ch_width_5 = 0;
int ch_width_6 = 0;

Servo ch1;
Servo ch2;
Servo ch3;
Servo ch4;
Servo ch5;
Servo ch6;

struct Signal {

byte throttle;
byte pitch;  
byte roll;
byte yaw;
byte aux1;
byte aux2;
    
};

Signal data;

const uint64_t pipeIn = 0xABCDABCD71LL;
RF24 radio(9, 10); 

void ResetData()
{

data.throttle = 127;                                         // Define the inicial value of each data input. | Veri girişlerinin başlangıç değerleri
data.roll = 127;
data.pitch = 127;
data.yaw = 127;
data.aux1 = 0;                                              
data.aux2 = 0;
                                                    
}

void setup()
{
  pinMode(8, OUTPUT);                                      // Arduino Nano Pin 8 i çıkış pini olarak tanımlama                     
  
  ch1.attach(2);                                           // Set the pins for each PWM signal | Her bir PWM sinyal için pinler belirleniyor.
  ch2.attach(3);
  ch3.attach(4);
  ch4.attach(5);
  ch5.attach(6);
  ch6.attach(7);
                                                           
  ResetData();                                             // Configure the NRF24 module  | NRF24 Modül konfigürasyonu
  radio.begin();
  radio.openReadingPipe(1,pipeIn);
  radio.setChannel(100);
  radio.setAutoAck(false);
  radio.setDataRate(RF24_250KBPS);                         // The lowest data rate value for more stable communication  | Daha kararlı iletişim için en düşük veri hızı.
  radio.setPALevel(RF24_PA_MAX);                           // Output power is set for maximum |  Çıkış gücü maksimum için ayarlanıyor.
  radio.startListening();                                  // Start the radio comunication for receiver | Alıcı için sinyal iletişimini başlatır.

}

unsigned long lastRecvTime = 0;

void recvData()
{
while ( radio.available() ) {
radio.read(&data, sizeof(Signal));
lastRecvTime = millis();                                    // Receive the data | Data alınıyor
}
}

void loop()
{
recvData();
unsigned long now = millis();
if ( now - lastRecvTime > 1000 ) {
ResetData();                                                // Signal lost.. Reset data | Sinyal kayıpsa data resetleniyor

}

ch_width_1 = map(data.roll, 0, 255, 1000, 2000);
ch_width_2 = map(data.pitch, 0, 255, 1000, 2000); 
ch_width_3 = map(data.throttle, 0, 255, 1000, 2000); 
ch_width_4 = map(data.yaw, 0, 255, 1000, 2000); 
ch_width_5 = map(data.aux1, 0, 1, 1000, 2000); 
ch_width_6 = map(data.aux2, 0, 1, 1000, 2000);

if (ch_width_6>1400) digitalWrite(8, HIGH); else digitalWrite(8, LOW);      // It controls the transistor connected to the 8th pin of Arduino Nano.  | Arduino Nano nun 8. pinine bağlı olan transistörü kontrol eder

ch1.writeMicroseconds(ch_width_1);                          // Write the PWM signal | PWM sinyaller çıkışlara gönderiliyor
ch2.writeMicroseconds(ch_width_2);
ch3.writeMicroseconds(ch_width_3);
ch4.writeMicroseconds(ch_width_4);
ch5.writeMicroseconds(ch_width_5);
ch6.writeMicroseconds(ch_width_6); 

}