Sommario:

Luce di segnalazione a mano per bici: 10 passaggi (con immagini)
Luce di segnalazione a mano per bici: 10 passaggi (con immagini)

Video: Luce di segnalazione a mano per bici: 10 passaggi (con immagini)

Video: Luce di segnalazione a mano per bici: 10 passaggi (con immagini)
Video: 10 GADGET e ACCESSORI per la BICI da Amazon! 2024, Novembre
Anonim
Luce di segnalazione a mano per bici
Luce di segnalazione a mano per bici

L'obiettivo di questo progetto è creare una luce che si adatti a un guanto da bici e punti nella direzione della svolta prevista, per aumentare la visibilità di notte. Dovrebbe essere leggero, facile da usare e integrato con i movimenti esistenti per la segnalazione (minima modifica del metodo di segnale (non è necessario premere un pulsante, va solo quando si segnala)). Questo sarebbe un ottimo regalo per le vacanze.

Nota: ciò richiede una conoscenza precedente di come saldare e un'idea di come programmare gli AVR è un grande vantaggio. Con questo in mente, divertiti, sii paziente e pubblica le foto del tuo prodotto qui sotto! Ecco un video: Ed ecco una mia foto:

Passaggio 1: parti

Parti
Parti

x1 ATmega 32L 8PU (www.digikey.com)x1 presa DIP a 40 pin (www.digikey.com)x1 8x8 LED Array (www.sparkfun.com)x1 74138 Demultiplexer (www.digikey.com)x2 Sensori flessibili (www.sparkfun.com) x (molti) resistori da 180 ohm e 10 k ohm x2 scheda PC (www.sparkfun.com) x6 distanziatori (www.sparkfun.com) e viti per il montaggio (negozio di ferramenta locale) x1 accelerometro sulla scheda breakout (www.sparkfun.com)x2 Header - Maschio (www.sparkfun.com), Femmina (www.sparkfun.com) e Angolo retto (www.sparkfun.com)x1 LM7805 (www.digikey.com)x2 Prese a 8 pin (Ho preso il mio a Radio Shack) x 1 batteria da 9 V x 1 velcro adesivo x 1 guanto da bici a dita complete x 1 rocchetto di filo in poliestere x 1 programmatore (ho questo) x 1 spelafili e clip x 1 multimetro Alcune delle parti:

Passaggio 2: preparare le schede

Preparare le tavole
Preparare le tavole
Preparare le tavole
Preparare le tavole
Preparare le tavole
Preparare le tavole
Preparare le tavole
Preparare le tavole

Per prima cosa, aggiungi i distanziatori. Dovrai avvitarne due insieme per ottenere l'altezza corretta. Assicurati che i distanziatori scendano dal lato con i pad SQUARE. In questo modo puoi collegare i pad con la saldatura sul fondo e il ponte con il pad comune in alto per il collegamento a terra. Quindi aggiungi l'array di LED e saldalo. Dovrebbe essere il più lontano possibile dal bordo della scheda con i due supporti come può essere con l'YS rivolto verso il lato opposto. Il pin in basso a sinistra è il pin 1. (È anche segnato nell'immagine.) Quindi aggiungi le due prese a 8 pin una sopra l'altra in modo da formare una presa a 16 pin. Assicurati di avere uno spazio a sinistra e poi saldalo dentro. Quindi dividi le intestazioni maschio e femmina in sezioni a 10 e 11 pin. Avrai bisogno del doppio delle intestazioni femminili. Saldare quelli come si vede nella foto. Per quanto riguarda le intestazioni maschili, devi spostare il perno in modo che sia uguale su ciascun lato della plastica. È più facile guardare un'immagine per vedere cosa intendo, quindi dai un'occhiata a #6. Ho usato delle pinze e ha funzionato abbastanza bene. Ora se prendi le intestazioni maschili e le metti tra le 2 intestazioni femminili vedrai che ora sono della dimensione giusta per collegare insieme la scheda superiore e quella inferiore.

Passaggio 3: aggiungere i resistori

Aggiungi i resistori
Aggiungi i resistori
Aggiungi i resistori
Aggiungi i resistori
Aggiungi i resistori
Aggiungi i resistori

Questi resistori vanno tra l'array di LED e il 74138 (terra) per proteggere l'array. Piegare uno dei cavi della resistenza sopra la parte superiore in modo che i due cavi siano paralleli. Montarli sui pin 7, 9, 10, 11, 12, 13, 14 e 15 e saldare. Ho scoperto che funziona meglio se alterni la direzione del resistore come puoi vedere nella seconda e nella terza immagine.

Passaggio 4: cablare la parte superiore

Wire la parte superiore
Wire la parte superiore
Wire la parte superiore
Wire la parte superiore
Wire la parte superiore
Wire la parte superiore
Wire la parte superiore
Wire la parte superiore

Questo è di gran lunga il passo più lungo del progetto, quindi spero proprio che ti piaccia la saldatura! Segui lo schema qui sotto e assicurati di testare la continuità con il tuo multimetro. Nel caso volessi sapere come sono arrivato con lo schema, guarda la scheda tecnica per l'array e il 74138.

Passaggio 5: popola il fondo

Popola il fondo
Popola il fondo
Popola il fondo
Popola il fondo
Popola il fondo
Popola il fondo
Popola il fondo
Popola il fondo

Ora è il momento di posizionare i nostri componenti di base sul pannello inferiore. Per prima cosa faremo la presa DIP a 40 pin che si avvicina il più possibile all'angolo in alto a sinistra lasciando una riga di spazio sul lato sinistro. (Vedi immagine #1.) Saldalo dentro e poi posiziona le intestazioni. Il modo più semplice per farlo è connettere quelli in alto a quelli che andranno in basso usando le tue intestazioni maschili modificate. Se hai fatto tutto bene dovresti finire con i tre pin in alto sull'intestazione sinistra accanto ai pin in basso a destra sulla presa. Questo va bene. Usiamo solo il perno più in basso a destra e come puoi vedere abbiamo una ripresa chiara da un'altra direzione. Ora aggiungi il regolatore di tensione come mostrato nell'immagine. Ho fissato il mio attraverso il foro nel dissipatore di calore in metallo con una vite e un dado. Il dissipatore di calore è un altro modo per mettere a terra il chip e fissarlo alla scheda fornisce un contatto solido con la connessione comune. Questo è collegato al fondo così come alla parte superiore perché i due sono collegati con distanziatori metallici. Tuttavia, se non si utilizza la connessione comune per la messa a terra NON avvitare il dissipatore di calore alla scheda poiché il dissipatore di calore funge da massa e probabilmente si cortocircuiterà qualcosa. Filo successivo nella clip della batteria. Il rosso va al pin a sinistra (con il dissipatore di calore in alto e i pin in basso) il nero al centro e il pin di destra produce +5v. Ora puoi collegare l'alimentazione alla parte superiore (vedi immagine n. 2). Ora per il connettore del programmatore. Ho un adattatore che ho realizzato per il mio programmatore, ma probabilmente vorrai incorporare un'intestazione a 6 pin (3x2) nel tuo progetto. Tuttavia, se hai un adattatore come me, ecco cosa ho fatto. Ho preso un'intestazione ad angolo retto e un'intestazione femmina e le ho saldate insieme (immagine n. 3). Quindi l'ho collegato alla scheda con il primo pin collegato al pin 6. Ora è necessario alimentare e mettere a terra il chip e collegare un resistore per tirare il reset in alto. Ho eseguito una resistenza da 10k dal pin 9 al pin 10 e poi ho collegato il pin 10 a +5v. Il pin successivo (11) va alla connessione comune (Ground). Infine, guarda l'immagine n. 4 per completare questo passaggio (è abbastanza autoesplicativo).

Passaggio 6: cablare il fondo

Wire il fondo
Wire il fondo
Wire il fondo
Wire il fondo
Wire il fondo
Wire il fondo

Ricordi quel passaggio davvero divertente in cui devi far passare più di 30 fili per far funzionare un array di LED? Ora puoi farlo di nuovo! Sul fondo!. Questo è un po' più veloce ma non molto. Ancora una volta, guarda lo schema e controlla tutte le tue connessioni con il tuo multimetro. Non preoccuparti, questo è l'ultimo grosso pezzo di saldatura del progetto e hai quasi finito.

Passaggio 7: sensori Flex e accelerometro

Sensori Flex e accelerometro
Sensori Flex e accelerometro
Sensori Flex e accelerometro
Sensori Flex e accelerometro
Sensori Flex e accelerometro
Sensori Flex e accelerometro

Affronteremo prima i sensori di flessione, ma per quanto riguarda l'hardware sei a buon punto. Penso che le immagini qui sotto spieghino più o meno cosa fare. Collega un pin a +5v l'altro al terzo o quarto pin dall'alto sul lato destro dell'AVR (Il microcontrollore al centro di questo progetto). Quando l'ho assemblato per la prima volta ho pensato che fosse tutto ciò che dovevo fare, ma si scopre che affinché l'AVR possa leggere i sensori flessibili è necessario inserire un resistore dal pin sul sensore che va all'AVR a massa (vedi foto n. 10 e 11). Ho usato un 10k. Questo divide la tensione che va all'AVR che praticamente raddoppia la sensibilità del sensore. Ora per l'accelerometro. Poiché l'accelerometro è solo un pelo più alto dello spazio tra le due schede e poiché potremmo volerlo sostituire un giorno, ho deciso di utilizzare le intestazioni per rimuoverlo dalla scheda e collegarlo. Utilizzare un'intestazione ad angolo retto per connettersi ai 6 pin sulla scheda breakout. Ora prendi un'altra intestazione ad angolo retto e salda un'intestazione femmina ai pin corti, quindi saldala nella parte inferiore sinistra della scheda. Collegare l'accelerometro per assicurarsi che si adatti, scollegarlo e quindi collegare i pin corretti a Vcc (+5v) e Gnd. Quindi collegare il pin di uscita X al pin 40 e Y al pin 39. Ora dovresti essere impostato per aggiungere gli IC (circuiti integrati) e accenderlo.

26 dicembre 2009: ho scoperto che il modo in cui ho montato il sensore di flessione del dito indice ha causato il degrado del materiale che collega il sensore con i perni. Da allora ho acquistato un sensore di ricambio e ho incollato a caldo un pezzo di plastica sottile sul sensore per evitare che quest'area sia la parte che fa la maggior parte della piegatura. Ho taggato la posizione nella foto qui sotto.

Passaggio 8: aggiunta di circuiti integrati e primo programma

Aggiunta di circuiti integrati e primo programma
Aggiunta di circuiti integrati e primo programma
Aggiunta di circuiti integrati e primo programma
Aggiunta di circuiti integrati e primo programma
Aggiunta di circuiti integrati e il primo programma
Aggiunta di circuiti integrati e il primo programma
Aggiunta di circuiti integrati e il primo programma
Aggiunta di circuiti integrati e il primo programma

Questo è probabilmente il passaggio più semplice dell'intero processo. Ancora una volta l'immagine aiuta. Assicurati di avere i chip nel modo corretto come spiegato nell'immagine #3. Prima collegherei l'alimentazione senza nulla collegato e toccherei il dissipatore di calore sul regolatore di tensione. Se fa caldo, qualcosa è in cortocircuito e devi tornare indietro e controllare le connessioni. Procedi in questo modo, aggiungendo un chip alla volta, sentendo il calore e una volta che tutto è al suo posto stringi i dadi sulla tavola inferiore in modo che le due tavole siano saldamente fissate insieme. Successivamente si programma l'AVR. Se non l'hai mai fatto prima, una rapida ricerca su Google produce una miriade di risultati. Se fossi in te metterei il mio AVR su una breadboard e programmarlo lì prima che tu ci provi sul tuo duro lavoro. Ho scritto un semplice programma per inviare le informazioni ricevute dai sensori flessibili all'array di LED. Questo dovrebbe darti un'idea di base di cosa funziona e cosa non funziona nel tuo circuito. Ecco un video del codice in azione… ed ecco il codice: #define F_CPU 800000UL#include #include #include void ADCINIT(){ ADMUX = 0b01100000; ADCSRA = 0b10000000;}int main(){ int a; un = 0; int b; b = 0; DDRD = 0xFF; DDRB = 0xFF; DDRA = 0b1110000; ADCINIT(); mentre(1) { ADMUX = 0b01100011; ADCSRA |= 0b01000000; while(bit_is_clear(ADCSRA, ADIF)); PORTA = 0b00000000; PORTD = ADCH; _delay_ms(1); PORTAD = 0x00; ADMUX = 0b01100010; ADCSRA |= 0b01000000; while(bit_is_clear(ADCSRA, ADIF)); PORTA = 0b1110000; PORTB = ADCH; _delay_ms(1); PORTAB = 0x00; }}

Passaggio 9: collegare il proprio circuito a un guanto

Attaccare il tuo circuito a un guanto
Attaccare il tuo circuito a un guanto
Attaccare il tuo circuito a un guanto
Attaccare il tuo circuito a un guanto
Attaccare il tuo circuito a un guanto
Attaccare il tuo circuito a un guanto

Penso che ci siano molti modi per attaccare il tuo circuito alla tua mano e per un po' ho pensato di lasciarlo al lettore, ma poi ho deciso che l'istruzioni non sarebbe stato completo senza questa chiusura. Sono andato al mio negozio di bici locale e ho preso il guanto a dita intere più economico che potessi trovare. È necessario un dito intero perché altrimenti non è possibile collegare molto bene i sensori di flessione. Poi sono andato da un negozio di tessuti e ho preso del filo di poliestere e del velcro adesivo. Ho messo il guanto e ho messo il circuito sulla mia mano. Parte del posizionamento è il comfort, ma un'altra parte sono i sensori di flessione. Dovrebbero scendere a metà di due dita. Ho cucito dei cappi attorno ai tre distanziatori per tenere su la scheda principale (vedi figura n. 2) e poi ho fatto dei cappi allentati per 3/4 di ogni dito del sensore flessibile (n. 3 e 4). Assicurati di non cucire il guanto chiuso. Poi ho attaccato un pezzo di velcro sul lato del pollice per tenere la batteria. Ho scoperto dopo i test che vale davvero la pena cucire anche questo perché il bastoncino non dura troppo a lungo. Successivamente ho messo un anello di velcro attorno al 9v (Immagine 5). Questa configurazione sembra funzionare abbastanza bene. Come puoi vedere nelle immagini della prima e dell'ultima diapositiva, ora ho aggiunto le maniche per i sensori di flessione ma se non hai tempo, i loop dovrebbero andare bene. Quando hai finito con il tuo progetto, pubblica le foto del tuo prodotto finito sotto. Mi piacerebbe vedere cosa ti è venuto in mente per collegare il circuito!

Passaggio 10: il codice reale

Il vero codice
Il vero codice

Grazie per avermi sopportato finora. Tieni presente che il mio codice non è perfetto. Ho scoperto che ci vuole un po' di apprendimento per far funzionare correttamente il segnale. Continuerò a cercare di perfezionare il mio sistema e manterrò questa pagina aggiornata con il nuovo codice una volta che l'avrò scritto. 26 dicembre 2009: NUOVO CODICE! È pubblicato dov'era il vecchio codice. Molte grazie a Jacob per la semplificazione. Funziona davvero bene. Ecco qui. Grazie per aver letto e non dimenticare di votare! #include #include #include // Imposta o cancella i bit nei registri #define setBit(sfr, bit) (sfr |= (1 << bit)) #define clearBit(sfr, bit) (sfr &= ~(1 << bit)) #define flipBit(sfr, bit) (sfr ^= (1 << bit)) #define FALSE 0 #define TRUE 1 #define matriceX(x) (PORTA = (x - 1) << 5) #define matriceGY(y) (PORTD = y) #define matriceRY(y) (PORTB = y) void delay(unsigned int delay) { unsigned int x = 0; while(x < ritardo) { x++; } } void initMatrix() { DDRD = 0xFF; // Controllo verde DDRB = 0xFF; // Controllo rosso DDRA = 0xE0; // Ground control } void matrixRowDraw(char greenmask, char redmask, char column) { matrixX(column); int i = 0; for(i = 0; i < 8; i++) { matriceGY(maschera verde & (1 << i)); matriceRY(maschera rossa & (1 << i)); _delay_us(150); } matriceGY(0x00); matriceRY(0x00); } void matrixLeft() { matrixRowDraw(0x10, 0, 1); matrixRowDraw(0x20, 0, 2); matrixRowDraw(0x40, 0, 3); matrixRowDraw(0xFF, 0, 4); matrixRowDraw(0xFF, 0, 5); matrixRowDraw(0x40, 0, 6); matrixRowDraw(0x20, 0, 7); matrixRowDraw(0x10, 0, 8); } void matrixRight() { matrixRowDraw(0x18, 0, 1); matrixRowDraw(0x18, 0, 2); matrixRowDraw(0x18, 0, 3); matrixRowDraw(0x18, 0, 4); matrixRowDraw(0x99, 0, 5); matrixRowDraw(0x5A, 0, 6); matrixRowDraw(0x3C, 0, 7); matrixRowDraw(0x18, 0, 8); } void adcInit() { ADMUX = 0x60; ADCSRA = 0x80; } char adcGet(char chan) { ADMUX = 0x60 | can; ADCSRA |= 0x40; while(bit_is_clear(ADCSRA, ADIF)); ritorna ADCH; } char adcAvg(char chan, char avgnum) // Media solo fino a 256 campioni { int i = 0; unsigned int totale = 0; for(i = 0; i < avgnum; i++) { totale += adcGet(chan); } restituisce il totale/media; } int main() { initMatrix(); adcInit(); while(1) { while(adcAvg(3, 50) > 0x45 & adcAvg(2, 50) > 0x70) // I valori esadecimali qui dovrebbero essere modificati a seconda della configurazione dell'utente per determinare la sensibilità dei sensori di flessione. { if(adcAvg(1, 50) > 0x4F) { matriceRight(); } if(adcAvg(1, 100) < 0x4F) { matrixLeft(50); } } } restituisce 0; } Un ringraziamento speciale ai Chamberlain, ai miei genitori e ai miei amici che mi hanno aiutato.

Finalista al concorso Vacanze fatte in casa

Consigliato: