Satura rādītājs:

Velosipēda rokas signāllampiņa: 10 soļi (ar attēliem)
Velosipēda rokas signāllampiņa: 10 soļi (ar attēliem)

Video: Velosipēda rokas signāllampiņa: 10 soļi (ar attēliem)

Video: Velosipēda rokas signāllampiņa: 10 soļi (ar attēliem)
Video: Ķīnas interneta veikals TEMU 2024, Novembris
Anonim
Velosipēda rokas signāllampiņa
Velosipēda rokas signāllampiņa

Šī projekta mērķis ir izveidot gaismu, kas iederas velosipēda cimdā un norāda paredzētā pagrieziena virzienā, lai palielinātu redzamību naktī. Tam vajadzētu būt vieglam, viegli lietojamam un integrētam esošajās signalizācijas kustībās (minimāla signāla metodes pielāgošana (jums nav jānospiež poga, tas vienkārši notiek, kad signalizējat)). Tas būtu lieliska dāvana svētkos.

Piezīme. Tam ir nepieciešamas iepriekšējas zināšanas par lodēšanu un ideja par to, kā programmēt AVR. Paturot to prātā, izklaidējieties, esiet pacietīgs un zemāk ievietojiet sava produkta attēlus! Šeit ir video: Un šeit ir mana bilde:

1. darbība: detaļas

Daļas
Daļas

x1 ATmega 32L 8PU (www.digikey.com) x1 40 kontaktu DIP ligzda (www.digikey.com) x1 8x8 LED masīvs (www.sparkfun.com) x1 74138 multipleksors (www.digikey.com) x2 elastīgie sensori (www.sparkfun.com) x (daudzi) rezistori 180 omi un 10 kΩ x 2 datoru plates (www.sparkfun.com) x6 izslēgšanas gadījumi (www.sparkfun.com) un skrūves, kas piemērotas (vietējais datortehnikas veikals) x1 akselerometrs sadalīšanas panelī (x2 galvenes - vīrieši (www.sparkfun.com), sievietes (www.sparkfun.com) un taisnā leņķī (www.sparkfun.com) x1 LM7805 (www.digikey.com) x2 8 kontaktu ligzdas (Es dabūju savu pie Radio Shack)

2. solis: sagatavojiet dēļus

Sagatavojiet dēļus
Sagatavojiet dēļus
Sagatavojiet dēļus
Sagatavojiet dēļus
Sagatavojiet dēļus
Sagatavojiet dēļus
Sagatavojiet dēļus
Sagatavojiet dēļus

Vispirms pievienojiet ierobežojumus. Lai iegūtu pareizo augstumu, jums būs jāskrūvē divi kopā. Pārliecinieties, ka ierobežojumi nolaižas no sāniem, izmantojot SQUARE spilventiņus. Tādā veidā jūs varat savienot spilventiņus ar lodēšanu apakšā un savienot ar kopējo spilventiņu augšpusē, lai izveidotu savienojumu ar zemi. Tālāk pievienojiet gaismas diožu masīvu un pielodējiet to iekšā. Tam vajadzētu būt tik tālu līdz tāfeles malai ar abiem stanoffiem, cik tas var būt ar YS, kas vērsta pretējā pusē. Apakšējā kreisajā pusē esošā tapa ir 1. tapa. (Tas ir atzīmēts arī attēlā.) Tālāk pievienojiet divas 8 kontaktu kontaktligzdas vienu virs otras, lai izveidotu vienu 16 kontaktu ligzdu. Pārliecinieties, ka pa kreisi ir viena atstarpe, un pēc tam pielodējiet to. Tālāk sadaliet vīriešu un sieviešu galvenes 10 un 11 kontaktu sadaļās. Jums būs nepieciešams divreiz vairāk sieviešu galvenes. Lodējiet tos, kā redzams fotoattēlā. Attiecībā uz vīriešu galviņām jums ir jāmaina tapa, lai tās būtu vienādas summas katrā plastmasas pusē. Visvieglāk ir apskatīt attēlu, lai redzētu, ko es domāju, tāpēc apskatiet 6. numuru. Es izmantoju dažas knaibles, un tas darbojās diezgan labi. Tagad, ja paņemat galvenes vīriešiem un novietojat starp divām sieviešu galvenēm, jūs redzēsit, ka tās tagad ir pareizā izmēra, lai savienotu augšējo un apakšējo dēli kopā.

3. solis: pievienojiet rezistorus

Pievienojiet rezistorus
Pievienojiet rezistorus
Pievienojiet rezistorus
Pievienojiet rezistorus
Pievienojiet rezistorus
Pievienojiet rezistorus

Šie rezistori atrodas starp LED bloku un 74138 (zemējumu), lai aizsargātu masīvu. Salieciet vienu no rezistora vadiem uz augšu, lai abi vadi būtu paralēli. Uzstādiet tos uz tapām 7, 9, 10, 11, 12, 13, 14 un 15 un lodēt. Es atklāju, ka tas vislabāk darbojas, ja maināt rezistora virzienu, kā redzams otrajā un trešajā attēlā.

4. solis: vadu augšdaļa

Vadu augšpusē
Vadu augšpusē
Vadu augšpusē
Vadu augšpusē
Vadu augšpusē
Vadu augšpusē
Vadu augšpusē
Vadu augšpusē

Šis ir garākais projekta solis, tāpēc es ceru, ka jums patīk lodēt! Vienkārši izpildiet zemāk redzamo shēmu un pārbaudiet nepārtrauktību ar savu multimetru. Gadījumā, ja vēlaties uzzināt, kā es nonācu pie shēmas, apskatot masīva un 74138 datu lapu.

5. solis: aizpildiet apakšu

Apdzīvot apakšu
Apdzīvot apakšu
Apdzīvot apakšu
Apdzīvot apakšu
Apdzīvot apakšu
Apdzīvot apakšu
Apdzīvot apakšu
Apdzīvot apakšu

Tagad ir pienācis laiks novietot mūsu pamatkomponentus uz apakšējās plāksnes. Vispirms mēs izveidosim 40 kontaktu DIP ligzdu, kas iet pēc iespējas tuvāk augšējai kreisajai pusei, atstājot vienu atstarpes rindu kreisajā pusē. (Skatīt attēlu #1.) Lodējiet to un pēc tam ievietojiet galvenes. Vienkāršākais veids, kā to izdarīt, ir savienot augšpusē esošos ar tiem, kas būs apakšā, izmantojot jūsu modificētās vīriešu galvenes. Ja jūs visu izdarījāt pareizi, galu galā ar trim augšējām trim tapām kreisajā galvenē blakus ligzdas apakšējām labajām tapām. Tas ir labi. Mēs izmantojam tikai apakšējo tapu labajā pusē, un, kā redzat, mums ir skaidrs šāviens no cita virziena. Tagad pievienojiet sprieguma regulatoru, kā parādīts attēlā. Es ar skrūvi un uzgriezni nostiprināju raktuvi caur atveri metāla radiatora izlietnē. Siltuma izlietne ir vēl viens veids, kā iezemēt mikroshēmu, un pieskrūvēt to pie plātnes nodrošina stabilu kontaktu ar kopējo savienojumu. Tas ir savienots ar apakšējo un augšējo daļu, jo abi ir savienoti ar metāla atdalītājiem. Tomēr, ja jūs neizmantojat zemei kopīgo savienojumu, NELIETOJIET radiatoru pie plāksnes, jo radiators kalpo kā zeme, un jūs, iespējams, kaut ko radīsiet īssavienojumu. Nākamais vads akumulatora spailē. Sarkans iet uz tapu kreisajā pusē (ar siltuma izlietni uz augšu un tapām uz leju) melna līdz vidum un labā tapa rada +5 V. Tagad jūs varat pieslēgt strāvu līdz augšai (skat. 2. attēlu). Tagad par programmētāja savienotāju. Man ir adapteris, ko es izveidoju savam programmētājam, bet jūs, iespējams, vēlēsities savā dizainā iekļaut 6 kontaktu (3x2) galveni. Tomēr, ja jums ir tāds adapteris kā man, lūk, ko es darīju. Es paņēmu taisna leņķa galveni un sieviešu galviņu un lodēju tās kopā (3. attēls). Tad es to piestiprināju pie tāfeles ar pirmo tapu, kas savienota ar tapu 6. Tagad jums ir nepieciešams barot un iezemēt mikroshēmu, kā arī elektroinstalāciju rezistorā, lai izvilktu atiestatīšanu augstu. Es darbināju 10k rezistoru no tapas 9 līdz tapai 10 un pēc tam pievienoju tapu 10 līdz +5v. Nākamā tapa (11) iet uz kopējo savienojumu (Zeme). Visbeidzot, apskatiet 4. attēlu, lai pabeigtu šo soli (tas ir diezgan pašsaprotami).

6. solis: vadu apakšā

Vadu apakšā
Vadu apakšā
Vadu apakšā
Vadu apakšā
Vadu apakšā
Vadu apakšā

Atcerieties, ka patiešām jautrs solis, kurā jums bija jāpalaiž vairāk nekā 30 vadi, lai LED masīvs darbotos? Tagad jūs varat to darīt vēlreiz! Apakšā!. Šis ir nedaudz ātrāks, bet ne mans. Vēlreiz apskatiet shēmu un pārbaudiet visus savienojumus ar savu multimetru. Neuztraucieties, šis ir pēdējais lielais lodēšanas gabals projektā, un jūs esat gandrīz pabeidzis.

7. solis: elastīgie sensori un akselerometrs

Flex sensori un akselerometrs
Flex sensori un akselerometrs
Flex sensori un akselerometrs
Flex sensori un akselerometrs
Flex sensori un akselerometrs
Flex sensori un akselerometrs

Vispirms mēs pievērsīsimies elastīgajiem sensoriem, bet jūs atrodaties mājās, ciktāl tas attiecas uz aparatūru. Es domāju, ka zemāk esošie attēli diezgan daudz izskaidro, kas jādara. Savienojiet vienu tapu ar +5v otru ar trešo vai ceturto tapu no augšas AVR labajā pusē (šī projekta centrā esošais mikrokontrolleris). Kad es to pirmo reizi saliku, es domāju, ka tas ir viss, kas man jādara, bet izrādās, ka, lai AVR varētu nolasīt elastīgos sensorus, jums ir jānovieto rezistors no sensora tapas, kas dodas uz AVR uz zemes (skat. 10 un 11). Es izmantoju 10k. Tas sadala AVR spriegumu, kas praktiski divkāršo sensora jutību. Tagad par akselerometru. Tā kā akselerometrs ir par mata tiesu garāks par atstarpi starp abiem dēļiem un kādu dienu mēs varētu vēlēties to nomainīt, esmu nolēmis izmantot galvenes, lai to izvilktu no tāfeles un savienotu. Izmantojiet taisna leņķa galveni, lai izveidotu savienojumu ar 6 tapām sadalīšanas panelī. Tagad paņemiet vēl vienu taisna leņķa galveni un pielodējiet sieviešu galviņu pie īsām tapām, pēc tam lodējiet to dēļa apakšējā kreisajā stūrī. Pievienojiet akselerometru elektrotīklam, lai pārliecinātos, ka tas ir piemērots, atvienojiet to un pēc tam pievienojiet atbilstošās tapas Vcc (+5v) un Gnd. Tad pievienojiet tapu, kas izvada X, uz 40. tapu un Y ar 39. tapu. Tagad jums vajadzētu iestatīt, lai pievienotu IC (integrētās shēmas) un ieslēgtu to.

2009. gada 26. decembris: Es atklāju, ka veids, kā es uzstādīju rādītājpirkstu elastības sensoru, pasliktināja materiālu, kas savieno sensoru ar tapām. Kopš tā laika es nopirku sensora nomaiņu un karsti pielīmēju pie plānas plastmasas gabala sensoru, lai novērstu to, ka šī daļa ir daļa no liekšanas. Es atzīmēju atrašanās vietu zemāk esošajā fotoattēlā.

8. solis: IC pievienošana un pirmā programma

Pievienojot IC un pirmo programmu
Pievienojot IC un pirmo programmu
Pievienojot IC un pirmo programmu
Pievienojot IC un pirmo programmu
Pievienojot IC un pirmo programmu
Pievienojot IC un pirmo programmu
Pievienojot IC un pirmo programmu
Pievienojot IC un pirmo programmu

Tas, iespējams, ir vieglākais visa procesa solis. Atkal palīdz attēls. Pārliecinieties, vai mikroshēmas ir pareizi, kā paskaidrots 3. attēlā. Es vispirms pievienotu strāvu, ja nekas nav pievienots, un pieskaros sprieguma regulatora radiatoram. Ja ir karsts, tad kaut kas saīsinās, un jums ir jāatgriežas un jāpārbauda savienojumi. Rīkojieties šādā veidā, pievienojot vienu mikroshēmu vienlaikus, sajūtot siltumu un, kad viss ir savās vietās, pievelciet uzgriežņus apakšējā plāksnē, lai abi dēļi būtu droši nostiprināti kopā. Tālāk jūs ieprogrammēsit AVR. Ja jūs to nekad neesat darījis, ātra google meklēšana dod daudz rezultātu. Ja es būtu jūsu vietā, es liktu savu AVR uz maizes dēļa un tur ieslēgtu programmu, pirms mēģināt to paveikt smagajā darbā. Es uzrakstīju vienkāršu programmu, lai izvadītu no elastīgajiem sensoriem saņemto informāciju uz LED masīvu. Tam vajadzētu sniegt jums pamata priekšstatu par to, kas darbojas un nedarbojas jūsu ķēdē. Šeit ir video par kodu darbībā ……, un šeit ir kods: #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 (); kamēr (1) {ADMUX = 0b01100011; ADCSRA | = 0b01000000; while (bit_is_clear (ADCSRA, ADIF)); PORTA = 0b00000000; PORTD = ADCH; _kavēšanās_ms (1); PORTD = 0x00; ADMUX = 0b01100010; ADCSRA | = 0b01000000; while (bit_is_clear (ADCSRA, ADIF)); PORTA = 0b11100000; PORTB = ADCH; _kavēšanās_ms (1); PORTB = 0x00; }}

9. darbība: piestipriniet ķēdi cimdam

Circu piestiprināšana pie cimda
Circu piestiprināšana pie cimda
Circu piestiprināšana pie cimda
Circu piestiprināšana pie cimda
Circu piestiprināšana pie cimda
Circu piestiprināšana pie cimda

Es domāju, ka ir daudz veidu, kā piestiprināt savu ķēdi pie rokas, un kādu laiku domāju, ka atstāšu to lasītāja ziņā, bet pēc tam nolēmu, ka bez šīs slēgšanas instrukcija nebūtu pilnīga. Es devos uz vietējo velosipēdu veikalu un dabūju lētāko cimdu ar pilnu pirkstu, kādu varēju atrast. Pilns pirksts ir nepieciešams, jo pretējā gadījumā jūs nevarat ļoti labi piestiprināt elastīgos sensorus. Tad es iegāju audumu veikalā un dabūju kādu poliestera diegu un uzlīmējamu velcro. Es uzvilku cimdu un uzliku ķēdi uz rokas. Daļa pozicionēšanas ir komforts, bet otra daļa ir elastīgie sensori. Viņiem vajadzētu iet uz leju divu pirkstu vidū. Es šuvu cilpas ap trim atdalīšanas vietām, lai turētu ieslēgtu pamatplati (sk. 2. attēlu), un pēc tam atlaidu cilpas 3/4 no katra elastīgā sensora pirksta (3. un 4.). Pārliecinieties, ka neesat šuvis cimdu ciet. Tālāk es uzlīmēju velcro gabalu īkšķa sānos, lai turētu akumulatoru. Pēc pārbaudes esmu atklājis, ka tiešām atmaksājas arī šūt, jo nūja nav pārāk ilga. Tālāk es ap 9v ievietoju velcro cilpu (5. attēls). Šķiet, ka šī iestatīšana darbojas diezgan labi. Kā redzat attēlos pirmajā un pēdējā slaidā, tagad esmu pievienojis elastīgo sensoru piedurknes, bet, ja jums nav laika, cilpām vajadzētu labi. Kad esat pabeidzis savu projektu, lūdzu, ievietojiet gatavā produkta fotoattēlus zemāk. Es gribētu redzēt, ko jūs izdomājāt, lai pievienotu ķēdi!

10. solis: īstais kods

Patiesais kods
Patiesais kods

Paldies, ka līdz šim izturējāties pret mani. Lūdzu, ņemiet vērā, ka mans kods nav ideāls. Es atklāju, ka ir nepieciešams nedaudz iemācīties, lai signāls darbotos pareizi. Es turpināšu mēģināt pilnveidot savu sistēmu un pēc šīs rakstīšanas es atjaunināšu šo lapu ar jaunu kodu. 2009. gada 26. decembris: JAUNS KODS! Tas ir publicēts tur, kur bija vecais kods. Liels paldies Jēkabam par vienkāršošanu. Tas tiešām darbojas labi. Te tas ir. Paldies, ka izlasījāt un neaizmirstiet nobalsot! #include #include #include // Iestata vai notīra bitus reģistros #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 <kavēšanās) {x ++; }} void initMatrix () {DDRD = 0xFF; // Zaļā kontrole DDRB = 0xFF; // Sarkanā kontrole DDRA = 0xE0; // Zemes vadība} void matrixRowDraw (char greenmask, char redmask, char column) {matrixX (kolonna); int i = 0; par (i = 0; i <8; i ++) {matrixGY (zaļā maska & (1 << i)); matrixRY (redmask & (1 << i)); _kavēšanās_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); } void adcInit () {ADMUX = 0x60; ADCSRA = 0x80; } char adcGet (char chan) {ADMUX = 0x60 | čans; ADCSRA | = 0x40; while (bit_is_clear (ADCSRA, ADIF)); atgriezt ADCH; } char adcAvg (char chan, char avgnum) // Tikai vidēji līdz 256 paraugiem {int i = 0; neparakstīts int kopā = 0; par (i = 0; i <avgnum; i ++) {kopā+= adcGet (chan); } return total/avgnum; } int main () {initMatrix (); adcInit (); while (1) {while (adcAvg (3, 50)> 0x45 & adcAvg (2, 50)> 0x70) // Hex vērtības šeit jāmaina atkarībā no lietotāja iestatījuma, lai noteiktu elastīgo sensoru jutīgumu. {if (adcAvg (1, 50)> 0x4F) {matrixRight (); } ja (adcAvg (1, 100) <0x4F) {matrixLeft (50); }}} atgriezties 0; } Īpašs paldies Chamberlains, maniem vecākiem un draugiem, kuri palīdzēja.

Mājas brīvdienu konkursa finālists

Ieteicams: