Inhaltsverzeichnis:

Fahrrad-Handsignallicht - Gunook
Fahrrad-Handsignallicht - Gunook

Video: Fahrrad-Handsignallicht - Gunook

Video: Fahrrad-Handsignallicht - Gunook
Video: WIE WEIT LEUCHTEN 100000 LUMEN ?! 2024, November
Anonim
Fahrrad-Handsignalleuchte
Fahrrad-Handsignalleuchte

Das Ziel dieses Projekts ist es, ein Licht zu schaffen, das auf einen Fahrradhandschuh passt und in die Richtung der beabsichtigten Kurve zeigt, um die Sichtbarkeit bei Nacht zu erhöhen. Es sollte leicht, einfach zu bedienen und in die vorhandenen Bewegungen für die Signalisierung integriert sein (minimale Anpassung der Signalmethode (Sie müssen keinen Knopf drücken, es geht nur, wenn Sie signalisieren)). Dies wäre ein tolles Weihnachtsgeschenk.

Hinweis: Dies erfordert Vorkenntnisse im Löten und eine Vorstellung davon, wie man AVRs programmiert, ist ein großes Plus. In diesem Sinne haben Sie Spaß, haben Sie Geduld und posten Sie unten Bilder Ihres Produkts! Hier ist ein Video: Und hier ist ein Bild von mir:

Schritt 1: Teile

Teile
Teile

x1 ATmega 32L 8PU (www.digikey.com)x1 40-polige DIP-Buchse (www.digikey.com)x1 8x8 LED-Array (www.sparkfun.com)x1 74138 Demultiplexer (www.digikey.com)x2 Flex Sensoren (www.sparkfun.com) x (viele) Widerstände 180 Ohm und 10 k Ohm x 2 Platine (www.sparkfun.com) x 6 Abstandshalter (www.sparkfun.com) und Schrauben (Lokaler Baumarkt) x 1 Beschleunigungsmesser auf Breakout-Platine (www.sparkfun.com)x2 Stiftleisten – männlich (www.sparkfun.com), weiblich (www.sparkfun.com) und rechtwinklig (www.sparkfun.com)x1 LM7805 (www.digikey.com)x2 8-polige Buchsen (Ich habe meine bei Radio Shack) x 1 9-V-Batterie x 1 Fuß-Klettverschluss x 1 Vollfinger-Fahrradhandschuh x 1 Spule Polyesterfaden x 1 Programmierer (ich habe diesen) x 1 Abisolierzange und Clip x 1 MultimeterEinige der Teile:

Schritt 2: Bereiten Sie die Bretter vor

Bereiten Sie die Bretter vor
Bereiten Sie die Bretter vor
Bereiten Sie die Bretter vor
Bereiten Sie die Bretter vor
Bereiten Sie die Bretter vor
Bereiten Sie die Bretter vor
Bereiten Sie die Bretter vor
Bereiten Sie die Bretter vor

Fügen Sie zuerst die Abstandshalter hinzu. Sie müssen zwei zusammenschrauben, um die richtige Höhe zu erhalten. Stellen Sie sicher, dass die Abstandshalter von der Seite mit den SQUARE-Pads absteigen. Auf diese Weise können Sie Pads unten mit Lötzinn überbrücken und oben mit dem gemeinsamen Pad überbrücken, um eine Verbindung mit Masse herzustellen. Als nächstes fügen Sie das LED-Array hinzu und löten es ein. Es sollte mit den beiden Stanoffs so weit bis zum Rand der Platine sein, wie es sein kann, wobei das YS der gegenüberliegenden Seite zugewandt ist. Der Pin unten links ist Pin 1. (Er ist auch auf dem Bild markiert.) Als nächstes fügen Sie die beiden 8-Pin-Buchsen übereinander hinzu, um eine 16-Pin-Buchse zu bilden. Stellen Sie sicher, dass ein Platz nach links vorhanden ist und löten Sie diesen dann ein. Als nächstes teilen Sie die Stift- und Buchsenleisten in 10 und 11 Stiftabschnitte auf. Sie benötigen doppelt so viele Buchsenleisten. Löten Sie diese wie auf dem Foto zu sehen. Bei den Stiftleisten müssen Sie den Stift so verschieben, dass sie auf jeder Seite des Kunststoffs gleich sind. Es ist am einfachsten, sich ein Bild anzusehen, um zu sehen, was ich meine, also werfen Sie einen Blick auf #6. Ich habe eine Zange benutzt und es hat ganz gut funktioniert. Wenn Sie nun die Stiftleisten nehmen und sie zwischen die 2 Buchsenleisten legen, werden Sie sehen, dass sie jetzt die richtige Größe haben, um die obere und untere Platine miteinander zu verbinden.

Schritt 3: Fügen Sie die Widerstände hinzu

Fügen Sie die Widerstände hinzu
Fügen Sie die Widerstände hinzu
Fügen Sie die Widerstände hinzu
Fügen Sie die Widerstände hinzu
Fügen Sie die Widerstände hinzu
Fügen Sie die Widerstände hinzu

Diese Widerstände befinden sich zwischen dem LED-Array und dem 74138 (Masse), um das Array zu schützen. Falten Sie eine der Leitungen vom Widerstand über die Oberseite, so dass die beiden Leitungen parallel sind. Stecken Sie sie auf die Pins 7, 9, 10, 11, 12, 13, 14 und 15 und löten Sie sie. Ich fand, dass es am besten funktioniert, wenn Sie die Richtung des Widerstands wechseln, wie Sie im zweiten und dritten Bild sehen können.

Schritt 4: Verdrahten Sie die Oberseite

Verdrahten Sie die Oberseite
Verdrahten Sie die Oberseite
Verdrahten Sie die Oberseite
Verdrahten Sie die Oberseite
Verdrahten Sie die Oberseite
Verdrahten Sie die Oberseite
Verdrahten Sie die Oberseite
Verdrahten Sie die Oberseite

Dies ist bei weitem der längste Schritt des Projekts, also hoffe ich, dass Ihnen das Löten gefällt! Folgen Sie einfach dem unten stehenden Schema und stellen Sie sicher, dass Sie den Durchgang mit Ihrem Multimeter testen. Falls Sie wissen möchten, wie ich mit dem Schaltplan zu uns gekommen bin, schauen Sie sich das Datenblatt für das Array und die 74138 an.

Schritt 5: Befüllen Sie den Boden

Bevölkern Sie den Boden
Bevölkern Sie den Boden
Bevölkern Sie den Boden
Bevölkern Sie den Boden
Bevölkern Sie den Boden
Bevölkern Sie den Boden
Bevölkern Sie den Boden
Bevölkern Sie den Boden

Jetzt ist es an der Zeit, unsere Basiskomponenten auf der unteren Platine zu platzieren. Zuerst machen wir die 40-polige DIP-Buchse, die so nah wie möglich nach oben links geht, während auf der linken Seite eine Reihe Platz bleibt. (Siehe Bild # 1.) Löten Sie das ein und platzieren Sie dann die Header. Der einfachste Weg, dies zu tun, besteht darin, die oberen mit den unteren zu verbinden, indem Sie Ihre modifizierten Stiftleisten verwenden. Wenn Sie alles richtig gemacht haben, sollten Sie am Ende die drei oberen drei Pins am linken Header neben den unteren rechten Pins an der Buchse haben. Das ist in Ordnung. Wir verwenden nur den untersten Pin auf der rechten Seite und wie Sie sehen, haben wir eine klare Sicht darauf aus einer anderen Richtung. Fügen Sie nun den Spannungsregler wie im Bild gezeigt hinzu. Ich befestigte meine durch das Loch im Metallkühlkörper mit einer Schraube und Mutter. Der Kühlkörper ist eine weitere Möglichkeit, den Chip zu erden, und das Verschrauben mit der Platine bietet einen festen Kontakt mit der gemeinsamen Verbindung. Dieser ist sowohl mit der Unterseite als auch mit der Oberseite verbunden, da die beiden mit Metallabstandshaltern verbunden sind. Wenn Sie jedoch nicht den gemeinsamen Anschluss für Masse verwenden, schrauben Sie den Kühlkörper NICHT an die Platine, da der Kühlkörper als Masse dient und Sie wahrscheinlich etwas kurzschließen. Nächster Draht im Batterieclip. Rot geht zum Pin links (mit dem Kühlkörper oben und den Pins unten) Schwarz zur Mitte und der rechte Pin erzeugt +5V. Jetzt können Sie die Stromversorgung nach oben verdrahten (siehe Bild 2). Nun zum Programmierer-Connector. Ich habe einen Adapter, den ich für meinen Programmierer gemacht habe, aber Sie möchten wahrscheinlich einen 6-poligen (3x2) Header in Ihr Design integrieren. Wenn Sie jedoch einen Adapter wie ich haben, habe ich Folgendes getan. Ich nahm einen rechtwinkligen Header und einen weiblichen Header und lötete sie zusammen (Bild # 3). Dann habe ich es an der Platine befestigt, wobei der erste Pin mit Pin 6 verbunden ist. Jetzt müssen Sie den Chip mit Strom versorgen und erden sowie einen Widerstand verdrahten, um den Reset hoch zu ziehen. Ich habe einen 10k-Widerstand von Pin 9 zu Pin 10 geführt und dann Pin 10 mit +5 V verbunden. Der nächste Pin (11) geht an den gemeinsamen Anschluss (Masse). Schauen Sie sich schließlich Bild 4 an, um diesen Schritt abzuschließen (es ist ziemlich selbsterklärend).

Schritt 6: Verdrahten Sie die Unterseite

Verdrahten Sie den Boden
Verdrahten Sie den Boden
Verdrahten Sie den Boden
Verdrahten Sie den Boden
Verdrahten Sie den Boden
Verdrahten Sie den Boden

Erinnern Sie sich an diesen wirklich lustigen Schritt, bei dem Sie über 30 Drähte verlegen mussten, um ein LED-Array zum Laufen zu bringen? Jetzt darfst du es wieder tun! Auf der Unterseite!. Dieser ist etwas schneller, aber nicht meins. Schauen Sie sich noch einmal den Schaltplan an und überprüfen Sie alle Ihre Verbindungen mit Ihrem Multimeter. Keine Sorge, dies ist das letzte große Lötstück des Projekts und Sie sind fast fertig.

Schritt 7: Flex-Sensoren und der Beschleunigungsmesser

Flexsensoren und der Beschleunigungsmesser
Flexsensoren und der Beschleunigungsmesser
Flexsensoren und der Beschleunigungsmesser
Flexsensoren und der Beschleunigungsmesser
Flexsensoren und der Beschleunigungsmesser
Flexsensoren und der Beschleunigungsmesser

Wir werden zuerst die Flexsensoren in Angriff nehmen, aber Sie sind auf der Zielgeraden, was die Hardware angeht. Ich denke, dass die Bilder unten ziemlich erklären, was zu tun ist. Verbinden Sie einen Pin mit +5V, den anderen mit dem dritten oder vierten Pin von oben auf der rechten Seite des AVR (Der Mikrocontroller im Herzen dieses Projekts). Als ich das zum ersten Mal zusammengebaut habe, dachte ich, das wäre alles, was ich tun muss, aber es stellt sich heraus, dass Sie zum Lesen der Flex-Sensoren einen Widerstand vom Pin des Sensors zum AVR zur Masse legen müssen (Siehe Bilder # 10 und 11). Ich habe 10k verwendet. Dies teilt die Spannung, die zum AVR geht, was die Empfindlichkeit des Sensors praktisch verdoppelt. Nun zum Beschleunigungsmesser. Da der Beschleunigungsmesser nur ein Haar größer ist als der Abstand zwischen den beiden Platinen und wir ihn vielleicht eines Tages ersetzen wollen, habe ich mich entschieden, Header zu verwenden, um ihn aus dem Board zu stoßen und zu verbinden. Verwenden Sie einen rechtwinkligen Header, um eine Verbindung zu den 6 Pins auf der Breakout-Platine herzustellen. Nehmen Sie nun einen weiteren rechtwinkligen Header und löten Sie einen weiblichen Header an die kurzen Pins und löten Sie diesen dann in die untere linke Seite Ihres Boards. Stecken Sie den Beschleunigungsmesser ein, um sicherzustellen, dass er passt, ziehen Sie ihn ab und verbinden Sie dann die richtigen Pins mit Vcc (+5 V) und Gnd. Verbinden Sie dann den Pin, der X ausgibt, mit Pin 40 und Y mit Pin 39. Jetzt sollten Sie die ICs (integrierte Schaltungen) hinzufügen und einschalten.

26. Dezember 2009: Ich habe festgestellt, dass die Art und Weise, wie ich den Zeigefinger-Flexsensor montiert habe, dazu führte, dass das Material, das den Sensor mit den Stiften verbindet, abgebaut wurde. Ich habe seitdem einen Ersatzsensor gekauft und ein Stück dünnes Plastik heiß auf den Sensor geklebt, um zu verhindern, dass dieser Bereich der Teil ist, der sich am meisten biegt. Ich habe den Ort auf dem unteren Foto markiert.

Schritt 8: Hinzufügen von ICs und dem ersten Programm

Hinzufügen von ICs und dem ersten Programm
Hinzufügen von ICs und dem ersten Programm
Hinzufügen von ICs und dem ersten Programm
Hinzufügen von ICs und dem ersten Programm
Hinzufügen von ICs und dem ersten Programm
Hinzufügen von ICs und dem ersten Programm
Hinzufügen von ICs und dem ersten Programm
Hinzufügen von ICs und dem ersten Programm

Dies ist wahrscheinlich der einfachste Schritt des gesamten Prozesses. Noch einmal die Bildhilfe. Stellen Sie sicher, dass Sie die Chips auf die richtige Weise haben, wie in Bild 3 beschrieben. Ich würde zuerst die Stromversorgung ohne angeschlossenes Gerät anschließen und den Kühlkörper des Spannungsreglers berühren. Wenn es heiß ist, liegt ein Kurzschluss vor und Sie müssen zurückgehen und Ihre Verbindungen überprüfen. Fahren Sie auf diese Weise fort, fügen Sie einen Chip nach dem anderen hinzu, fühlen Sie nach Wärme und ziehen Sie, sobald alles an seinem Platz ist, die Muttern auf der unteren Platine fest, damit die beiden Platinen sicher miteinander verbunden sind. Als nächstes programmieren Sie den AVR. Wenn Sie dies noch nie zuvor getan haben, liefert eine schnelle Google-Suche eine Fülle von Ergebnissen. Wenn ich Sie wäre, würde ich meinen AVR auf ein Steckbrett legen und dort programmieren, bevor Sie es mit Ihrer harten Arbeit versuchen. Ich habe ein einfaches Programm geschrieben, um die von den Flex-Sensoren empfangenen Informationen an das LED-Array auszugeben. Dies sollte Ihnen eine grundlegende Vorstellung davon geben, was in Ihrer Schaltung funktioniert und was nicht. Hier ist ein Video des Codes in Aktion……und hier ist der Code: #define F_CPU 800000UL#include #include #include void ADCINIT(){ ADMUX = 0b01100000; ADCSRA = 0b10000000;}int main(){int a; a = 0; intb; b = 0; DDRD = 0xFF; DDRB = 0xFF; DDRA = 0b11100000; ADCINIT(); while(1) {ADMUX = 0b01100011; ADCSRA |= 0b01000000; while(bit_is_clear(ADCSRA, ADIF)); PORTA = 0b00000000; PORTD = ADCH; _verzögerung_ms(1); PORTD = 0x00; ADMUX = 0b01100010; ADCSRA |= 0b01000000; while(bit_is_clear(ADCSRA, ADIF)); PORTA = 0b11100000; PORTB = ADCH; _verzögerung_ms(1); PORTB = 0x00; }}

Schritt 9: Befestigen Sie Ihren Circut an einem Handschuh

Anbringen Ihres Circuts an einem Handschuh
Anbringen Ihres Circuts an einem Handschuh
Anbringen Ihres Circuts an einem Handschuh
Anbringen Ihres Circuts an einem Handschuh
Anbringen Ihres Circuts an einem Handschuh
Anbringen Ihres Circuts an einem Handschuh

Ich denke, dass es viele Möglichkeiten gibt, Ihre Schaltung an Ihrer Hand zu befestigen, und dachte eine Weile, ich würde es dem Leser überlassen, entschied dann aber, dass die Anleitung ohne diesen Verschluss nicht vollständig wäre. Ich ging zu meinem örtlichen Fahrradladen und Ich habe den billigsten Vollfingerhandschuh, den ich finden konnte. Voller Finger ist notwendig, da man die Flexsensoren sonst nicht sehr gut anbringen kann. Ich ging dann bei einem Stoffladen vorbei und holte mir Polyestergarn und Klettverschluss. Ich zog den Handschuh an und legte die Schaltung auf meine Hand. Ein Teil der Positionierung ist der Komfort, aber ein anderer Teil sind die Flexsensoren. Sie sollten die Mitte von zwei Fingern hinuntergehen. Ich habe Schlaufen um die drei Abstandshalter genäht, um die Hauptplatine zu halten (siehe Bild # 2) und dann lose Schlaufen zu 3/4 an jedem Flexsensorfinger (# 3 und 4) gemacht. Achten Sie darauf, dass Sie Ihren Handschuh nicht zunähen. Als nächstes klebte ich ein Stück Klettverschluss auf die Seite meines Daumens, um den Akku zu halten. Ich habe nach dem Testen festgestellt, dass es sich wirklich lohnt, dies auch zu nähen, da der Stick nicht allzu lange hält. Als nächstes legte ich eine Klettschlaufe um die 9v (Bild 5). Dieses Setup scheint ziemlich gut zu funktionieren. Wie Sie in den Bildern auf der ersten und letzten Folie sehen, habe ich jetzt Hüllen für die Flexsensoren hinzugefügt, aber wenn Sie keine Zeit haben, sollten Schlaufen gut funktionieren. Wenn Sie mit Ihrem Projekt fertig sind, posten Sie bitte Fotos von Ihrem fertigen Produkt unter. Ich würde gerne sehen, was Sie sich ausgedacht haben, um die Schaltung anzuschließen!

Schritt 10: Der echte Code

Der wahre Code
Der wahre Code

Danke, dass du mich bis jetzt begleitet hast. Bitte beachte, dass mein Code nicht perfekt ist. Ich habe festgestellt, dass es ein wenig Lernen braucht, um das Signal richtig zum Laufen zu bringen. Ich werde weiterhin versuchen, mein System zu perfektionieren und diese Seite mit neuem Code auf dem neuesten Stand halten, sobald ich sie geschrieben habe. 26.12.2009: NEUER CODE! Es steht dort, wo der alte Code war. Vielen Dank an Jacob für die Vereinfachung. Es funktioniert wirklich gut. Hier ist es. Danke fürs Lesen und vergiss nicht abzustimmen! #include #include #include // Setzt oder löscht Bits in Registern #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 < Verzögerung) { x++; aufrechtzuerhalten. aufrechtzuerhalten. Void initMatrix () { DDRD = 0xFF; // Grüne Kontrolle DDRB = 0xFF; // Rote Kontrolle DDRA = 0xE0; // Bodenkontrolle aufrechtzuerhalten. Void matrixRowDraw (char greenmask, char redmask, char column) { matrixX (column); int i = 0; for(i = 0; i < 8; i++) { MatrixGY(grüne Maske & (1 << i)); MatrixRY(Rotmaske & (1 << i)); _delay_us(150); } MatrixGY(0x00); MatrixRY(0x00); aufrechtzuerhalten. 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); aufrechtzuerhalten. 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); aufrechtzuerhalten. Void adcInit () {ADMUX = 0x60; ADCSRA = 0x80; } char adcGet(char chan) { ADMUX = 0x60 | chan; ADCSRA |= 0x40; while(bit_is_clear(ADCSRA, ADIF)); ADCH zurückgeben; } char adcAvg(char chan, char avgnum) // Nur bis zu 256 Samples mitteln { int i = 0; unsigned int total = 0; for (i = 0; i < avgnum; i ++) { gesamt + = adcGet (chan); } Gesamt/Durchschn. zurückgeben; } int main () { initMatrix (); adcInit(); while(1) { while(adcAvg(3, 50) > 0x45 & adcAvg(2, 50) > 0x70) // Die Hex-Werte hier sollten je nach Benutzereinstellung geändert werden, um die Empfindlichkeit der Flexsensoren zu bestimmen. { if (adcAvg (1, 50) > 0x4F) { MatrixRight(); aufrechtzuerhalten. Wenn (adcAvg (1, 100) < 0x4F) { MatrixLeft (50); } } } Rückgabe 0; } Besonderer Dank gilt den Chamberlains, meinen Eltern und Freunden, die geholfen haben.

Finalist beim Homemade Holidays Contest

Empfohlen: