Mục lục:

Điều khiển đèn bằng mắt: 9 bước (có hình ảnh)
Điều khiển đèn bằng mắt: 9 bước (có hình ảnh)

Video: Điều khiển đèn bằng mắt: 9 bước (có hình ảnh)

Video: Điều khiển đèn bằng mắt: 9 bước (có hình ảnh)
Video: Don't Côi - RPT Orijinn x Ronboogz (Visualizer) 2024, Tháng mười một
Anonim
Điều khiển đèn bằng mắt
Điều khiển đèn bằng mắt
Điều khiển đèn bằng mắt
Điều khiển đèn bằng mắt

Học kỳ này ở trường đại học, tôi tham gia một lớp học tên là Thiết bị đo đạc trong Y sinh, trong đó tôi đã học những kiến thức cơ bản về xử lý tín hiệu cho các ứng dụng y tế. Đối với dự án cuối cùng của lớp, nhóm của tôi đã làm việc trên công nghệ EOG (điện ảnh). Về cơ bản, các điện cực gắn vào thái dương của một người nào đó gửi sự chênh lệch điện áp (dựa trên lưỡng cực giác mạc-võng mạc) đến một mạch được thiết kế để lọc và khuếch đại tín hiệu. Tín hiệu được đưa đến bộ ADC (bộ chuyển đổi tương tự sang số - trong trường hợp của tôi là ADC của Arduino Uno) và được sử dụng để thay đổi màu sắc của viên ngọc neopixel.

Hướng dẫn này là một cách để tôi ghi lại những gì tôi đã học được và cũng chia sẻ với người đọc thông thường về cách các tín hiệu được cách ly khỏi cơ thể con người (vì vậy hãy lưu ý: nó đầy chi tiết!). Mạch này thực sự có thể được sử dụng, với một vài thay đổi nhỏ, để tạo ra xung điện của tim động cơ như một dạng sóng EKG, và nhiều hơn thế nữa! Mặc dù chắc chắn nó không ở đâu tiên tiến và hoàn thiện như những chiếc máy mà bạn tìm thấy trong bệnh viện, nhưng chiếc đèn điều khiển theo vị trí mắt này là một lựa chọn tuyệt vời cho những hiểu biết và cái nhìn sơ lược ban đầu.

Lưu ý: Tôi không phải là chuyên gia về xử lý tín hiệu nên nếu có bất kỳ lỗi nào hoặc nếu bạn có đề xuất cải thiện, vui lòng cho tôi biết! Tôi vẫn còn nhiều điều để học hỏi vì vậy bài bình luận được đánh giá cao. Ngoài ra, nhiều bài báo mà tôi tham khảo trong các liên kết xuyên suốt hướng dẫn này yêu cầu quyền truy cập học thuật mà tôi được phép của trường đại học của mình; xin lỗi trước cho những người không có quyền truy cập.

Bước 1: Vật liệu

  • ván đi trước
  • điện trở (100, 1k, 10k, 33k, 1M + 0,5M)
  • tụ điện (0,1uF)
  • amp thiết bị đo (INA111 trong trường hợp của tôi, nhưng có một vài hoạt động tương đối tốt)
  • op amp (bất kỳ - tôi tình cờ có một LM324N)
  • neopixel (bất kỳ tác phẩm nào, nhưng tôi đã sử dụng một viên ngọc)
  • Pin 9V x2
  • Đầu pin 9V x2
  • điện cực gel rắn (lựa chọn điện cực được thảo luận ở bước 5)
  • chiết áp
  • dây cách điện
  • dụng cụ tuốt dây
  • mỏ hàn + thuốc hàn
  • kẹp cá sấu (có gắn dây - hàn một số vào nếu cần)
  • keo nóng (để ổn định các dây có thể bị uốn cong qua lại)
  • Arduino (khá nhiều bảng mạch hoạt động, nhưng tôi đã sử dụng Arduino Uno)

KHUYẾN NGHỊ NỔI BẬT: máy hiện sóng, đồng hồ vạn năng và máy phát chức năng. Thăm dò kết quả đầu ra của bạn thay vì chỉ dựa vào các giá trị điện trở của tôi!

Bước 2: Cơ sở sinh lý và nhu cầu về mạch

Cơ sở sinh lý và nhu cầu về mạch
Cơ sở sinh lý và nhu cầu về mạch

Tuyên bố từ chối trách nhiệm nhanh: Tôi hoàn toàn không phải là chuyên gia y tế trong lĩnh vực này, nhưng tôi đã biên soạn và đơn giản hóa những gì tôi đã học được trong lớp / từGoogling bên dưới, với các liên kết để đọc thêm nếu bạn muốn. Ngoài ra, liên kết này cho đến nay là tổng quan tốt nhất về chủ đề mà tôi tìm thấy - bao gồm các kỹ thuật thay thế.

EOG (điện quang) hoạt động trên lưỡng cực giác mạc-võng mạc. Giác mạc (phía trước mắt) tích điện dương nhẹ và võng mạc (mặt sau của mắt) tích điện âm nhẹ. Khi bạn đặt điện cực lên thái dương và tiếp đất mạch vào trán (giúp ổn định các chỉ số của bạn và loại bỏ một số nhiễu 60Hz), bạn có thể đo sự chênh lệch điện áp khoảng ~ 1-10mV đối với chuyển động ngang của mắt (xem hình trên). Đối với chuyển động của mắt theo phương thẳng đứng, hãy đặt các điện cực ở trên và dưới mắt của bạn. Xem bài viết này để biết cách cơ thể tương tác với điện - thông tin tuyệt vời về trở kháng của da, v.v. EOG thường được sử dụng để chẩn đoán các bệnh nhãn khoa như đục thủy tinh thể, tật khúc xạ hoặc thoái hóa điểm vàng. Ngoài ra còn có các ứng dụng trong robot điều khiển bằng mắt, trong đó các tác vụ đơn giản có thể được thực hiện chỉ bằng một cái nháy mắt.

Để đọc những tín hiệu này, tức là tính toán sự chênh lệch điện áp giữa các điện cực, chúng tôi kết hợp một chip quan trọng được gọi là bộ khuếch đại thiết bị đo vào mạch của chúng tôi. Bộ khuếch đại thiết bị này bao gồm bộ theo điện áp, bộ khuếch đại không đảo ngược và bộ khuếch đại vi sai. Nếu bạn không biết nhiều về op amps, vui lòng đọc phần này để biết khóa học về sự cố - về cơ bản, chúng lấy điện áp đầu vào, chia tỷ lệ và xuất ra điện áp kết quả bằng cách sử dụng đường ray điện của nó. Việc tích hợp tất cả các điện trở ở giữa mỗi giai đoạn giúp chống lại sai số: thông thường các điện trở có dung sai 5-10% trong các giá trị và mạch thông thường (không được tích hợp hoàn toàn trong một amp thiết bị đo) sẽ phụ thuộc rất nhiều vào độ chính xác để có CMMR tốt (xem bước tiếp theo). Bộ theo điện áp dành cho trở kháng đầu vào cao (được thảo luận ở đoạn trên - chủ yếu để ngăn ngừa tác hại cho bệnh nhân), bộ khuếch đại không đảo ngược là để đảm bảo độ lợi cao của tín hiệu (thêm về khuếch đại ở bước tiếp theo) và bộ khuếch đại vi sai có sự khác biệt giữa các đầu vào (trừ các giá trị từ các điện cực). Chúng được thiết kế để loại bỏ càng nhiều nhiễu / nhiễu ở chế độ phổ biến càng tốt (để biết thêm về xử lý tín hiệu, xem bước tiếp theo) đối với các tín hiệu y sinh, vốn chứa đầy các hiện vật ngoại lai.

Các điện cực phải đối mặt với một số trở kháng của da vì các mô và chất béo trên da của bạn cản trở việc đo điện áp trực tiếp, dẫn đến nhu cầu khuếch đại và lọc tín hiệu. Đây, đây, và đây là một số bài báo trong đó các nhà nghiên cứu đã cố gắng định lượng trở kháng này. Đại lượng sinh lý này thường được mô hình hóa như một điện trở 51kOhm song song với một tụ điện 47nF, mặc dù có nhiều biến thể và kết hợp. Da ở các vị trí khác nhau có thể có trở kháng khác nhau, đặc biệt khi bạn xem xét độ dày và số lượng khác nhau của các cơ lân cận. Trở kháng cũng thay đổi theo mức độ da của bạn được chuẩn bị cho các điện cực: làm sạch kỹ lưỡng bằng xà phòng và nước thường được khuyến nghị để đảm bảo độ bám dính và nhất quán tuyệt vời, thậm chí còn có các loại gel đặc biệt dành cho điện cực nếu bạn thực sự mong muốn sự hoàn hảo. Một lưu ý quan trọng là trở kháng thay đổi theo tần số (đặc tính của tụ điện), vì vậy bạn cần biết băng thông tín hiệu của mình để dự đoán trở kháng. Và có, ước tính trở kháng là quan trọng đối với khớp nhiễu - hãy xem bước sau để biết thêm thông tin về điều này.

Bước 3: Xử lý tín hiệu: Tại sao và Làm thế nào?

Xử lý tín hiệu: Tại sao và Làm thế nào?
Xử lý tín hiệu: Tại sao và Làm thế nào?

Bây giờ, tại sao bạn không thể chỉ sử dụng chênh lệch điện áp 1-10mV làm đầu ra ngay lập tức để điều khiển đèn LED? Chà, có rất nhiều lý do để lọc và khuếch đại tín hiệu:

  • Nhiều ADC (bộ chuyển đổi tương tự sang kỹ thuật số - lấy đầu vào tương tự của bạn và số hóa chúng để đọc và lưu trữ dữ liệu trên máy tính) chỉ đơn giản là không thể phát hiện những thay đổi nhỏ như vậy. Ví dụ: ADC của Arduino Uno cụ thể là ADC 10 bit với đầu ra 5V, có nghĩa là nó ánh xạ điện áp đầu vào 0-5V (các giá trị nằm ngoài phạm vi sẽ là "rail", nghĩa là các giá trị thấp hơn sẽ được đọc là 0V và các giá trị cao hơn sẽ được đọc dưới dạng 5V) thành các giá trị nguyên trong khoảng từ 0 đến 1023. 10mV rất nhỏ trong phạm vi 5V đó, vì vậy nếu bạn có thể khuếch đại tín hiệu của mình lên phạm vi 5V đầy đủ, các thay đổi nhỏ sẽ dễ dàng phát hiện hơn vì chúng sẽ bị phản ánh bởi các thay đổi định lượng lớn hơn (5mV thay đổi thành 10mV trái ngược với 2V thay đổi thành 4V). Hãy coi nó giống như một bức tranh nhỏ trên máy tính của bạn: các chi tiết có thể được xác định hoàn hảo bởi các pixel của bạn, nhưng bạn sẽ không thể phân biệt các hình dạng trừ khi bạn mở rộng hình ảnh.

    Lưu ý rằng có nhiều bit hơn cho ADC của bạn sẽ tốt hơn vì bạn có thể giảm thiểu nhiễu lượng tử hóa từ việc chuyển tín hiệu liên tục thành các giá trị số hóa, rời rạc. Để tính toán bạn cần bao nhiêu bit để giữ lại ~ 96% SNR đầu vào, hãy sử dụng N = SNR (tính bằng dB) / 6 như một quy tắc chung. Tuy nhiên, bạn cũng cần lưu ý đến ví tiền của mình: nếu bạn muốn có nhiều bit hơn, bạn cần phải sẵn sàng bỏ ra nhiều tiền hơn

  • Nhiễu và nhiễu (nhiễu = tạo tác ngẫu nhiên làm cho tín hiệu của bạn bị lởm chởm thay vì mượt mà so với nhiễu = không phải nhiễu, tạo tác hình sin từ các tín hiệu lân cận từ sóng vô tuyến, v.v.) làm ảnh hưởng đến tất cả các tín hiệu được đo từ cuộc sống hàng ngày.

    • Một trong những nổi tiếng nhất là nhiễu 60Hz (50Hz nếu bạn ở Châu Âu và không có ở Nga vì họ sử dụng DC thay vì AC cho nguồn điện đầu ra …), được gọi là tần số tiện ích từ trường điện từ AC của ổ cắm điện. Đường dây điện mang điện áp cao xoay chiều từ máy phát điện đến các khu dân cư, nơi máy biến áp hạ điện áp xuống tiêu chuẩn ~ 120V trong các ổ cắm điện của Mỹ. Điện áp xoay chiều dẫn đến nhiễu 60Hz liên tục trong môi trường xung quanh chúng ta, gây nhiễu tất cả các loại tín hiệu và cần được lọc bỏ.
    • Nhiễu tần số 60Hz thường được gọi là nhiễu chế độ chung vì nó xuất hiện trong cả hai đầu vào (+ và -) của bạn cho amps op. Bây giờ, op amps có một cái gì đó được gọi là tỷ lệ loại bỏ chế độ chung (CMRR) để giảm các yếu tố tạo tác chế độ chung, nhưng (hãy sửa cho tôi nếu tôi sai!) Điều này chủ yếu tốt cho các tiếng ồn ở chế độ thông thường (ngẫu nhiên: nhiễu thay vì phirandom: can thiệp). Để loại bỏ 60Hz, các bộ lọc bandstop có thể được sử dụng để loại bỏ nó một cách có chọn lọc khỏi phổ tần số, nhưng sau đó bạn cũng có nguy cơ loại bỏ dữ liệu thực tế. Trường hợp tốt nhất, bạn có thể sử dụng bộ lọc thông thấp để chỉ giữ dải tần số thấp hơn 60Hz, vì vậy mọi thứ có tần số cao hơn đều bị lọc bỏ. Đó là những gì tôi đã làm cho EOG: băng thông dự kiến của tín hiệu của tôi là 0-10Hz (bỏ qua chuyển động mắt nhanh - không muốn xử lý nó trong phiên bản đơn giản của chúng tôi) vì vậy tôi đã loại bỏ các tần số lớn hơn 10Hz bằng bộ lọc thông thấp.

      • 60Hz có thể làm hỏng tín hiệu của chúng ta thông qua khớp nối điện dung và khớp nối cảm ứng. Khớp nối điện dung (đọc ở đây là tụ điện) xảy ra khi không khí hoạt động như một chất điện môi cho tín hiệu AC được dẫn giữa các mạch liền kề. Khớp nối cảm ứng xuất phát từ định luật Faraday khi bạn chạy dòng điện trong từ trường. Có rất nhiều thủ thuật để vượt qua sự ghép nối: ví dụ như bạn có thể sử dụng một tấm chắn nối đất như một loại lồng Faraday. Việc xoắn / bện dây khi có thể làm giảm diện tích có thể gây nhiễu cho khớp nối cảm ứng. Việc rút ngắn dây dẫn và giảm kích thước tổng thể của mạch cũng có tác dụng tương tự vì lý do tương tự. Việc dựa vào nguồn pin cho op amp rails thay vì cắm vào ổ cắm điện cũng hữu ích vì pin cung cấp nguồn DC không có dao động hình sin. Đọc thêm ở đây!
      • Bộ lọc thông thấp cũng loại bỏ rất nhiều nhiễu, vì nhiễu ngẫu nhiên được biểu thị bằng tần số cao. Nhiều tiếng ồn là tiếng ồn trắng, có nghĩa là tiếng ồn có ở tất cả các tần số, vì vậy việc hạn chế băng thông tín hiệu càng nhiều càng tốt sẽ giúp hạn chế mức độ nhiễu đó trong tín hiệu của bạn.

        Một số bộ lọc thông thấp được gọi là bộ lọc khử răng cưa vì chúng ngăn chặn hiện tượng răng cưa: khi các hình sin được lấy mẫu dưới dạng hình sin, chúng có thể được phát hiện là một tần số khác khi đó thực sự là như vậy. Bạn nên luôn nhớ tuân theo định lý lấy mẫu của Nyquist (tín hiệu mẫu ở tần số cao hơn gấp 2 lần: cần tần số lấy mẫu> 2Hz cho sóng hình sin 1Hz dự kiến, v.v.). Trong trường hợp EOG này, tôi không phải lo lắng về Nyquist vì tín hiệu của tôi được mong đợi chủ yếu ở dải tần 10Hz và mẫu Arduino ADC của tôi ở 10kHz - đủ nhanh để bắt mọi thứ

    • Ngoài ra còn có một số thủ thuật nhỏ để loại bỏ tiếng ồn. Một là sử dụng nối đất hình sao để tất cả các phần của mạch của bạn có cùng một tham chiếu chính xác. Nếu không, phần mà một phần gọi là "đất" có thể khác với phần khác do điện trở nhỏ trong dây dẫn, điều này làm tăng thêm sự mâu thuẫn. Hàn với protoboard thay vì dính với breadboards cũng làm giảm một số tiếng ồn và tạo ra các kết nối an toàn mà bạn có thể tin tưởng thay vì chèn theo kiểu ép.

