Windows ortamında çalışan, elektrikli ve içten yanmalı araçların UITP SORT standardına uygun enerji tüketimi testlerini otomatik olarak gerçekleştiren Python tabanlı test otomasyon yazılımı.
- 3 Farklı SORT Profili: SORT 1, 2 ve 3 test profilleri
- Çoklu Araç Desteği: Elektrikli araç (CAN), DAF Motor, IBK
- Otomatik Hız Kontrolü: PID tabanlı sabit hız kontrolü
- Gerçek Zamanlı Grafik: Hız, mesafe ve enerji tüketimi grafikleri
- Veri Kayıt: CSV formatında saniye-saniye test verileri
- Raporlama: Excel formatında detaylı test raporları
- Güvenlik: Acil durdurma, hız limiti kontrolü, bağlantı izleme
-
Ana Test Arayüzü (
main_gui.py)- PyQt6 tabanlı modern arayüz
- Gerçek zamanlı veri görüntüleme
- Test kontrolü ve izleme
-
Raporlama Arayüzü (
report_gui.py)- Test sonuçlarını analiz
- SORT standardına göre test seçimi
- Excel raporu oluşturma
-
CAN İletişim Modülü (
can_interface.py)- Kvaser Memorator Pro 2xHS v2 desteği
- Gaz pedalı kontrolü (TX)
- VBOX hız okuma (RX)
-
Arduino Kontrol Modülü (
arduino_interface.py)- 2 kanallı analog sinyal üretimi
- DAF Motor: 0.5V - 4.5V
- IBK: 2.5V - 4.5V
-
eDAQ Entegrasyon Modülü (
edaq_interface.py)- HBK eDAQ HTTP REST API
- XML formatında enerji verisi okuma
-
PID Kontrol Modülü (
pid_controller.py)- Sabit hız kontrolü
- Ayarlanabilir Kp, Ki, Kd parametreleri
-
Veri Kayıt Modülü (
data_logger.py)- CSV formatında veri kaydetme
- Test meta verileri yönetimi
- Cihaz: Kvaser Memorator Pro 2xHS v2
- Protokol: CAN 2.0, 500 kbit/s
- TX Mesaj ID: 0xCF00002 (217056130)
- RX Mesaj ID: 0x302 (770)
- Cihaz: Arduino Uno
- Bağlantı: USB Serial (115200 baud)
- Çıkış: 2 kanal PWM + RC Filter
- Pin 9: DAF Motor (0.5V - 4.5V)
- Pin 10: IBK (2.5V - 4.5V)
- RC Filter: Her kanal için 1kΩ + 100µF
- Cihaz: HBK eDAQ
- Bağlantı: HTTP REST API (Ethernet)
- Veri Formatı: XML
- Okuma Periyodu: 400ms
# Python 3.10 veya üzeri gereklidir
python --version # 3.10+ olmalıpip install -r requirements.txt- Kvaser CANlib SDK indir
- Windows installer'ı çalıştır
- Varsayılan ayarlarla kur
- Arduino IDE'yi aç
arduino_firmware/pedal_controller.inodosyasını aç- Arduino Uno'yu USB ile bağla
- Tools -> Board -> Arduino Uno seç
- Tools -> Port -> COMx seç
- Upload butonuna tıkla
config.json dosyasını düzenle:
{
"can": {
"channel": 0,
"bitrate": 500000
},
"arduino": {
"port": "COM3"
},
"edaq": {
"ip": "192.168.1.100",
"port": 8080
},
"pid": {
"kp": 2.0,
"ki": 0.5,
"kd": 0.1
}
}python main_gui.pypython report_gui.py- Donanım bağlantılarını kontrol edin
- Araç güvenli bir test ortamında olmalı
- Enerji ölçüm cihazını sıfırlayın
- Araç Tipi seçin (Elektrikli/DAF/IBK)
- Test Tipi seçin (SORT 1/2/3)
- Hızlanma Gaz Pedalı yüzdesini girin (önerilen: %50)
- Maksimum Hız Limiti belirleyin
- PID Parametrelerini ayarlayın
- Test Bilgileri girin (araç, sürücü, sıcaklık, vd.)
- "CAN/Arduino Bağlan" butonuna tıklayın
- Bağlantı başarılı mesajını bekleyin
- "TEST BAŞLAT" butonuna tıklayın
- Test otomatik olarak başlar
- Gerçek zamanlı grafikler ve verileri izleyin
- Test sırasında frenleme segmentlerinde sürücü manuel olarak frenlemelidir
- Sistem gaz pedalını 0'a çeker
- Hedef mesafede (±5m tolerans) durmaya çalışın
- Sistem otomatik olarak bekler
- Ekranda geri sayım gösterilir
- Test bittiğinde otomatik olarak durur
- Veriler CSV formatında kaydedilir
- Test meta verileri JSON formatında saklanır
- "ACİL DURDUR" butonu veya ESC tuşu
- Gaz pedalı anında 0'a çekilir
- Test durdurulur ve veri kaydedilir
- Hız seviyeleri: 20, 30, 40 km/h
- Her hız 2 kez tekrarlanır
- Toplam 18 segment + 6 bekleme
- Hız seviyeleri: 20, 40, 50 km/h
- Toplam 9 segment + 3 bekleme
- Hız seviyeleri: 30, 50, 60 km/h
- Toplam 9 segment + 3 bekleme
- Raporlama programını açın
- Gidiş ve dönüş testlerini seçin
- "Analiz Et" butonuna tıklayın
- Sistem otomatik olarak:
- En düşük enerji tüketimli testi seçer
- %2 tolerans dahilinde olan 3 testi seçer
- Ortalama enerji tüketimini hesaplar
- "Rapor Oluştur (Excel)" butonuna tıklayın
- Dosya adı ve konum seçin
- Rapor içeriği:
- Sayfa 1: Özet bilgiler
- Sayfa 2: Gidiş testleri detay (saniye-saniye)
- Sayfa 3: Dönüş testleri detay (saniye-saniye)
- Sayfa 4: Grafikler (opsiyonel)
project/
├── main_gui.py # Ana test arayüzü
├── report_gui.py # Raporlama arayüzü
├── can_interface.py # CAN iletişimi
├── arduino_interface.py # Arduino kontrolü
├── edaq_interface.py # eDAQ entegrasyonu
├── pid_controller.py # PID kontrolcü
├── sort_profiles.py # Test profilleri
├── data_logger.py # Veri kaydı
├── utils.py # Yardımcı fonksiyonlar
├── config.json # Yapılandırma
├── requirements.txt # Python bağımlılıkları
├── README.md # Bu dosya
├── arduino_firmware/
│ └── pedal_controller.ino # Arduino firmware
├── data/ # Test verileri (CSV)
│ ├── SORT1_GIDIS_*.csv
│ └── SORT1_GIDIS_*.meta.json
└── logs/ # Log dosyaları
└── sort_test_*.log
- Kp: 2.0 (Oransal kazanç)
- Ki: 0.5 (İntegral kazanç)
- Kd: 0.1 (Türev kazanç)
- Kp çok yüksek: Salınım (oscillation)
- Kp çok düşük: Yavaş cevap
- Ki çok yüksek: Aşma (overshoot)
- Ki çok düşük: Kalıcı hata
- Kd çok yüksek: Gürültüye hassas
- Kd çok düşük: Ani değişimlere yavaş cevap
- Kvaser CANlib SDK kurulu mu kontrol edin
- CAN cihazı bağlı mı?
- Kanal numarası doğru mu? (genelde 0)
- Bit rate doğru mu? (500 kbit/s)
- Arduino USB kablosu bağlı mı?
- COM port numarası doğru mu?
- Firmware yüklü mü?
- Başka program port'u kullanıyor mu?
- IP adresi doğru mu?
- eDAQ aynı ağda mı?
- Firewall engelliyor mu?
- eDAQ cihazı açık mı?
- PID parametrelerini ayarlayın
- Gaz pedalı yüzdesini değiştirin
- Araç tepkisini gözlemleyin
- Gerekirse manuel test yapın
data/klasörü mevcut mu?- Yazma izni var mı?
- Disk doldu mu?
- Test Ortamı: Kapalı test pisti veya güvenli alan kullanın
- Acil Durdurma: ESC tuşu veya acil durdur butonuna erişim kolay olmalı
- Hız Limiti: Güvenli bir maksimum hız belirleyin
- Frenleme: Manuel frenleme segmentlerinde hazır olun
- Donanım Kontrolü: Test öncesi tüm bağlantıları kontrol edin
- Yedekleme: Önemli ayarları yedekleyin
Bu proje özel bir proje olup, tüm hakları saklıdır.
Sorularınız için:
- Email: support@example.com
- Doküman: [Wiki sayfası]
- İlk sürüm
- SORT 1, 2, 3 profil desteği
- CAN, Arduino, eDAQ entegrasyonu
- PID hız kontrolü
- Raporlama modülü