Inhoudsopgave:
- Stap 1: Onderdelen
- Stap 2: Bereid de borden voor
- Stap 3: Voeg de weerstanden toe
- Stap 4: Bedraad de bovenkant
- Stap 5: Vul de bodem
- Stap 6: Bedraad de bodem
- Stap 7: Flex-sensoren en de versnellingsmeter
- Stap 8: IC's en het eerste programma toevoegen
- Stap 9: Uw Circut aan een handschoen bevestigen
- Stap 10: De echte code
Video: Handsignaallamp fiets - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:20
Het doel van dit project is om een licht te creëren dat op een fietshandschoen past en in de richting van de beoogde bocht wijst, om de zichtbaarheid 's nachts te vergroten. Het moet lichtgewicht, gebruiksvriendelijk en geïntegreerd zijn met de bestaande bewegingen voor signalering (minimale aanpassing van de signaalmethode (u hoeft niet op een knop te drukken, het gaat gewoon wanneer u een signaal geeft)). Dit zou een geweldig vakantiecadeau zijn.
Let op: dit vereist voorkennis van het solderen en een idee van het programmeren van AVR's is een groot pluspunt. Met dat in gedachten, veel plezier, wees geduldig en plaats hieronder foto's van je product! Hier is een video: En hier is een foto van mij:
Stap 1: Onderdelen
x1 ATmega 32L 8PU (www.digikey.com)x1 40-pins DIP-aansluiting (www.digikey.com)x1 8x8 LED-array (www.sparkfun.com)x1 74138 De-multiplexer (www.digikey.com)x2 Flex-sensoren (www.sparkfun.com)x(Many) Weerstanden 180 ohm en 10k ohmx2 pc-kaart (www.sparkfun.com)x6 afstandhouders (www.sparkfun.com) en schroeven om te passen (lokale ijzerhandel)x1 versnellingsmeter op breakout-bord (www.sparkfun.com)x2 Headers - Mannelijk (www.sparkfun.com), Vrouwelijk (www.sparkfun.com) en Rechthoekig (www.sparkfun.com)x1 LM7805 (www.digikey.com)x2 8-pins aansluitingen (Ik heb de mijne bij Radio Shack)x1 9v batterijx1 foot stick-on velcrox1 Full-fingered fietshandschoenx1 spoel polyester draadx1 Programmer (ik heb deze)x1 Draadstripper en clipx1 MultimeterSommige van de onderdelen:
Stap 2: Bereid de borden voor
Voeg eerst de afstanden toe. Je moet er twee aan elkaar schroeven om de juiste hoogte te krijgen. Zorg ervoor dat de afstandhouders vanaf de zijkant naar beneden komen met de VIERKANTE pads. Op deze manier kunt u pads met soldeer aan de onderkant overbruggen en met de gewone pad aan de bovenkant overbruggen om verbinding te maken met aarde. Voeg vervolgens de LED-array toe en soldeer deze in. Het moet zo ver naar de rand van het bord zijn met de twee stanoffs als het kan zijn met de YS naar de andere kant gericht. De pin linksonder is pin 1. (Het is ook gemarkeerd op de afbeelding.) Voeg vervolgens de twee 8-pins sockets boven elkaar toe om één 16-pins socket te vormen. Zorg ervoor dat je één spatie aan de linkerkant hebt en soldeer die vervolgens in. Splits vervolgens de mannelijke en vrouwelijke headers in 10 en 11-pins secties. Je hebt twee keer zoveel vrouwelijke headers nodig. Soldeer die erin zoals op de foto te zien is. Wat betreft de mannelijke headers, je moet de pin verschuiven zodat er een gelijke hoeveelheid is aan elke kant van het plastic. Het is het gemakkelijkst om naar een foto te kijken om te zien wat ik bedoel, dus kijk eens naar #6. Ik heb een tang gebruikt en het werkte redelijk goed. Als je nu de mannelijke headers neemt en ze tussen de 2 vrouwelijke headers plaatst, zul je zien dat ze nu de juiste maat hebben om het boven- en onderbord met elkaar te verbinden.
Stap 3: Voeg de weerstanden toe
Deze weerstanden gaan tussen de LED-array en de 74138 (aarde) om de array te beschermen. Vouw een van de draden van de weerstand over de bovenkant zodat de twee draden parallel zijn. Plaats ze op pinnen 7, 9, 10, 11, 12, 13, 14 en 15 en soldeer. Ik ontdekte dat het het beste werkt als je de richting van de weerstand afwisselt, zoals je kunt zien in de tweede en derde foto.
Stap 4: Bedraad de bovenkant
Dit is verreweg de langste stap van het project, dus ik hoop echt dat je van solderen houdt! Volg gewoon het onderstaande schema en zorg ervoor dat u de continuïteit test met uw multimeter. Als je wilt weten hoe ik aan het schema ben gekomen, kijk dan in de datasheet voor de array en de 74138.
Stap 5: Vul de bodem
Nu is het tijd om onze basiscomponenten op het onderste bord te plaatsen. Eerst doen we de 40-pins DIP-aansluiting die zo dicht mogelijk bij de linkerbovenhoek komt, terwijl er aan de linkerkant een rij ruimte overblijft. (Zie afbeelding #1.) Soldeer dat erin en plaats dan de headers. De eenvoudigste manier om dit te doen, is door de bovenste te verbinden met de onderste met behulp van uw aangepaste mannelijke headers. Als je alles goed hebt gedaan, zou je moeten eindigen met de drie bovenste drie pinnen op de linkerkop naast de pinnen rechtsonder op de socket. Dit is oke. We gebruiken alleen de onderste pin aan de rechterkant en zoals je kunt zien, hebben we een duidelijk schot vanuit een andere richting. Voeg nu de spanningsregelaar toe zoals weergegeven in de afbeelding. Ik heb de mijne vastgezet door het gat in het metalen koellichaam met een schroef en een moer. Het koellichaam is een andere manier om de chip te aarden en door deze op het bord te schroeven, krijgt u een stevig contact met de gemeenschappelijke verbinding. Dit is zowel aan de onderkant als aan de bovenkant verbonden omdat de twee zijn verbonden met metalen afstandhouders. Als u echter niet de gemeenschappelijke verbinding voor aarde gebruikt, bout het koellichaam dan NIET op het bord, aangezien het koellichaam als aarde dient en u waarschijnlijk iets zult kortsluiten. Volgende draad in de batterijclip. Rood gaat naar de pin aan de linkerkant (met het koellichaam omhoog en de pinnen naar beneden) zwart naar het midden en de rechter pin produceert +5v. Nu kun je de stroom naar de bovenkant bedraden (zie afbeelding #2). Nu voor de programmer-connector. Ik heb een adapter die ik voor mijn programmeur heb gemaakt, maar je zult waarschijnlijk een 6-pins (3x2) header in je ontwerp willen opnemen. Als je echter een adapter hebt zoals ik, dan is dit wat ik deed. Ik nam een haakse header en een vrouwelijke header en soldeerde ze aan elkaar (foto #3). Toen heb ik het op het bord bevestigd met de eerste pin aangesloten op pin 6. Nu moet je de chip van stroom voorzien en aarden, evenals bedrading in een weerstand om de reset hoog te trekken. Ik heb een weerstand van 10k van pin 9 naar pin 10 gedraaid en vervolgens pin 10 op +5v aangesloten. De volgende pin (11) gaat naar de gemeenschappelijke aansluiting (Ground). Kijk ten slotte naar afbeelding #4 om deze stap te voltooien (het is vrij duidelijk).
Stap 6: Bedraad de bodem
Weet je nog die heel leuke stap waarbij je meer dan 30 draden moest gebruiken om een LED-array te laten werken? Nu mag je het weer doen! Op de bodem!. Deze is iets sneller maar niet mijn ding. Kijk nogmaals naar het schema en controleer al uw verbindingen met uw multimeter. Maak je geen zorgen, dit is het laatste grote soldeerstuk van het project en je bent bijna klaar.
Stap 7: Flex-sensoren en de versnellingsmeter
We zullen eerst de flex-sensoren aanpakken, maar je bent op de goede weg wat betreft hardware. Ik denk dat de onderstaande foto's vrij veel uitleggen wat te doen. Sluit de ene pin aan op +5v en de andere op de derde of vierde pin van boven aan de rechterkant van de AVR (de microcontroller in het hart van dit project). Toen ik dit voor het eerst in elkaar zette, dacht ik dat dit alles was wat ik moest doen, maar het blijkt dat om de AVR de flexsensoren te laten lezen, je een weerstand moet plaatsen van de pin op de sensor die naar de AVR gaat naar aarde (zie afbeeldingen # 10 en 11). Ik heb een 10k gebruikt. Dit verdeelt de spanning die naar de AVR gaat, wat de gevoeligheid van de sensor praktisch verdubbelt. Nu voor de versnellingsmeter. Omdat de accelerometer maar een haar groter is dan de ruimte tussen de twee planken en omdat we hem misschien ooit willen vervangen, heb ik besloten om headers te gebruiken om hem uit het bord te stoten en aan te sluiten. Gebruik een haakse header om verbinding te maken met de 6 pinnen op het breakout-bord. Neem nu nog een haakse header en soldeer een vrouwelijke header aan de korte pinnen en soldeer deze vervolgens linksonder op je bord. Sluit de versnellingsmeter aan om te controleren of deze past, trek de stekker uit het stopcontact en sluit vervolgens de juiste pinnen aan op Vcc (+5v) en Gnd. Verbind vervolgens de pin die X uitvoert met pin 40 en Y met pin 39. Nu moet je klaar zijn om de IC's (geïntegreerde circuits) toe te voegen en aan te zetten.
26 dec 2009: Ik heb ontdekt dat de manier waarop ik de wijsvinger-flexsensor heb gemonteerd, ervoor zorgde dat het materiaal dat de sensor met de pinnen verbond, degradeerde. Ik heb sindsdien een vervangende sensor gekocht en een stuk dun plastic op de sensor gelijmd om te voorkomen dat dit gebied het deel is dat het meeste buigt. Ik heb de locatie getagd in de onderstaande foto.
Stap 8: IC's en het eerste programma toevoegen
Dit is waarschijnlijk de gemakkelijkste stap van het hele proces. Nogmaals de foto helpt. Zorg ervoor dat je de fiches op de juiste manier hebt zoals uitgelegd in afbeelding #3. Ik zou eerst de stroom aansluiten zonder dat er iets is aangesloten en het koellichaam op de spanningsregelaar aanraken. Als het heet is, is er iets kortsluiting en moet u teruggaan om uw verbindingen te controleren. Ga op deze manier te werk, voeg een chip per keer toe, voel voor warmte en als alles op zijn plaats zit, draai je de moeren op de onderste plank vast zodat de twee planken stevig aan elkaar vastzitten. Vervolgens programmeert u de AVR. Als je dit nog nooit eerder hebt gedaan, levert een snelle Google-zoekopdracht een overvloed aan resultaten op. Als ik jou was, zou ik mijn AVR op een breadboard zetten en daar programmeren voordat je het op je harde werk probeert. Ik heb een eenvoudig programma geschreven om de informatie die wordt ontvangen van de flexsensoren naar de LED-array uit te voeren. Dit zou u een basisidee moeten geven van wat wel en niet werkt in uw circuit. Hier is een video van de code in actie … en hier is de code: #define F_CPU 800000UL#include #include #include void ADCINIT(){ ADMUX = 0b01100000; ADCSRA = 0b10000000;}int main(){ int a; een = 0; int b; b = 0; DDRD = 0xFF; DDRB = 0xFF; DDRA = 0b1110000; TOEGANG(); while(1) { ADMUX = 0b01100011; ADCSRA |= 0b01000000; while(bit_is_clear(ADCSRA, ADIF)); PORTA = 0b00000000; POORT = ADCH; _delay_ms(1); POORT = 0x00; ADMUX = 0b01100010; ADCSRA |= 0b01000000; while(bit_is_clear(ADCSRA, ADIF)); PORTA = 0b1110000; PORTB = ADCH; _delay_ms(1); POORTB = 0x00; }}
Stap 9: Uw Circut aan een handschoen bevestigen
Ik denk dat er veel manieren zijn om je circuit aan je hand te bevestigen en een tijdje dacht ik dat ik het aan de lezer zou overlaten, maar besloot toen dat de instructable niet compleet zou zijn zonder deze sluiting. Ik ging naar mijn plaatselijke fietsenwinkel en kreeg de goedkoopste full-finger handschoen die ik kon vinden. Volle vinger is nodig omdat je de flexsensoren anders niet goed kunt bevestigen. Ik ging toen langs een stoffenwinkel en kocht wat polyesterdraad en klittenband. Ik deed de handschoen aan en legde het circuit op mijn hand. Een deel van de positionering is comfort, maar een ander deel zijn de flexsensoren. Ze zouden door het midden van twee vingers moeten gaan. Ik naaide lussen rond de drie afstandhouders om het moederbord vast te houden (zie afbeelding #2) en maakte vervolgens lussen 3/4 van de weg langs elke flexsensorvinger los (#3 en 4). Zorg ervoor dat je je handschoen niet dicht naait. Vervolgens plakte ik een stuk klittenband aan de zijkant van mijn duim om de batterij vast te houden. Ik heb na het testen ontdekt dat het echt de moeite loont om dit ook te naaien, omdat de stick niet te lang meegaat. Vervolgens doe ik een lus van klittenband rond de 9v (Afbeelding 5). Deze opstelling lijkt redelijk goed te werken. Zoals je kunt zien op de foto's op de eerste en laatste dia, heb ik nu hoezen voor de flexsensoren toegevoegd, maar als je geen tijd hebt, zouden lussen het goed moeten doen. Als je klaar bent met je project, plaats dan foto's van je eindproduct onderstaand. Ik zou graag zien wat je bedacht om het circuit te bevestigen!
Stap 10: De echte code
Bedankt dat je tot nu toe met me meedenkt. Houd er rekening mee dat mijn code niet perfect is. Ik heb gemerkt dat het een beetje leren kost om het signaal precies goed te laten werken. Ik zal blijven proberen mijn systeem te perfectioneren en zal deze pagina up-to-date houden met nieuwe code zodra ik deze heb geschreven. 26 december 2009: NIEUWE CODE! Het is gepost waar de oude code was. Veel dank aan Jacob voor de vereenvoudiging. Het werkt echt goed. Hier is het. Bedankt voor het lezen en vergeet niet te stemmen! #include #include #include // Stelt of wist bits in registers #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 < vertraging) { x++; } } void initMatrix() { DDRD = 0xFF; // Groene controle DDRB = 0xFF; // Rode controle DDRA = 0xE0; // Ground control } void matrixRowDraw (char greenmask, char redmask, char column) { matrixX (column); int ik = 0; for(i = 0; i < 8; i++) { matrixGY(groenmasker & (1 << i)); matrixRY(roodmasker & (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); } void adcInit() { ADMUX = 0x60; ADCSRA = 0x80; } char adcGet(char chan) { ADMUX = 0x60 | chan; ADCSRA |= 0x40; while(bit_is_clear(ADCSRA, ADIF)); retour ADCH; } char adcAvg (char chan, char avgnum) // Slechts gemiddeld tot 256 monsters { int i = 0; unsigned int totaal = 0; for(i = 0; i < avgnum; i++) {totaal += adcGet(chan); } retourneert totaal/gem.; } int main() { initMatrix(); adcInit(); while(1) { while(adcAvg(3, 50) > 0x45 & adcAvg(2, 50) > 0x70) // De hexadecimale waarden moeten hier worden gewijzigd, afhankelijk van de instellingen van de gebruiker om de gevoeligheid van de flexsensoren te bepalen. {if(adcAvg(1, 50)> 0x4F) {matrixRight(); } if(adcAvg(1, 100) < 0x4F) { matrixLeft(50); } } } retourneer 0; } Speciale dank aan de Chamberlains, mijn ouders en vrienden die hebben geholpen.
Finalist in de Homemade Holidays-wedstrijd
Aanbevolen:
Elektrische fiets: 6 stappen
Elektrische fiets: dit is mijn gids voor het bouwen van een elektrische fiets. In deze instructable laat ik zien wat ik heb gedaan en hoe je je eigen versie kunt bouwen. Ik realiseer me dat je mijn stappen waarschijnlijk niet precies zult volgen, dus ik heb geprobeerd deze handleiding zo aanpasbaar mogelijk te maken
GPS-FIETS- OF AUTO-TRACKING VANAF SMARTPHONE: 9 stappen
GPS-FIETS- OF AUTO-TRACKING VANAF SMARTPHONE: Hallo, welkom bij Creativity Buzz. Hier laat ik je zien hoe je je fiets of auto volgt. Je kunt de live locatie van de fiets volgen met dit apparaat. Je kunt elke fiets volgen met dit apparaat