Có rất nhiều cách khác để ngăn chặn tiếng ồn và nhiễu (xem tại đây và tại đây), nhưng bạn có thể tham gia một lớp học về cách đó hoặc Google để biết thêm thông tin: hãy chuyển sang mạch thực tế!

Bước 4: Cách hoạt động của mạch

Cách thức hoạt động của mạch
Cách thức hoạt động của mạch

Đừng sợ hãi bởi sơ đồ mạch: đây là bản phân tích sơ bộ về cách mọi thứ hoạt động: (tham khảo lại bước trước để biết thêm một số giải thích)

  • Ở phía xa bên trái, chúng tôi có các điện cực. Một điện cực được gắn ở thái dương bên trái, một điện cực khác ở thái dương bên phải, và điện cực thứ ba được nối đất vào trán. Việc nối đất này ổn định tín hiệu để ít bị trôi hơn và nó cũng loại bỏ một số nhiễu 60Hz.
  • Tiếp theo là amp thiết bị đo. Quay lại hai bước để giải thích về những gì nó làm để tạo ra sự khác biệt điện áp. Phương trình thay đổi độ khuếch đại của amp nằm trên trang 7 của bảng dữ liệu [G = 1+ (50kOhm / Rg) trong đó Rg được kết nối trên chân 1 và 8 của amp]. Đối với mạch của tôi, tôi đã điều chỉnh đến mức tăng 500 bằng cách sử dụng Rg = 100Ohm.
  • Sau khi bộ khuếch đại thiết bị đo xuất ra mức chênh lệch điện áp khuếch đại 500x, có một bộ lọc thông thấp RC bậc nhất, bao gồm một điện trở R_filter và tụ điện C_filter. Bộ lọc thông thấp ngăn chặn khử răng cưa (tôi không lo lắng vì theo Nyquist, tôi cần lấy mẫu ít nhất 20Hz cho băng thông dự kiến 10Hz và Arduino ADC lấy mẫu ở 10kHz - quá đủ) và cũng loại bỏ tiếng ồn ở tất cả các tần số mà tôi không cần. Hệ thống RC hoạt động vì các tụ điện cho phép các tần số cao đi qua dễ dàng nhưng cản trở các tần số thấp hơn (trở kháng Z = 1 / (2 * pi * f)) và việc tạo ra một bộ chia điện áp với điện áp trên tụ điện dẫn đến một bộ lọc chỉ cho phép các tần số thấp hơn thông qua [ngưỡng cho cường độ 3dB được điều chỉnh bởi công thức f_c = 1 / (2 * pi * RC)]. Tôi đã điều chỉnh các giá trị R và C của bộ lọc của mình để cắt các tín hiệu cao hơn ~ 10Hz vì tín hiệu sinh học cho EOG được mong đợi trong phạm vi đó. Ban đầu tôi cắt bỏ sau 20Hz, nhưng sau khi thử nghiệm 10Hz cũng hoạt động tốt, vì vậy tôi đã sử dụng băng thông nhỏ hơn (băng thông nhỏ hơn sẽ tốt hơn để cắt bỏ bất kỳ thứ gì không cần thiết, đề phòng).
  • Với tín hiệu được lọc này, tôi đo đầu ra bằng máy hiện sóng để xem phạm vi giá trị của tôi khi nhìn sang trái và phải (hai điểm cực trị của phạm vi của tôi). Điều đó đưa tôi đến khoảng 2-4V (vì mức khuếch đại của thiết bị đo là 500x cho phạm vi ~ 4-8mV), khi mục tiêu của tôi là 5V (phạm vi đầy đủ của Arduino ADC). Phạm vi này thay đổi rất nhiều (dựa trên mức độ mà người đó đã rửa sạch da trước đó, v.v.) vì vậy tôi không muốn tăng nhiều như vậy với amp không đảo ngược thứ hai của mình. Tôi đã kết thúc điều chỉnh nó để có mức tăng chỉ khoảng 1,3 (điều chỉnh R1 và R2 trong mạch vì mức tăng của amp = 1 + R2 / R1). Bạn sẽ cần phải xác định phạm vi đầu ra của riêng mình và điều chỉnh từ đó để bạn không vượt quá 5V! Đừng chỉ sử dụng các giá trị điện trở của tôi.
  • Giờ đây, tín hiệu này có thể được đưa vào chân analog Arduino để đọc NHƯNG Arduino ADC không chấp nhận đầu vào âm! Bạn sẽ cần chuyển tín hiệu của mình lên sao cho phạm vi là 0-5V thay vì -2,5V đến 2,5V. Một cách để khắc phục điều này là gắn mặt đất của bảng mạch của bạn vào chân 3,3V của Arduino: điều này làm thay đổi tín hiệu của bạn lên 3,3V (tối ưu hơn 2,5V nhưng nó hoạt động). Phạm vi của tôi thực sự rất khó khăn vì vậy tôi đã thiết kế một điện áp bù thay đổi: bằng cách đó, tôi có thể xoay chiết áp để căn giữa phạm vi thành 0-5V. Về cơ bản, nó là một bộ chia điện áp biến đổi sử dụng các đường ray điện +/- 9V để tôi có thể nối đất mạch vào bất kỳ giá trị nào từ -9 đến 9V và do đó chuyển tín hiệu của tôi lên hoặc xuống 9V.

Bước 5: Chọn các thành phần và giá trị

Chọn các thành phần và giá trị
Chọn các thành phần và giá trị

Với mạch được giải thích, làm thế nào để chúng ta chọn cái nào (điện cực, op amp) để sử dụng?

  • Là một cảm biến, các điện cực gel rắn có trở kháng đầu vào cao và trở kháng đầu ra thấp: điều này về cơ bản có nghĩa là dòng điện có thể dễ dàng đi qua hạ lưu đến phần còn lại của mạch (trở kháng đầu ra thấp) nhưng sẽ gặp khó khăn khi đi ngược dòng trở lại thái dương của bạn (trở kháng đầu vào cao). Điều này giúp người dùng không bị thương bởi bất kỳ dòng điện hoặc điện áp cao nào trong phần còn lại của mạch điện của bạn; trên thực tế, nhiều hệ thống có một thứ gọi là điện trở bảo vệ bệnh nhân để bảo vệ bổ sung, đề phòng.

    • Nhiều loại điện cực khác nhau tồn tại. Hầu hết mọi người đề xuất điện cực gel rắn Ag / AgCl để sử dụng trong các ứng dụng EKG / EOG / etc. Với ý nghĩ này, bạn cần phải tra cứu điện trở nguồn của các điện cực này (quay lại hai bước đối với ghi chú của tôi về trở kháng da) và so khớp nó với khả năng chống ồn (điện áp nhiễu tính bằng V / sqrt (Hz) chia cho dòng nhiễu trong A / sqrt (Hz) - xem bảng dữ liệu của op amps) của op amps của bạn - đó là cách bạn chọn amp thiết bị đo chính xác cho thiết bị của mình. Điều này được gọi là đối sánh tiếng ồn, và các giải thích về lý do tại sao việc so khớp điện trở nguồn Rs với khả năng chống ồn Rn hoạt động có thể được tìm thấy trực tuyến như ở đây. Đối với INA111 mà tôi đã chọn, Rn có thể được tính bằng cách sử dụng điện áp nhiễu và dòng nhiễu của bảng dữ liệu (ảnh chụp màn hình ở trên).

      • Có rất nhiều bài báo đánh giá hiệu suất điện cực và không có một điện cực nào là tốt nhất cho tất cả các mục đích: ví dụ: hãy thử ở đây. Trở kháng cũng thay đổi đối với các băng thông khác nhau như được phản ánh trong bảng dữ liệu op amp (một số bảng dữ liệu sẽ có đường cong hoặc bảng ở các tần số khác nhau). Thực hiện nghiên cứu của bạn nhưng hãy nhớ giữ ví của bạn. Thật tuyệt khi biết điện cực / bộ khuếch đại op nào là tốt nhất, nhưng sẽ không có ích gì nếu bạn không đủ tiền mua nó. Bạn sẽ cần ít nhất ~ 50 điện cực để kiểm tra, không chỉ 3 điện cực cho một lần sử dụng.

        • Để khớp tiếng ồn tối ưu, không chỉ Rn ~ = Rs: bạn còn muốn điện áp nhiễu * dòng nhiễu (Pn) càng thấp càng tốt. Điều này được coi là quan trọng hơn việc tạo Rn ~ = Rs vì bạn có thể điều chỉnh Rs và Rn bằng cách sử dụng máy biến áp nếu cần thiết.

          Lưu ý với máy biến áp (sửa cho tôi nếu sai): chúng có thể hơi cồng kềnh và do đó không tối ưu cho các thiết bị cần nhỏ. Chúng cũng tích tụ nhiệt nên cần phải có tản nhiệt hoặc hệ thống thông gió tuyệt vời

        • Tiếng ồn chỉ khớp với bộ khuếch đại ban đầu đầu tiên của bạn; amp thứ hai không ảnh hưởng nhiều, vì vậy bất kỳ amp op nào cũng vậy.

