Mục lục:

Đèn tín hiệu xe đạp tay: 10 bước (có hình ảnh)
Đèn tín hiệu xe đạp tay: 10 bước (có hình ảnh)

Video: Đèn tín hiệu xe đạp tay: 10 bước (có hình ảnh)

Video: Đèn tín hiệu xe đạp tay: 10 bước (có hình ảnh)
Video: Bị ô tô tông nguy kịch vì chạy xe đạp lạng lách, đánh võng giữa ngã tư 2024, Tháng mười một
Anonim
Đèn tín hiệu xe đạp tay
Đèn tín hiệu xe đạp tay

Mục tiêu của dự án này là tạo ra một ánh sáng phù hợp với găng tay xe đạp và hướng theo hướng rẽ dự định, để tăng khả năng quan sát vào ban đêm. Nó phải nhẹ, dễ sử dụng và được tích hợp với các chuyển động hiện có để phát tín hiệu (điều chỉnh tối thiểu phương thức tín hiệu (bạn không phải nhấn nút, nó chỉ hoạt động khi bạn phát tín hiệu)). Điều này sẽ làm cho một món quà kỳ nghỉ tuyệt vời.

Lưu ý: Điều này đòi hỏi kiến thức trước đó về cách hàn và ý tưởng về cách lập trình AVR là một điểm cộng lớn. Với ý nghĩ đó, hãy vui vẻ, kiên nhẫn và đăng ảnh sản phẩm của bạn bên dưới! Đây là một video: Và đây là một hình ảnh của tôi:

Bước 1: Các bộ phận

Các bộ phận
Các bộ phận

x1 ATmega 32L 8PU (www.digikey.com) x1 ổ cắm DIP 40 chân (www.digikey.com) x1 8x8 LED Array (www.sparkfun.com) x1 74138 De-multiplexer (www.digikey.com) x2 Flex Sensors (www.sparkfun.com) x (Nhiều) Điện trở 180 ohm và 10k ohmx2 PC Board (www.sparkfun.com) x6 Standoffs (www.sparkfun.com) và vít để lắp (Cửa hàng phần cứng cục bộ) x1 Gia tốc kế trên bảng breakout (www.sparkfun.com) x2 Tiêu đề - Nam (www.sparkfun.com), Nữ (www.sparkfun.com) và Góc phải (www.sparkfun.com) x1 LM7805 (www.digikey.com) x2 8 chân cắm (Tôi nhận được của tôi tại Radio Shack) x1 pin 9vx1 chân dán velcrox1 găng tay xe đạp có ngón đầy đủx1 ống polyester threadx1 Bộ lập trình (tôi có cái này) x1 Bộ rút dây và đồng hồ vạn năng clipx1Một số bộ phận:

Bước 2: Chuẩn bị bảng

Chuẩn bị các bảng
Chuẩn bị các bảng
Chuẩn bị các bảng
Chuẩn bị các bảng
Chuẩn bị các bảng
Chuẩn bị các bảng
Chuẩn bị các bảng
Chuẩn bị các bảng

Đầu tiên, thêm các điểm dừng. Bạn sẽ phải bắt vít hai với nhau để có được chiều cao thích hợp. Đảm bảo rằng giá đỡ giảm dần từ bên cạnh với miếng đệm SQUARE. Bằng cách này, bạn có thể kết nối các miếng đệm với chất hàn ở phía dưới và cầu nối với miếng đệm chung ở phía trên để kết nối với đất. Tiếp theo, thêm mảng LED và hàn nó vào. Nó phải xa đến mép của bảng với hai thanh chắn nhất có thể với YS hướng về phía đối diện. Chân ở phía dưới bên trái là chân 1. (Nó cũng được đánh dấu trên hình.) Tiếp theo, thêm hai ổ cắm 8 chân lần lượt lên trên nhau để tạo thành một ổ cắm 16 chân. Đảm bảo có một khoảng trống ở bên trái và sau đó hàn vào. Tiếp theo, chia các tiêu đề nam và nữ thành các phần ghim 10 và 11. Bạn sẽ cần gấp đôi số tiêu đề nữ. Hàn những cái trong như đã thấy trong ảnh. Đối với các tiêu đề nam, bạn cần phải dịch chuyển chốt sao cho số lượng của chúng bằng nhau trên mỗi mặt của miếng nhựa. Dễ dàng nhất là nhìn vào hình ảnh để biết ý tôi là gì, vì vậy hãy xem # 6. Tôi đã sử dụng một số kìm và nó hoạt động khá tốt. Bây giờ nếu bạn lấy các tiêu đề nam và đặt chúng vào giữa 2 tiêu đề nữ, bạn sẽ thấy rằng chúng hiện có kích thước phù hợp để kết nối bảng trên và dưới với nhau.

Bước 3: Thêm điện trở

Thêm điện trở
Thêm điện trở
Thêm điện trở
Thêm điện trở
Thêm điện trở
Thêm điện trở

Các điện trở này đi giữa mảng LED và 74138 (Mặt đất) để bảo vệ mảng. Gấp một trong các dây dẫn từ điện trở lên trên để hai dây dẫn song song. Lắp chúng vào các chân 7, 9, 10, 11, 12, 13, 14, 15 và hàn. Tôi thấy rằng nó hoạt động tốt nhất nếu bạn thay đổi hướng của điện trở như bạn có thể thấy trong hình thứ hai và thứ ba.

Bước 4: Dây đầu

Dây đầu
Dây đầu
Dây đầu
Dây đầu
Dây đầu
Dây đầu
Dây đầu
Dây đầu

Đây là bước dài nhất của dự án vì vậy tôi chắc chắn hy vọng bạn thích hàn! Chỉ cần làm theo sơ đồ bên dưới và đảm bảo kiểm tra tính liên tục với đồng hồ vạn năng của bạn. Trong trường hợp bạn muốn biết làm thế nào tôi đến với chúng tôi với sơ đồ xem biểu dữ liệu cho mảng và 74138.

Bước 5: Điền phần dưới cùng

Điền vào dưới cùng
Điền vào dưới cùng
Điền vào dưới cùng
Điền vào dưới cùng
Điền vào dưới cùng
Điền vào dưới cùng
Điền vào dưới cùng
Điền vào dưới cùng

Bây giờ đã đến lúc đặt các thành phần cơ bản của chúng ta trên bảng dưới cùng. Đầu tiên, chúng ta sẽ làm ổ cắm DIP 40 chân, đi gần phía trên cùng bên trái nhất có thể trong khi để lại một hàng không gian ở phía bên trái. (Xem hình # 1.) Hàn nó vào và sau đó đặt các tiêu đề. Cách dễ nhất để làm điều này là kết nối những cái ở trên cùng với những cái sẽ ở dưới cùng bằng cách sử dụng tiêu đề nam đã sửa đổi của bạn. Nếu bạn đã làm đúng mọi thứ, bạn sẽ kết thúc với ba chân trên cùng trên tiêu đề bên trái bên cạnh các chân dưới cùng bên phải trên ổ cắm. Điều này là OK. Chúng tôi chỉ sử dụng chốt dưới cùng bên phải và như bạn có thể thấy, chúng tôi có một bức ảnh rõ ràng về nó từ một hướng khác. Bây giờ thêm bộ điều chỉnh điện áp như trong hình. Tôi đã cố định mỏ qua lỗ trên tấm tản nhiệt kim loại bằng vít và đai ốc. Tản nhiệt là một cách khác để nối đất cho chip và bắt vít vào bo mạch giúp tiếp xúc chắc chắn với kết nối chung. Điều này được kết nối với phía dưới cũng như phía trên vì cả hai được kết nối với các chân đế kim loại. Tuy nhiên, nếu bạn không sử dụng kết nối chung cho mặt đất, ĐỪNG bắt vít tản nhiệt vào bo mạch vì tản nhiệt đóng vai trò như mặt đất và bạn có thể sẽ bị đoản mạch một cái gì đó. Dây tiếp theo trong kẹp pin. Màu đỏ đi vào chân bên trái (Với bộ tản nhiệt lên và chân cắm xuống) màu đen ở giữa và chân bên phải tạo ra + 5v. Bây giờ bạn có thể nối dây nguồn lên trên cùng (xem hình # 2). Bây giờ cho trình kết nối lập trình viên. Tôi có một bộ điều hợp mà tôi đã làm cho lập trình viên của mình nhưng có thể bạn sẽ muốn kết hợp tiêu đề 6 pin (3x2) vào thiết kế của mình. Tuy nhiên, nếu bạn có một bộ điều hợp như tôi, đây là những gì tôi đã làm. Tôi chụp một tiêu đề góc bên phải và một tiêu đề nữ rồi hàn chúng lại với nhau (Hình # 3). Sau đó, tôi gắn nó vào bo mạch với chân đầu tiên kết nối với chân 6. Bây giờ bạn cần cấp nguồn và nối đất cho chip cũng như đấu dây trong một điện trở để kéo thiết lập lại cao. Tôi chạy một điện trở 10k từ chân 9 đến chân 10 và sau đó kết nối chân 10 với + 5v. Chân tiếp theo (11) đi đến kết nối chung (Ground). Cuối cùng nhìn vào hình số 4 để kết thúc bước này (Nó khá tự giải thích).

Bước 6: Nối dây phía dưới

Dây dưới đáy
Dây dưới đáy
Dây dưới đáy
Dây dưới đáy
Dây dưới đáy
Dây dưới đáy

Hãy nhớ rằng bước thực sự thú vị, nơi bạn phải chạy hơn 30 dây để có được một mảng LED hoạt động? Bây giờ bạn phải làm điều đó một lần nữa! Ở phía dưới !. Cái này nhanh hơn một chút nhưng không nhiều. Một lần nữa, hãy xem sơ đồ và kiểm tra tất cả các kết nối bằng đồng hồ vạn năng của bạn. Đừng lo lắng, đây là phần hàn lớn cuối cùng của dự án và bạn sắp hoàn thành.

Bước 7: Cảm biến Flex và Gia tốc kế

Cảm biến Flex và Gia tốc kế
Cảm biến Flex và Gia tốc kế
Cảm biến Flex và Gia tốc kế
Cảm biến Flex và Gia tốc kế
Cảm biến Flex và Gia tốc kế
Cảm biến Flex và Gia tốc kế

Trước tiên, chúng tôi sẽ giải quyết các cảm biến flex nhưng bạn đang ở trong nhà cho đến khi phần cứng phát triển. Tôi nghĩ rằng những hình ảnh dưới đây giải thích khá nhiều việc phải làm. Kết nối một chân với + 5v chân kia với chân thứ ba hoặc thứ tư từ trên cùng bên phải của AVR (Bộ vi điều khiển ở trung tâm của dự án này). Khi tôi lần đầu tiên kết hợp điều này với nhau, tôi nghĩ đó là tất cả những gì tôi cần làm nhưng hóa ra để AVR đọc các cảm biến flex, bạn cần đặt một điện trở từ chân trên cảm biến đến AVR để nối đất (Xem ảnh # 10 và 11). Tôi đã sử dụng một 10k. Điều này chia điện áp đi đến AVR thực tế làm tăng gấp đôi độ nhạy của cảm biến. Bây giờ cho gia tốc kế. Bởi vì gia tốc kế chỉ cao hơn một sợi tóc so với khoảng cách giữa hai bảng và vì chúng tôi có thể muốn thay thế nó vào một ngày nào đó, tôi đã quyết định sử dụng các tiêu đề để đẩy nó ra khỏi bảng và kết nối nó. Sử dụng đầu cắm góc vuông để kết nối với 6 chân trên bảng đột phá. Bây giờ lấy một tiêu đề góc phải khác và hàn một tiêu đề cái vào các chân ngắn sau đó hàn tiêu đề này vào phía dưới bên trái của bảng mạch của bạn. Cắm máy đo gia tốc để đảm bảo nó vừa vặn, rút phích cắm và sau đó kết nối các chân thích hợp với Vcc (+ 5v) và Gnd. Sau đó, kết nối đầu ra chân X với chân 40 và Y với chân 39. Bây giờ bạn nên thiết lập để thêm IC (Mạch tích hợp) và bật nguồn.

Ngày 26 tháng 12 năm 2009: Tôi phát hiện ra rằng cách tôi lắp cảm biến uốn cong ngón trỏ đã khiến vật liệu kết nối cảm biến với các chân bị giảm chất lượng. Kể từ đó, tôi đã mua một bộ cảm biến thay thế và dán một miếng nhựa mỏng vào bộ cảm biến để ngăn khu vực này bị uốn cong nhiều nhất. Tôi đã gắn thẻ vị trí trong bức ảnh dưới đây.

Bước 8: Thêm IC và chương trình đầu tiên

Thêm IC và chương trình đầu tiên
Thêm IC và chương trình đầu tiên
Thêm IC và chương trình đầu tiên
Thêm IC và chương trình đầu tiên
Thêm IC và chương trình đầu tiên
Thêm IC và chương trình đầu tiên
Thêm IC và chương trình đầu tiên
Thêm IC và chương trình đầu tiên

Đây là xác suất bước đơn giản nhất của toàn bộ quá trình. Một lần nữa hình ảnh giúp đỡ. Đảm bảo rằng bạn có các chip theo đúng cách như được giải thích trong hình # 3. Đầu tiên tôi sẽ kết nối nguồn điện mà không có gì được kết nối và chạm vào tản nhiệt trên bộ điều chỉnh điện áp. Nếu trời nóng thì có gì đó đang bị chập và bạn cần quay lại và kiểm tra các kết nối của mình. Tiếp tục theo cách này, thêm từng con chip một, cảm nhận nhiệt và khi mọi thứ đã vào đúng vị trí, hãy siết chặt các đai ốc trên bo mạch phía dưới để hai bo mạch được gắn chặt với nhau. Tiếp theo, bạn sẽ lập trình AVR. Nếu bạn chưa bao giờ làm điều này trước đây, một tìm kiếm nhanh trên google sẽ mang lại rất nhiều kết quả. Nếu tôi là bạn, tôi sẽ đặt AVR của mình trên một breadboard và lập trình trên đó trước khi bạn thử nó trong công việc khó khăn của mình. Tôi đã viết một chương trình đơn giản để xuất thông tin nhận được từ các cảm biến flex tới mảng LED. Điều này sẽ cung cấp cho bạn một ý tưởng cơ bản về những gì đang và không hoạt động trong mạch của bạn. Đây là video về mã đang hoạt động …… và đây là mã: #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 (); trong khi (1) {ADMUX = 0b01100011; ADCSRA | = 0b01000000; while (bit_is_clear (ADCSRA, ADIF)); PORTA = 0b00000000; PORTD = 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; }}

Bước 9: Gắn Circut của bạn vào găng tay

Gắn Circut của bạn vào găng tay
Gắn Circut của bạn vào găng tay
Gắn Circut của bạn vào găng tay
Gắn Circut của bạn vào găng tay
Gắn Circut của bạn vào găng tay
Gắn Circut của bạn vào găng tay

Tôi nghĩ rằng có nhiều cách để gắn mạch điện của bạn vào tay bạn và trong một thời gian tôi nghĩ rằng tôi sẽ để nó cho người đọc nhưng sau đó quyết định rằng hướng dẫn sẽ không hoàn chỉnh nếu không đóng lại. Tôi đã đến cửa hàng xe đạp địa phương của mình và đã nhận được chiếc găng tay đủ ngón rẻ nhất mà tôi có thể tìm thấy. Đầy đủ ngón tay là cần thiết vì nếu không bạn không thể gắn các cảm biến flex tốt. Sau đó, tôi đến một cửa hàng vải và mua một số sợi polyester và khóa dán dính. Tôi đeo găng tay vào và đặt mạch trên tay. Một phần của định vị là sự thoải mái nhưng một phần khác là các cảm biến linh hoạt. Họ sẽ đi xuống giữa hai ngón tay. Tôi khâu các vòng dây quanh ba chân đế để giữ bo mạch chính trên (Xem hình # 2) và sau đó thực hiện các vòng dây lỏng 3/4 theo chiều xuống mỗi ngón tay cảm biến flex (# 3 và 4). Hãy chắc chắn rằng bạn không may găng tay của bạn bị đóng lại. Tiếp theo, tôi dán một miếng khóa dán vào bên cạnh ngón tay cái để giữ pin. Tôi đã phát hiện ra sau khi thử nghiệm rằng việc may cái này cũng rất hiệu quả vì chiếc gậy không kéo dài quá lâu. Tiếp theo, tôi đặt một vòng khóa dán xung quanh 9v (Hình 5). Thiết lập này có vẻ hoạt động khá tốt. Như bạn thấy trong các hình ảnh ở trang trình bày đầu tiên và cuối cùng, bây giờ tôi đã thêm tay áo cho cảm biến flex nhưng nếu bạn không có thời gian, các vòng lặp sẽ ổn. phía dưới. Tôi rất muốn xem bạn đã nghĩ ra gì để gắn mạch!

Bước 10: Mã thực

Mã thực
Mã thực

Cảm ơn vì đã mang theo tôi cho đến nay. Xin lưu ý rằng mã của tôi không hoàn hảo. Tôi nhận thấy rằng cần một chút học hỏi để tín hiệu hoạt động bình thường. Tôi sẽ tiếp tục cố gắng hoàn thiện hệ thống của mình và sẽ cập nhật mã mới cho trang này sau khi tôi viết nó. Ngày 26 tháng 12 năm 2009: MÃ MỚI! Nó được đăng ở nơi mã cũ. Rất cảm ơn Jacob vì sự đơn giản hóa. Nó thực sự hoạt động tốt. Nó đây. Cảm ơn vì đã đọc và đừng quên bình chọn! #include #include #include // Đặt hoặc Xóa các bit trong thanh ghi #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 <độ trễ) {x ++; }} void initMatrix () {DDRD = 0xFF; // Điều khiển xanh DDRB = 0xFF; // Điều khiển màu đỏ DDRA = 0xE0; // Điều khiển mặt đất} void matrixRowDraw (char greenmask, char redmask, char column) {matrixX (column); int i = 0; for (i = 0; i <8; i ++) {matrixGY (greenmask & (1 << i)); matrixRY (mặt nạ đỏ & (1 << i)); _delay_us (150); } ma trậnGY (0x00); ma trậnRY (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 thanh; ADCSRA | = 0x40; while (bit_is_clear (ADCSRA, ADIF)); trả về ADCH; } char adcAvg (char chan, char avgnum) // Chỉ lấy trung bình tối đa 256 mẫu {int i = 0; unsigned int total = 0; for (i = 0; i <avgnum; i ++) {total + = adcGet (chan); } trả về tổng số / avgnum; } int main () {initMatrix (); adcInit (); while (1) {while (adcAvg (3, 50)> 0x45 & adcAvg (2, 50)> 0x70) // Giá trị hex ở đây sẽ được thay đổi tùy thuộc vào người dùng thiết lập để xác định độ nhạy của cảm biến flex. {if (adcAvg (1, 50)> 0x4F) {matrixRight (); } if (adcAvg (1, 100) <0x4F) {matrixLeft (50); }}} trả về 0; } Đặc biệt cảm ơn Chamberlains, cha mẹ và bạn bè của tôi, những người đã giúp đỡ.

Lọt vào vòng chung kết cuộc thi Những ngày nghỉ tự làm

Đề xuất: