- Vật liệu thiết yếu
- Magnetometer là gì và nó hoạt động như thế nào?
- Cách hoạt động của mô-đun cảm biến HMC5883L
- Sơ đồ mạch
- Chế tạo PCB cho La bàn kỹ thuật số
- Lắp ráp PCB
- Lập trình Arduino
Bộ não con người được xây dựng từ các lớp cấu trúc phức tạp giúp chúng ta trở thành loài thống trị trên trái đất. Ví dụ, vỏ não trong não của bạn có thể cho bạn cảm giác về phương hướng, giúp bạn di chuyển dễ dàng qua những nơi mà bạn không quen thuộc. Nhưng không giống như chúng ta, Robot và phương tiện không người lái Ariel cần một thứ gì đó để có được cảm giác về hướng này để chúng có thể tự động điều khiển trong các địa hình và cảnh quan mới. Các robot khác nhau sử dụng các loại cảm biến khác nhau để thực hiện điều này, nhưng loại thường được sử dụng là từ kế, có thể thông báo cho robot biết hướng đồ họa địa lý mà nó đang đối mặt. Điều này sẽ không chỉ giúp robot cảm nhận phương hướng mà còn thay phiên nhau theo hướng và thiên thần được xác định trước.
Vì cảm biến có thể chỉ ra đồ họa địa lý Bắc, Nam, Đông và Tây, nên con người chúng ta cũng có thể sử dụng nó vào những lúc cần thiết. Vì vậy, trong bài viết này, chúng ta hãy thử tìm hiểu cách thức hoạt động của cảm biến Magnetometer và cách giao diện nó với một vi điều khiển như Arduino. Ở đây chúng tôi sẽ xây dựng một La bàn kỹ thuật số tuyệt vời sẽ giúp chúng tôi tìm hướng bằng cách phát sáng một đèn LED chỉ hướng Bắc. Chiếc la bàn kỹ thuật số này được chế tạo gọn gàng trên PCB từ PCBGOGO, để tôi có thể mang nó vào lần sau khi đi ra ngoài hoang dã và ước rằng tôi sẽ bị lạc chỉ để sử dụng thứ này cho việc tìm đường trở về nhà. Bắt đầu nào.
Vật liệu thiết yếu
- Arduino Pro mini
- Cảm biến từ kế HMC5883L
- Đèn LED - 8Nos
- Điện trở 470Ohm - 8Nos
- Jack thùng
- Một nhà sản xuất PCB đáng tin cậy như PCBgogo
- Lập trình FTDI cho mini
- PC / Máy tính xách tay
Magnetometer là gì và nó hoạt động như thế nào?
Trước khi đi sâu vào mạch, chúng ta hãy hiểu một chút về từ kế và cách chúng hoạt động. Như tên cho thấy thuật ngữ Magneto không ám chỉ người đột biến điên rồ trong kỳ diệu, người có thể điều khiển kim loại chỉ bằng cách chơi piano trong không khí. Ồ! Nhưng tôi thích anh chàng đó, anh ấy rất ngầu.
Từ kế thực sự là một thiết bị có thể cảm nhận các cực từ của trái đất và chỉ hướng theo đó. Chúng ta đều biết rằng Trái đất là một miếng nam châm hình cầu khổng lồ có cực Bắc và cực Nam. Và có từ trường vì nó. Một Magnetometer cảm nhận được từ trường này và dựa trên hướng của từ trường, nó có thể phát hiện hướng chúng ta đang đối mặt.
Cách hoạt động của mô-đun cảm biến HMC5883L
Các HMC5883L là một cảm biến từ kế làm điều tương tự. Nó có IC HMC5883L trên đó là của Honeywell. IC này có 3 vật liệu từ trở bên trong được sắp xếp theo trục x, y và z. Lượng dòng điện chạy qua các vật liệu này nhạy cảm với từ trường của trái đất. Vì vậy, bằng cách đo sự thay đổi của dòng điện chạy qua những vật liệu này, chúng ta có thể phát hiện ra sự thay đổi trong từ trường của Trái đất. Khi sự thay đổi là từ trường được hấp thụ, các giá trị sau đó có thể được gửi tới bất kỳ bộ điều khiển nhúng nào như vi điều khiển hoặc bộ xử lý thông qua giao thức I2C.
Vì cảm biến hoạt động bằng cách cảm nhận từ trường, các giá trị đầu ra sẽ bị ảnh hưởng rất nhiều nếu đặt một kim loại gần đó. Hành vi này có thể được tận dụng để sử dụng các cảm biến này làm máy dò kim loại. Cần chú ý không mang nam châm gần cảm biến này vì từ trường mạnh từ nam châm có thể kích hoạt các giá trị sai trên cảm biến.
Sự khác biệt giữa HMC5883L và QMC5883L
Có một sự nhầm lẫn phổ biến xoay quanh các cảm biến này đối với nhiều người mới bắt đầu. Điều này là do một số nhà cung cấp (thực tế là hầu hết) bán cảm biến QMC5883L thay vì HMC5883L ban đầu từ Honeywell. Chủ yếu là do QMC5883L rẻ hơn nhiều so với mô-đun HMC5883L. Phần đáng buồn là hoạt động của hai cảm biến này hơi khác nhau và không thể sử dụng cùng một mã cho cả hai. Điều này là do địa chỉ I2C của cả hai cảm biến không giống nhau. Mã cung cấp trong hướng dẫn này sẽ chỉ hoạt động đối với QMC5883L, mô-đun cảm biến thường có sẵn.
Để biết loại cảm biến bạn đang gặp phải, bạn chỉ cần nhìn kỹ vào vi mạch để đọc những gì được viết trên đó. Nếu nó được viết như L883 thì nó là HMC58836L và nếu nó được viết như DA5883 thì nó là IC QMC5883L. Cả hai mô-đun được hiển thị trong hình dưới đây để dễ hiểu hơn.
Sơ đồ mạch
Mạch cho La bàn kỹ thuật số dựa trên Arduino này khá đơn giản, chúng ta chỉ cần giao tiếp cảm biến HMC5883L với Arduino và kết nối 8 đèn LED với chân GPIO của Arduino Pro mini. Sơ đồ mạch hoàn chỉnh được hiển thị bên dưới
Các mô-đun cảm biến có 5 chân ra trong đó DRDY (Data Ready) không được sử dụng trong dự án của chúng tôi kể từ khi chúng tôi đang hoạt động cảm biến trong chế độ liên tục. Chân Vcc và chân nối đất được sử dụng để cấp nguồn cho Mô-đun với nguồn 5V từ bảng Arduino. SCL và SDA là các đường bus giao tiếp I2C được kết nối với các chân I2C A4 và A5 của Arduino Pro mini tương ứng. Vì bản thân mô-đun có một điện trở kéo cao trên các đường dây, nên không cần thêm chúng bên ngoài.
Để chỉ ra hướng, chúng tôi đã sử dụng 8 đèn LED, tất cả đều được kết nối với các chân GPIO của Arduino thông qua một điện trở giới hạn hiện tại là 470 Ohms. Toàn bộ mạch được cung cấp bởi một pin 9V thông qua Jack thùng. 9V này được cung cấp trực tiếp đến chân Vin của Arduino, nơi nó được điều chỉnh thành 5V bằng bộ điều chỉnh tích hợp trên Arduino. 5V này sau đó được sử dụng để cấp nguồn cho cảm biến và Arduino.
Chế tạo PCB cho La bàn kỹ thuật số
Ý tưởng của mạch là đặt 8 đèn LED theo kiểu hình tròn sao cho mỗi đèn LED chỉ ra tất cả 8 hướng lần lượt là Bắc, Đông Bắc, Đông, Đông Nam, Nam, Tây Nam, Tây và Tây Bắc. Vì vậy, không dễ dàng để sắp xếp chúng gọn gàng trên breadboard hoặc thậm chí trên bảng perf cho vấn đề đó. Việc phát triển một PCB cho mạch này sẽ làm cho nó trông gọn gàng và dễ sử dụng hơn. Vì vậy, tôi đã mở phần mềm thiết kế PCB của mình và đặt các đèn LED và điện trở theo một hình tròn gọn gàng và kết nối các rãnh để tạo thành các kết nối. Thiết kế của tôi trông giống như thế này bên dưới khi hoàn thành. Bạn cũng có thể tải xuống tệp Gerber từ liên kết dưới đây.
- Tải xuống tệp Gerber cho Digital Compass PCB
Tôi đã thiết kế nó thành một bảng mạch kép vì tôi muốn Arduino nằm ở phía dưới cùng của PCB để nó không làm hỏng giao diện phía trên PCB của tôi. Nếu bạn đang lo lắng rằng bạn phải trả cao cho một PCB hai mặt thì hãy chờ tôi có một sản phẩm mới tốt.
Bây giờ, Thiết kế của chúng tôi đã sẵn sàng, đã đến lúc chế tạo chúng. Để hoàn thành PCB khá dễ dàng, bạn chỉ cần làm theo các bước dưới đây
Bước 1: Truy cập www.pcbgogo.com, đăng ký nếu đây là lần đầu tiên của bạn. Sau đó, trong tab PCB Prototype, nhập kích thước của PCB của bạn, số lớp và số lượng PCB bạn yêu cầu. PCB của tôi là 80cm × 80cm nên tab trông như thế này bên dưới
Bước 2: Tiến hành bằng cách nhấp vào nút Trích dẫn ngay . Bạn sẽ được đưa đến một trang nơi đặt một vài thông số bổ sung nếu cần thiết như vật liệu được sử dụng khoảng cách theo dõi, v.v. Nhưng hầu hết các giá trị mặc định sẽ hoạt động tốt. Điều duy nhất mà chúng ta phải xem xét ở đây là giá cả và thời gian. Như bạn có thể thấy Thời gian xây dựng chỉ là 2-3 ngày và nó chỉ tốn $ 5 cho PSB của chúng tôi. Sau đó, bạn có thể chọn một phương thức vận chuyển ưa thích dựa trên yêu cầu của bạn.
Bước 3: Bước cuối cùng bạn tải file Gerber lên và tiến hành thanh toán. Để đảm bảo quá trình diễn ra suôn sẻ, PCBGOGO xác minh xem tệp Gerber của bạn có hợp lệ hay không trước khi tiến hành thanh toán. Bằng cách này, bạn có thể chắc chắn rằng PCB của bạn được chế tạo thân thiện và sẽ đến tay bạn theo cam kết.
Lắp ráp PCB
Sau khi bo mạch được đặt hàng, nó đã đến tay tôi sau một vài ngày mặc dù chuyển phát nhanh trong một hộp được đóng gói cẩn thận được dán nhãn và giống như mọi khi chất lượng của PCB thật tuyệt vời. Tôi chia sẻ một vài hình ảnh của hội đồng dưới đây để bạn đánh giá.
Tôi bật que hàn của mình và bắt đầu lắp ráp Bo mạch. Vì Dấu chân, miếng đệm, vias và tấm lụa hoàn toàn có hình dạng và kích thước phù hợp nên tôi không gặp vấn đề gì khi lắp ráp bảng. Bo mạch đã sẵn sàng chỉ sau 10 phút kể từ khi mở hộp.
Một vài hình ảnh của bảng sau khi hàn được hiển thị dưới đây.
Lập trình Arduino
Bây giờ phần cứng của chúng tôi đã sẵn sàng, chúng ta hãy xem xét chương trình phải được tải lên bảng Arduino của chúng tôi. Mục đích của mã là đọc dữ liệu từ cảm biến từ kế QMC5883L và chuyển nó thành độ (0 đến 360). Khi chúng ta biết mức độ, chúng ta phải bật đèn LED chỉ một hướng cụ thể. Hướng tôi đã sử dụng trong chương trình này là hướng Bắc. Vì vậy, bất kể bạn đang ở đâu, sẽ chỉ có một đèn LED phát sáng trên bảng của bạn và hướng của đèn LED sẽ cho biết hướng BẮC. Một khi sau đó có thể tính toán hướng khác là một hướng đã biết.
Bạn có thể tìm thấy mã hoàn chỉnh cho Dự án La bàn Kỹ thuật số này ở cuối trang này. Bạn có thể tải trực tiếp nó lên bảng của mình sau khi đã đưa vào thư viện và bạn đã sẵn sàng. Nhưng, nếu bạn muốn biết