Innehållsförteckning:
- Steg 1: Delar
- Steg 2: Förbered brädorna
- Steg 3: Lägg till motståndarna
- Steg 4: Anslut toppen
- Steg 5: Fyll på botten
- Steg 6: Trä botten
- Steg 7: Flex -sensorer och accelerometer
- Steg 8: Lägga till IC: er och det första programmet
- Steg 9: Fäst din krets på en handske
- Steg 10: Den riktiga koden
Video: Cykelhandljus: 10 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:48
Målet med detta projekt är att skapa ett ljus som passar på en cykelhandske och pekar i riktning mot den avsedda svängen, för att öka synligheten på natten. Den ska vara lätt, enkel att använda och integrerad med de befintliga rörelserna för signalering (minimal justering av signalmetod (du behöver inte trycka på en knapp, den går bara när du signalerar)). Detta skulle göra en bra semestergåva.
Obs: Detta kräver tidigare kunskap om hur man lödar och en idé om hur man programmerar AVR är ett stort plus. Med det i åtanke, ha kul, ha tålamod och lägg upp bilder på din produkt nedan! Här är en video: Och här är en bild på mig:
Steg 1: Delar
x1 ATmega 32L 8PU (www.digikey.com) x1 40-stifts DIP-uttag (www.digikey.com) x1 8x8 LED Array (www.sparkfun.com) x1 74138 De-multiplexer (www.digikey.com) x2 Flex Sensors (www.sparkfun.com) x (många) motstånd 180 ohm och 10k ohmx2 PC -kort (www.sparkfun.com) x6 Standoffs (www.sparkfun.com) och skruvar för att passa (lokal hårdvaruhandel) x1 Accelerometer på utbrottskort (www.sparkfun.com) x2 Headers - Man (www.sparkfun.com), Female (www.sparkfun.com) och Right Angle (www.sparkfun.com) x1 LM7805 (www.digikey.com) x2 8 -poliga uttag (Jag fick min på Radio Shack) x1 9v batteri x1 fot fast-på kardborreband1 Fullfingerad cykelhandskex1 spole polyester threadx1 Programmerare (jag har den här) x1 Wire stripper och clipx1 Multimeter Några av delarna:
Steg 2: Förbered brädorna
Lägg först till standoffs. Du måste skruva ihop två för att få rätt höjd. Se till att avstånden sjunker från sidan med SQUARE -kuddarna. På så sätt kan du överbrygga kuddar med lödning på botten och överbrygga med den gemensamma kudden på toppen för att ansluta till marken. Lägg sedan till LED -matrisen och löd in den. Det ska vara så långt till brädans kant med de två stanoffs som det kan vara med YS mot den motsatta sidan. Stiftet längst ner till vänster är stift 1. (Det är också markerat på bilden.) Lägg sedan till de två 8 -stifts uttagen ovanpå varandra för att bilda ett 16 -stifts uttag. Se till att ha ett mellanslag till vänster och löd sedan in det. Dela sedan han- och honhuvudena i 10 och 11 stift. Du behöver dubbelt så många kvinnliga rubriker. Lödda in de som syns på bilden. När det gäller de manliga rubrikerna måste du flytta stiftet så att det är lika mycket på varje sida av plasten. Det är lättast att titta på en bild för att se vad jag menar så ta en titt på #6. Jag använde en tång och det fungerade ganska bra. Om du tar de manliga rubrikerna och placerar dem mellan de två kvinnliga rubrikerna ser du att de nu har rätt storlek för att ansluta det övre och nedre kortet.
Steg 3: Lägg till motståndarna
Dessa motstånd går mellan LED -arrayen och 74138 (Ground) för att skydda arrayen. Vik en av ledningarna från motståndet över toppen så att de två ledningarna är parallella. Montera dem på stift 7, 9, 10, 11, 12, 13, 14 och 15 och löd. Jag fann att det fungerar bäst om du växlar motståndets riktning som du kan se på den andra och tredje bilden.
Steg 4: Anslut toppen
Detta är det längsta steget i projektet så jag hoppas verkligen att du gillar lödning! Följ bara schemat nedan och se till att testa kontinuiteten med din multimeter. Om du vill veta hur jag kom till oss med en schematisk titt på databladet för matrisen och 74138.
Steg 5: Fyll på botten
Nu är det dags att placera våra grundkomponenter på bottenplattan. Först gör vi 40 -stifts DIP -uttaget som går så nära uppe till vänster som möjligt medan vi lämnar en rad utrymme på vänster sida. (Se bild #1.) Löd in den och placera sedan rubrikerna. Det enklaste sättet att göra detta är att ansluta dem på toppen till de som kommer att gå längst ner med dina modifierade manliga rubriker. Om du gjorde allt rätt skulle du sluta med de tre tre översta stiften på den vänstra rubriken bredvid de nedre högra stiften på uttaget. Det här är ok. Vi använder bara den nedersta stiftet till höger och som du kan se har vi ett tydligt skott på det från en annan riktning. Lägg nu till spänningsregulatorn enligt bilden. Jag säkrade mitt genom hålet i metallkylflänsen med en skruv och mutter. Kylflänsen är ett annat sätt att jorda chipet och bulta det till brädet ger en solid kontakt med den gemensamma anslutningen. Detta är anslutet till både botten och toppen eftersom de två är anslutna med metallavstånd. Men om du inte använder den gemensamma jordanslutningen ska du INTE skruva fast kylflänsen på brädet eftersom kylflänsen fungerar som mark och du kommer förmodligen att kortsluta något. Nästa tråd i batteriklämman. Rött går till stiftet till vänster (med kylflänsen uppe och stiften nedåt) svart i mitten och höger stift ger +5v. Nu kan du koppla ström till toppen (se bild #2). Nu för programmerarens anslutning. Jag har en adapter som jag gjorde för min programmerare men du kommer förmodligen att vilja ha en 6 -stifts (3x2) rubrik i din design. Men om du har en adapter som jag har, här är vad jag gjorde. Jag tog ett rätvinkligt huvud och ett kvinnligt huvud och lödde ihop dem (bild #3). Sedan fästde jag det på kortet med den första stiftet anslutet till stift 6. Nu måste du driva och jorda chipet samt kablar i ett motstånd för att dra reset högt. Jag körde ett 10k motstånd från stift 9 till stift 10 och kopplade sedan stift 10 till +5v. Nästa stift (11) går till den gemensamma anslutningen (jord). Slutligen titta på bild #4 för att avsluta detta steg (Det är ganska självförklarande).
Steg 6: Trä botten
Kommer du ihåg det riktigt roliga steget där du fick köra över 30 ledningar för att få en LED -array att fungera? Nu får du göra det igen! På botten!. Den här är lite snabbare men inte min mycket. Återigen, titta på schemat och kontrollera alla dina anslutningar med din multimeter. Oroa dig inte, det här är den sista stora lödbiten i projektet och du är nästan klar.
Steg 7: Flex -sensorer och accelerometer
Vi kommer att ta itu med flex -sensorerna först, men du är på hemsträckan så långt som hårdvara når. Jag tror att bilderna nedan förklarar ganska mycket vad man ska göra. Anslut en stift till +5v den andra till den tredje eller fjärde stiftet från toppen på höger sida av AVR (mikrokontrollern i hjärtat av detta projekt). När jag först satte ihop detta trodde jag att det var allt jag behövde göra men det visar sig att för att AVR: n ska kunna läsa flexsensorerna måste du sätta ett motstånd från stiftet på sensorn som går till AVR till marken (se bilder # 10 och 11). Jag använde en 10k. Detta delar spänningen till AVR som praktiskt taget fördubblar känsligheten hos sensorn. Nu till accelerometern. Eftersom accelerometern bara är ett hår högre än utrymmet mellan de två brädorna och för att vi kanske vill byta ut det någon dag har jag bestämt mig för att använda rubriker för att stöta ut det från brädet och ansluta det. Använd en rätvinklig rubrik för att ansluta till de 6 stiften på breakout -kortet. Ta nu en annan rätvinklig rubrik och löd en kvinnlig rubrik till de korta stiften och löd den sedan längst ned till vänster på ditt bräde. Anslut accelerometern för att se till att den passar, koppla ur den och anslut sedan de rätta stiften till Vcc (+5v) och Gnd. Anslut sedan stiftutgången X till stift 40 och Y till stift 39. Nu bör du ställa in IC: erna (integrerade kretsar) och slå på den.
26 dec 2009: Jag har upptäckt att sättet jag monterade pekfingers flex -sensor orsakade att materialet som förbinder sensorn med stiften försämrades. Jag har sedan köpt en ersättningssensor och varmlimmat en bit tunn plast på sensorn för att förhindra att detta område är det som gör det mesta av böjningen. Jag har taggat platsen på bilden nedan.
Steg 8: Lägga till IC: er och det första programmet
Detta är sannolikt det enklaste steget i hela processen. Återigen hjälpte bilden. Se till att du har chipsen på rätt sätt som förklaras i bild #3. Jag skulle först ansluta ström utan att något var anslutet och vidröra kylflänsen på spänningsregulatorn. Om det är varmt så håller något på att brista och du måste gå tillbaka och kontrollera dina anslutningar. Fortsätt på detta sätt, lägg till ett chip i taget, känn efter värme och när allt är på plats, dra åt muttrarna på bottenplattan så att de två brädorna fästs ordentligt. Därefter programmerar du AVR. Om du aldrig har gjort detta tidigare ger en snabb Google -sökning en uppsjö av resultat. Om jag var du skulle jag lägga min AVR på en brödbräda och programmera där innan du försöker på ditt hårda arbete. Jag skrev ett enkelt program för att mata ut den information som tas emot från flexsensorerna till LED -matrisen. Detta bör ge dig en grundläggande uppfattning om vad som är och inte fungerar i din krets. Här är en video av koden i aktion …… och här är koden: #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 (); medan (1) {ADMUX = 0b01100011; ADCSRA | = 0b01000000; medan (bit_is_clear (ADCSRA, ADIF)); PORTA = 0b00000000; PORTD = ADCH; _fördröjning_ms (1); PORTD = 0x00; ADMUX = 0b01100010; ADCSRA | = 0b01000000; medan (bit_is_clear (ADCSRA, ADIF)); PORTA = 0b11100000; PORTB = ADCH; _fördröjning_ms (1); PORTB = 0x00; }}
Steg 9: Fäst din krets på en handske
Jag tror att det finns många sätt att fästa din krets på din hand och tänkte ett tag att jag skulle lämna det till läsaren men bestämde mig sedan för att det instruerbara inte skulle vara komplett utan denna stängning. Jag gick till min lokala cykelbutik och fick den billigaste fullfingershandsken jag kunde hitta. Fullfinger är nödvändigt för annars kan du inte fästa flexsensorerna särskilt bra. Jag gick sedan i en tygaffär och fick lite polyestertråd och fast kardborre. Jag tog på mig handsken och lade kretsen på min hand. En del av positioneringen är komfort men en annan del är flexsensorerna. De borde gå ner i mitten av två fingrar. Jag sydde slingor runt de tre avstånden för att hålla huvudkortet på (se bild #2) och gjorde sedan lösa slingor 3/4 av vägen ner för varje flex sensor finger (#3 och 4). Se till att du inte syr handsken stängd. Därefter la jag fast en kardborrband på tummen för att hålla i batteriet. Jag har upptäckt efter testning att det verkligen lönar sig att sy på detta också eftersom pinnen inte håller för länge. Därefter lägger jag en loop med kardborre runt 9v (bild 5). Denna inställning verkar fungera ganska bra. Som du ser på bilderna på de första och sista bilderna har jag nu lagt till ärmar för flex -sensorerna, men om du inte har tid bör slingor gå bra. När du avslutar med ditt projekt kan du lägga upp foton av din färdiga produkt Nedan. Jag skulle gärna se vad du kom fram till för att fästa kretsen!
Steg 10: Den riktiga koden
Tack för att du håller med mig så här långt. Kom ihåg att min kod inte är perfekt. Jag har funnit att det tar lite inlärning för att få signalen att fungera rätt. Jag kommer att fortsätta försöka förbättra mitt system och kommer att hålla den här sidan uppdaterad med ny kod när jag skriver det. 26 dec 2009: NY KOD! Det är postat där den gamla koden var. Stort tack till Jacob för förenklingen. Det fungerar verkligen bra. Här är det. Tack för att du läste och glöm inte att rösta! #include #include #include // Ställer in eller raderar bitar i registren #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; medan (x <fördröjning) {x ++; }} void initMatrix () {DDRD = 0xFF; // Grön kontroll DDRB = 0xFF; // Röd kontroll DDRA = 0xE0; // Ground control} void matrixRowDraw (char greenmask, char redmask, char column) {matrixX (column); int i = 0; för (i = 0; i <8; i ++) {matrixGY (greenmask & (1 << i)); matrixRY (redmask & (1 << i)); _fördröjning_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; medan (bit_is_clear (ADCSRA, ADIF)); returnera ADCH; } char adcAvg (char chan, char avgnum) // Endast i genomsnitt upp till 256 prover {int i = 0; osignerad int total = 0; för (i = 0; i <avgnum; i ++) {total+= adcGet (chan); } returnera totalt/avgnum; } int main () {initMatrix (); adcInit (); while (1) {while (adcAvg (3, 50)> 0x45 & adcAvg (2, 50)> 0x70) // Hexvärdena här bör ändras beroende på användarnas inställningar för att bestämma känsligheten hos flexsensorerna. {if (adcAvg (1, 50)> 0x4F) {matrixRight (); } if (adcAvg (1, 100) <0x4F) {matrixLeft (50); }}} returnera 0; } Ett särskilt tack till Chamberlains, mina föräldrar och vänner som hjälpte till.
Finalist i den hemlagade semestertävlingen
Rekommenderad:
Ta fantastiska bilder med en iPhone: 9 steg (med bilder)
Ta fantastiska bilder med en iPhone: De flesta av oss har en smartphone med oss överallt nuförtiden, så det är viktigt att veta hur du använder din smartphone -kamera för att ta fantastiska bilder! Jag har bara haft en smartphone i ett par år, och jag har älskat att ha en bra kamera för att dokumentera saker jag
Hur: Installera Raspberry PI 4 Headless (VNC) med Rpi-imager och bilder: 7 steg (med bilder)
Hur: Installera Raspberry PI 4 Headless (VNC) med Rpi-imager och bilder: Jag planerar att använda denna Rapsberry PI i ett gäng roliga projekt tillbaka i min blogg. Kolla gärna in det. Jag ville börja använda mitt Raspberry PI men jag hade inte ett tangentbord eller en mus på min nya plats. Det var ett tag sedan jag installerade en hallon
Hur man digitaliserar bilder och filmnegativ med en DSLR: 12 steg (med bilder)
Hur man digitaliserar diabilder och filmnegativ med en DSLR: En mångsidig och stabil inställning för digitalisering av diabilder och negativ med en DSLR eller en kamera med ett makroalternativ. Denna instruerbara är en uppdatering av Hur man digitaliserar 35 mm negativ (uppladdad juli 2011) med flera förbättringar för att utöka dess
Trådlös fjärrkontroll med 2,4 GHz NRF24L01 -modul med Arduino - Nrf24l01 4 -kanals / 6 -kanals sändarmottagare för Quadcopter - Rc helikopter - RC -plan med Arduino: 5 steg (med bilder)
Trådlös fjärrkontroll med 2,4 GHz NRF24L01 -modul med Arduino | Nrf24l01 4 -kanals / 6 -kanals sändarmottagare för Quadcopter | Rc helikopter | Rc -plan med Arduino: Att driva en Rc -bil | Quadcopter | Drone | RC -plan | RC -båt, vi behöver alltid en mottagare och sändare, antag att för RC QUADCOPTER behöver vi en 6 -kanals sändare och mottagare och den typen av TX och RX är för dyr, så vi kommer att göra en på vår
Hur man tar isär en dator med enkla steg och bilder: 13 steg (med bilder)
Hur man tar isär en dator med enkla steg och bilder: Detta är en instruktion om hur man demonterar en dator. De flesta av de grundläggande komponenterna är modulära och lätt att ta bort. Det är dock viktigt att du är organiserad kring det. Detta hjälper dig att inte förlora delar, och även för att göra ommonteringen