Mục lục:

Máy ảnh nhiệt Apollo Pi 1979: 10 bước (có hình ảnh)
Máy ảnh nhiệt Apollo Pi 1979: 10 bước (có hình ảnh)

Video: Máy ảnh nhiệt Apollo Pi 1979: 10 bước (có hình ảnh)

Video: Máy ảnh nhiệt Apollo Pi 1979: 10 bước (có hình ảnh)
Video: CHIẾC KHĂN ĐEN #Shorts 2024, Tháng mười một
Anonim
Image
Image
Máy ảnh nhiệt Apollo Pi 1979
Máy ảnh nhiệt Apollo Pi 1979
Máy ảnh nhiệt Apollo Pi 1979
Máy ảnh nhiệt Apollo Pi 1979

Máy dò vi sóng Apollo cổ điển này hiện có một mục đích mới sáng bóng như một máy ảnh nhiệt, được hỗ trợ bởi Raspberry Pi Zero với cảm biến máy ảnh nhiệt Adafruit lấy nhiệt độ, hiển thị kết quả theo thời gian thực trên màn hình TFT 1,3 inch sáng.

Nó có Chế độ cài sẵn và Chế độ động - trong lần đầu tiên các màu hiển thị trên màn hình dựa trên ngưỡng nhiệt độ được mã hóa cứng và trong lần thứ hai, phạm vi màu có thể được điều chỉnh bằng cách sử dụng thanh trượt nhiệt độ trên bảng điều khiển Adafruit.io. hiển thị mọi ảnh chụp nhanh do thiết bị tải lên, được chụp bằng nút ngón tay cái ban đầu trên báng cầm.

Toàn bộ hệ thống được cung cấp năng lượng bởi một bộ pin USB mỏng, hình trụ được giấu trong tay cầm, có thể dễ dàng sạc lại bằng cách mở nắp mũi ra và cắm vào một đầu USB.

Chỉ cần ba tập lệnh Python kiểm soát logic menu, cảm biến và tích hợp Adafruit.io, với màn hình được xử lý bởi PyGame.

Làm việc trong dự án này đã thực sự giúp tôi tích cực trong thời gian khóa cửa, và với thời gian rảnh rỗi, bọn trẻ và tôi đã tìm thấy nhiều điều thú vị xung quanh ngôi nhà để chỉ ra nó!

Hãy xem Apollo Pi đang hoạt động trong video YouTube, trong trường hợp bạn không thể thấy phiên bản nhúng ở trên, hãy xem tại

Quân nhu

Màn hình vi sóng Apollo

Raspberry Pi Zero W

Máy ảnh nhiệt Adafruit AMG8833 đột phá

Màn hình Adafruit Mini PiTFT 1.3"

Cáp nhảy

Đĩa rung 3v

Ngân hàng điện USB

Bước 1: Teardown

Phá bỏ
Phá bỏ
Phá bỏ
Phá bỏ
Phá bỏ
Phá bỏ

Tôi đã chọn Màn hình Apollo tại một cửa hàng bán đồ cũ vào mùa hè năm ngoái, vì vẻ ngoài độc đáo của nó hơn là bất cứ thứ gì khác - điều này cũng giống như nó chắc chắn đã có những ngày tốt đẹp hơn! Các mạch bên trong không hoàn thiện và toàn bộ được bao phủ bởi một lớp keo hỗn độn, một nỗ lực lịch sử để sửa chữa nó.

Ban đầu nó được sử dụng để kiểm tra sự hiện diện của bức xạ Vi sóng, có lẽ là trong một số loại môi trường công nghiệp do thiết kế của nó và sự hiếm có của lò vi sóng vào thời điểm đó, mặc dù tôi không thể tìm hiểu thêm về nó. Một điều tôi biết, nó sẽ trở thành ngôi nhà lý tưởng cho một chiếc máy ảnh nhiệt.

Ngay sau khi tôi bật ra khỏi "mũi" hình nón, phần còn lại của nó đã bị vỡ vụn theo đúng nghĩa đen, và đồng hồ kim và nút hình chữ nhật được dán keo dễ dàng được tháo ra. Mặc dù vậy, tôi vẫn giữ chiếc nút, nó hoạt động hoàn hảo và có hình dạng thực sự kỳ lạ, vì vậy tôi đã phải vật lộn để lắp một chiếc thay thế vào cùng một lỗ.

Bước 2: Đấu dây

Đấu dây
Đấu dây
Đấu dây
Đấu dây

Trước khi cắt vỏ để làm cho mọi thứ vừa vặn, trước tiên, tôi muốn đảm bảo rằng tôi biết các bộ phận sẽ kết hợp với nhau như thế nào, vì vậy tôi đã thiết lập để nối dây cảm biến và màn hình. Bản thân cảm biến cũng ổn, chỉ cần bốn cáp jumper để kết nối nó với Raspberry Pi.

Màn hình phức tạp hơn một chút, sơ đồ sơ đồ chân cho thấy tôi cần kết nối 13 dây jumper - rõ ràng là nó được thiết kế để đặt trực tiếp trên đầu Pi nên tôi chỉ có lỗi thực sự. Tôi quyết định thêm một đoạn tiêu đề nữ giữa màn hình và các kết nối Pi để có thể tháo màn hình ra và kết nối dễ dàng. Đây là một ý tưởng tuyệt vời và tôi đã theo dõi sơ đồ sơ đồ chân rất cẩn thận để kết nối tiêu đề với số Pi.

Tiếp theo, tôi hàn một số cáp jumper mới vào nút ban đầu, để nó có thể được kết nối với GPIO và được sử dụng để chụp nhanh ảnh nhiệt. Cuối cùng, tôi hàn một đĩa rung nhỏ trực tiếp vào các chân GPIO, để cung cấp một số phản hồi xúc giác cho các nút bấm.

Bước 3: Chế độ trường hợp

Chế độ trường hợp
Chế độ trường hợp
Chế độ trường hợp
Chế độ trường hợp

Một trong những thứ giúp hồi sinh Màn hình Apollo từ hộp "việc cần làm" của tôi là lỗ hiển thị ở trên cùng - đây là kích thước tôi cần cho màn hình Adafruit nhỏ. Đại khái. Phải mất một giờ hoặc lâu hơn với một tập tin để mở rộng lỗ đến đúng kích thước, nhưng rất may tôi đã cố gắng không phá hủy chiếc hộp trong quá trình này.

Tôi cũng cắt bỏ các phần bên trong ban đầu chứa pin PP3 và cắt bỏ một số vách ngăn bên trong báng cầm để nhường chỗ cho bộ pin bằng cách sử dụng một công cụ quay.

Cuối cùng, tôi khoan một số lỗ lớn để cáp cho cảm biến và cáp sạc có thể đi từ "mũi" để nối với phần còn lại của mạch.

Bước 4: Nguồn

Quyền lực
Quyền lực
Quyền lực
Quyền lực
Quyền lực
Quyền lực
Quyền lực
Quyền lực

Đối với dự án này, tôi quyết định không sử dụng pin LiPo và bộ chuyển đổi / bộ sạc vì có nhiều chỗ hơn trong hộp đựng. Thay vào đó, tôi quyết định sử dụng ổ cắm USB tiêu chuẩn. Tôi muốn có một cái hình trụ mỏng, để vừa với tay cầm, vì vậy, tôi đã tìm kiếm cái rẻ nhất và mỏng nhất mà tôi có thể tìm thấy trên Amazon. Chiếc đã đến, với đèn pin LED sang trọng và kiểu dáng pin giả là chiếc mỏng nhất mà tôi có thể tìm thấy, nhưng khi mở hộp, tôi nhận ra nó vẫn quá dày để vừa tay cầm. Sau đó, tôi nhận ra rằng nó đã tách ra - phần trên không được vặn và cục pin trần bên trong trượt ra, gọn gàng tiết kiệm cho tôi 3mm tôi cần để lắp nó vào bên trong tay cầm, thật là một kết quả!

Tiếp theo, tôi lấy một sợi cáp Micro USB ngắn, loại bỏ một số lớp cách điện, cắt cáp dương và hàn vào một nút chốt hình vuông xinh xắn, để có thể kiểm soát nguồn điện mà không cần phải rút bộ pin. Nút này vừa khít với phần ban đầu là nắp pin và khá giống với nút ban đầu ở trên cùng của hộp. Bây giờ tôi biết mọi thứ sẽ phù hợp và đã đến lúc bắt đầu hoạt động!

Bước 5: Thiết lập phần mềm máy ảnh nhiệt

Thiết lập phần mềm máy ảnh nhiệt
Thiết lập phần mềm máy ảnh nhiệt

Bản thân cảm biến nhiệt là một đột phá về máy ảnh nhiệt Adafruit AMG8833IR, sử dụng một dãy 8x8 cảm biến để tạo ra hình ảnh nhiệt. Nó hoạt động với Arduino và Raspberry Pi, nhưng lợi thế lớn nhất của việc sử dụng Pi là phần mềm có thể sử dụng mô-đun scipy python để thực hiện nội suy hai chiều trên dữ liệu đã chụp, làm cho nó trông giống như một hình ảnh 32x32, gọn gàng!

Việc thiết lập cảm biến khá đơn giản, nhưng có một số vòng phải vượt qua, đây là những gì phù hợp với tôi:

Bật I2C và SPI trên Raspberry Pi (Cấu hình Raspberry Pi> Giao diện)

Cài đặt thư viện Blinka CircuitPython:

pip3 cài đặt adafruit-nháya

Tiếp theo cài đặt thư viện cảm biến AMG8XX:

sudo pip3 install adafruit-circuitpython-amg88xx #

Tắt Pi và kết nối cảm biến - rất may chỉ có 4 dây!

Tiếp theo cài đặt các mô-đun scipy, pygame và color:

sudo apt-get install -y python-scipy python-pygamesudo pip3 install color

Tại thời điểm này, mã của tôi gặp lỗi scipy, vì vậy tôi đã cài đặt lại nó với:

Sudo Pip3 cài đặt scipy

Sau đó, tôi nhận được lỗi: ImportError: libf77blas.so.3: không thể mở tệp đối tượng được chia sẻ: Không có tệp hoặc thư mục như vậy

Điều này đã được giải quyết bằng cách cài đặt:

sudo apt-get install python-dev libatlas-base-dev

Từ đó trở đi, mã ví dụ hoạt động tốt, chạy tập lệnh từ bảng điều khiển thay vì từ Thonny:

sudo python3 /home/pi/FeverChill/cam.py

Điều này làm cho màn hình cảm biến hiển thị trên màn hình trong cửa sổ pygame và sau một số chỉnh sửa đối với ngưỡng màu / nhiệt độ, tôi đã bị thôi miên bởi một hình ảnh nhiệt của khuôn mặt mình.

Bước 6: Thiết lập phần mềm màn hình LCD

Cài đặt phần mềm màn hình LCD
Cài đặt phần mềm màn hình LCD
Cài đặt phần mềm màn hình LCD
Cài đặt phần mềm màn hình LCD

Thật sự rất tốt khi cảm biến hoạt động, nhưng bây giờ tôi cần để nó hiển thị trên màn hình nhỏ. Màn hình mà tôi sử dụng là Adafruit Mini PiTFT 1.3 240x240 - chủ yếu là vì độ phân giải và hình dạng của nó phù hợp với máy ảnh nhiệt, nó cũng có kích thước phù hợp để vừa với vỏ máy và cung cấp hai nút kết nối GPIO mà tôi cần.

Hướng dẫn của Adafruit đưa ra hai tùy chọn ở đây: Cách Dễ và Cách Khó - sau khi thử nghiệm, tôi nhận ra rằng mình cần sử dụng Cách Khó, vì cảm biến yêu cầu quyền truy cập trực tiếp vào bộ đệm khung. Làm theo hướng dẫn từng bước, tôi đã ổn cho đến khi tôi gặp câu hỏi "Bạn có muốn bảng điều khiển xuất hiện không" - Ban đầu tôi chọn Không, nhưng lẽ ra phải nói Có. Điều này hơi khó khăn vì nó có nghĩa là tôi phải thực hiện lại quy trình, nhưng nó đã khiến tôi biết rằng một khi Pi được thiết lập để hiển thị bảng điều khiển trên TFT, nó sẽ không hiển thị màn hình nền qua HDMI nữa (ít nhất là đó là kinh nghiệm của tôi).

Tuy nhiên, khi quá trình thiết lập hoàn tất, khi khởi động lại, màn hình nhỏ hiển thị phiên bản thu nhỏ của quá trình khởi động Pi thông thường và khi tôi chạy tập lệnh máy ảnh nhiệt ví dụ, cửa sổ pygame hiển thị hình ảnh nhiệt trên màn hình nhỏ - rất hài lòng!

Bước 7: Chỉnh sửa mã

Chỉnh sửa mã
Chỉnh sửa mã
Chỉnh sửa mã
Chỉnh sửa mã

Mã mẫu hoạt động tốt, nhưng tôi muốn nó làm được nhiều hơn một chút, vì vậy hãy bắt đầu điều chỉnh các tập lệnh theo sở thích của tôi. Tôi bắt đầu bằng cách tạo một tập lệnh Menu sẽ tải khi khởi động và sử dụng tốt hai nút được tích hợp vào bảng hiển thị.

menu.py

Đầu tiên, tôi đã tìm thấy một số Python trực tuyến sẽ hiển thị hiệu ứng menu động đẹp mắt trên màn hình nhỏ, sử dụng PyGame. Cái hay của script này là nó tạo hoạt ảnh cho tất cả các hình ảnh trong một thư mục đã đặt, vì vậy sẽ dễ dàng thay đổi hoạt ảnh ở giai đoạn sau (ví dụ: để phù hợp với màu sắc của hoạt ảnh). Tôi đặt tập lệnh menu sao cho việc nhấn một trong các nút sẽ dừng hoạt ảnh và mở sauce.py hoặc chill.py, các tập lệnh để hiển thị màn hình cảm biến. Với cách làm việc này, tôi thiết lập tập lệnh để chạy khi khởi động - thông thường tôi thực hiện việc này bằng cách chỉnh sửa / etc / xdg / lxsession / LXDE-pi / autostart, nhưng vì phương pháp này dựa trên việc tải Desktop nên lần này tôi cần một tùy chọn khác.

Vì vậy, trước tiên tôi đã chỉnh sửa tệp rc.local…

sudo nano /etc/rc.local

… Sau đó được thêm vào phần sau ngay trên dòng Thoát…

sudo /home/pi/FeverChill/menu.py &

… Trước tiên đã đảm bảo rằng tập lệnh menu.py có phần sau ở trên cùng…

#! / usr / bin / env python3

… Và cả sau khi đặt menu.py làm tập lệnh thực thi bằng cách nhập:

chmod + x /home/pi/FeverChill/menu.py

vào thiết bị đầu cuối.

ever.py (Đặt trước)

Đối với tập lệnh Đặt trước, trước tiên, tôi đặt các ngưỡng màu / nhiệt độ, đặt ngưỡng dưới (xanh lam) thành 16 và ngưỡng trên (đỏ) thành 37.8. Điều này về mặt lý thuyết sẽ vẫn hiển thị khuôn mặt của một người có màu xanh lục, nhưng sẽ phát sáng lên màu đỏ nếu nhiệt độ ở mức 37,8 độ C trở lên. Có rất nhiều nghiên cứu trực tuyến về việc lấy mẫu nhiệt độ cơ thể thông qua các phương pháp khác nhau, nhưng với phương sai của cảm biến là +/- 2,5 độ, tôi quyết định chỉ gắn bó với phạm vi "sốt" được chấp nhận rộng rãi nhất - điều này đủ dễ dàng để thay đổi thông qua ssh vào một ngày sau đó.

Tiếp theo, tôi đặt hai nút màn hình để đóng tập lệnh hiện tại và mở menu.py. Tôi cũng muốn tìm cách chụp và xuất hình ảnh máy ảnh và đã tìm thấy lệnh PyGame phù hợp

pygame.image.save (lcd, "heat.jpg")

Tôi đặt điều này để chạy khi nút "ngón tay cái" được nhấn - nút ban đầu bạn đã sử dụng để đọc bằng lò vi sóng. Điều đó đảm bảo việc ghi lại hình ảnh, tiếp theo tôi đã thêm một số dòng Python để hình ảnh sẽ được tải ngay lên trang tổng quan Adafruit IO sau khi được chụp, vì vậy nó có thể được xem trên các thiết bị khác và dễ dàng tải xuống. Với một "save as" nhanh chóng, tập lệnh Đặt trước đã hoàn thành.

chill.py (Động)

Máy ảnh nhiệt có nhiều thứ hơn là tìm kiếm nhiệt độ cụ thể và tôi muốn tập lệnh Động linh hoạt để có thể dễ dàng điều chỉnh ngưỡng màu trên và dưới. Tôi không muốn thêm các nút bổ sung vào thiết bị và làm phức tạp việc điều hướng, vì vậy đã chọn sử dụng thanh trượt trên trang tổng quan Adafruit.io.

Tôi đã có phần lớn mã Adafruit trong tập lệnh Đặt trước, vì vậy chỉ cần thêm một số dòng bổ sung, để các giá trị thanh trượt hiện tại từ trang tổng quan sẽ được truy xuất khi khởi chạy và đặt làm mặc định hiển thị.

Tất cả mã tôi đã sử dụng đều có sẵn trên GitHub, để sử dụng lại, bạn chỉ cần tải thư mục FeverChill xuống thư mục / pi / trên Pi của bạn và nhập thông tin đăng nhập Adafruit.io và tên nguồn cấp dữ liệu vào tập lệnh, sau khi hiển thị & cảm biến được thiết lập.

Với các tập lệnh hoạt động tốt, đã đến lúc chuyển sang một thứ gì đó lộn xộn hơn!

Bước 8: Hoàn thành Touch-Up

Hoàn thành Touch-Up
Hoàn thành Touch-Up
Hoàn thành Touch-Up
Hoàn thành Touch-Up
Hoàn thành Touch-Up
Hoàn thành Touch-Up

Ban đầu dự án này nhằm mục đích giúp bạn nhanh chóng phân tâm khỏi việc sử dụng cảm biến nhiệt cho việc khác, nhưng với những sự kiện hiện tại, tôi thấy mình ngày càng bị cuốn hút vào nó và những chi tiết thừa nhỏ sẽ kéo dài nó ra và khiến nó trở nên khó khăn hơn.

Vỏ của Apollo Monitor khá đẹp để làm việc, dễ cắt và chà nhám, nhưng để hoàn thiện nó một cách đẹp mắt, tôi muốn nhét một số bảng mạch có thể nhìn thấy đằng sau "mặt nạ" được sơn. Những tác phẩm này mất nhiều thời gian, có thể chạm khắc chúng từ những mảnh nhựa phế thải bằng tay, nhưng đó là một công việc hài lòng. Đầu tiên, tôi tạo một cái nhỏ để che bảng màn hình nhưng vẫn để hiển thị các công tắc micro. Tiếp theo, tôi làm một cái cho cảm biến nhiệt, để bạn sẽ không nhìn thấy các thiết bị điện tử trần nếu bạn nhìn xuống "đầu kinh doanh".

Tôi quyết định phối màu vài ngày trước khi Vương quốc Anh ngừng hoạt động, và thật may mắn khi tìm thấy màu sắc tôi muốn trong cửa hàng phần cứng gần đó. Khi vỏ máy được chia thành một nửa rất đẹp, một bảng màu hai tông đã được đề xuất, và sau đó tôi mở rộng điều này cho "hình nón mũi" và nắp cảm biến. Bức tranh rất vui, một ngày ấm áp đầu tiên của năm, mặc dù điều đó có nghĩa là bức tranh trong khi những con ong bắp cày trong nhà kho đang khuấy động và xay xát. Tôi đã không sử dụng băng che với sơn phun trước đây nhưng tôi thực sự hài lòng với cách tạo ra các miếng hai tông màu.

Học các bài học của các bản dựng trước, tôi để các bộ phận được sơn cứng lại trong một tuần trước khi thử lắp ráp và bắt đầu ghép video lại với nhau trong thời gian chờ đợi.

Bước 9: Lắp ráp

cuộc họp
cuộc họp
cuộc họp
cuộc họp
cuộc họp
cuộc họp

Bất cứ khi nào tôi làm việc trong một dự án, tôi thích đến sân khấu nơi mọi thứ được sắp xếp sẵn sàng để lắp ráp như một bộ mô hình tự tạo. Không có gì đảm bảo rằng tất cả sẽ khớp với nhau và các hướng dẫn chỉ tồn tại trong đầu tôi, nhưng đó là phần yêu thích của tôi trong bất kỳ bản dựng nào.

Khoảng thời gian này diễn ra rất suôn sẻ - chủ yếu là vì tôi có thêm thời gian để dành cho những chi tiết nhỏ và đảm bảo mọi thứ đều như vậy. Trước hết, tôi dán nóng màn hình vào vỏ máy, sau đó thêm nút "chụp" - đây là những phần duy nhất được kết nối với phần trên của vỏ máy để có một khởi đầu dễ dàng.

Tiếp theo, tôi dán nóng nhẹ bộ pin vào báng cầm và lắp Pi với giá đỡ của nó vào vỏ. Sau đó, cảm biến máy ảnh được dán cẩn thận vào nón mũi, công tắc nguồn được vặn vào nắp pin và mọi thứ đã được kết nối.

Tôi đã sử dụng cáp jumper cho tất cả các kết nối nhưng chỉ để cẩn thận hơn, tôi dán nóng chúng vào vị trí, đề phòng bất kỳ chuyển động nào trong lần kết nối cuối cùng của hai nửa. Trên thực tế, chỉ là một chút tiếng kêu, nhưng không có âm thanh nứt, vì vậy khi hai nửa đã khít với nhau, tôi đẩy chốt mũi và giữ chặt chốt qua tay cầm - hai thứ duy nhất giữ toàn bộ cụm với nhau..

Nó không hoạt động ở lần đầu tiên, tôi đã cố gắng ngắt kết nối màn hình trong lần đầu tiên ngắt kết nối, nhưng với một vài lần uốn cáp chiến lược, tất cả đều kết thúc vui vẻ ở lần thứ hai. Đã đến lúc chỉ ra mọi thứ!

Bước 10: Thời gian kiểm tra nhiệt độ

Thời gian kiểm tra nhiệt độ
Thời gian kiểm tra nhiệt độ
Thời gian kiểm tra nhiệt độ
Thời gian kiểm tra nhiệt độ
Thời gian kiểm tra nhiệt độ
Thời gian kiểm tra nhiệt độ
Thời gian kiểm tra nhiệt độ
Thời gian kiểm tra nhiệt độ

Có thêm thời gian ở nhà thực sự đã giúp tôi tập trung (ám ảnh?) Hơn bình thường vào các chi tiết nhỏ của dự án này và điều đó chắc chắn tạo ra một kết thúc tốt hơn và ít ngạc nhiên hơn trong thời gian lắp ráp - cũng như giúp giữ cho tinh thần của tôi luôn sảng khoái thẳng và hẹp. Kế hoạch ban đầu cho cảm biến là một cái gì đó hoàn toàn khác, vì vậy tôi rất hài lòng với kết quả cuối cùng, một bản dựng có nhịp độ chậm và hài lòng.

Apollo Pi trông cũng tuyệt vời trên kệ dự án và chắc chắn là một công cụ thú vị và hữu ích để có xung quanh, chúng tôi không thể ngừng hướng nó vào mọi thứ! Trong một thế giới lý tưởng, nó sẽ có độ phân giải cao hơn một chút và tôi cần tìm một số cách để "lật" màn hình khi nó được phản chiếu vào lúc này, nhưng đây chỉ là những vết nứt nhỏ.

Cảm ơn vì đã đọc và giữ an toàn cho mọi người.

Các dự án Công nghệ cũ, Thông số kỹ thuật mới khác của tôi đều có trên Bảng hướng dẫn tại

Thông tin chi tiết có trên trang web tại https://bit.ly/OldTechNewSpec. và tôi đang ở trên Twitter @OldTechNewSpec.

Đề xuất: