Kerékpár kézi jelzőfény: 10 lépés (képekkel)
Kerékpár kézi jelzőfény: 10 lépés (képekkel)
Anonim

A projekt célja, hogy olyan fényt hozzon létre, amely illeszkedik a kerékpáros kesztyűhöz, és a tervezett kanyar irányába mutat, hogy javítsa az éjszakai láthatóságot. Könnyűnek, könnyen használhatónak és integráltnak kell lennie a meglévő jelzési mozdulatokkal (minimális csípés a jelmódban (nem kell gombot megnyomni, csak akkor megy, amikor jelez)). Ez nagyszerű ünnepi ajándék lehet.

Megjegyzés: Ehhez nagy előnyt jelent a forrasztás előzetes ismerete és az AVR programozásának ötlete. Ezt szem előtt tartva érezd jól magad, légy türelmes, és tegyél fel képeket a termékedről alább! Itt egy videó: És itt van egy képem:

1. lépés: Alkatrészek

x1 ATmega 32L 8PU (www.digikey.com) x1 40 tűs DIP foglalat (www.digikey.com) x1 8x8 LED Array (www.sparkfun.com) x1 74138 Multiplexer (www.digikey.com) x2 Flex érzékelők (www.sparkfun.com) x (Sok) 180 ohmos és 10 k ohmos x 2 PC -kártya (www.sparkfun.com) x6 Kikapcsolások (www.sparkfun.com) és csavarok (helyi hardverbolt) x1 Gyorsulásmérő a kioldótáblán (x2 fejlécek - férfi (www.sparkfun.com), női (www.sparkfun.com) és derékszögű (www.sparkfun.com) x1 LM7805 (www.digikey.com) x2 8 tűs foglalat (Az enyémet a Radio Shack-nél kaptam)

2. lépés: Készítse elő a táblákat

Először is adjuk hozzá az eltéréseket. A megfelelő magasság eléréséhez kettőt össze kell csavarni. Győződjön meg arról, hogy a SQUARE párnákkal az oldalsó részek lefelé mennek. Így áthidalhatja a párnákat forrasztással az alján, és áthidalhatja a közös paddal a tetején, hogy csatlakozzon a földhöz. Ezután adja hozzá a LED -tömböt, és forrasztja be. Olyan messze kell lennie a tábla szélétől a két leállással, amennyire csak lehet, ha az YS az ellenkező oldalra néz. A bal alsó sarokban lévő csap az 1. tű. (Ez a képen is meg van jelölve.) Ezután adja hozzá a két 8 tűs foglalatot egymás tetejére, hogy egy 16 tűs foglalatot képezzen. Győződjön meg róla, hogy van egy szóköz a bal oldalon, majd forrasztja be. Ezután ossza szét a hím és a női fejrészeket 10 és 11 tűs részekre. Kétszer annyi női fejlécre lesz szüksége. Forrasztja be őket a képen látható módon. Ami a hím fejléceket illeti, el kell helyezni a csapot, hogy azok egyenlő mennyiségűek legyenek a műanyag mindkét oldalán. A legegyszerűbb egy képet nézni, hogy lássam, mire gondolok, ezért nézze meg a #6. Néhány fogót használtam, és nagyon jól működött. Ha most veszi a férfi fejléceket, és a két női fejléc közé helyezi, látni fogja, hogy most megfelelő méretűek a felső és az alsó tábla összekapcsolásához.

3. lépés: Adja hozzá az ellenállásokat

Ezek az ellenállások a LED tömb és a 74138 (Ground) között mennek, hogy megvédjék a tömböt. Hajtsa az ellenállás egyik vezetékét a tetejére úgy, hogy a két vezeték párhuzamos legyen. Illessze őket a 7, 9, 10, 11, 12, 13, 14 és 15 csapokra és a forrasztóra. Azt tapasztaltam, hogy akkor működik a legjobban, ha az ellenállás irányát váltogatja, amint az a második és a harmadik képen látható.

4. lépés: huzalozza fel a tetejét

Ez messze a projekt leghosszabb lépése, ezért remélem, hogy tetszik a forrasztás! Csak kövesse az alábbi sémát, és győződjön meg róla, hogy teszteli a folytonosságot a multiméterrel. Abban az esetben, ha tudni szeretné, hogyan jöttem el hozzánk a sematikus nézettel a tömb és a 74138 adatlapján.

5. lépés: Töltse ki az alját

Most itt az ideje, hogy alapvető összetevőinket az alsó táblára helyezzük. Először készítsük el a 40 tűs DIP aljzatot, amely a lehető legközelebb esik a bal felső sarokhoz, miközben egy sort hagy a bal oldalon. (Lásd az 1. képet.) Ezt forrasztja be, majd helyezze el a fejléceket. Ennek legegyszerűbb módja, ha a felül lévőket a módosított férfi fejlécekkel csatlakoztatja az alul lévőkhöz. Ha mindent jól csinált, akkor a bal felső fejléc három felső három csapjával kell végeznie a foglalat jobb alsó sarkai mellett. Rendben van. Mi csak a legalsó tűt használjuk a jobb oldalon, és mint látható, egyértelmű lövésünk van egy másik irányból. Most adja hozzá a feszültségszabályozót a képen látható módon. Az enyémet egy csavarral és anyával rögzítettem a fém hűtőborda lyukán keresztül. A hűtőborda egy másik módja annak, hogy földelje a forgácsot, és a táblához csavarozva szilárd kapcsolatot biztosít a közös csatlakozóval. Ez az alsó és a felső részhez is csatlakozik, mivel a kettő fém lezárókkal van összekötve. Ha azonban nem a földeléshez használt közös csatlakozást használja, NE csavarja a hűtőbordát a táblához, mivel a hűtőborda földként szolgál, és valószínűleg rövidzárlatot okoz. Következő vezeték az akkumulátorcsipeszben. A piros a bal oldali csaphoz (a hűtőbordával felfelé és a csapok lefelé) a közepén fekete, a jobb oldali csap pedig +5V -ot termel. Most már vezetheti az áramot a tetejére (lásd a 2. képet). Most a programozó csatlakozóról. Van egy adapter, amelyet a programozómnak készítettem, de valószínűleg egy 6 tűs (3x2) fejlécet szeretne beépíteni a tervezésébe. Ha azonban van olyan adaptere, mint nekem, akkor ezt tettem. Vettem egy derékszögű fejlécet és egy női fejlécet, és összeforrasztottam őket (3. kép). Ezután az alaplaphoz rögzítettem, az első csappal a 6. csaphoz csatlakoztatva. Most be kell kapcsolni és be kell földelni a chipet, valamint be kell vezetni egy ellenállásba, hogy magasra állítsa a resetet. Futtattam egy 10k -s ellenállást a 9 -es tűről a 10 -es tűre, majd a 10 -es tűt +5 V -ra kötöttem. A következő csap (11) a közös csatlakozáshoz (földelés) megy. Végül nézze meg a 4. képet, hogy befejezze ezt a lépést (ez elég magától értetődő).

6. lépés: huzalozza az alját

Emlékszel arra az igazán szórakoztató lépésre, amikor 30 vezetéket kell lefutnod, hogy működjön a LED -elrendezés? Most újra megteheti! A fenekén!. Ez egy kicsit gyorsabb, de nem sokkal. Ismét nézze meg a vázlatot, és ellenőrizze az összes kapcsolatot a multiméterrel. Ne aggódjon, ez a projekt utolsó nagy forrasztási darabja, és majdnem kész.

7. lépés: Flex érzékelők és a gyorsulásmérő

Először a flex érzékelőkkel foglalkozunk, de a hardver terén otthon vagy. Azt hiszem, az alábbi képek nagyjából elmagyarázzák, mit kell tenni. Csatlakoztassa az egyik tűt a +5v -hoz, a másikat az AVR jobb oldalán lévő felülről érkező harmadik vagy negyedik tűhöz (A projekt központi eleme a mikrokontroller). Amikor először összeraktam ezt, azt gondoltam, hogy ez minden, amit tennem kell, de kiderült, hogy ahhoz, hogy az AVR el tudja olvasni a flex érzékelőket, ellenállást kell helyeznie az érzékelő csapjából az AVR -hez (lásd a képeket # 10. és 11.). Én 10k -t használtam. Ez felosztja az AVR -re jutó feszültséget, ami gyakorlatilag megkétszerezi az érzékelő érzékenységét. Most a gyorsulásmérő. Mivel a gyorsulásmérő csak egy hajszállal magasabb, mint a két tábla közötti tér, és mivel esetleg ki kell cserélnünk egy nap, úgy döntöttem, hogy fejlécekkel kiütem a táblából és csatlakoztatom. Használjon derékszögű fejlécet, hogy csatlakozzon a 6 tűhöz a törőlapon. Most vegyen egy másik derékszögű fejlécet, és forrasztjon egy női fejlécet a rövid csapokhoz, majd forrasztja be a tábla bal alsó sarkába. Csatlakoztassa a gyorsulásmérőt, hogy megbizonyosodjon arról, hogy illeszkedik, húzza ki a hálózati csatlakozót, majd csatlakoztassa a megfelelő csapokat a Vcc (+5v) és a Gnd. Ezután csatlakoztassa az X kimenetet a 40 -es, az Y -t a 39 -es tűhöz. Most be kell állítania az IC -k (integrált áramkörök) hozzáadását és bekapcsolását.

2009. december 26.: Azt tapasztaltam, hogy a mutatóujj flex érzékelőjének felszerelése miatt az érzékelőt a csapokkal összekötő anyag romlott. Azóta vettem egy csereérzékelőt, és forró ragasztóval vékony műanyagot ragasztottam az érzékelőre, hogy ez a terület ne legyen a hajlító rész. Megjelöltem a helyet az alábbi képen.

8. lépés: IC -k és az első program hozzáadása

Valószínűleg ez a legegyszerűbb lépés az egész folyamatban. Ismét segítség a kép. Győződjön meg arról, hogy a zsetonokat a 3. képen leírtaknak megfelelően tartja. Először csatlakoztatnám az áramellátást, ha nincs semmi csatlakoztatva, és megérinteném a feszültségszabályozó hűtőbordáját. Ha meleg van, akkor valami zárlatos, és vissza kell mennie, és ellenőriznie kell a kapcsolatokat. Folytassa ezt az eljárást, és adjon hozzá egy -egy zsetont, érezze a meleget, és ha minden a helyén van, húzza meg az alsó táblán lévő anyákat, hogy a két tábla biztonságosan rögzüljön. Ezután beprogramozza az AVR -t. Ha még soha nem tett ilyet, akkor egy gyors Google -keresés rengeteg találatot eredményez. Ha a helyedben lennék, az AVR -t egy kenyérsütő táblára tenném, és ott programoznék, mielőtt megpróbálnád a kemény munkáddal. Írtam egy egyszerű programot a flex érzékelőktől kapott információknak a LED tömbhöz való továbbítására. Ennek alapötletet kell adnia arról, hogy mi működik és mi nem működik az áramkörben. Itt egy videó a kód működéséről ……, és itt van a 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 (); míg (1) {ADMUX = 0b01100011; ADCSRA | = 0b01000000; while (bit_is_clear (ADCSRA, ADIF)); PORTA = 0b00000000; PORTD = ADCH; _ késleltetés_ms (1); PORTD = 0x00; ADMUX = 0b01100010; ADCSRA | = 0b01000000; while (bit_is_clear (ADCSRA, ADIF)); PORTA = 0b11100000; PORTB = ADCH; _delay_ms (1); PORTB = 0x00; }}

9. lépés: A körvonal rögzítése kesztyűhöz

Úgy gondolom, hogy sokféleképpen csatlakoztathatja az áramkört a kezéhez, és egy ideig úgy gondoltam, hogy az olvasóra bízom, de aztán úgy döntöttem, hogy az utasítás nem teljes a zárás nélkül. Elmentem a helyi kerékpárüzletembe, és a legolcsóbb teljes ujjas kesztyűt kaptam. Teljes ujj szükséges, mert különben nem tudja nagyon jól rögzíteni a flex érzékelőket. Aztán elmentem egy textilboltba, és kaptam egy poliészter cérnát és egy ragasztható tépőzárat. Feltettem a kesztyűt, és a kezemre tettem az áramkört. A pozicionálás része a kényelem, de a másik része a flex érzékelők. Le kell menniük két ujj közepén. Három hurkot varrtam a három állvány körül, hogy megtartsák az alaplapot (lásd a 2. képet), majd laza hurkokat végeztem a hajlítóérzékelő ujjainak 3/4 részével (#3 és 4). Ügyeljen arra, hogy ne varrja le a kesztyűt. Ezután ragasztottam egy darab tépőzárat a hüvelykujjam oldalára, hogy tartsa az akkumulátort. Tesztelés után rájöttem, hogy tényleg kifizetődő ezt is felvarrni, mivel a bot nem tart túl sokáig. Ezután tépőzáras hurkot tettem a 9v köré (5. kép). Úgy tűnik, ez a beállítás elég jól működik. Amint az az első és az utolsó dián látható képeken látható, most hozzáadtam a rugalmas érzékelők ujjait, de ha nincs ideje, a hurkok jól működnek. Amikor befejezte a projektet, kérjük, tegyen fel fotókat a késztermékről lent. Szívesen megnézném, mit talált ki az áramkör csatlakoztatására!

10. lépés: A valódi kód

Köszönöm, hogy eddig velem tartottatok. Ne feledje, hogy a kódom nem tökéletes. Azt tapasztaltam, hogy egy kis tanulás kell ahhoz, hogy a jel megfelelően működjön. Továbbra is megpróbálom tökéletesíteni a rendszeremet, és amint megírom, frissítem ezt az oldalt új kóddal. 2009. december 26.: ÚJ KÓD! Ott van kiírva, ahol a régi kód volt. Nagyon köszönöm Jacobnak az egyszerűsítést. Valóban jól működik. Itt van. Köszönöm, hogy elolvastad és ne felejts el szavazni! #include #include #include // Beállítja vagy törli a biteket a regiszterekben #define setBit (sfr, bit) (sfr | = (1 << bit)) #define clearBit (sfr, bit) (sfr & = ~ (1 << bit)) #define flipBit (sfr, bit) (sfr ^= (1 << bit)) #define HAMIS 0 #define TRUE 1 #define mátrixX (x) (PORTA = (x - 1) << 5) #define matrixGY (y) (PORTD = y) #define matrixRY (y) (PORTB = y) void delay (unsigned int delay) {unsigned int x = 0; while (x <késleltetés) {x ++; }} void initMatrix () {DDRD = 0xFF; // Zöld vezérlés DDRB = 0xFF; // Piros vezérlés DDRA = 0xE0; // Földi vezérlés} void matrixRowDraw (char greenmask, char redmask, char column) {matrixX (oszlop); int i = 0; for (i = 0; i <8; i ++) {matrixGY (zöldmaszk & (1 << i)); matrixRY (redmask & (1 << i)); _késleltetés (150); } matrixGY (0x00); mátrixRY (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 | chan; ADCSRA | = 0x40; while (bit_is_clear (ADCSRA, ADIF)); return ADCH; } char adcAvg (char chan, char avgnum) // Csak átlagosan legfeljebb 256 minta {int i = 0; unsigned int total = 0; for (i = 0; i <avgnum; i ++) {összesen+= adcGet (chan); } return total/avgnum; } int main () {initMatrix (); adcInit (); while (1) {while (adcAvg (3, 50)> 0x45 & adcAvg (2, 50)> 0x70) // A hexadecimális értékeket a felhasználói beállításoktól függően módosítani kell a flex érzékelők érzékenységének meghatározásához. {if (adcAvg (1, 50)> 0x4F) {matrixRight (); } if (adcAvg (1, 100) <0x4F) {matrixLeft (50); }}} return 0; } Külön köszönet a kamarásoknak, szüleimnek és barátaimnak, akik segítettek.

A Házi készítésű ünnepek döntőse

Ajánlott: