Turinys:

Dviračio rankos signalinė lemputė: 10 žingsnių (su nuotraukomis)
Dviračio rankos signalinė lemputė: 10 žingsnių (su nuotraukomis)

Video: Dviračio rankos signalinė lemputė: 10 žingsnių (su nuotraukomis)

Video: Dviračio rankos signalinė lemputė: 10 žingsnių (su nuotraukomis)
Video: Part 3 - The Adventures of Sherlock Holmes Audiobook by Sir Arthur Conan Doyle (Adventures 05-06) 2024, Liepa
Anonim
Signalinė dviračio lemputė
Signalinė dviračio lemputė

Šio projekto tikslas - sukurti šviesą, kuri tilptų ant dviračio pirštinės ir nukreiptų numatyto posūkio kryptimi, kad matomumas naktį padidėtų. Jis turėtų būti lengvas, lengvai naudojamas ir integruotas su esamais signalizavimo judesiais (minimalus signalo metodo pakeitimas (jums nereikia paspausti mygtuko, jis tiesiog eina, kai signalizuojate)). Tai būtų puiki dovana atostogoms.

Pastaba: tam reikia išankstinių žinių, kaip lituoti, ir idėjos, kaip programuoti AVR, yra didelis pliusas. Turėdami tai omenyje, linksminkitės, būkite kantrūs ir žemiau patalpinkite savo gaminio nuotraukas! Štai vaizdo įrašas: čia yra mano nuotrauka:

1 žingsnis: dalys

Dalys
Dalys

x1 ATmega 32L 8PU (www.digikey.com) x1 40 kontaktų DIP lizdas (www.digikey.com) x1 8x8 LED masyvas (www.sparkfun.com) x1 74138 multiplekseris (www.digikey.com) x2 lankstumo jutikliai (www.sparkfun.com) x (daug) rezistoriai 180 omų ir 10 k ohm2 PC plokštė (www.sparkfun.com) x6 išjungimai (www.sparkfun.com) ir varžtai (vietinė techninės įrangos parduotuvė) x2 antraštės - vyras (www.sparkfun.com), moteris (www.sparkfun.com) ir stačias kampas (www.sparkfun.com) x1 LM7805 (www.digikey.com) x2 8 kontaktų lizdai (Aš turiu „Radio Shack“) x1 9v akumuliatoriusx1 pėdų užsegamas velcrox1 pilno piršto dviračio pirštinėx1 ritės poliesterio siūlas

2 žingsnis: Paruoškite plokštes

Paruoškite lentas
Paruoškite lentas
Paruoškite lentas
Paruoškite lentas
Paruoškite lentas
Paruoškite lentas
Paruoškite lentas
Paruoškite lentas

Pirmiausia pridėkite atotrūkių. Norėdami gauti tinkamą aukštį, turėsite susukti du kartu. SQUARE trinkelėmis įsitikinkite, kad atramos nusileidžia iš šono. Tokiu būdu galite sujungti trinkeles su lydmetaliu apačioje ir sujungti su bendru padu viršuje, kad galėtumėte prisijungti prie žemės. Toliau pridėkite šviesos diodų matricą ir prilituokite. Jis turi būti kuo toliau nuo lentos krašto su dviem stendais, kaip gali būti, kai YS nukreipta į priešingą pusę. Smeigtukas apatiniame kairiajame kampe yra 1 kaištis. (Jis taip pat pažymėtas paveikslėlyje.) Tada pridėkite du 8 kontaktų lizdus vienas ant kito, kad susidarytų vienas 16 kontaktų lizdas. Įsitikinkite, kad kairėje yra viena erdvė, o po to lituokite. Toliau padalinkite vyrų ir moterų antraštes į 10 ir 11 kontaktų sekcijas. Jums reikės dvigubai daugiau moterų antraščių. Lituokite tuos, kaip parodyta nuotraukoje. Kalbant apie vyrų antraštes, turite perkelti kaištį, kad jų būtų vienodas kiekis kiekvienoje plastiko pusėje. Lengviausia pažvelgti į paveikslėlį, kad suprastumėte, ką turiu omenyje, todėl pažvelkite į 6 -ąjį. Aš naudoju kai kurias reples ir tai veikė gana gerai. Dabar, jei paimsite antraštes vyrams ir padėsite jas tarp dviejų moterų antraščių, pamatysite, kad dabar jos yra tinkamo dydžio, kad sujungtų viršutinę ir apatinę plokštes.

3 žingsnis: pridėkite rezistorius

Pridėkite rezistorius
Pridėkite rezistorius
Pridėkite rezistorius
Pridėkite rezistorius
Pridėkite rezistorius
Pridėkite rezistorius

Šie rezistoriai yra tarp LED matricos ir 74138 (įžeminimo), kad apsaugotų masyvą. Sulenkite vieną iš rezistoriaus laidų virš viršaus, kad abu laidai būtų lygiagrečiai. Įdėkite juos ant 7, 9, 10, 11, 12, 13, 14 ir 15 kaiščių ir lydmetalio. Radau, kad tai geriausiai veikia, jei keičiate rezistoriaus kryptį, kaip matote antroje ir trečioje nuotraukose.

4 žingsnis: viela viršuje

Viela viršuje
Viela viršuje
Viela viršuje
Viela viršuje
Viela viršuje
Viela viršuje
Viela viršuje
Viela viršuje

Tai kol kas ilgiausias projekto žingsnis, todėl tikiuosi, kad jums patinka lituoti! Tiesiog sekite žemiau pateiktą schemą ir būtinai patikrinkite tęstinumą naudodami multimetrą. Jei norite sužinoti, kaip aš atėjau, schematiškai žiūrėdamas į masyvo ir 74138 duomenų lapą.

5 žingsnis: užpildykite dugną

Užpildykite dugną
Užpildykite dugną
Užpildykite dugną
Užpildykite dugną
Užpildykite dugną
Užpildykite dugną
Užpildykite dugną
Užpildykite dugną

Dabar atėjo laikas įdėti pagrindinius komponentus į apatinę plokštę. Pirmiausia padarysime 40 kontaktų DIP lizdą, kuris eina kuo arčiau viršutinio kairiojo kampo, palikdamas vieną eilutę vietos kairėje pusėje. (Žr. 1 paveikslą.) Lituokite tai ir įdėkite antraštes. Lengviausias būdas tai padaryti yra prijungti viršuje esančius prie tų, kurie bus apačioje, naudojant modifikuotas vyrų antraštes. Jei viską padarėte teisingai, galų gale turėsite tris viršutinius tris kaiščius kairėje antraštėje šalia apatinio dešiniojo lizdo kaiščių. Tai yra gerai. Mes naudojame tik apatinį kaištį dešinėje ir, kaip matote, turime aiškų šūvį iš kitos pusės. Dabar pridėkite įtampos reguliatorių, kaip parodyta paveikslėlyje. Aš pritvirtinau savąjį per metalinio radiatoriaus angą varžtu ir veržle. Šilumos kriauklė yra dar vienas būdas įžeminti lustą, o prisukant jį prie plokštės tvirtai liečiasi su bendra jungtimi. Jis yra prijungtas prie apačios ir viršaus, nes abu yra sujungti su metalinėmis atramomis. Tačiau, jei nenaudojate bendros jungties įžeminimui, NEGALIMA prikabinti radiatoriaus prie plokštės, nes radiatorius tarnauja kaip žemė ir greičiausiai kažką sutrumpinsite. Kitas laidas akumuliatoriaus gnybte. Raudona eina į kaištį kairėje (kai radiatorius pakeltas ir kaiščiai žemyn) juodas iki vidurio, o dešinysis kaištis sukuria +5 V. Dabar galite prijungti maitinimą prie viršaus (žr. 2 paveikslėlį). Dabar apie programuotojo jungtį. Turiu adapterį, kurį sukūriau savo programuotojui, bet tikriausiai norėsite į savo dizainą įtraukti 6 kontaktų (3x2) antraštę. Tačiau jei turite tokį adapterį kaip aš, štai ką aš padariau. Aš paėmiau stačiakampę antraštę ir moterišką antraštę ir sujungiau jas kartu (3 paveikslas). Tada aš prijungiau jį prie plokštės, kai pirmasis kaištis buvo prijungtas prie 6. kaiščio. Dabar reikia įjungti ir įžeminti lustą, taip pat laidus rezistoriuje, kad ištrauktumėte aukštą atstatymą. Aš paleidau 10 k rezistorių nuo 9 kaiščio iki 10 kaiščio, o tada prijungiau 10 kaištį prie +5 V. Kitas kaištis (11) eina į bendrą jungtį (įžeminimas). Galiausiai pažiūrėkite į 4 paveikslėlį, kad užbaigtumėte šį žingsnį (tai gana savaime suprantama).

6 žingsnis: Sujunkite dugną

Sujunkite apačią
Sujunkite apačią
Sujunkite apačią
Sujunkite apačią
Sujunkite apačią
Sujunkite apačią

Prisiminkite tą tikrai įdomų žingsnį, kai turėjote pravesti daugiau nei 30 laidų, kad LED masyvas veiktų? Dabar jūs galite tai padaryti dar kartą! Dugne!. Šis yra šiek tiek greitesnis, bet ne mano. Dar kartą pažiūrėkite į schemą ir patikrinkite visus ryšius su savo multimetru. Nesijaudinkite, tai yra paskutinis didelis litavimo projektas ir jūs beveik baigsite.

7 žingsnis: lankstumo jutikliai ir akselerometras

Flex jutikliai ir akselerometras
Flex jutikliai ir akselerometras
Flex jutikliai ir akselerometras
Flex jutikliai ir akselerometras
Flex jutikliai ir akselerometras
Flex jutikliai ir akselerometras

Pirmiausia spręsime lanksčiuosius jutiklius, bet jūs esate namų ruože, kiek tai susiję su aparatūra. Manau, kad žemiau pateiktos nuotraukos beveik paaiškina, ką daryti. Prijunkite vieną kaištį prie +5v, kitą - prie trečiojo ar ketvirtojo kaiščio iš viršaus dešinėje AVR pusėje (šio projekto esmė - mikrovaldiklis). Kai pirmą kartą sudėjau tai, aš maniau, kad tai yra viskas, ką man reikia padaryti, tačiau paaiškėja, kad norint, kad AVR skaitytų lanksčiuosius jutiklius, reikia uždėti rezistorių nuo jutiklio kaiščio, einančio į AVR, įžeminti (žr. 10 ir 11). Naudojau 10 tūkst. Tai padalija AVR įtampą, kuri praktiškai padvigubina jutiklio jautrumą. Dabar apie akselerometrą. Kadangi akselerometras yra tik plauku aukštesnis už tarpą tarp dviejų plokščių ir galbūt norėsime jį pakeisti vieną dieną, nusprendžiau naudoti antraštes, kad jį ištraukčiau iš plokštės ir prijungčiau. Naudokite stačiakampę antraštę, kad prisijungtumėte prie 6 kontaktų plokštės kaiščių. Dabar paimkite kitą stačiakampę antraštę ir prilituokite moterišką antraštę prie trumpų kaiščių, tada lituokite ją apatiniame kairiajame lentos kampe. Prijunkite akselerometrą, kad įsitikintumėte, jog jis tinka, atjunkite jį ir prijunkite tinkamus kaiščius prie Vcc (+5v) ir Gnd. Tada prijunkite kaištį, išvestį X prie 40 kaiščio, o Y - prie 39 kaiščio. Dabar turėtumėte nustatyti, kad pridėtumėte IC (integrinius grandynus) ir įjungtumėte.

2009 m. Gruodžio 26 d.: pastebėjau, kad dėl to, kaip sumontavau smiliaus lankstymo jutiklį, medžiaga, jungianti jutiklį su kaiščiais, pablogėjo. Nuo to laiko aš nusipirkau pakaitinį jutiklį ir karštai priklijavau plono plastiko gabalėlį prie jutiklio, kad ši sritis nebūtų dalis lenkimo. Žemiau esančioje nuotraukoje pažymėjau vietą.

8 veiksmas: pridėkite IC ir pirmąją programą

Pridedami IC ir pirmoji programa
Pridedami IC ir pirmoji programa
Pridedami IC ir pirmoji programa
Pridedami IC ir pirmoji programa
Pridedami IC ir pirmoji programa
Pridedami IC ir pirmoji programa
Pridedami IC ir pirmoji programa
Pridedami IC ir pirmoji programa

Tai greičiausiai yra lengviausias viso proceso žingsnis. Dar kartą padeda paveikslėlis. Įsitikinkite, kad lustai yra teisingai, kaip paaiškinta 3 paveiksle. Pirmiausia prijungčiau maitinimą be nieko prijungto ir paliesčiau įtampos reguliatoriaus radiatorių. Jei karšta, kažkas sutrinka ir turite grįžti atgal ir patikrinti ryšius. Tęskite taip, pridėdami po vieną drožlę, jausdami šilumą ir, kai viskas bus savo vietoje, priveržkite veržles apatinėje plokštėje, kad abi lentos būtų tvirtai pritvirtintos. Toliau užprogramuosite AVR. Jei to niekada nedarėte, greita „Google“paieška duoda daugybę rezultatų. Jei aš būčiau tu, aš įdėčiau savo AVR į duonos lentą ir įjungčiau ten programą, prieš bandydamas tai padaryti. Parašiau paprastą programą, skirtą iš lanksčių jutiklių gautai informacijai išvesti į LED masyvą. Tai turėtų suteikti jums pagrindinę idėją apie tai, kas veikia ir neveikia jūsų grandinėje. Štai vaizdo įrašas apie kodą, veikiantį ……, ir čia yra kodas: #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 (); o (1) {ADMUX = 0b01100011; ADCSRA | = 0b01000000; while (bit_is_clear (ADCSRA, ADIF)); PORTA = 0b00000000; Uostas = 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; }}

9 žingsnis: pritvirtinkite savo pirštą prie pirštinės

Savo kirpimo pritvirtinimas prie pirštinės
Savo kirpimo pritvirtinimas prie pirštinės
Jūsų piršto pritvirtinimas prie pirštinės
Jūsų piršto pritvirtinimas prie pirštinės
Savo kirpimo pritvirtinimas prie pirštinės
Savo kirpimo pritvirtinimas prie pirštinės

Manau, kad yra daug būdų, kaip prijungti grandinę prie rankos, ir kurį laiką galvojau, kad paliksiu tai skaitytojui, bet tada nusprendžiau, kad instrukcija nebus baigta be šio uždarymo. Aš nuėjau į savo vietinę dviračių parduotuvę ir gavau pigiausią piršto pirštą, kokį tik galėjau rasti. Pilnas pirštas yra būtinas, nes priešingu atveju negalite labai gerai pritvirtinti lankstumo jutiklių. Tada nuėjau į audinių parduotuvę ir nusipirkau poliesterio siūlų ir priklijuojamą velcro. Užsidėjau pirštinę ir uždėjau grandinę ant rankos. Dalis pozicionavimo yra komfortas, kita dalis - lankstumo jutikliai. Jie turėtų eiti žemyn dviejų pirštų viduriu. Aš siuvau kilpas aplink tris atramas, kad galėčiau laikyti pagrindinę plokštę (žr. 2 paveikslėlį), ir tada atlaisvinau kilpas 3/4 kiekvieno lanksčiojo jutiklio piršto (#3 ir 4). Pasirūpinkite, kad pirštinė nebūtų siuvama uždaryta. Tada aš pritvirtinau velcro gabalėlį ant nykščio šono, kad galėčiau laikyti bateriją. Po bandymų sužinojau, kad tikrai apsimoka siūti ir tai, nes lazda neišsilaiko per ilgai. Toliau aš uždėjau velcro kilpą aplink 9v (5 pav.). Atrodo, kad ši sąranka veikia gana gerai. Kaip matote pirmosios ir paskutinės skaidrių paveikslėliuose, dabar pridėjau lankstumo jutiklių įvorių, bet jei neturite laiko, kilpos turėtų gerai veikti. Baigę projektą, paskelbkite savo gatavo produkto nuotraukas žemiau. Norėčiau pamatyti, ką jūs sugalvojote prijungti grandinę!

10 žingsnis: tikrasis kodas

Tikrasis kodas
Tikrasis kodas

Ačiū, kad iki šiol palaikėte mane. Atminkite, kad mano kodas nėra tobulas. Pastebėjau, kad reikia šiek tiek išmokti, kad signalas veiktų teisingai. Aš ir toliau stengsiuosi tobulinti savo sistemą ir atnaujinęs šį puslapį atnaujinsiu jį nauju kodu. 2009 m. Gruodžio 26 d.: NAUJAS KODAS! Jis paskelbtas ten, kur buvo senas kodas. Labai ačiū Jokūbui už supaprastinimą. Tikrai gerai veikia. Štai jis. Ačiū, kad skaitote ir nepamirškite balsuoti! #include #include #include // Nustato arba išvalo bitus registruose #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) void delay (unsigned int delay) {unsigned int x = 0; while (x <uždelsimas) {x ++; }} void initMatrix () {DDRD = 0xFF; // Žalioji kontrolė DDRB = 0xFF; // Raudona kontrolė DDRA = 0xE0; // Žemės valdymas} void matrixRowDraw (char greenmask, char redmask, char column) {matrixX (column); int i = 0; už (i = 0; i <8; i ++) {matrixGY (žaliaskaukė & (1 << i)); matrixRY (redmask & (1 << i)); _delsimas_us (150); } matricaGY (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); } void adcInit () {ADMUX = 0x60; ADCSRA = 0x80; } char adcGet (char chan) {ADMUX = 0x60 | chanas; ADCSRA | = 0x40; while (bit_is_clear (ADCSRA, ADIF)); grąžinti ADCH; } char adcAvg (char chan, char avgnum) // Tik vidutiniškai iki 256 mėginių {int i = 0; unsigned int total = 0; už (i = 0; i <avgnum; i ++) {total+= adcGet (chan); } return total/avgnum; } int main () {initMatrix (); adcInit (); while (1) {while (adcAvg (3, 50)> 0x45 & adcAvg (2, 50)> 0x70) // Šešiakampės vertės čia turėtų būti pakeistos, atsižvelgiant į vartotojo sąranką, kad būtų galima nustatyti lanksčių jutiklių jautrumą. {if (adcAvg (1, 50)> 0x4F) {matrixRight (); } if (adcAvg (1, 100) <0x4F) {matrixLeft (50); }}} grįžti 0; } Ypatingas ačiū rūmų nariams, mano tėvams ir draugams, kurie padėjo.

Namų švenčių konkurso finalininkas

Rekomenduojamas: