Raspberry Pi Zero bên trong màn hình chữ nổi Handy Tech Active Star 40

Raspberry Pi Zero bên trong màn hình chữ nổi Handy Tech Active Star 40

Tác giả đã đặt Raspberry Pi Zero, còi Bluetooth và dây cáp bên trong màn hình chữ nổi Handy Tech Active Star 40. Một cổng USB tích hợp cung cấp năng lượng. Kết quả là một máy tính không màn hình tự cung cấp năng lượng trên ARM với hệ điều hành Linux, được trang bị bàn phím và màn hình chữ nổi. Bạn có thể sạc/cấp nguồn cho nó qua USB, bao gồm. từ một ngân hàng điện hoặc bộ sạc năng lượng mặt trời. Vì vậy, anh ta có thể làm việc mà không có điện trong vài giờ, nhưng trong vài ngày.

Raspberry Pi Zero bên trong màn hình chữ nổi Handy Tech Active Star 40

Sự khác biệt về kích thước của màn hình chữ nổi

Trước hết, chúng khác nhau về độ dài dòng. Các thiết bị có dung lượng 60 trở lên sẽ phù hợp để làm việc với máy tính để bàn, trong khi các thiết bị có dung lượng 40 sẽ thuận tiện khi mang theo máy tính xách tay. Hiện nay có màn hình chữ nổi được kết nối với điện thoại thông minh và máy tính bảng, với độ dài dòng là 14 hoặc 18 ký tự.

Trước đây, màn hình chữ nổi khá đồ sộ. Ví dụ, máy tính xách tay 40 chỗ có kích thước và trọng lượng của máy tính xách tay 13 inch. Giờ đây, với số lượng người quen như nhau, chúng đủ thu nhỏ để bạn có thể đặt màn hình phía trước laptop chứ không phải laptop trên màn hình.

Tất nhiên, điều này tốt hơn nhưng vẫn không thuận tiện lắm khi cầm hai thiết bị riêng biệt trên đùi. Khi bạn làm việc tại bàn làm việc, không có lời phàn nàn nào, nhưng cần nhớ rằng máy tính xách tay được gọi bằng tên khác và cố gắng biện minh cho tên của nó, vì hóa ra màn hình thu nhỏ 40 ký tự thậm chí còn kém tiện lợi hơn.

Vì vậy tác giả đã chờ đợi mẫu máy mới được hứa hẹn từ lâu trong dòng Handy Tech Star được ra mắt. Trở lại năm 2002, mẫu Handy Tech Braille Star 40 trước đó đã được ra mắt, với diện tích thân máy đủ để đặt một chiếc máy tính xách tay lên trên. Và nếu nó không vừa thì có một chân đế có thể thu vào. Giờ đây mẫu xe này đã được thay thế bằng Active Star 40, gần như giữ nguyên nhưng được nâng cấp về mặt điện tử.

Raspberry Pi Zero bên trong màn hình chữ nổi Handy Tech Active Star 40

Và chân đế có thể thu vào vẫn còn:

Raspberry Pi Zero bên trong màn hình chữ nổi Handy Tech Active Star 40

Nhưng điều tiện lợi nhất ở sản phẩm mới là một phần lõm có kích thước gần bằng một chiếc điện thoại thông minh (xem KDPV). Nó mở ra khi nền tảng được di chuyển trở lại. Việc giữ điện thoại thông minh ở đó hóa ra là bất tiện, nhưng bằng cách nào đó bạn cần phải sử dụng ngăn trống, bên trong thậm chí còn có ổ cắm điện.

Điều đầu tiên tác giả nghĩ ra là đặt Raspberry Pi ở đó, nhưng khi mua màn hình thì hóa ra chân đế che ngăn không trượt vào cùng với “quả mâm xôi”. Bây giờ, nếu tấm ván mỏng hơn chỉ 3 mm...

Nhưng một đồng nghiệp đã nói với tôi về việc phát hành Raspberry Pi Zero, hóa ra nó thu nhỏ đến mức hai trong số chúng có thể nhét vừa trong ngăn... hoặc thậm chí có thể là ba. Nó ngay lập tức được đặt hàng cùng với thẻ nhớ 64 GB, Bluetooth, “còi” và cáp Micro USB. Vài ngày sau tất cả những điều này đã đến, và những người bạn sáng mắt đã giúp tác giả chuẩn bị một bản đồ. Mọi thứ ngay lập tức hoạt động như bình thường.

Điều gì đã được thực hiện cho việc này

Ở mặt sau của Handy Tech Active Star 40 có hai cổng USB dành cho các thiết bị như bàn phím. Một bàn phím cỡ nhỏ có gắn từ tính được bao gồm. Khi bàn phím được kết nối và màn hình hoạt động qua Bluetooth, máy tính cũng sẽ nhận dạng đó là bàn phím Bluetooth.

Do đó, nếu bạn kết nối “còi” Bluetooth với Raspberry Pi Zero được đặt trong ngăn đựng điện thoại thông minh, nó sẽ có thể giao tiếp với màn hình chữ nổi qua Bluetooth bằng cách sử dụng BRLTTYvà nếu bạn cũng kết nối bàn phím với màn hình, “quả mâm xôi” cũng sẽ hoạt động với bàn phím đó.

Nhưng đó không phải là tất cả. Ngược lại, “mâm xôi” có thể truy cập Internet thông qua Bluetooth PAN từ bất kỳ thiết bị nào hỗ trợ nó. Tác giả đã cấu hình điện thoại thông minh và máy tính của mình ở nhà cũng như tại nơi làm việc cho phù hợp, nhưng trong tương lai, anh ấy có kế hoạch điều chỉnh một “quả mâm xôi” khác cho việc này - một chiếc cổ điển, không phải Zero, được kết nối với Ethernet và một “còi” Bluetooth khác.

BlueZ 5 và PAN

Phương pháp cấu hình PAN bằng cách sử dụng BlueZ hóa ra là không rõ ràng. Tác giả đã tìm thấy tập lệnh Python bt-pan (xem bên dưới), cho phép bạn định cấu hình PAN mà không cần GUI.

Nó có thể được sử dụng để cấu hình cả máy chủ và máy khách. Sau khi nhận được lệnh thích hợp qua D-Bus khi làm việc ở chế độ máy khách, nó sẽ tạo một thiết bị mạng mới bnep0 ngay sau khi thiết lập kết nối với máy chủ. Thông thường, DHCP được sử dụng để gán địa chỉ IP cho giao diện này. Ở chế độ máy chủ, BlueZ yêu cầu tên của thiết bị cầu nối để có thể thêm thiết bị phụ để kết nối từng máy khách. Định cấu hình địa chỉ cho thiết bị cầu nối và chạy máy chủ DHCP cùng với việc giả mạo IP trên cầu nối thường là tất cả những gì cần thiết.

Điểm truy cập Bluetooth PAN với Systemd

Để định cấu hình bridge, tác giả đã sử dụng systemd-networkd:

Tệp /etc/systemd/network/pan.netdev

[NetDev]
Name=pan
Kind=bridge
ForwardDelaySec=0

Tệp /etc/systemd/network/pan.network

[Match]
Name=pan

[Network]
Address=0.0.0.0/24
DHCPServer=yes
IPMasquerade=yes

Bây giờ chúng ta cần buộc BlueZ cấu hình cấu hình NAP. Hóa ra điều này không thể thực hiện được với các tiện ích BlueZ 5.36 tiêu chuẩn. Nếu tác giả sai thì sửa lại: mlang (có thể cử động tai) guru mù (đôi khi là truy cập và lượng tử)

Nhưng anh ấy đã tìm thấy bài viết trên blog и Tập lệnh Python để thực hiện các cuộc gọi cần thiết đến D-Bus.

Để thuận tiện, tác giả đã sử dụng dịch vụ Systemd để chạy tập lệnh và kiểm tra xem các phần phụ thuộc có được giải quyết hay không.

Tệp /etc/systemd/system/pan.service

[Unit]
Description=Bluetooth Personal Area Network
After=bluetooth.service systemd-networkd.service
Requires=systemd-networkd.service
PartOf=bluetooth.service

[Service]
Type=notify
ExecStart=/usr/local/sbin/pan

[Install]
WantedBy=bluetooth.target

Tập tin /usr/local/sbin/pan

#!/bin/sh
# Ugly hack to work around #787480
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

exec /usr/local/sbin/bt-pan --systemd --debug server pan

Tệp thứ hai sẽ không cần thiết nếu Debian có hỗ trợ IPMasquerade= (xem bên dưới). #787480).

Sau khi thực hiện các lệnh systemcat-daemon-reload и systemctl khởi động lại systemd-networkd bạn có thể khởi động Bluetooth PAN bằng lệnh chảo khởi động systemctl

Máy khách Bluetooth PAN sử dụng Systemd

Phía máy khách cũng dễ dàng cấu hình bằng Systemd.

Tệp /etc/systemd/network/pan-client.network

[Match]
Name=bnep*

[Network]
DHCP=yes

Tệp /etc/systemd/system/[email được bảo vệ]

[Unit]
Description=Bluetooth Personal Area Network client

[Service]
Type=notify
ExecStart=/usr/local/sbin/bt-pan --debug --systemd client %I --wait

Bây giờ, sau khi tải lại cấu hình, bạn có thể kết nối với điểm truy cập Bluetooth được chỉ định như sau:

systemctl start pan@00:11:22:33:44:55

Ghép nối bằng dòng lệnh

Tất nhiên, việc cấu hình máy chủ và máy khách phải được thực hiện sau khi ghép nối chúng qua Bluetooth. Trên máy chủ, bạn cần chạy bluetoothctl và đưa ra các lệnh:

power on
agent on
default-agent
scan on
scan off
pair XX:XX:XX:XX:XX:XX
trust XX:XX:XX:XX:XX:XX

Sau khi bắt đầu quét, hãy đợi vài giây cho đến khi thiết bị bạn cần xuất hiện trong danh sách. Viết địa chỉ của nó và sử dụng nó bằng cách ban hành lệnh cặp và, nếu cần, lệnh tin cậy.

Về phía khách hàng, bạn cũng cần thực hiện tương tự, nhưng lệnh tin cậy chắc chắn là không cần thiết. Máy chủ cần nó để chấp nhận kết nối bằng cấu hình NAP mà không cần xác nhận thủ công của người dùng.

Tác giả không chắc đây có phải là chuỗi lệnh tối ưu hay không. Có lẽ tất cả những gì cần làm là ghép nối máy khách với máy chủ và chạy lệnh tin cậy trên máy chủ, nhưng anh ấy vẫn chưa thử điều này.

Kích hoạt cấu hình Bluetooth HID

Raspberry yêu cầu phải nhận ra bàn phím được kết nối với màn hình chữ nổi bằng dây và được truyền bởi chính màn hình qua Bluetooth. Điều này được thực hiện theo cách tương tự, chỉ thay vào đó đại lý trên cần ra lệnh chỉ bàn phím đại lý và bluetoothctl sẽ tìm thấy một thiết bị có cấu hình HID.

Nhưng việc thiết lập Bluetooth qua dòng lệnh hơi phức tạp

Mặc dù tác giả đã cố gắng cấu hình mọi thứ nhưng anh ấy hiểu rằng việc định cấu hình BlueZ thông qua dòng lệnh là bất tiện. Lúc đầu, anh ấy nghĩ rằng các đại lý chỉ cần nhập mã PIN, nhưng hóa ra, chẳng hạn, để kích hoạt cấu hình HID, bạn cần phải nhập “Chỉ bàn phím đại lý”. Điều đáng ngạc nhiên là để khởi chạy Bluetooth PAN, bạn cần phải lục lọi các kho lưu trữ để tìm kiếm tập lệnh cần thiết. Anh ấy nhớ rằng trong phiên bản BlueZ trước đó đã có sẵn một công cụ cho việc này gấu trúc - anh ấy đang làm gì ở BlueZ 5? Đột nhiên một giải pháp mới xuất hiện, tác giả không biết mà nằm trên bề mặt?

Năng suất

Tốc độ truyền dữ liệu xấp xỉ 120 kbit/s, khá đủ. Bộ xử lý ARM 1GHz rất nhanh đối với giao diện dòng lệnh. Tác giả vẫn dự định sử dụng chủ yếu ssh và emacs trên thiết bị.

Phông chữ bảng điều khiển và độ phân giải màn hình

Độ phân giải màn hình mặc định được bộ đệm khung trên Raspberry Pi Zero sử dụng khá lạ: fbset báo cáo nó là 656x416 pixel (tất nhiên là không có màn hình nào được kết nối). Với phông chữ console 8×16, có 82 ký tự trên mỗi dòng và 26 dòng.

Thật bất tiện khi làm việc với màn hình chữ nổi 40 ký tự ở chế độ này. Tác giả cũng muốn thấy các ký tự Unicode được hiển thị bằng chữ nổi. May mắn thay, Linux hỗ trợ 512 ký tự và hầu hết các phông chữ trên bảng điều khiển đều có 256 ký tự. Bằng cách sử dụng thiết lập bảng điều khiển, bạn có thể sử dụng hai phông chữ 256 ký tự cùng nhau. Tác giả đã thêm các dòng sau vào tệp /etc/default/console-setup:

SCREEN_WIDTH=80
SCREEN_HEIGHT=25
FONT="Lat15-Terminus16.psf.gz brl-16x8.psf"

Lưu ý: để có sẵn phông chữ brl-16×8.psf, bạn cần cài đặt console-braille.

Cái gì tiếp theo?

Màn hình chữ nổi có giắc cắm 3,5 mm nhưng tác giả không biết về bộ điều hợp để nhận tín hiệu âm thanh từ Mini-HDMI. Tác giả không thể sử dụng card âm thanh được tích hợp trong Raspberry (lạ thay, người dịch chắc chắn rằng Zero không có, nhưng có nhiều cách để xuất âm thanh bằng cách sử dụng xung điện tử tới GPIO). Anh dự định sử dụng hub USB-OTG và kết nối thẻ ngoài rồi phát âm thanh ra loa tích hợp trong màn hình chữ nổi. Vì lý do nào đó, hai thẻ bên ngoài không hoạt động, hiện anh ấy đang tìm kiếm một thiết bị tương tự trên một chipset khác.

Việc tắt "mâm xôi" theo cách thủ công cũng bất tiện, đợi vài giây và tắt màn hình chữ nổi. Và tất cả là do khi tắt nó sẽ ngắt nguồn điện khỏi đầu nối trong ngăn. Tác giả dự định đặt một pin đệm nhỏ vào ngăn và thông qua GPIO, thông báo cho Raspberry về việc màn hình đang tắt để nó có thể bắt đầu tắt công việc của mình. Đây là một UPS thu nhỏ.

Hình ảnh hệ thống

Nếu bạn có cùng màn hình chữ nổi Braille và muốn làm điều tương tự với nó, tác giả sẵn sàng cung cấp hình ảnh làm sẵn của hệ thống (dựa trên Raspbian Stretch). Hãy viết thư cho anh ấy về điều này theo địa chỉ nêu trên. Nếu có đủ người quan tâm, thậm chí có thể phát hành bộ công cụ bao gồm mọi thứ cần thiết cho việc sửa đổi đó.

Sự nhìn nhận

Cảm ơn Dave Mielke đã hiệu đính.

Cảm ơn Simon Kainz về những bức ảnh minh họa.

Cảm ơn các đồng nghiệp của tôi tại Đại học Kỹ thuật Graz đã nhanh chóng giới thiệu tác giả với thế giới Raspberry Pi.

PS Dòng tweet đầu tiên tác giả về chủ đề này (không mở - người dịch) được thực hiện chỉ năm ngày trước khi xuất bản bản gốc của bài viết này, và có thể coi rằng, ngoại trừ các vấn đề về âm thanh, nhiệm vụ trên thực tế đã được giải quyết. Nhân tiện, tác giả đã chỉnh sửa phiên bản cuối cùng của văn bản từ “màn hình chữ nổi tự cung cấp” do anh ấy tạo ra, kết nối nó qua SSH với máy tính ở nhà của anh ấy.

Nguồn: www.habr.com

Thêm một lời nhận xét