Obsah:

Signální světlo na kole: 10 kroků (s obrázky)
Signální světlo na kole: 10 kroků (s obrázky)

Video: Signální světlo na kole: 10 kroků (s obrázky)

Video: Signální světlo na kole: 10 kroků (s obrázky)
Video: Say NO to WAR! ❌ Share this video to everyone you can! 🙏 2024, Listopad
Anonim
Bike Signální světlo
Bike Signální světlo

Cílem tohoto projektu je vytvořit světlo, které sedí na cyklistickou rukavici a ukazuje ve směru zamýšlené zatáčky, aby se zvýšila viditelnost v noci. Mělo by být lehké, snadno použitelné a integrované se stávajícími pohyby pro signalizaci (minimální vyladění metody signálu (nemusíte mačkat tlačítko, jde to, když signalizujete)). Byl by to skvělý dárek k svátku.

Poznámka: To vyžaduje předchozí znalosti o tom, jak pájet, a představa, jak programovat AVR, je velkou výhodou. S ohledem na to se bavte, buďte trpěliví a pošlete níže obrázky svého produktu! Tady je video: A tady je můj obrázek:

Krok 1: Díly

Díly
Díly

x1 ATmega 32L 8PU (www.digikey.com) x1 40pinový DIP konektor (www.digikey.com) x1 8x8 LED Array (www.sparkfun.com) x1 74138 De-multiplexer (www.digikey.com) x2 Flex Sensors (www.sparkfun.com) x (Mnoho) Rezistory 180 ohmová a 10k ohmx2 PC deska (www.sparkfun.com) x6 distanční podložky (www.sparkfun.com) a šrouby vhodné (Místní železářství) x1 Akcelerometr na odpojovací desce (www.sparkfun.com) x2 záhlaví - male (www.sparkfun.com), female (www.sparkfun.com) a pravý úhel (www.sparkfun.com) x1 LM7805 (www.digikey.com) x2 8pinové zásuvky (Dostal jsem svůj v Radio Shack) x1 9v bateriex1 nášlapný suchý zipx1 Celoprsté kolo glovex1 cívka polyesterový závitx1 Programátor (mám tento) x1 Odizolovač drátu a clipx1 Multimetr Některé části:

Krok 2: Připravte desky

Připravte desky
Připravte desky
Připravte desky
Připravte desky
Připravte desky
Připravte desky
Připravte desky
Připravte desky

Nejprve přidejte mezery. Abyste získali správnou výšku, budete muset dva sešroubovat. Pomocí podložek SQUARE zajistěte, aby vzpěry sestupovaly ze strany. Tímto způsobem můžete přemostit podložky pájkou na dně a přemostit společnou podložkou nahoře pro připojení k zemi. Dále přidejte pole LED a připájejte jej. Mělo by být tak daleko k okraji desky se dvěma stanoffy, jak to může být, s YS obráceným na opačnou stranu. Kolík vlevo dole je kolík 1. (Je to také vyznačeno na obrázku.) Dále přidejte dvě 8kolíkové zásuvky jednu na druhou, aby vznikla jedna 16kolíková zásuvka. Ujistěte se, že máte jeden prostor nalevo, a poté jej pájejte dovnitř. Dále rozdělte samčí a samičí záhlaví na 10 a 11 pinové sekce. Budete potřebovat dvakrát tolik hlaviček. Pájejte je, jak je vidět na fotografii. Pokud jde o mužské záhlaví, musíte posunout kolík tak, aby jejich část byla na každé straně plastu stejná. Nejjednodušší je podívat se na obrázek, abyste zjistili, co tím myslím, takže se podívejte na #6. Použil jsem nějaké kleště a fungovalo to docela dobře. Nyní, když vezmete mužské záhlaví a umístíte je mezi 2 ženské záhlaví, uvidíte, že nyní mají správnou velikost pro spojení horní a spodní desky dohromady.

Krok 3: Přidejte rezistory

Přidejte odpory
Přidejte odpory
Přidejte odpory
Přidejte odpory
Přidejte odpory
Přidejte odpory

Tyto odpory jdou mezi pole LED a 74138 (uzemnění) k ochraně pole. Přeložte jeden z vodičů z rezistoru přes horní část tak, aby byly dva vodiče paralelní. Namontujte je na piny 7, 9, 10, 11, 12, 13, 14 a 15 a pájejte. Zjistil jsem, že to funguje nejlépe, když střídáte směr odporu, jak vidíte na druhém a třetím obrázku.

Krok 4: Zapojte horní část

Připojte drát
Připojte drát
Připojte drát
Připojte drát
Připojte drát
Připojte drát
Připojte drát
Připojte drát

Toto je zdaleka nejdelší krok projektu, takže doufám, že se vám pájení líbí! Postupujte podle níže uvedeného schématu a ujistěte se, že otestujete kontinuitu pomocí multimetru. V případě, že chcete vědět, jak jsem k nám přišel se schematickým pohledem na datový list pro pole a 74138.

Krok 5: Naplňte dno

Naplňte dno
Naplňte dno
Naplňte dno
Naplňte dno
Naplňte dno
Naplňte dno
Naplňte dno
Naplňte dno

Nyní je čas umístit naše základní komponenty na spodní desku. Nejprve uděláme 40kolíkovou zásuvku DIP, která jde co nejblíže levému hornímu rohu a ponechá jednu řadu místa na levé straně. (Viz obrázek č. 1.) Zapájejte a vložte záhlaví. Nejjednodušší způsob, jak to udělat, je propojit ty nahoře s těmi, které půjdou dole, pomocí vašich upravených mužských hlaviček. Pokud jste udělali všechno správně, měli byste skončit se třemi horními třemi piny na levém záhlaví vedle dolních pravých kolíků na zásuvce. Toto je v pořádku. Používáme pouze nejspodnější kolík vpravo a jak vidíte, máme na něj jasný záběr z jiného směru. Nyní přidejte regulátor napětí, jak je znázorněno na obrázku. Svůj jsem zajistil otvorem v kovovém chladiči šroubem a maticí. Chladič je dalším způsobem uzemnění čipu a přišroubováním k desce poskytuje pevný kontakt se společným spojením. To je spojeno se spodní i horní částí, protože jsou spojeny kovovými distančními sloupky. Pokud však nepoužíváte společné připojení pro uzemnění, NEODPOJUJTE chladič k desce, protože chladič slouží jako uzemnění a pravděpodobně něco zkratujete. Další vodič ve svorce baterie. Červená jde na kolík vlevo (s chladičem nahoru a kolíky dolů) černý do středu a pravý kolík produkuje +5v. Nyní můžete připojit napájení nahoru (viz obrázek č. 2). Nyní k programátorskému konektoru. Mám adaptér, který jsem vytvořil pro svého programátora, ale pravděpodobně budete chtít do svého návrhu začlenit záhlaví 6 pinů (3x2). Pokud však máte adaptér jako já, zde je to, co jsem udělal. Vzal jsem pravoúhlou hlavičku a ženskou hlavičku a spojil je dohromady (obrázek č. 3). Poté jsem jej připojil k desce prvním kolíkem připojeným ke kolíku 6. Nyní musíte napájet a uzemnit čip a také zapojení v rezistoru, abyste vytáhli reset vysoko. Spustil jsem 10k odpor z pinu 9 na pin 10 a poté připojil pin 10 na +5v. Další kolík (11) vede ke společnému připojení (uzemnění). Nakonec se podívejte na obrázek č. 4 a dokončete tento krok (je to docela samozřejmé).

Krok 6: Zapojte dno

Zapojte dno
Zapojte dno
Zapojte dno
Zapojte dno
Zapojte dno
Zapojte dno

Pamatujete si ten opravdu zábavný krok, kdy musíte projít přes 30 vodičů, aby fungovalo pole LED? Nyní to můžete udělat znovu! Na dně!. Tenhle je trochu rychlejší, ale ne můj moc. Ještě jednou se podívejte na schéma a pomocí multimetru zkontrolujte všechna svá připojení. Nebojte se, toto je poslední velká pájka projektu a máte téměř hotovo.

Krok 7: Flex senzory a akcelerometr

Flex senzory a akcelerometr
Flex senzory a akcelerometr
Flex senzory a akcelerometr
Flex senzory a akcelerometr
Flex senzory a akcelerometr
Flex senzory a akcelerometr

Nejprve se budeme zabývat senzory flex, ale pokud jde o hardware, jste doma. Myslím, že níže uvedené obrázky do značné míry vysvětlují, co dělat. Připojte jeden pin na +5v druhý ke třetímu nebo čtvrtému pinu shora na pravé straně AVR (mikrokontrolér v srdci tohoto projektu). Když jsem to dával dohromady, myslel jsem si, že to je vše, co jsem potřeboval udělat, ale ukázalo se, že aby AVR přečetlo flex senzory, je třeba dát odpor z kolíku na senzoru, který jde do AVR k zemi (Viz obrázky # 10 a 11). Použil jsem 10k. Tím se rozdělí napětí na AVR, což prakticky zdvojnásobí citlivost senzoru. Nyní k akcelerometru. Vzhledem k tomu, že akcelerometr je jen o chlup vyšší než prostor mezi dvěma deskami a protože bychom jej možná jednoho dne chtěli vyměnit, rozhodl jsem se použít záhlaví k jeho vyražení z desky a k připojení. Pomocí pravoúhlého záhlaví se připojte k 6 kolíkům na odlamovací desce. Nyní vezměte další pravoúhlý konektor a připájejte samičí konektor na krátké kolíky a poté jej připájejte do levého dolního rohu desky. Připojte akcelerometr, abyste se ujistili, že sedí, odpojte jej a poté připojte správné piny k Vcc (+5v) a Gnd. Poté připojte pinový výstup X na pin 40 a Y na pin 39. Nyní byste měli být nastaveni na přidání integrovaných obvodů (IC) a zapnutí.

26. prosince 2009: Zjistil jsem, že způsob, jakým jsem namontoval snímač ohybu ukazováčku, způsobil degradaci materiálu spojujícího snímač s kolíky. Od té doby jsem si koupil náhradní senzor a za horka jsem k senzoru nalepil kus tenkého plastu, aby se zabránilo tomu, že tato oblast bude součástí většiny ohýbání. Umístění jsem označil na níže uvedené fotografii.

Krok 8: Přidání integrovaných obvodů a prvního programu

Přidání integrovaných obvodů a prvního programu
Přidání integrovaných obvodů a prvního programu
Přidání integrovaných obvodů a prvního programu
Přidání integrovaných obvodů a prvního programu
Přidání integrovaných obvodů a prvního programu
Přidání integrovaných obvodů a prvního programu
Přidání integrovaných obvodů a prvního programu
Přidání integrovaných obvodů a prvního programu

Toto je pravděpodobně nejsnazší krok celého procesu. Ještě jednou nápověda k obrázku. Ujistěte se, že máte čipy správným způsobem, jak je vysvětleno na obrázku č. 3. Nejprve bych připojil napájení bez připojení a dotkl se chladiče na regulátoru napětí. Pokud je horko, něco se zkratuje a vy se musíte vrátit a zkontrolovat připojení. Postupujte tímto způsobem, přidávejte vždy jeden čip, pocit tepla a jakmile je vše na svém místě, utáhněte matice na spodní desce, aby byly obě desky bezpečně spojeny dohromady. Dále naprogramujete AVR. Pokud jste to nikdy předtím neudělali, rychlé vyhledávání na Googlu přináší nepřeberné množství výsledků. Na tvém místě bych dal svůj AVR na prkénko a program tam, než to zkusíš na své tvrdé práci. Napsal jsem jednoduchý program pro výstup informací přijímaných z flex senzorů do LED pole. To by vám mělo poskytnout základní představu o tom, co ve vašem obvodu funguje a co nefunguje. Zde je video s kódem v akci …… a zde je kód: #define F_CPU 800000UL #include #include #include void ADCINIT () { ADMUX = 0b01100000; ADCSRA = 0b10000000;} int main () {int a; a = 0; int b; b = 0; DDRD = 0xFF; DDRB = 0xFF; DDRA = 0b11100000; ADCINIT (); while (1) {ADMUX = 0b01100011; ADCSRA | = 0b01000000; while (bit_is_clear (ADCSRA, ADIF)); PORTA = 0b00000000; PORTD = ADCH; _delay_ms (1); PORTD = 0x00; ADMUX = 0b01100010; ADCSRA | = 0b01000000; while (bit_is_clear (ADCSRA, ADIF)); PORTA = 0b11100000; PORTB = ADCH; _delay_ms (1); PORTB = 0x00; }}

Krok 9: Připnutí Circutu k rukavici

Připnutí Circutu k rukavici
Připnutí Circutu k rukavici
Připnutí Circutu k rukavici
Připnutí Circutu k rukavici
Připnutí Circutu k rukavici
Připnutí Circutu k rukavici

Myslím, že existuje mnoho způsobů, jak připojit váš okruh k vaší ruce, a na chvíli jsem si myslel, že to nechám na čtenáři, ale pak jsem se rozhodl, že instruktážní program by nebyl úplný bez tohoto uzavření. Šel jsem do svého místního obchodu s koly a dostal nejlevnější celoprstovou rukavici, jakou jsem našel. Plný prst je nutný, protože jinak nemůžete flex senzory velmi dobře připevnit. Potom jsem šel do obchodu s látkami a vzal si polyesterovou nit a nalepovací suchý zip. Nasadil jsem si rukavici a položil obvod na ruku. Součástí polohování je pohodlí, ale další částí jsou snímače pružnosti. Měli by jít dolů dvěma prsty. Šil jsem smyčky kolem tří distančních sloupků, abych držel hlavní desku (viz obrázek č. 2), a poté jsem uvolnil smyčky 3/4 cesty dolů každým prstem flex senzoru (#3 a 4). Ujistěte se, že rukavici nešijete zavřenou. Poté jsem na stranu palce nalepil kousek suchého zipu, abych udržel baterii. Po testování jsem zjistil, že se opravdu vyplatí to přišít také, protože hůl nevydrží příliš dlouho. Dále jsem kolem 9v dal smyčku na suchý zip (obrázek 5). Zdá se, že toto nastavení funguje docela dobře. Jak vidíte na obrázcích na prvním a posledním snímku, nyní jsem přidal rukávy pro flex senzory, ale pokud nemáte čas, smyčky by měly fungovat dobře. Až dokončíte svůj projekt, zveřejněte fotografie hotového produktu níže. Rád bych viděl, na co jste přišli, abyste připojili obvod!

Krok 10: Skutečný kód

Skutečný kód
Skutečný kód

Děkuji, že jste se mnou doposud vydrželi. Mějte na paměti, že můj kód není dokonalý. Zjistil jsem, že to chce trochu učení, aby signál fungoval správně. Budu se i nadále snažit zdokonalit svůj systém a tuto stránku budu aktualizovat novým kódem, jakmile jej napíšu. 26. prosince 2009: NOVÝ KÓD! Je zveřejněno, kde byl starý kód. Mnohokrát děkuji Jacobovi za zjednodušení. Opravdu to funguje dobře. Tady to je. Děkujeme za přečtení a nezapomeňte hlasovat! #include #include #include // Nastaví nebo vymaže bity v registrech #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 matrixX (x) (PORTA = (x - 1) << 5) #define matrixGY (y) (PORTD = y) #define matrixRY (y) (PORTB = y) neplatné zpoždění (nepodepsané int zpoždění) {unsigned int x = 0; while (x <zpoždění) {x ++; }} neplatná initMatrix () {DDRD = 0xFF; // Zelená kontrola DDRB = 0xFF; // Červený ovládací prvek DDRA = 0xE0; // Ground control} void matrixRowDraw (char greenmask, char redmask, char column) {matrixX (sloupec); int i = 0; pro (i = 0; i <8; i ++) {matrixGY (zelená maska & (1 << i)); matrixRY (redmask & (1 << i)); _delay_us (150); } matrixGY (0x00); matrixRY (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); } neplatné adcInit () {ADMUX = 0x60; ADCSRA = 0x80; } char adcGet (char chan) {ADMUX = 0x60 | chan; ADCSRA | = 0x40; while (bit_is_clear (ADCSRA, ADIF)); vrátit ADCH; } char adcAvg (char chan, char avgnum) // Pouze průměr až 256 vzorků {int i = 0; unsigned int celkem = 0; for (i = 0; i <avgnum; i ++) {total+= adcGet (chan); } celkový výnos/průměr; } int main () {initMatrix (); adcInit (); while (1) {while (adcAvg (3, 50)> 0x45 & adcAvg (2, 50)> 0x70) // Zde uvedené hexadecimální hodnoty by měly být změněny v závislosti na nastavení uživatele, aby se určila citlivost flex senzorů. {if (adcAvg (1, 50)> 0x4F) {matrixRight (); } if (adcAvg (1, 100) <0x4F) {matrixLeft (50); }}} vrátit 0; } Zvláštní poděkování patří Chamberlains, mým rodičům a přátelům, kteří pomohli.

Finalista soutěže Domácí prázdniny

Doporučuje: