» discussioni » Idee fai da te »Tachimetro per scooter

Tachimetro per scooter

Porto alla tua attenzione il mio prossimo mestierivale a dire, il tachimetro per scooter.
Lo sfondo è il seguente: per il piacere di superare l'inattività fisica, è stata acquistata la tavola da Rollersurf. Dal momento che ci sono solo due ruote sulla tavola, cavalcarla richiede un senso di equilibrio, puoi solo “sostenerla” in movimento. Dopo essermi assicurato che dopo un movimento continuo a una distanza di circa 700 metri, le ruote sembravano incastrarsi nella sabbia e il movimento era molto difficile, mi sono rivolto a Internet e agli specialisti. È diventato chiaro che a causa dell'eccessiva morbidezza del materiale della ruota per il mio peso, il materiale della ruota è molto caldo e ammorbidito, il contatto con la strada aumenta e la maggiore viscosità della ruota rende difficile controllare e creare coppia. Dopo aver sostituito le ruote con un rullo più duro, le schede sono aumentate in modo significativo, così come la facilità di controllo. Sulla stessa lunga pista non è avvenuta la familiare frenata, la velocità ha continuato ad aumentare, il che ha portato a una caduta spiacevole.
L'idea di misurare la velocità e limitare te stesso in accelerazione è nata, probabilmente dopo una caduta :) C'era un prototipo del 2014, in cui è stato creato un tale dispositivo, ma per un diverso tipo di scheda, in cui il piano di rotazione della ruota non si muove molto rispetto alla scheda e elettronica può essere posizionato sulla scheda stessa collegandolo al sensore sulla ruota con un filo flessibile.
Nel mio caso, sia il sensore che l'elettronica non dovrebbero essere posizionati sulla staffa della ruota, poiché la staffa (ruota) stessa ruota attorno al suo asse in modo circolare rispetto al piano della scheda.
Aspetto di Roller Surf


Realizzazione. Le specifiche di trasmissione sono state scelte da BlueTooth a causa della disponibilità di questa tecnologia e della sua presenza nello smartwatch Samsung SM-V700 a portata di mano. Il modulo BlueTooth è stato selezionato HC-05, il controller Arduino Mini Pro, ma successivamente sostituito dal controller nudo AtMega168A, è stata selezionata una batteria Li-Pol da 500 mAh per soddisfare le dimensioni della ruota e il consumo energetico stimato. Come sensore di rotazione, il sensore Hall SS49E è stato selezionato, a differenza del prototipo, come più operativamente stabile. Di conseguenza, lo schizzo è stato leggermente modernizzato. Il passaggio di un magnete montato nel mozzo della ruota viene analizzato da due punti: il primo azionamento - il magnete entra nella zona di sensibilità - "plotone" e il secondo azionamento - il magnete esce dalla zona di sensibilità del sensore - "discesa".Il controller conta questi eventi entro un determinato periodo di tempo - 1 secondo e invia il numero ricevuto tramite il canale di comunicazione al dispositivo Android, analizzando contemporaneamente i segnali in arrivo. Il programma per ricevere, visualizzare, gestire il modulo è stato creato in base al prototipo nell'ambiente Android Studio. Prevede alcuni miglioramenti relativi all'aumento dell'immunità al rumore. Come il prototipo, calcola la velocità e la distanza. L'utile funzione di accendere / spegnere il "faro" - un LED diretto in avanti in movimento - viene salvata, come sembra.
Blocco senza copertura

Visibile in alto a sinistra: LED rosso protezione inversione carica, interruttore carica-carica, batteria; sotto: il modulo BT verde, il microcontrollore AtMega168A con terminali a filo è incollato sul retro con la parte superiore della custodia.
Coperchio del blocco con sensore magnetico

Assemblato con la ruota, il modulo si presenta così:
Blocco su ruote

Nella foto puoi vedere l'interruttore di alimentazione, i contatti per il collegamento del caricabatterie, sull'altro lato dell'unità nell'angolo sopra - LED - "faro".
Il programma prototipo è stato integrato con la possibilità di emettere segnali sonori e di vibrazione in vari eventi (accensione / spegnimento del faro, un segnale di allarme quando si supera il limite di velocità massima specificato).
Test sul tavolo - nella foto sotto, non ancora testato sulla strada, in attesa dell'estate :)
Test sul tavolo

Il progetto Android Studio ha un grande volume, lo posterò da qualche parte con un link, se c'è interesse, porto uno schizzo con commenti.
In presenza di interesse, sono pronto a condividere idee, esperienze.
La domanda \ topic viene automaticamente pubblicata nei social. rete del sito - rimanete sintonizzati per le risposte lì:

Adatto per argomento

Argomenti correlati

Aggiungi un commento

    • sorrideresorrisiXaxabeneDONTKNOWyahoonea
      capozeroimbrogliaresìSì-sìaggressivosegreto
      scusaballaredance2dance3perdonoaiutobevande
      arrestoamicibuonogoodgoodfischiodeliquiolinguetta
      fumobattimanicraydeclarederisoriodon-t_mentionscaricare
      caloreadiratolaugh1mdaincontromoskingnegativo
      not_ipopcornpunireleggerespaventarespaventacerca
      schernirethank_youquestoto_clueumnikacutoconcordare
      cattivobeeeblack_eyeblum3arrossirevanterianoia
      censuratospiritosagginesecret2minacciarevittoriayusun_bespectacled
      ShokRespektlolPrevedbenvenutoKrutoyya_za
      ya_dobryiaiutantene_huliganne_othodiFludbandovicino
1 commento
L'autore
Schizzo firmware ATMega168A:
/*
* Mega168 !!!
*/
#include "timer-api.h"

int Polarity = -1; // polarità dell'impulso del segnale di input (nel mio caso, negativo
int Treshold = 500; // soglia di trigger dell'impulso di lettura 1/2 Vcc = 512
int CountTurn = 0; // memorizza il numero di giri per il periodo contabile
int LED = 13; // LED collegato al pin PB5
int InputSignal = A5; // input per sensore Hall
int TurnNumber = 0; // numero accumulato di rivoluzioni
int DeltaT = 28; // ritardo dalla parte anteriore alla determinazione della fine dell'impulso per la stabilità
bool Tick = false; // valore iniziale, nessun segno di spunta ancora

void setup ()
{
Serial.begin (9600); // per il debug
timer_init_ISR_2Hz (TIMER_DEFAULT); // ottieni un ritardo di 1 secondo !!!
pinMode (LED, OUTPUT); // segnale in uscita alla retroilluminazione (faro)
pinMode (InputSignal, INPUT); // input per sensore Hall
}

void loop () // qui eseguiamo l'elaborazione dei segnali dal sensore e dal controllo del faro
{
if (Tick) // autorizzazione per eseguire il blocco if a un intervallo di tempo fisso
// invia il numero di giri
{
Serial.println (String (CountTurn) + ";"); // per il debug
Tick ​​= false; // prepara la traccia. intervallo di tempo
CountTurn = 0; // azzera il numero di giri dopo il trasferimento sullo smartphone
}

altrimenti // se il segno di spunta non è ancora arrivato, accumuliamo il numero di giri, accendiamo / spegniamo il faro
{
// accumulo di rivoluzioni
if (analogRead (InputSignal) {
delay (DeltaT); // non leggere ancora nulla
if (analogRead (InputSignal)> Treshold) // il bordo posteriore è arrivato
{
CountTurn ++; // accumula il numero di giri all'arrivo del bordo d'uscita
}
}

// controllo faro
if (Serial.available ()> 0) // legge il carattere da BTSerial
{
char command = Serial.read ();
switch (comando)
{
case '0': digitalWrite (LED, BASSO); break; // accendi il faro
custodia '1': digitalWrite (LED, ALTA); break; // Spegni il faro
}
}
}
}

void timer_handle_interrupts (int timer)
{
Tick ​​= vero;
}

Ti consigliamo di leggere:

Passalo per lo smartphone ...