曎新RaspberryPiを䜿甚しおメモリを備えたUSBタブレットスキャナヌネットワヌクを䜜成する方法。ビデオ講矩ずテキスト

今日はラズベリヌパむに関する出版物が殺到しおいるので、5セントを挿入したす。最近、Youtubeに講矩を投皿し、Raspberry Piのネットワヌクドラむブず、SANE、Samba、WiringPiを䜿甚しお、小さな電気技垫ずbashを所有するUSB​​スキャナヌでスキャンするデバむスを䜜成する方法を瀺したした。瀺されおいるものはすべお、倚少適応した圢ではありたすが、実際の生掻で䜿甚されおいたす。興味のある方は よく芋お、コメントやカルマで批刀しおください。:)



講矩はほが2時間だったので、Youtubeで盎接芋る方がおそらく良いでしょう。ビデオの説明に目次がありたす。ビデオの埌には、短瞮圢のテキストトランスクリプトが続きたすHabr専甚。



幞せな芖聎たたは読曞。:)







問題の説明ず解決策の抂念



初期デヌタから始めたしょう。コンピュヌタヌのUSBポヌトに接続し、コンピュヌタヌにスキャンできる通垞のスキャナヌ私の堎合はCanon CanoScan LiDE 120がありたす。しかし、ここでは、たずえば、2台目のコンピュヌタヌが衚瀺され、䞀般的にスキャンが必芁になるため、毎回コンピュヌタヌ間でスキャナヌを切り替えるのは䞍䟿です。䜕をすべきかはい、珟圚ネットワヌクMFPがありたすが、䜕らかの理由でこれは私たちの遞択肢ではありたせん。



この問題を解決するには、基本的に、スキャナヌ甚に別の堎所を甚意し、ネットワヌクドラむブを敎理し、ホヌムネットワヌク䞊のすべおのコンピュヌタヌをそれに接続し、スキャナヌにこの同じネットワヌクドラむブにスキャンするように教える必芁がありたす。スキャン䞭のナヌザヌはスキャナヌの近くにいお、ボタンを抌しおスキャンしたシヌトを倉曎したす。圌はスキャンするコマンドを䞎えるために毎回コンピュヌタに走る必芁はありたせん。そしお、必芁なものがすべおスキャンされるず、圌は自分のコンピュヌタヌに移動し、スキャンしたファむルをネットワヌクドラむブから自分自身にコピヌたたは転送しお、匕き続き䜜業を続けたす。



そこで、スキャナヌを配眮する堎所を遞択し、ロヌカルネットワヌクのルヌタヌからケヌブルをケヌブルに接続しWiFiも可胜ですが、これはオプションずしお残しおおきたす、220V電源甚のコンセントを配眮したす-そしお次に䜕をしたすか



理論的には、スキャナヌはコンピュヌタヌに接続する必芁がありたす。しかし、これらの目的のために別のコンピュヌタヌを賌入しおむンストヌルするこずは費甚がかかり、正圓化されたせん。たあ、圌はキヌボヌドずモニタヌ付きのマりスが必芁になりたす、圌らはたたスペヌスが必芁です。同時に、特別なこずは䜕もありたせん。䞻に1぀のフォヌマットA4をスキャンしたす。それでは、もっずポヌタブルなものに目を向けたしょう。



私たちのプロゞェクトでは、シングルボヌドコンピュヌタヌのRaspberry Pi 2モデルBを䜿甚したす。これは新しくはなく、それほど匷力ではありたせんが、その電力はタスクに十分であり、実際にぱネルギヌを消費したせん。GPIOが圹立ちたす。



既存のスキャナヌに基づいおすぐにすべおを繰り返したい堎合は、最初にSANEプロゞェクトのWebサむトにアクセスするこずをお勧めしたす。、サポヌトされおいるデバむスのリストに移動し、特定のスキャナヌモデルがプロゞェクトで適切にサポヌトされおいるこずを確認したす。そうでなければ、努力ず、おそらくお金がパむプに飛び蟌む可胜性がありたす。さらに、Debian 10より正確には、Raspberry Pi Foundationがオペレヌティングシステムを䜜成したバヌゞョンをチェックするずきの珟圚のバヌゞョンでマシン仮想たたは実を線成し、箱から出しお正気になり、scanimageナヌティリティを䜿甚しお䜜業をチェックするこずは䟡倀がありたす。すべおが正垞であれば、おそらくラズベリヌで機胜したす。



必芁な補助



ラズベリヌずスキャナヌの電源に぀いおは、デモプロゞェクトでは通垞の2アンペアのMicroUSB充電噚を䜿甚しおいたす。しかし、ラズベリヌが24時間動䜜するこずになっおいる堎合は、それらを䜿甚するこずはお勧めしたせん。これは圌らの仕事ではなく、24時間幎䞭無䌑のモヌドでこのような小さな電流を長時間䞎えなくおも特定の充電が倱敗しないずいう事実ではありたせん。お金を節玄せず、独自の電源ナニットを䜿甚するか、そのような䜜業に適した別のナニットを採甚するこずをお勧めしたす。

たた、スキャナヌを長さの長いUSBケヌブルなどで接続するこずはお勧めしたせん。これは、6か月以䞊の運甚経隓によるものです。最も䞍適圓な瞬間に驚きが起こる可胜性がありたす。



「ディスク」メモリに関しおは、ご存知のように、ラズベリヌではmicroSDカヌドが䜿甚されたす。 10番目のRaspberryPiOSは4ギガのカヌドに収たりたす。しかし、そこにはたずもなむンストヌル可胜な゜フトりェアず、スキャン甚のネットワヌクフォルダがありたす。したがっお、少なくずも8぀に焊点を圓おたす。たた、OSむメヌゞの初期蚘録には、カヌドを接続できるカヌドリヌダヌ付きのコンピュヌタヌが必芁です。ラップトップに組み蟌たれおいるSDカヌドリヌダヌ甚のアダプタヌを䜿甚したした。



䜓も必芁です。たくさんのオプションがありたす。瀺されおいるバリアントでは、厚みが増したオリゞナルではないケヌスを䜿甚したした。これにより、プロゞェクトで提䟛された2぀のボタンずLEDのスキヌムをトップカバヌに取り付けるこずが可胜になりこれに぀いおは埌で詳しく説明したす、ケヌスの高さはボタン、ラズベリヌ、およびGPIOピンに接続するためのBLSコネクタに十分でした。このボディはプレキシガラスでできおいたす。これは、組み立おられた回路での倖芳ですが、ラズベリヌはありたせ







んここで、このケヌスをデバッグずデモンストレヌションに䜿甚したす。戊闘バヌゞョンでは、ラズベリヌは電源ず䞀緒に専甚の電気パネルに取り付けられ、同時に別のタスクに䜿甚され、回路が取り付けられたす別の小さなケヌスに入れお、4芯のフラット電話ケヌブルでラズベリヌに接続したす。



ラズベリヌのもう1぀の問題は、コアの加熱です。24時間䜓制で䜜業する堎合は、小さなラゞ゚ヌタヌを適切な熱䌝導性のもので接着したす。



メモリカヌドの準備



メモリカヌドの準備を始めたしょう。最近、Raspberry PiFoundationはRaspbianの名前をRaspberryPi OSに倉曎しただけでなく、Windows、macOS、およびUbuntu甚のRaspberry PiImagerず呌ばれるプログラムもリリヌスしたした。このプログラムをダりンロヌドし、コンピュヌタヌにむンストヌルしお実行したす。



たず、プログラムりィンドりで、ChooseOSを䜜成したす。倚くのオプションがありたす。デフォルトでは、Raspberry Pi OS32ビットが提䟛されおいたすが、デスクトップ付きであり、2぀はデスクトップがたあたあです。したがっお、Raspberry Pi OSその他に移動し、そこでliteオプションを遞択したす。コマンドラむン以倖はほずんど必芁ありたせん。次に、メモリカヌドを入れお遞択し、そこに画像を曞き蟌みたす。このプロセスは、001215のビデオに瀺されおいたす。



初期蚭定



あなたはラズベリヌにメモリカヌドを入れお、その蚭定に行くこずができたす。これを行うには、電源、むンタヌネットずスキャナヌを備えたネットワヌクに加えお、USBキヌボヌドずモニタヌをHDMIケヌブルで接続する必芁がありたす第4䞖代のラズベリヌにはMicroHDMIがありたす。最埌に電源を接続したす。たた、特にラズベリヌがケヌスに入っおおらず、電源が220Vずの電気的接觊の点で疑わしい堎合は、開いた導電性郚品で䜜業するずきの安党性に぀いお芚えおおいおください。



電源を入れ、起動し、デフォルトのpiログむンずラズベリヌパスワヌドを䜿甚しおログむンしたす。ビデオのセットアッププロセスは00:18:43から始たりたす。



たず、sudo aptupdateずsudoaptupgradeを必ず実行しおください。ビデオの録画時に、初期蚭定の盎前にメモリカヌドの画像を録画したしたが、リポゞトリは30個のパッケヌゞを曎新するこずを提案したした。どうやら、リポゞトリが曎新されるたびに収集されるわけではありたせん。



さらに、必芁に応じお、ロシア語の文字ではなく、コン゜ヌルの正方圢の問題を解決したす。sudo dpkg-reconfigure console-setupを呌び出しお、メニュヌを確認したす。次のパラメヌタを蚭定たたはそのたたしたす。



  • コン゜ヌルで䜿甚する゚ンコヌディング-UTF-8
  • サポヌトする文字セット-最適な文字セットを掚枬したす
  • フォントサむズ-8x16




初めお再起動したす。これは、sudorebootを介しお通垞の方法で行いたす。再床ログむンし、sudo raspi-configを実行しお、パラメヌタの初期蚭定に進みたす。その䞭で次のタスクを実行したす。



  1. ( : System options — Password )
  2. SSH (Interface options — SSH)
  3. (Localisation options — Locale; en_GB.UTF-8 UTF-8, en_US.UTF-8 UTF-8 ru_RU.UTF-8 UTF-8, )
  4. (Localisation options — Timezone; , )
  5. (Advanced options — Expand filesystem).




その埌、[完了]を遞択したす。プログラムは再起動を提案したすが、これは私たちが行いたす。



次に、再床ログむンし今回は新しいパスワヌドで、sudo raspi-configに移動し、[ロヌカリれヌションオプション]、[キヌボヌド]の順に遞択したす。キヌボヌド蚭定プログラムはすでにロシア語で曞かれおいたす。



キヌボヌドモデルでは、暙準ずしお「105キヌInt。の通垞のPC」を遞択したす。



レむアりトでは、最初に「その他」、次に「ロシア語」、次にオプション「ロシア語」たたは既存のキヌボヌドに適したものを遞択したす。



次に、必芁に応じお、レむアりトやその他の異なるキヌを切り替える方法を遞択したす。すべおがすぐに切り替わりたす。メむンのraspi-configメニュヌに残り、[完了]に移動したす。このナヌティリティに再び戻るこずはありたせん。



プロゞェクトで䜿甚される远加の゜フトりェアのむンストヌルず構成





sudo apt install Wireingpi sambasaneを行いたす。私はmcをこのリストおよび講矩に远加し、圌ず䞀緒に䜜業する方法を瀺したしたが、これは玔粋に個人的な奜みの問題であり、誰にも課したせん。



次にできればほずんどの堎合氞続的なIPアドレスをmalinkaに蚭定したす。ルヌタヌでこれを行う方が良いず思いたすが、これが䞍可胜な堎合は、コメント「静的IP構成の䟋」の埌に/etc/dhcpcd.confを線集しお、静的ネットワヌク蚭定を蚭定できたす。 dhcpcdパッケヌゞはRaspberryPi OSに含たれおいるので、むンストヌルする必芁はありたせん。



次のタスクは、スキャンファむルを保存するためのディレクトリを䜜成するこずです。このケヌスを遞択しお、/ var / scannedディレクトリを䜜成したした。このディレクトリは、sambaが操䜜できるように、そのような暩限を蚭定する必芁がありたす。



もちろん、珟圚、sambaを構成しおいたす。 /etc/samba/smb.confに移動し、グロヌバル蚭定ずセクションを、新しいネットワヌクリ゜ヌスのデヌタず、そこに䜜成したディレクトリぞのパスで登録したす。ビデオは00:41:51にそれを瀺しおいたす。しかし、もちろん、ネットワヌクの詳现は、そこに䞎えられた蚭定ずは䞀定の違いをもたらす可胜性がありたす。



構成埌、ラズベリヌを再起動し、コンピュヌタヌからネットワヌクドラむブを確認するこずを匷くお勧めしたす。そこから、ほずんどの堎合、ディレクトリ内のファむルぞのフルアクセスが必芁になりたす。



針仕事ずプログラミングに移行する前に、2぀のタスクが残っおいたす。鉄の郚分を決定し、最初にスキャンプログラムのパラメヌタを把握するこずです。



鉄の郚分から始めたしょう。これを行うには、gpioreadallを実行したす。 Malinkaは、GPIOコネクタのピンの番号を[物理]列に衚瀺し、その目的を[名前]列に衚瀺したす。回路には、3぀のGPIOポヌトず1぀の共通ワむダが必芁です[名前]列では0vず呌ばれたす。コネクタには倚数ありたすが、それほど倚くは必芁ありたせん。いずれか1぀を遞択するだけです。それらの名前ず番号をコネクタに曞き留めたす。私自身は、ピン番号12のGPIO.1、ピン13のGPIO.2、ピン15のGPIO.3を遞択したした。共通線をピン番号9に接続したす。



画像



それでは、すでにUSBに接続しおいるスキャナヌを決定したしょう。 sudosane-find-scannerを実行しおいたす。このナヌティリティでスキャナヌが衚瀺されない堎合は、スキャナヌ、ラズベリヌ、ケヌブル、たたは電源に問題がある可胜性がありたす。これは個別に察凊する必芁がありたす。 sudo scanimage –help |少ないず私たちのデバむスに蚱可されおいるオプションを参照しおください。私自身のために、オプションl、t、x、y、解像床、フォヌマットを曞き留めおおきたす。これらのオプションは、スキャンプログラムのコマンドラむンに移動したす。



これで、ラズベリヌの初期蚭定は完了です。回路を組み立おる前に、ラズベリヌの電源を切る必芁がありたす。これは、誰かが芚えおいない堎合は、コマンドsudo shutdown –hnowで実行されたす。しばらくするず、画面䞊の画像が消え、電源LEDを陀くラズベリヌのすべおのLEDが消灯したす。これは、システムが動䜜を終了したこずを意味したす。電源をオフにしお、手工芞品を開始できたす。







ラズベリヌのGPIOはデゞタル぀たり、2レベル0ず1のみであり、3぀のモヌドで動䜜できたす。入力モヌドはinず呌ばれたす、抵抗が50〜65キロオヌムのプルアップ抵抗を備えた入力呌び出されたす、出力呌び出されたすです。最埌の2぀のモヌドを䜿甚したす。



前に曞いたように、GPIO「開始」ず「停止」ず呌びたしょうずLEDを介しお2぀のボタンを接続する必芁がありたす。圓然、電流を制限するには、制限抵抗を盎列に接続する必芁がありたす。公称倀が2.2キロオヌムで散​​逞電力が0.25Wの出力抵抗を遞択したした。通垞はこれで十分です。接続図は次のずおりです。







アップモヌドの䜿甚に基づいお、ボタンを抌すず倀0がGPIO入力から読み取られ、離すず-1になりたす。䞡方のボタンは通垞開いおおり、固定されおいたせん。



特に、すべおがすでに完了しおいる完成したケヌスの写真を以前に瀺したので、ここでは実行の詳现に぀いおは詳しく説明したせん。安党䞊の理由から、露出した導電性郚品で突き出ないように、倖偎の郚品がすべおプラスチックであるボタンのみを遞択するこずをお勧めしたす。コンピュヌタヌのケヌスで䜿甚されおいるものず同様に、シングルピンBLSコネクタヌでGPIOピンに接続したした。このデモでは、適切なコネクタを備えたArduinoプロゞェクトから倚数のワむダを取り出し、4぀のマルチカラヌのワむダを遞択し、䞍芁な端を切り萜ずし、それらをクリヌニングしお现郚にはんだ付けしたした。もう1぀のオプションは、40ピンの2列フラットケヌブルコネクタを䜿甚するこずです。他に䜕かある堎合は、ハヌドドラむブやCDドラむブの叀いIDEケヌブルを䜿甚するこずもできたす。ちなみに、このオプションは暙準的な高さの堎合にも適しおいたす。それらには、倖郚に出力するためのそのようなルヌプ甚のスロットがありたす。



たた、ラズベリヌボヌドいずれの堎合も2モデルBず3モデルBでは、GPIOコネクタのピンの番号が瀺されおいないずいう事実に苊しんでいたこずを芚えおいたす。今すぐ修正したす。これらの2぀のモデルには、この点で違いはありたせん。







゜フトりェア郚分の実装





゜フトりェア郚分はtadam2぀のbashスクリプトの圢匏で実装されたす-configず䜜業スクリプト自䜓。フロヌ図ず実装の詳现な説明は、010830のビデオにありたす。ここで詳现を説明するのは意味がないず思いたす。スクリプトの゜ヌスコヌドはここからダりンロヌドしお、自由に調べるこずができたす。



メむンの䜜業スクリプトの起動は、/ etc /rc.localの起動に曞き蟌たれたす。唯䞀のこず-私は最初に䜜業ディレクトリの倉曎をスクリプトでディレクトリに登録する必芁がありたした。しかし、ここにはひどいこずは䜕もありたせん。それはそれ以䞊の䜜業を劚げるこずはありたせん。もちろん、起動コマンドの埌にアむコンを远加するこずを忘れないでください。そうしないず、システムの起動に問題が発生したす。



それでは、実際には、実際のスキャンのプロセスず、ssh接続およびパラメヌタヌの埮調敎をラむブで衚瀺するだけでした。あなたは01:41:04にビデオでそれを芋るこずができたす。



どういうわけかそれが起こった。戊闘バヌゞョンでは、違いのうち、スキャンのみがそれぞれ別のNASに送られ、スクリプトがわずかに倉曎されおいたす。したがっお、スキャンはどこかのボットによっおメッセンゞャヌに送信するこずもできるず思いたす。察応するAPIを理解し、curlでそのようなこずをしたいだけです。たくさんのオプションがありたす。実装で頑匵っおください。:)



All Articles