Bước 6: Xây dựng mạch

Xây dựng mạch
Xây dựng mạch
Xây dựng mạch
Xây dựng mạch
Xây dựng mạch
Xây dựng mạch

Sử dụng sơ đồ fritzing ở trên để xây dựng mạch (bản sao thứ hai phác thảo những gì mỗi phần đề cập đến trong sơ đồ mạch ở bước trước). Nếu bạn cần trợ giúp xác định các đèn LED trong sơ đồ, hãy sử dụng máy tính mã màu điện trở này, nhưng Rg của amp thiết bị đo là 100Ohm, R_filter là 1,5MOhm, C_filter là 0,1uF, R1 của amp không đảo ngược là 10kOhm, R2 là 33kOhm và điện trở của chiết áp là 1kOhm (chiết áp thay đổi từ 0 đến 20kOhm). Hãy nhớ thay đổi các giá trị điện trở của bạn nếu cần để điều chỉnh mức tăng!

Chỉnh sửa: có lỗi trong phần đất bù. Xóa dây đen bên trái. Điện trở phải được kết nối với dây màu đỏ vào đường sắt nguồn như hình vẽ mà còn với chân thứ hai, không phải đầu tiên, của chiết áp. Chân đầu tiên của chiết áp phải được kết nối với chân 5V của Arduino. Dây màu cam là mặt đất bù nên được kết nối với chân thứ hai, không phải chân đầu tiên.

Tôi đã thảo luận rất nhiều về mặt bằng bù đắp. Trong sơ đồ, bạn có thể thấy rằng mặt đất Arduino được hiển thị như được kết nối với mặt đất của bảng mạch. Đó là trong kịch bản mà bạn không cần phải thay đổi quan điểm của mình. Nếu tín hiệu của bạn nằm ngoài phạm vi và bạn cần thay đổi mặt đất, trước tiên hãy thử kết nối mặt đất Arduino với chân 3,3V của Arduino và xem tín hiệu của bạn. Nếu không, hãy thử nối dây màu cam trong chiết áp được thiết lập (nối đất bù) vào chân GND của Arduino.

LƯU Ý AN TOÀN: KHÔNG giữ pin trong khi hàn, và KHÔNG KHÔNG đặt hoặc hàn ngược pin. Mạch của bạn sẽ bắt đầu bốc khói, tụ điện sẽ nổ và bảng mạch cũng có thể bị hỏng. Theo nguyên tắc chung, chỉ sử dụng pin khi bạn muốn sử dụng mạch điện; nếu không, hãy tháo chúng ra (thêm một công tắc lật để dễ dàng ngắt kết nối pin cũng là một ý kiến hay).

Lưu ý rằng bạn nên xây dựng mạch điện từng phần (kiểm tra từng giai đoạn!) Và trên bảng mạch trước khi hàn vào bảng mạch. Bước đầu tiên cần kiểm tra là amp thiết bị: gắn tất cả các thanh ray (hàn trong giá đỡ pin), Rg, v.v. và sử dụng máy hiện sóng trên chân đầu ra. Để bắt đầu, hãy sử dụng bộ tạo hàm có sóng sin 1Hz với biên độ 5mV (hoặc bộ tạo hàm thấp nhất sẽ sử dụng). Điều này chỉ để kiểm tra xem bộ khuếch đại thiết bị đo có hoạt động bình thường không và Rg của bạn đang cung cấp mức tăng mục tiêu của bạn.

Tiếp theo, hãy kiểm tra bộ lọc thông thấp của bạn. Thêm phần đó của mạch và kiểm tra dạng sóng của bạn: nó sẽ trông giống hệt nhau nhưng ít nhiễu hơn (răng cưa - xem hai hình ảnh cuối cùng ở trên). Hãy thăm dò kết quả cuối cùng của bạn bằng máy hiện sóng với các điện cực của bạn thay vì máy phát chức năng ngay bây giờ…

Bước 7: Kiểm tra mạch với con người

Kiểm tra mạch với con người
Kiểm tra mạch với con người
Kiểm tra mạch với con người
Kiểm tra mạch với con người
Kiểm tra mạch với con người
Kiểm tra mạch với con người

Một lần nữa, đặt các điện cực ở thái dương bên trái và bên phải của bạn, và gắn một dây nối đất vào một điện cực trên trán của bạn. Chỉ sau đó, bạn mới nên thêm pin - nếu có bất kỳ hiện tượng ngứa ran nào xảy ra, hãy tháo NGAY LẬP TỨC và kiểm tra lại các kết nối !!! Bây giờ hãy kiểm tra phạm vi giá trị của bạn khi bạn nhìn sang trái so với phải và điều chỉnh R1 / R2 của bộ khuếch đại không đảo, như đã giải thích hai bước trước - hãy nhớ rằng mục tiêu là phạm vi 5V! Xem các hình ảnh ở trên để biết các lưu ý về những điều cần chú ý.

Khi bạn hài lòng với tất cả các giá trị điện trở, hãy hàn mọi thứ vào bảng mạch điện. Hàn không hoàn toàn cần thiết, nhưng nó cung cấp sự ổn định hơn so với các khớp nối ép đơn giản và loại bỏ sự không chắc chắn của mạch không hoạt động đơn giản vì bạn không ấn chúng vào bảng mạch đủ mạnh.

Bước 8: Mã Arduino

Tất cả mã đính kèm ở cuối bước này!

Bây giờ bạn có phạm vi 5V, bạn cần đảm bảo nó nằm trong khoảng 0-5V thay vì -1V đến 4V, v.v. Gắn đất vào chân 3,3V của Arduino hoặc gắn điện áp nối đất bù (dây màu cam ở trên) với đường sắt nối đất và sau đó kết nối dây từ đường sắt nối đất đến chân GND của Arduino (điều này là để chuyển tín hiệu lên hoặc xuống để bạn rơi vào phạm vi 0-5V). Bạn sẽ phải chơi xung quanh: đừng quên xác định phạm vi đầu ra của bạn bất cứ khi nào không chắc chắn!

Bây giờ để hiệu chỉnh: bạn muốn ánh sáng thay đổi màu sắc cho các vị trí mắt khác nhau (nhìn xa bên trái so với không xa bên trái..). Đối với điều đó, bạn cần các giá trị và phạm vi: chạy EOG-calibration-number.ino cho Arduino với mọi thứ được kết nối đúng cách (kết thúc kết nối với Arduino và neopixel theo sơ đồ fritzing của tôi). Không quá cần thiết, nhưng cũng chạy mã bioe.py mà tôi có - điều này sẽ xuất tệp văn bản ra màn hình của bạn để bạn có thể ghi lại tất cả các giá trị khi bạn nhìn sang trái hoặc phải (mã python được điều chỉnh từ ví dụ này). Cách tôi thực hiện điều này là nhìn sang trái trong 8 nhịp, sau đó sang phải, sau đó lên, rồi xuống và lặp lại để tính trung bình sau đó (xem output_2.pdf cho một nhật ký tôi đã lưu). Nhấn ctrl + C để buộc thoát khi bạn hài lòng. Khi sử dụng các giá trị đó, bạn có thể điều chỉnh phạm vi hoạt ảnh trong mã BioE101_EOG-neopixel.ino của tôi. Đối với tôi, tôi có hình ảnh động cầu vồng khi tôi nhìn thẳng về phía trước, màu xanh lam ở phía xa bên trái, màu xanh lá cây ở phía bên trái, màu tím ở phía bên phải và màu đỏ ở phía xa bên phải.

Bước 9: Các bước trong tương lai

Thì đấy; điều gì đó bạn có thể kiểm soát chỉ bằng mắt. Có rất nhiều thứ cần tối ưu hóa trước khi nó có thể đến bệnh viện, nhưng đó là ngày khác: các khái niệm cơ bản ít nhất là dễ hiểu hơn bây giờ. Một điều tôi muốn quay lại và thay đổi là điều chỉnh mức tăng của tôi thành 500 cho bộ khuếch đại thiết bị đo: nhìn lại, đó có thể là 0 nhiều vì tín hiệu của tôi sau đó đã là 2-4V và tôi đã gặp khó khăn khi sử dụng bộ không đảo amp để điều chỉnh phạm vi của tôi một cách hoàn hảo…

Thật khó để có được sự nhất quán vì tín hiệu thay đổi RẤT NHIỀU đối với các điều kiện khác nhau:

  • người khác
  • điều kiện ánh sáng
  • chuẩn bị da (gel, rửa, v.v.)

nhưng ngay cả như vậy, tôi khá hài lòng với bằng chứng hiệu suất video cuối cùng của mình (được quay vào lúc 3 giờ sáng vì đó là lúc mọi thứ bắt đầu hoạt động một cách kỳ diệu).

Tôi biết rằng rất nhiều hướng dẫn này có vẻ khó hiểu (vâng, đường học tập cũng khó đối với tôi) vì vậy vui lòng đặt câu hỏi bên dưới và tôi sẽ cố gắng hết sức để trả lời. Thưởng thức!

Thử thách không thể chạm tới
Thử thách không thể chạm tới
Thử thách không thể chạm tới
Thử thách không thể chạm tới

Về nhì trong Thử thách không thể chạm tới

Đề xuất: