Obsah:

Kontrolka ručného bicykla: 10 krokov (s obrázkami)
Kontrolka ručného bicykla: 10 krokov (s obrázkami)

Video: Kontrolka ručného bicykla: 10 krokov (s obrázkami)

Video: Kontrolka ručného bicykla: 10 krokov (s obrázkami)
Video: Часы G Shock до 100 долларов-15 лучших часов Casio G Shock до 100 дол... 2024, November
Anonim
Kontrolka ručného bicykla
Kontrolka ručného bicykla

Cieľom tohto projektu je vytvoriť svetlo, ktoré sa hodí na cyklistickú rukavicu a ukazuje v smere zamýšľanej zákruty, aby sa v noci zvýšila viditeľnosť. Mal by byť ľahký, ľahko použiteľný a integrovaný s existujúcimi pohybmi signalizácie (minimálne doladenie metódy signálu (nemusíte stlačiť tlačidlo, pri signále to ide)). To by bol skvelý darček k sviatku.

Poznámka: To vyžaduje predchádzajúce znalosti o spájkovaní a predstava o programovaní AVR je veľkým plusom. Majte to na pamäti, bavte sa, buďte trpezliví a uverejnite obrázky svojho produktu nižšie! Tu je video: A tu je môj obrázok:

Krok 1: Diely

Časti
Časti

x1 ATmega 32L 8PU (www.digikey.com) x1 40-pinová zásuvka DIP (www.digikey.com) x1 8x8 LED pole (www.sparkfun.com) x1 74138 De-multiplexor (www.digikey.com) x2 flexibilné senzory (www.sparkfun.com) x (Mnoho) Rezistory 180 ohmová a 10k ohmx2 doska PC (www.sparkfun.com) x6 stojany (www.sparkfun.com) a skrutky, ktoré zodpovedajú (miestny železiarsky obchod) x1 akcelerometer na oddeľovacej doske (www.sparkfun.com) x2 hlavičky - male (www.sparkfun.com), female (www.sparkfun.com) a pravý uhol (www.sparkfun.com) x1 LM7805 (www.digikey.com) x2 8 -pinové zásuvky (Dostal som svoj v Radio Shack) x1 9v batériax1 nalepovací suchý zipsx1 celoprstý bicykel glovex1 cievka z polyesterového vláknax1 programátor (mám tento) x1 odizolovač drôtu a clipx1 multimeter Niektoré z častí:

Krok 2: Pripravte dosky

Pripravte rady
Pripravte rady
Pripravte rady
Pripravte rady
Pripravte rady
Pripravte rady
Pripravte rady
Pripravte rady

Najprv pridajte medzery. Na dosiahnutie správnej výšky budete musieť dve skrutky spojiť. Uistite sa, že podpery klesajú zboku pomocou podložiek SQUARE. Týmto spôsobom môžete mostíky prepojiť spájkou v spodnej časti a premostiť spoločnou podložkou hore, aby ste sa spojili so zemou. Potom pridajte pole LED a zapájajte ho. Malo by byť čo najďalej k okraju dosky s dvoma stanoffmi, aby YS smeroval na opačnú stranu. Kolík vľavo dole je kolík 1. (Je to tiež vyznačené na obrázku.) Potom pridajte dve 8 -kolíkové zásuvky jednu na druhú, aby sa vytvorila jedna 16 -kolíková zásuvka. Uistite sa, že máte jeden priestor vľavo, a potom ho spájkujte. Ďalej rozdeľte mužskú a ženskú hlavičku na 10 a 11 kolíkové časti. Budete potrebovať dvakrát toľko ženských hlavičiek. Spájkujte tie, ktoré sú na obrázku. Pokiaľ ide o mužské hlavičky, musíte posunúť kolík tak, aby bol rovnaký na oboch stranách plastu. Najľahšie je pozrieť sa na obrázok, aby ste zistili, čo tým myslím, a preto sa pozrite na #6. Použil som niekoľko klieští a fungovalo to celkom dobre. Teraz, keď vezmete mužské hlavičky a umiestnite ich medzi 2 ženské hlavičky, uvidíte, že teraz majú správnu veľkosť na spojenie hornej a spodnej dosky dohromady.

Krok 3: Pridajte rezistory

Pridajte odpory
Pridajte odpory
Pridajte odpory
Pridajte odpory
Pridajte odpory
Pridajte odpory

Tieto odpory slúžia na ochranu poľa medzi poľom LED a 74138 (uzemnenie). Zložte jeden z vodičov z rezistora cez vrch, aby boli dva vodiče paralelné. Namontujte ich na kolíky 7, 9, 10, 11, 12, 13, 14 a 15 a spájkujte. Zistil som, že to funguje najlepšie, ak striedate smer odporu, ako vidíte na druhom a treťom obrázku.

Krok 4: Pripojte hornú časť

Pripojte hornú časť
Pripojte hornú časť
Pripojte hornú časť
Pripojte hornú časť
Pripojte hornú časť
Pripojte hornú časť
Pripojte hornú časť
Pripojte hornú časť

Toto je zďaleka najdlhší krok projektu, takže dúfam, že sa vám spájkovanie páči! Postupujte podľa nižšie uvedenej schémy a uistite sa, že pomocou multimetra otestujete kontinuitu. V prípade, že chcete vedieť, ako som k nám prišiel so schematickým pohľadom na technický list pre pole a 74138.

Krok 5: Vyplňte dno

Vyplňte dno
Vyplňte dno
Vyplňte dno
Vyplňte dno
Vyplňte dno
Vyplňte dno
Vyplňte dno
Vyplňte dno

Teraz je čas umiestniť naše základné komponenty na spodnú dosku. Najprv urobíme 40 -kolíkový DIP konektor, ktorý ide čo najbližšie k ľavému hornému rohu, pričom ponecháva jeden rad miesta na ľavej strane. (Pozri obrázok č. 1.) Spájkujte a vložte hlavičky. Najľahšie to urobíte tak, že prepojíte tie hore, s tými, ktoré pôjdu dole, pomocou vašich upravených mužských hlavičiek. Ak ste urobili všetko správne, mali by ste skončiť s tromi tromi hornými kolíkmi na ľavom záhlaví vedľa pravých dolných kolíkov na zásuvke. Toto je v poriadku. Používame iba najspodnejší kolík vpravo a ako vidíte, máme naň jasný záber z iného smeru. Teraz pridajte regulátor napätia, ako je znázornené na obrázku. Svoju som zaistil pomocou otvoru v kovovom chladiči pomocou skrutky a matice. Chladič je ďalším spôsobom uzemnenia čipu a jeho priskrutkovanie k doske poskytuje pevný kontakt so spoločným pripojením. Ten je spojený so spodkom aj vrchom, pretože tieto dva sú spojené kovovými podperami. Ak však nepoužívate spoločné pripojenie na zem, NEPRIPOJUJTE chladič k doske, pretože slúži ako uzemnenie a pravdepodobne niečo skratujete. Ďalší drôt v objímke batérie. Červená ide na kolík vľavo (s chladičom hore a kolíkmi dole) čierny do stredu a pravý kolík vytvára +5v. Teraz môžete zapojiť napájanie hore (pozri obrázok č. 2). Teraz k programátorskému konektoru. Mám adaptér, ktorý som vyrobil pre svoj programátor, ale pravdepodobne budete chcieť do návrhu začleniť 6 -kolíkovú (3x2) hlavičku. Ak však máte adaptér ako ja, tu je to, čo som urobil. Vzal som pravouhlú hlavičku a ženskú hlavičku a spájkoval som ich dohromady (obrázok č. 3). Potom som ho pripevnil k doske prvým pinom pripojeným k pinu 6. Teraz musíte napájať a uzemniť čip, ako aj zapojenie v rezistore, aby ste vytiahli reset vysoko. Spustil som 10k odpor z pinu 9 na pin 10 a potom som pripojil pin 10 na +5v. Ďalší kolík (11) smeruje k spoločnému spojeniu (uzemnenie). Nakoniec dokončite tento krok na obrázku č. 4 (je to celkom samozrejmé).

Krok 6: Pripojte dno

Pripojte dno
Pripojte dno
Pripojte dno
Pripojte dno
Pripojte dno
Pripojte dno

Pamätáte si ten naozaj zábavný krok, kde musíte prejsť 30 káblov, aby LED dióda fungovala? Teraz to môžete urobiť znova! Na dne !. Tento je trochu rýchlejší, ale nie môj moc. Ešte raz sa pozrite na schému a pomocou multimetra skontrolujte všetky svoje spojenia. Nebojte sa, toto je posledná veľká spájkovačka projektu a máte takmer hotovo.

Krok 7: Ohybné senzory a akcelerometer

Flex senzory a akcelerometer
Flex senzory a akcelerometer
Flex senzory a akcelerometer
Flex senzory a akcelerometer
Flex senzory a akcelerometer
Flex senzory a akcelerometer

Najprv sa budeme zaoberať snímačmi ohybu, ale pokiaľ ide o hardvér, ste doma. Myslím si, že nižšie uvedené obrázky do značnej miery vysvetľujú, čo robiť. Pripojte jeden kolík k +5v druhý k tretiemu alebo štvrtému kolíku zhora na pravej strane AVR (mikrokontrolér v srdci tohto projektu). Keď som to prvýkrát zostavil, myslel som si, že je to všetko, čo som musel urobiť, ale ukázalo sa, že na to, aby AVR prečítal flexibilné senzory, musíte vložiť odpor z kolíka na snímači, ktorý smeruje k AVR k zemi (pozri obrázky č. 10 a 11). Použil som 10k. Toto delí napätie prichádzajúce do AVR, čo prakticky zdvojnásobuje citlivosť snímača. Teraz k akcelerometru. Pretože akcelerometer je len o chlp vyšší než priestor medzi dvoma doskami a pretože ho možno budeme chcieť jedného dňa vymeniť, rozhodol som sa použiť hlavičky, aby som ho vyskočil z dosky a spojil ho. Pomocou pravouhlého záhlavia sa pripojte k 6 kolíkom na oddeľovacej doske. Teraz vezmite ďalšiu pravouhlú hlavičku a spájajte ženskú hlavičku s krátkymi kolíkmi a potom ju spájkujte do ľavého dolného rohu dosky. Pripojte akcelerometer, aby ste sa uistili, že sedí, odpojte ho a potom pripojte správne kolíky k Vcc (+5v) a Gnd. Potom pripojte vývod X na pin 40 a Y na kolík 39. Teraz by ste mali byť nastavení na pridanie integrovaných obvodov (integrované obvody) a zapnutie.

26. december 2009: Zistil som, že spôsob, akým som namontoval snímač ohybu ukazováka, spôsobil degradáciu materiálu spájajúceho snímač s kolíkmi. Odvtedy som si kúpil náhradný snímač a za tepla som k senzoru prilepil kus tenkého plastu, aby sa zabránilo tomu, že táto oblasť je súčasťou väčšiny ohybov. Miesto som označil na nižšie uvedenej fotografii.

Krok 8: Pridanie integrovaných obvodov a prvého programu

Pridanie integrovaných obvodov a prvého programu
Pridanie integrovaných obvodov a prvého programu
Pridanie integrovaných obvodov a prvého programu
Pridanie integrovaných obvodov a prvého programu
Pridanie integrovaných obvodov a prvého programu
Pridanie integrovaných obvodov a prvého programu
Pridanie integrovaných obvodov a prvého programu
Pridanie integrovaných obvodov a prvého programu

Toto je pravdepodobne najľahší krok celého procesu. Ešte raz pomoc s obrázkom. Uistite sa, že máte čipy správnym spôsobom, ako je to vysvetlené na obrázku č. Najprv by som pripojil napájanie s ničím pripojeným a dotkol sa chladiča na regulátore napätia. Ak je horúco, niečo sa skratuje a musíte sa vrátiť a skontrolovať svoje pripojenia. Postupujte týmto spôsobom, pridávajte postupne jeden čip, pocit tepla a keď je všetko na svojom mieste, utiahnite matice na spodnej doske, aby boli dve dosky bezpečne spojené dohromady. Ďalej naprogramujete AVR. Ak ste to nikdy predtým neurobili, rýchle vyhľadávanie na Googli prináša množstvo výsledkov. Na vašom mieste by som položil svoj AVR na dosku a program tam, než to vyskúšate na svojej tvrdej práci. Napísal som jednoduchý program na odoslanie informácií prijatých z flexibilných senzorov do poľa LED. To by vám malo poskytnúť základnú predstavu o tom, čo vo vašom obvode funguje a čo nefunguje. Tu je video s kódom v prevádzke …… a tu 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 (); pričom (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: Pripojenie Circuta k rukavici

Pripevnenie oblúka k rukavici
Pripevnenie oblúka k rukavici
Pripevnenie oblúka k rukavici
Pripevnenie oblúka k rukavici
Pripevnenie oblúka k rukavici
Pripevnenie oblúka k rukavici

Myslím, že existuje mnoho spôsobov, ako pripojiť váš okruh k vám rukou, a chvíľu som si myslel, že to nechám na čitateľovi, ale potom som sa rozhodol, že inštrukcie by neboli úplné bez tohto uzavretia. Išiel som do svojho miestneho obchodu s bicyklami a dostal najlacnejšiu celoprstovú rukavicu, akú som mohol nájsť. Plný prst je potrebný, pretože inak nemôžete veľmi dobre pripevniť snímače ohybu. Potom som išiel do obchodu s látkami a zohnal som polyesterovú niť a nalepovací suchý zips. Nasadil som si rukavicu a položil obvod na ruku. Súčasťou polohovania je pohodlie, ale ďalšou súčasťou sú ohybné senzory. Mali by ísť stredom dvoch prstov. Šil som slučky okolo troch podpier, aby som držal hlavnú dosku (pozri obrázok č. 2), a potom som uvoľnil slučky 3/4 cesty nadol každým prstom snímača ohybu (č. 3 a 4). Dbajte na to, aby ste si rukavicu nezašili. Potom som na stranu palca prilepil kus suchého zipsu, aby držal batériu. Po testovaní som zistil, že sa oplatí ušiť aj toto, pretože tyčinka nevydrží dlho. Ďalej som okolo 9v dal slučku na suchý zips (obrázok 5). Zdá sa, že toto nastavenie funguje celkom dobre. Ako vidíte na obrázkoch na prvých a posledných snímkach, teraz som pridal rukávy pre flexibilné snímače, ale ak nemáte čas, slučky by mali fungovať dobre. Keď skončíte s projektom, pošlite fotografie svojho hotového výrobku nižšie. Rád by som videl, čo ste prišli na pripojenie obvodu!

Krok 10: Skutočný kód

Skutočný kód
Skutočný kód

Ďakujem, že ste so mnou doteraz vydržali. Majte na pamäti, že môj kód nie je dokonalý. Zistil som, že na to, aby signál fungoval správne, je potrebné trochu sa naučiť. Budem sa naďalej snažiť zdokonaliť svoj systém a po napísaní tejto stránky budem aktualizovať nový kód. 26. december 2009: NOVÝ KÓD! Je zverejnené, kde bol starý kód. Veľká vďaka Jacobovi za zjednodušenie. Naozaj to funguje dobre. Tu to je. Ďakujeme za prečítanie a nezabudnite hlasovať! #include #include #include // Nastaví alebo vymaže bity v registroch #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é oneskorenie (bezzadné int oneskorenie) {unsigned int x = 0; while (x <oneskorenie) {x ++; }} neplatná initMatrix () {DDRD = 0xFF; // Zelené ovládanie DDRB = 0xFF; // Červený ovládací prvok DDRA = 0xE0; // Ground control} void matrixRowDraw (char greenmask, char redmask, char column) {matrixX (stĺpec); int i = 0; pre (i = 0; i <8; i ++) {matrixGY (zelená maska & (1 << i)); matrixRY (červená maska & (1 << i)); _delay_us (150); } matrixGY (0x00); matrixRY (0x00); } neplatná maticaLeft () {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átiť ADCH; } char adcAvg (char chan, char avgnum) // Priemer iba 256 vzoriek {int i = 0; nepodpísané int celkom = 0; pre (i = 0; i <avgnum; i ++) {total+= adcGet (chan); } celkový výnos/priemer; } int main () {initMatrix (); adcInit (); while (1) {while (adcAvg (3, 50)> 0x45 & adcAvg (2, 50)> 0x70) // Hexadecimálne hodnoty by sa tu mali zmeniť v závislosti od nastavenia používateľa, aby sa určila citlivosť flexibilných senzorov. {if (adcAvg (1, 50)> 0x4F) {matrixRight (); } if (adcAvg (1, 100) <0x4F) {matrixLeft (50); }}} vrátiť 0; } Osobitné poďakovanie patrí Chamberlains, mojim rodičom a priateľom, ktorí pomohli.

Finalista v súťaži Domáce prázdniny

Odporúča: