
İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-23 15:14

Bu proje, istasyonda bulunan kişilerin hangi koltukların boş olduğunu bilmesini sağlayan bir trenin bir ölçekte uygulanmasına dayanmaktadır. Prototipi gerçekleştirmek için grafik kısmı için Processing ile birlikte Arduino UNO yazılımı kullanılmaktadır.
Bu konsept, trenin tüm koltuklarını maksimuma çıkaracak, tüm vagonların kullanımını sağlayacak, daha sonra doğru veri toplama ve çalışmalar yapma imkanı ile birlikte toplu taşıma dünyasında devrim yaratmayı mümkün kılacaktır. üzerinde.
Adım 1: 3D Model Tasarlayın

Öncelikle tren modelleri hakkında kapsamlı bir araştırma yaptık. Toplanan tüm bilgilerle, FGC'de (Ferrocarrils de la Generalitat de Catalunya) kullanılan GTW treni (Stadler Rail tarafından üretilmiştir) seçilmiştir.
Daha sonra, sonraki 3B baskı için model olan 3B yazılım PTC Creo ile tasarlandı.
2. Adım: 3B Modeli ve Kaplamaları Yazdırma

Tren tasarlandıktan sonra 3D baskıya geçiliyor. Parça basıldıktan sonra pürüzsüz bir yüzey elde etmek için cilalanmalıdır.
Bu proje mevcut tren modelleri ile de yapılabilir.
Basıldıktan sonra, son yüzeyler verilir.
Adım 3: Bileşenler

Bu projenin geliştirilmesi için aşağıdaki bileşenlere ihtiyaç vardır:
- FSR 0.04-4.5LBS (Basınç sensörü).
- 1.1K ohm dirençler
Adım 4: Kodlama (Arduino ve İşleme)



Artık sensörlerin bilgileri grafiksel olarak iletecek Processing yazılımına bir işaret göndermesini sağlayacak Arduino kodunu yazmanın zamanı geldi.
Sensörler olarak, arduino için direncini kendilerine uygulanan kuvvete göre değiştiren 4 basınç sensörümüz var. Yani amaç, Processing'deki grafik ekranları değiştirmek için sensörler tarafından (yolcular oturduğunda) gönderilen sinyalden yararlanmaktır.
Ardından, gerçeği mümkün olan en iyi şekilde taklit etmek için Ferrocarrils de la Generalitat de Catalunya'nın grafik tasarımını dikkate aldığımız grafik bölümünü oluşturuyoruz.
İşleme sırasında doğrudan arduino yazılımına bağlı bir kod yazılmıştır, bu şekilde biri koltuğa her oturduğunda renk değiştirir, tren platformundaki kullanıcının trenin koltuk müsaitliğini gerçek zamanlı olarak bilmesini sağlar..
Burada kodlamayı görebilirsiniz
ARDUINO:
int pot = A0; // Potun orta pinini bu pinint'e bağlayın pot2 = A1; int pot3 = A2; int pot4 = A3; int lectura1;// pot değerlerini saklamak için değişken;
int lectura2;int lectura3; int lectura4;
void setup(){ //seri iletişimi 9600 baud hızında başlat Serial.begin(9600); }
void loop() { String s = ""; // //Llegir sensor1 lectura1 = analogRead(pot); // lectura analog değeri if (lectura1 > 10) { s = "1"; gecikme(100); } başka { s = "0"; gecikme(100); } Seri.println(ler);
}
İŞLEME:
işleme.serisini içe aktar.*; // bu kitaplık seri konuşmayı yönetir String val=""; PImage s0000, s0001, s0010, s0011, s0100, s0101, s0110, s0111, s1000, s1001, s1010, s1011, s1100, s1101, s1110, s1111; Seri myPort; // Serial sınıftan nesne oluştur
void setup()// bu sadece bir kez çalışır{ fullScreen(); background(0);// arka plan rengini siyah olarak ayarlama myPort = new Serial(this, "COM5", 9600);// seri sınıfının nesnesine parametreler vererek, arduino'nuzun bağlı olduğu com'u ve baud hızını girin
s0000 = loadImage ("0000.jpg"); s0001=loadImage("0001.jpg"); s0010=loadImage("0010.jpg"); s0011=loadImage("0011.jpg"); s0100=loadImage("0100.jpg"); s0101=loadImage("0101.jpg"); s0110=loadImage("0110.jpg"); s0111=loadImage("0111.jpg"); s1000=loadImage("1000.jpg"); s1001=loadImage("1001.jpg"); s1010=loadImage("1010.jpg"); s1011=loadImage("1011.jpg"); s1100=loadImage("1100.jpg"); s1101=loadImage("1101.jpg"); s1110=loadImage("1110.jpg"); s1111=loadImage("1111.jpg");
s0000.resize(displayWidth, displayHeight); s0001.resize(displayWidth, displayHeight); s0010.resize(displayWidth, displayHeight); s0011.resize(displayWidth, displayHeight); s0100.resize(displayWidth, displayHeight); s0101.resize(displayWidth, displayHeight); s0110.resize(displayWidth, displayHeight); s0111.resize(displayWidth, displayHeight); s1000.resize(displayWidth, displayHeight); s1001.resize(displayWidth, displayHeight); s1010.resize(displayWidth, displayHeight); s1011.resize(displayWidth, displayHeight); s1100.resize(displayWidth, displayHeight); s1101.resize(displayWidth, displayHeight); s1110.resize(displayWidth, displayHeight); s1111.resize(displayWidth, displayHeight);
val = trim(val);} void draw() { if (val!=null) {
if (val.equals("0001")) { image(s0001, 0, 0); } else if (val.equals("0010")) { image(s0010, 0, 0); } else if (val.equals("0011)) { image(s0011, 0, 0); } else if (val.equals("0100")) { image(s0100, 0, 0); } else if (val.equals("0101")) { image(s0101, 0, 0); } else if (val.equals("0110")) { image(s0110, 0, 0); } else if (val.equals("0111")) { image(s0111, 0, 0); } else if (val.equals("1000")) { image(s1000, 0, 0); } else if (val.equals("1001")) { image(s1001, 0, 0); } else if (val.equals("1010")) { image(s1010, 0, 0); } else if (val.equals("1011")) { image(s1011, 0, 0); } else if (val.equals("1100")) { image(s1100, 0, 0); } else if (val.equals("1101")) { image(s1101, 0, 0); } else if (val.equals("1110")) { image(s1110, 0, 0); } else if (val.equals("1111")) { image(s1111, 0, 0); } else { image(s0000, 0, 0); } } }
void serialEvent(Serial myPort)// seri olay gerçekleştiğinde çalışır{ val = myPort.readStringUntil('\n'); //devam etmeden önce verilerimizin boş olmadığından emin olun if (val != null) { //boşlukları kırpın ve karakterleri biçimlendirin (satır başı gibi) val = trim(val); println(val); } }
Adım 5: Devre

Tüm programlamalardan sonra, tüm sensörleri Arduino UNO kartına bağlamanın zamanı geldi.
Sensörler 4 koltuğa (daha sonra bir bezle kaplanacak) yerleştirilir ve doğrudan Arduino UNO'nun anakartına giden kablolara kaynaklanır. Kartta alınan sinyal, koltuk rengini değiştirerek bilgileri gerçek zamanlı olarak İşleme'ye gönderen USB üzerinden bağlı bir bilgisayara gönderilir.
Bağlantıların bir şemasını görebilirsiniz.
Adım 6: Prototip Testi
Kod arduino kartına yüklendikten ve işleme ve arduino programı açıldıktan sonra sensörler test edilir. Ekranda, dolu ve boş koltuklar hakkında bilgi veren ekrandaki görüntülerin değişmesi nedeniyle koltuklardaki değişiklikleri göreceksiniz.
Adım 7: Gerçek Mock-up




Gerçek uygulama, onu yolculara hizmet etmek için FGC ağının trenlerine ve platformlarına kurmaya çalışacaktı.
Adım 8: KEYFİNİ ÇIKARIN


Sonunda, tren platformundaki kullanıcının gerçek zamanlı olarak hangi koltuğun müsait olduğunu bilmesini sağlayan bir Kuvvet Sensörü Treni (prototip) yaptınız.
GELECEĞE HOŞGELDİNİZ!
Marc Godayol & Federico Domenech tarafından yapılan proje
Önerilen:
Heyecanlı Ofis Koltuğu: 19 Adım (Resimlerle)

Twittering Ofis Koltuğu: Twittering ofis koltuğu, insan gazından üretilen gaz gibi doğal gazın tespiti üzerine "tweetler" (bir Twitter güncellemesi yayınlar). Bu, hayatımı olduğu gibi doğru bir şekilde belgeleme ve paylaşma taahhüdümün bir parçası. Daha fazla derinlik teorisi için
Helyum Atom İle Bilgi Gönderme: 3 Adım

Helyum Atom ile Bilgi Gönderme: Helyum, nesnelerin interneti için entegre donanım, yazılım arabirimi ve nesneleri internete kolay, verimli ve güvenli bir şekilde bağlamak için yerleşik bir altyapı sağlayan eksiksiz bir kablosuz platformdur. İki donanım bileşeni var
Tren Koltuğu Göstergesi: 6 Adım

Tren Koltuğu Göstergesi: Bu size de oluyor mu? Trenin ön kısmında insanlar ayakta durmak zorunda kalırken, trenin son kısmında ise bir sürü boş sandalye var. Ya trenin dışında size kaç koltuğun boş olduğunu söyleyen bir işaret olsaydı
Müzik Koltuğu: 11 Adım (Resimli)

Müzik Sandalyesi: Oyunun adından dolayı hayal kırıklığına uğrayan ''müzik sandalyeleri'', gerçek bir müzik sandalyesi yaratmak için yola çıktım, mesela bir müzik aleti olarak çalınabilen bir sandalye, isterseniz bir sallanan sandalye. Umudum sonunda gerçek bir müzik sandalyesi oyunu oynamak
Sürüş Simülatörü Koltuğu: 8 Adım

Sürüş Simülatörü Koltuğu: Ben sıkı bir Formula 1 hayranıyım ve her zaman bir tane sürmenin nasıl bir şey olduğunu merak etmişimdir. Hakkında bazı PC ve Oyun konsolu yarış oyunları olmasına rağmen, görebildiğim hiçbiri olması gerektiği kadar gerçek değildi. Özel bir Microsoft FSX uçuşu olarak