Mục lục:

Radar ngoại vi cho người khiếm thị: 14 bước
Radar ngoại vi cho người khiếm thị: 14 bước

Video: Radar ngoại vi cho người khiếm thị: 14 bước

Video: Radar ngoại vi cho người khiếm thị: 14 bước
Video: Cách Nói Chuyện Được Người Khác TÔN TRỌNG | Nghệ thuật giao tiếp 2024, Tháng mười một
Anonim
Radar ngoại vi cho người khiếm thị
Radar ngoại vi cho người khiếm thị

Hậu quả của một vụ tai nạn kinh hoàng, một người bạn của tôi gần đây đã bị mất thị lực bên mắt phải. Anh ấy đã không còn làm việc trong một thời gian dài và khi trở lại, anh ấy nói với tôi rằng một trong những điều đáng kinh ngạc nhất mà anh ấy phải đối phó là thiếu hiểu biết về những gì ở bên phải của mình. Tầm nhìn xa hơn có nghĩa là va chạm vào mọi thứ và con người. Điều này làm phiền tôi. Tôi quyết định phải có một cái gì đó chúng ta có thể làm.

Tôi muốn chế tạo một thiết bị có thể đo khoảng cách tới các vật thể ở phía bên phải của bạn tôi. Kế hoạch của tôi là sử dụng một động cơ xúc giác để làm rung thiết bị tỷ lệ nghịch với khoảng cách tới một vật thể. Sau đó, nếu các vật ở xa thì động cơ sẽ không dao động và khi một vật ở gần hơn, nó sẽ bắt đầu dao động ở mức thấp. Nếu đối tượng ở gần, nó sẽ rung ở mức cao hơn nhiều (hoặc bất kỳ mức nào bạn muốn). Thiết bị sẽ phải đủ nhỏ để treo vào mặt kính với cảm biến hướng sang bên phải. Bạn tôi sẽ đặt thiết bị ở bên phải kính của anh ấy nhưng tất nhiên đối với người khác, nó có thể là bên trái.

Tôi nhớ rằng tôi có một số cảm biến khoảng cách âm thanh ở nhà. Tuy nhiên, chúng hơi to và cồng kềnh, kém chính xác và có thể quá nặng để sử dụng trên kính. Tôi bắt đầu tìm kiếm thứ khác.

Những gì tôi tìm thấy là cảm biến Thời gian bay của ST Electronics VL53L0X. Đây là một máy dò tia hồng ngoại và tia hồng ngoại trong một gói duy nhất. Nó phát ra một xung ánh sáng laser bên ngoài phạm vi con người có thể nhìn thấy (940 nm) và ghi lại thời gian đã trôi qua để phát hiện xung phản xạ. Nó chia thời gian này cho 2 và nhân với tốc độ ánh sáng tạo ra khoảng cách rất chính xác tính bằng milimét. Cảm biến có thể phát hiện khoảng cách đến 2 mét nhưng như tôi đã thấy, 1 mét là tối ưu hơn.

Khi nó xảy ra, Adafruit có một bảng đột phá VL53L0X. Vì vậy, tôi cần một động cơ rung, cái mà họ cũng có, và một bộ vi điều khiển để chạy tất cả. Tôi tình cờ có PJRC Teensy 3.2 trên tay. Trong khi lớn hơn tôi muốn, nó có khả năng được tăng tốc ở tốc độ chậm. Tôi muốn giảm tốc độ đồng hồ để tiết kiệm năng lượng. Và liên quan đến nguồn điện, tôi đã có một bộ điều chỉnh tăng cường Sparkfun trong hộp rác của mình cùng với một giá đỡ pin AAA. Tôi đã có tất cả mọi thứ tôi cần.

Bước 1: Nguyên mẫu đầu tiên

Nguyên mẫu đầu tiên
Nguyên mẫu đầu tiên
Nguyên mẫu đầu tiên
Nguyên mẫu đầu tiên

Tôi lấy các bộ phận có trong tay và tạo một nguyên mẫu cầm tay của thiết bị mà tôi đã hình dung. Tôi in 3D tay cầm và tấm gắn và hàn tất cả các thiết bị điện tử lên một bảng mạch Adafruit. Tôi kết nối động cơ rung với Teensy thông qua một bóng bán dẫn 2N3904 NPN. Tôi đã thêm một chiết áp được sử dụng để đặt khoảng cách tối đa mà thiết bị sẽ phản hồi.

Tôi đã có nó chạy vào cuối tuần tới (xem hình trên). Nó không đẹp nhưng nó thể hiện nguyên tắc. Bạn của tôi có thể cầm thiết bị ở bên tay phải và kiểm tra xem thiết bị có hữu ích hay không và giúp tinh chỉnh những gì anh ấy muốn cho các tính năng.

Bước 2: Nguyên mẫu số 2

Nguyên mẫu 2
Nguyên mẫu 2
Nguyên mẫu 2
Nguyên mẫu 2
Nguyên mẫu 2
Nguyên mẫu 2

Sau nguyên mẫu cầm tay đầu tiên, tôi bắt đầu làm một phiên bản nhỏ hơn. Tôi muốn tiến gần hơn đến mục tiêu tạo ra thứ gì đó có thể vừa với kính. Teensy tôi sử dụng trên phiên bản cầm tay cho phép tôi làm chậm đồng hồ để tiết kiệm năng lượng. Nhưng kích thước sẽ là một yếu tố và vì vậy tôi đã chuyển sang Adafruit Trinket M0. Trong khi tốc độ xung nhịp của nó là 48 MHz, bộ xử lý ARM mà nó dựa trên có thể có tốc độ chậm hơn. Bằng cách sử dụng bộ dao động RC bên trong, nó có thể chạy ở 8, 4 2 và thậm chí 1 MHz.

Nguyên mẫu số 2 đến với nhau khá nhanh vì tôi đã có tất cả vào cuối tuần sau. Mạch giống như nguyên mẫu số 1 ngoại trừ ARM M0. Tôi 3D đã in một vỏ bọc nhỏ và đặt các hướng dẫn ở mặt sau để nó có thể trượt vào kính. Xem hình trên. Ban đầu nó được chạy ở tốc độ 48 MHz.

Bước 3: Nguyên mẫu # 3

Nguyên mẫu # 3
Nguyên mẫu # 3

Vì vậy, có thể hướng dẫn này thực sự bắt đầu ở đây. Tôi quyết định làm một nguyên mẫu cuối cùng. Tôi quyết định ép nó nhỏ nhất có thể để sử dụng PWB tùy chỉnh (đó là nơi tôi chắc chắn rằng chúng tôi đang hướng tới). Phần còn lại của Tài liệu hướng dẫn này sẽ hướng dẫn bạn cách tạo một tài liệu. Cũng giống như những người làm bàn tay in 3D cho trẻ em khuyết tật, tôi hy vọng rằng mọi người sẽ làm những bàn tay này cho những người bị mất thị lực tương tự ở một mắt.

Tôi giữ danh sách các bộ phận giống như nguyên mẫu số 2 nhưng tôi quyết định loại bỏ chiết áp. Sau khi nói chuyện với người bạn của tôi, chúng tôi quyết định đặt khoảng cách tối đa bằng phần mềm. Vì tôi có khả năng sử dụng cảm biến cảm ứng bằng Teensy, chúng tôi luôn có thể đặt khoảng cách tối đa bằng cách chạm. Một lần chạm đặt khoảng cách ngắn hoặc nhiều lần chạm vào khoảng cách xa hơn, một lần chạm khác ở khoảng cách xa nhất và sau đó chạm thêm một lần nữa, hãy quay lại từ đầu. Nhưng lúc đầu, chúng tôi sẽ sử dụng một khoảng cách cố định để đi.

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

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

Đối với nguyên mẫu này, tôi cần một bảng nhỏ hơn. Tôi đã sử dụng bảng protoboard Sparkfun (PRT-12702) vì nó có kích thước nhỏ (khoảng 1,8 "X 1,3") sẽ là một kích thước phù hợp để chụp.

Tôi cũng cần sử dụng thứ gì đó khác ngoài pin AAA làm nguồn điện. LiPo có vẻ là lựa chọn phù hợp vì nó sẽ có dung lượng lưu trữ và trọng lượng nhẹ. Tôi đã thử một tế bào tiền xu nhưng nó không có đủ sức mạnh để xử lý động cơ trong thời gian dài. Tôi đã chọn một LiPo nhỏ có dung lượng 150 mAH.

Tôi sẽ ở lại với Trinket M0 và tất nhiên, bảng đột phá VL53L0X.

Bây giờ chúng ta đã đi vào chi tiết, đây là danh sách các bộ phận của nguyên mẫu này:

Adafruit VL53L0X Cảm biến khoảng cách bay - ID SẢN PHẨM: 3317 Adafruit - Đĩa động cơ mini rung - ID SẢN PHẨM: 1201 Adafruit - Pin Lithium Ion Polymer - 3.7v 150mAh - ID SẢN PHẨM: 1317 SparkFun - Bảng mạch hàn - Mini - PRT-12702 Sparkfun - JST Right-Angle Connector - Through-Hole 2-Pin - PRT-09749 Điện trở 10K ohm - Junkbox (tìm trên sàn của bạn) Bóng bán dẫn NPN 2N3904 - Junkbox (hoặc gọi điện thoại cho bạn bè) Một số dây nối (tôi đã sử dụng dây 22 gauge)

Để sạc pin LiPo, tôi cũng đã múc:

Adafruit - Micro Lipo - Bộ sạc USB LiIon / LiPoly - v1 - ID SẢN PHẨM: 1304

Bước 5: Sơ đồ

Sơ đồ
Sơ đồ

Sơ đồ cho thiết bị này được hiển thị ở trên. Đầu vào cảm ứng sẽ dành cho phiên bản trong tương lai nhưng dù sao nó cũng được hiển thị trong sơ đồ. Ngoài ra, điện trở 10K giữa Trinket M0 và đế của 2N3904 cung cấp cơ sở vừa đủ để bật động cơ mà không đóng sầm nó quá mạnh.

Sau đây là mô tả lắp ráp từng bước.

Bước 6: Protoboard

Protoboard
Protoboard

Nhiều người trong số các bạn có kinh nghiệm biết điều này nhưng, điều này dành cho những người có thể chưa quen với hàn protoboard:

Bảng protoboard Sparkfun (PRT-12702) được hiển thị ở trên có 17 cột (nhóm) 5 chân ở mỗi bên của ba phần mười của khoảng cách inch. Mỗi cột dọc gồm 5 chốt ở hai bên của khoảng trống là chung cho nhau. Bởi điều này, ý tôi là bất kỳ kết nối nào đến một chân trong nhóm đều là kết nối với mọi chân khác trong nhóm. Đối với bảng này, điều đó có vẻ không rõ ràng nhưng bạn có thể xác minh điều này nếu bạn sử dụng DVM (Digital Volt Meter). Nếu bạn nhìn vào mặt sau, bạn chỉ có thể tìm ra dấu vết kết nối các nhóm.

Bước 7: Vị trí thành phần

Vị trí thành phần
Vị trí thành phần
Vị trí thành phần
Vị trí thành phần

Bạn có thể phải hàn các dải ghim vào cả Trinket M0 và VL53L0X. Cả hai đều đi kèm với các dải nhưng chúng cần được hàn. Adafruit có hướng dẫn trong Trung tâm Kiến thức của họ cho cả hai phần này. Nếu bạn chưa quen với điều này, vui lòng đến đó (đây và đây) trước khi hàn các dải vào bảng. Các dải pin cung cấp một cấu hình thấp hơn so với một ổ cắm.

Điều đầu tiên cần xem xét khi hàn một thứ gì đó lên một bảng mạch điện có không gian hạn chế là vị trí các thành phần. Tôi đã đặt Trinket và VL53L0X ở các vị trí như trong hình trên. Trinket có chân trên cả hai cạnh của bảng nhưng VL53L0X có 7 chân tất cả trên một cạnh của bảng. Mặt bên của VL53L0X không có chân mà chúng ta sẽ sử dụng để kết nối một số thành phần… như chúng ta sẽ thấy.

Tôi cũng hàn công tắc trượt vào vị trí và tôi đã hàn 2N3904. Tôi đã làm tối các lỗ nơi các bộ phận đó được đặt và, đối với 2N3904, tôi đã lưu ý các chân nào là Bộ thu, Đế và Bộ phát. Khi mới hàn bạn nên để nó vuông góc với bo mạch để có thể hàn các mối nối khác. Sau đó, bạn sẽ có thể uốn cong nó lại (cẩn thận) để nó gần bằng phẳng hơn với bảng.

LƯU Ý: JST Battery Breakout KHÔNG được hàn vào bo mạch tại thời điểm này. Nó sẽ được hàn vào mặt sau của bảng nhưng chỉ SAU KHI chúng tôi hàn các kết nối khác của mình. Nó sẽ là thứ cuối cùng chúng tôi hàn.

Bước 8: Dây

Dây điện
Dây điện

Sơ đồ trên cho thấy một lần nữa protoboard với các lỗ tối, nơi các thành phần sẽ được đặt. Tôi đã thêm các nhãn cho chúng dọc theo các cạnh để làm cho dây dễ dàng hơn. Lưu ý rằng động cơ rung được hiển thị nhưng nó sẽ nằm ở mặt sau của bảng và sẽ được kết nối gần như cuối cùng nên bây giờ, hãy bỏ qua nó. Tôi cũng hiển thị JST Battery Breakout với một đường gạch ngang. Như đã xác định ở bước trước, không kết nối nó nhưng hãy để hở 4 lỗ ở trên cùng của bảng (tức là không hàn vào chúng).

Tại thời điểm này, tôi giả sử rằng bạn đã biết cách tách lớp cách điện khỏi dây dẫn, hàn các đầu bằng thuốc hàn và hàn vào bảng. Nếu không, vui lòng đi xem một trong các Tài liệu hướng dẫn về hàn.

Đối với bước này, hàn dây như hình minh họa màu vàng. Các điểm cuối là các lỗ mà bạn nên hàn chúng vào. Bạn cũng nên hàn điện trở 10K ohm vào bảng như hình. Các kết nối đang được thực hiện là:

1. Kết nối từ cực dương của pin đến cực COMmon (giữa) của công tắc trượt. Một bên của công tắc trượt sẽ tiếp xúc với đầu vào BAT tới Trinket. Bộ điều chỉnh trên bo mạch của Trinket tạo ra 3,3V từ điện áp đầu vào BAT.

2. Một kết nối từ cực âm của pin (nối đất) với mặt đất của Trinket.

3. Kết nối từ cực âm (đất) của pin đến cực phát của 2N3904

4. Kết nối từ chân 3,3 volt (3V) của Trinket đến VIN của VL53L0X. VL53L0X sẽ điều chỉnh thêm điều này đến 2,8 volt để sử dụng riêng. Nó cũng đưa điện áp này ra một chân nhưng chúng ta không cần nó nên nó sẽ không được kết nối.

Bước 9: Thêm dây

Thêm dây
Thêm dây

Vì vậy, bây giờ chúng ta thêm nhóm dây tiếp theo như hình trên. Đây là danh sách của từng kết nối:

1. Kết nối từ chân Trinket có nhãn là 2 đến chân VL53L0X SCL. Đây là tín hiệu đồng hồ I2C. Giao thức nối tiếp I2C là thứ được Trinket sử dụng để giao tiếp với VL53L0X.

2. Một kết nối từ chân Trinket có nhãn là 0 (không) đến chânVL53L0X SDA. Đây là tín hiệu dữ liệu I2C.

3. Một kết nối từ chân VL53L0X GND qua khoảng trống trên bảng mạch tới Bộ phát của 2N3904. Điều này cung cấp nền tảng cho VL53L0X.

4. Một kết nối từ chân của Trinket có nhãn là 4 đến điện trở 10K. Đây là bộ truyền động cho động cơ rung. Dây này chắc chắn phải được hàn vào mặt sau của bảng nếu bạn chọn điểm kết nối của tôi.

Hãy nhớ rằng, bất kỳ nhóm 5 chân nào theo chiều dọc đều chung với nhau nên bạn có thể kết nối bất kỳ đâu trong nhóm này một cách thuận tiện. Bạn sẽ nhận thấy trong các bức ảnh chụp bảng của tôi, tôi đã thay đổi một vài điểm kết nối của mình. Miễn là chúng là kết nối chính xác, thì bạn chọn miếng đệm nào cũng được.

Bước 10: Động cơ rung

Động cơ rung
Động cơ rung

Động cơ rung đi kèm với một miếng dán có thể peal ở mặt sau. Bạn kéo nó ra để lộ một vật liệu dính cho phép gắn động cơ vào mặt sau của bo mạch (nhưng, hãy xem bình luận bên dưới trước khi bạn dán nó). Tôi đã đặt nó ở bên trái (nhìn vào mặt sau của bảng) của bảng JST Battery Breakout mà chúng tôi chưa gắn vào. Vì vậy, hãy để lại một số không gian cho bảng JST Battery Breakout. Tôi cũng muốn đảm bảo rằng vỏ kim loại của động cơ không làm ngắn bất kỳ chân nào trên khoảng trống của bảng mạch. Vì vậy, tôi cắt một miếng băng dính hai mặt nhỏ và dán nó vào mặt sau của mặt dính của động cơ rung. Sau đó, tôi đẩy nó vào mặt sau của bảng. Nó giúp giữ cho vỏ kim loại ở trên cao và tránh xa mọi chốt. Tuy nhiên, hãy cẩn thận đặt nó theo cách KHÔNG làm ngắn bất kỳ ghim nào.

Hàn dây màu đỏ của động cơ rung vào chân 3V của Trinket. Dây đen của động cơ rung được hàn vào bộ thu của 2N3904. Khi phần mềm tạo xung 2N3904 (cung cấp mức logic 1 là 3,3V), bóng bán dẫn sẽ bật kết nối dây đen của động cơ rung với đất (hoặc gần với nó). Điều này làm cho động cơ rung.

Tôi có thể đã thêm một số điện dung tại điểm kết nối dây màu đỏ của Động cơ Rung. Nhưng có điện dung trên đường dây 3,3V của Trinket nên tôi chắc chắn rằng nó ổn nhưng nếu bạn muốn thêm một số điện dung khác, bạn có thể … miễn là bạn có thể ép nó vào. Đối với vấn đề đó, dây màu đỏ có thể được kết nối trực tiếp đến mặt tích cực của pin LiPo. Tôi chọn bên 3,3V để giữ điện áp không đổi. Cho đến nay, nó có vẻ hoạt động tốt.

Bước 11: Cuối cùng nhưng không phải là ít…

Cuối cùng nhưng không kém phần quan trọng…
Cuối cùng nhưng không kém phần quan trọng…
Cuối cùng nhưng không kém phần quan trọng…
Cuối cùng nhưng không kém phần quan trọng…

Cuối cùng, chúng tôi kết nối bảng đột phá Pin JST với mặt sau của bảng điều khiển. Tôi đã hàn các chân vào bảng và đặt bảng ngắt Pin JST với mặt trên của nó đối diện với bảng điều khiển như hình trên. Đảm bảo rằng bạn đã hàn dây cho pin dương và nối đất vào đúng chân khi bạn đặt bộ phận này. Nếu bạn sai, bạn sẽ đảo ngược cực tính cho các bộ phận và có thể phá hủy tất cả chúng. Vì vậy, xin vui lòng, kiểm tra và kiểm tra lại trước khi hàn và cắm pin.

Bước 12: Phần mềm

Phần mềm
Phần mềm

Để cài đặt và / hoặc sửa đổi phần mềm, bạn sẽ cần Arduino IDE và các tệp bảng cho Trinket M0 cũng như các thư viện cho VL53L0X. Tất cả những thứ đó là ở đây, ở đây, và ở đây.

Làm theo hướng dẫn sử dụng Adafruit M0 trên trang web học tập của họ tại đây.

Sau khi phần mềm được tải, bo mạch sẽ khởi động và chạy trên kết nối nối tiếp USB. Di chuyển mặt bên của bảng có VL53L0X gần với tường hoặc tay của bạn và bạn sẽ cảm thấy động cơ rung. Dao động sẽ có biên độ càng thấp khi vật càng cách xa thiết bị.

Một hành vi được nhìn thấy trong thiết bị được giải thích phần nào trong các nhận xét trong mã nguồn. Nhưng biểu đồ đính kèm sẽ làm cho điểm này tốt. Thiết bị không được bắt đầu rung cho đến khi cách vật thể khoảng 863 mm. Nó sẽ đạt mức độ rung tối đa khi cách vật thể 50 mm. Nếu bạn di chuyển đến gần một vật hơn 50 mm, thiết bị sẽ không tạo ra bất kỳ rung động nào hơn so với 50 mm.

Bước 13: Bao vây

Bao vây
Bao vây
Bao vây
Bao vây
Bao vây
Bao vây
Bao vây
Bao vây

Tôi đã thiết kế một bao vây và in 3D nó bằng nhựa ABS. Bạn có thể in nó bằng PLA hoặc ABS hoặc bất kỳ vật liệu nào bạn muốn. Tôi sử dụng ABS vì tôi có thể hàn các miếng axeton lên bảng nếu cần. Bo mạch do tôi thiết kế đơn giản, có một lỗ cho cổng USB trên Trinket và một lỗ cho công tắc nguồn. Tôi làm cho hai tấm bảng bắt vào nhau bằng những cánh tay nhỏ trên các mặt của hộp. Tôi không thích nó cho lắm vì vậy tôi có khả năng sẽ thay đổi nó. Tất nhiên, bạn có thể thực hiện bất kỳ thay đổi nào bạn muốn.

Ngay bây giờ đối với phiên bản này, bạn phải mở hộp để ngắt kết nối với pin LiPo để sạc lại. Nếu tôi tạo một bảng mạch cho dự án này, tôi sẽ thêm một đầu nối khác để làm cho pin có thể truy cập được mà không cần mở hộp. Có thể làm điều đó trên thiết kế protoboard này và tạo một lỗ cho đầu nối để sạc. Nếu bạn muốn thử điều này, hãy chia sẻ kết quả của bạn.

Tôi đã cố gắng thiết kế một chiếc hộp mà tôi không hoàn toàn ghét. Chúng tôi sẽ sử dụng cái này để kiểm tra hệ thống. Tôi đã đính kèm trên cùng và dưới cùng của hộp dưới dạng tệp STL cũng như dấu ngoặc nhọn / hướng dẫn mà tôi đã thêm ở dưới cùng. Tôi đã thêm một cặp thanh dẫn sử dụng axeton để hàn các bộ phận với nhau về mặt hóa học. Nếu bạn làm điều này, hãy cẩn thận. Bạn có thể xem phần lắp ráp ở trên.

Bước 14: Bây giờ là gì?

Giờ thì sao?
Giờ thì sao?

Kiểm tra lại tôi… Tôi đã già và có thể đã quên một cái gì đó hoặc làm lộn xộn. Tôi đang đọc lại và kiểm tra điều này nhưng tôi vẫn có thể bỏ sót mọi thứ. Hãy cho tôi biết bất cứ điều gì tôi đã làm / làm sai.

Và, bây giờ bạn đã xây dựng bảng Radar ngoại vi và tải nó và pin LiPo nằm trong một hộp được in 3D đẹp mắt (khi tôi hoàn thành nó hoặc, nếu bạn đã làm của riêng bạn), bạn sẽ làm gì tiếp theo? Tôi nghĩ bạn nên có kinh nghiệm về cách nó hoạt động và sửa đổi phần mềm. Thỏa thuận cấp phép trong phần mềm quy định bạn có thể sử dụng nó nhưng nếu bạn thực hiện bất kỳ thay đổi nào, bạn phải chia sẻ chúng. Tôi không nói rằng phần mềm cho dự án này phức tạp hay tuyệt vời theo một cách nào đó. Nó hoàn thành các mục tiêu nhưng vẫn còn chỗ để cải thiện. Giúp cải tiến thiết bị này và chia sẻ điều đó với tất cả chúng ta. Hãy nhớ rằng, dự án này là tất cả về việc giúp đỡ mọi người. Vì vậy, giúp đỡ!

Đề xuất: