» ipler » DIY fikirleri »Scooter için hız göstergesi

Scooter için hız göstergesi

Dikkatimi bir sonraki benim el sanatlarıyani, scooter için hız göstergesi.
Arka plan aşağıdaki gibidir: fiziksel hareketsizliğin üstesinden gelmek için Rollersurf kartı satın alındı. Tahtada sadece iki tekerlek olduğu için, üzerine binmek bir denge hissi gerektirir, sadece hareket halinde “durabilirsiniz”. Yaklaşık 700 metre mesafede sürekli hareket ettikten sonra, tekerleklerin kuma sıkışmış gibi göründüğünden ve hareketin çok zor olduğundan emin olduktan sonra, internete ve uzmanlara döndüm. Tekerlek malzemesinin ağırlığım için aşırı yumuşaklığı nedeniyle, tekerlek malzemesinin çok sıcak ve yumuşatıldığı, yolla temasın arttığı ve tekerleğin artan viskozitesinin kontrol edilmesini ve tork oluşturmayı zorlaştırdığı anlaşıldı. Tekerlekleri daha sert bir rulo ile değiştirdikten sonra, kontrol kolaylığı gibi levhalar önemli ölçüde arttı. Aynı uzun yolda tanıdık frenleme gerçekleşmedi, hız artmaya devam etti ve bu da hoş olmayan bir düşüşe yol açtı.
Hızı ölçmek ve hızlanmada kendinizi sınırlamak fikri, muhtemelen bir düşüşten sonra geldi :) 2014'ten, böyle bir cihazın oluşturulduğu, ancak tekerleğin dönüş düzleminin panoya göre çok fazla hareket etmediği farklı bir tahta türü için bir prototip vardı ve elektronik esnek bir tel ile tekerlek üzerindeki sensöre bağlanarak kartın üzerine yerleştirilebilir.
Benim durumumda, hem sensör hem de elektronik akslar tekerlek braketine yerleştirilmemelidir, çünkü braketin (tekerlek) kendisi, tahtanın düzlemine göre dairesel bir şekilde ekseni etrafında döner.
Rulo Sörf Görünümü


Gerçekleşme. Sinyal özellikleri, bu teknolojinin kullanılabilirliği ve Samsung SM-V700 akıllı saatindeki varlığı nedeniyle BlueTooth tarafından seçildi. BlueTooth modülü kontrolör HC-05 olarak seçildi Arduino Mini Pro, ancak daha sonra AtMega168A çıplak kontrolör ile değiştirildi, tekerleğin boyutlarını ve tahmini güç tüketimini karşılamak için 500mAh Li-Pol pil seçildi. Bir dönüş sensörü olarak, prototipin aksine, daha işlevsel olarak kararlı olarak Hall sensörü SS49E seçilmiştir. Buna göre, taslak biraz modernize edildi. Tekerlek göbeğine monte edilmiş bir mıknatısın geçişi iki nokta ile analiz edilir: ilk harekete geçirme - mıknatıs hassasiyet bölgesine girer - “müfreze” ve ikinci harekete geçirme - mıknatıs sensör hassasiyet bölgesinden - “iniş” çıkar.Denetleyici bu olayları belirli bir süre içinde sayar - 1 saniye ve gelen sinyali aynı anda analiz ederken, alınan numarayı iletişim kanalı üzerinden Android cihaza gönderir. Modülü almak, görüntülemek, yönetmek için program, Android Studio ortamındaki prototipe göre oluşturuldu. Artan gürültü bağışıklığı ile ilgili bazı iyileştirmeler sağlar. Prototip gibi, hızı ve mesafeyi hesaplar. "Far" ı - ileriye doğru hareket eden bir LED - açmanın / kapatmanın yararlı işlevi de göründüğü gibi kaydedilir.
Kapaksız blok

Görünür sol üst: kırmızı şarj ters koruma LED'i, şarj çalışması anahtarı, pil; aşağıda: yeşil VT modülü, gömme kesme terminalli AtMega168A mikrodenetleyici, kasanın üst kısmı ile sırtına yapıştırılmıştır.
Manyetik sensörlü blok kapağı

Tekerlekle birleştirilmiş modül aşağıdaki gibi görünür:
Tekerlekli blok

Fotoğrafta, güç düğmesini, şarj cihazını bağlamak için kontakları, yukarıdaki köşedeki ünitenin diğer tarafında görebilirsiniz - LED - "far".
Prototip programına çeşitli olaylarda ses ve titreşim sinyalleri verme yeteneği eklenmiştir (farın açılması / kapatılması, belirtilen maksimum hız sınırını aştığında bir alarm sinyali).
Masanın üzerinde test - aşağıdaki fotoğrafta, henüz yolda test edilmedi, yaz bekliyor :)
Masanın üzerinde test

Android Studio projesinin büyük bir hacmi var, bunu bir bağlantıyla bir yere göndereceğim, eğer ilgi varsa, yorumlarla bir kroki getiriyorum.
İlginin varlığında fikirleri, deneyimleri paylaşmaya hazırım.
Question \ topic otomatik olarak sosyal medyada yayınlanır. site ağı - yanıtlar için bizi izlemeye devam edin:

Konu için uygun

İlgili konular

Yorum ekle

    • gülümsegülümsemelerxaxatamamdontknowyahoonea
      patronçizikaptalevetevet-evetagresifgizli
      üzgünümdansdance2dance3pardonyardımiçecekler
      Durarkadaşlariyigoodgooddüdükbaygınlıkdil
      dumanzırıltıcraybeyanalaycıDon-t_mentionindir
      ısıöfkelilaugh1mdatoplantımoskingnegatif
      Not_ipatlamış mısırcezalandırmakokumakkorkutmakkorkutuyorarama
      alaythank_youbuto_clueumnikakutanlaşmak
      kötübeeeblack_eyeblum3kızarmakövünçcan sıkıntısı
      sansürlüşakasecret2tehdit etmekzaferyusun_bespectacled
      shokrespektlolPrevedkarşılamaKrutoyya_za
      ya_dobryiyardımcıne_huliganne_othodiFludyasakyakın
1 açıklama
Yazar
ATMega168A ürün yazılımı çizimi:
/*
* Mega168 !!!
*/
#include "timer-api.h"

int Polarite = -1; // giriş sinyalinin darbesinin polaritesi (benim durumumda, negatif
int Treshold = 500; // okuma darbesinin tetikleme eşiği 1/2 Vcc = 512
int CountTurn = 0; // hesap dönemi için devir sayısını kaydetme
int LED = 13; // PB5 pinine bağlı LED
int InputSignal = A5; // Hall sensörü girişi
int TurnNumber = 0; // birikmiş devir sayısı
int DeltaT = 28; // denge için nabzın sonunu belirlemeye önden gecikme
bool Tick = yanlış; // başlangıç ​​değeri, henüz kene yok

geçersiz kurulum ()
{
Serial.begin (9600); // hata ayıklama için
timer_init_ISR_2Hz (TIMER_DEFAULT); // 1 saniyelik gecikme olsun !!!
pinMode (LED, ÇIKIŞ); // arka ışığa sinyal çıkışı (far)
pinMode (InputSignal, INPUT); // Hall sensörü girişi
}

void loop () // burada sensör ve far kontrolünden gelen sinyallerin işlenmesini yapıyoruz
{
if (Tick) // if bloğunu sabit bir zaman aralığında yürütme izni
// devir sayısını gönder
{
Serial.println (String (CountTurn) + ";"); // hata ayıklama için
Tick ​​= false; // izi hazırlayın. zaman aralığı
CountTurn = 0; // akıllı telefona aktardıktan sonra devir sayısını sıfırlayın
}

else // eğer kene henüz gelmediyse, devir sayısını biriktiririz, farı açar / kapatırız
{
// devir birikimi
eğer (analogRead (InputSignal) {
delay (DeltaT); // henüz hiçbir şey okuma
eğer (analogRead (InputSignal)> Treshold) // arka kenar geldi
{
CountTurn ++; // arka kenarın gelmesiyle devir sayısını biriktirin
}
}

// far kontrolü
if (Serial.available ()> 0) // BTSerial'dan karakteri okuyun
{
char command = Serial.read ();
anahtar (komut)
{
vaka '0': digitalWrite (LED, DÜŞÜK); break; // farları aç
durum '1': digitalWrite (LED, YÜKSEK); break; // Farları kapatın
}
}
}
}

void timer_handle_interrupts (int zamanlayıcı)
{
Tick ​​= true;
}

Okumanızı tavsiye ederiz:

Akıllı telefon için verin ...