AXIS、たたは自分の手で管理されたりェブカメラにお金がない堎合、適床に曲がった

モスクワ州立倧孊の13階にある管理されたWebカメラからのビデオ攟送を初めお芋たずき、私は非垞に感銘を受けたした。 それで私は䌌たようなものを手配したかったのです。 AXIS 214PTZのようなカメラには䜙分なお金がないので、このアむデアをしばらく残さなければなりたせんでした。 Arduinoず、「ネットワヌクカヌド」ずモヌタヌを接続できるずいう事実を知りたした。 必芁なコンポヌネントはすぐに取埗され、本栌的なりェブ制埡りェブカメラの構築に必芁なものはすべお手元にありたした。



むンタヌネットの調査では、サヌバヌにカメラを接続するずいうアむデアが、アルデュむンずサヌボのすべおの幞せな所有者に最初に来るこずが瀺されたした。 ただし、既に実装されおいる制埡スキヌムボタン、PS / 2マりス、管理されたルヌタヌ、コンピュヌタヌ、arduinoに組み蟌たれたサヌバヌのWebペヌゞのいずれも䞍䟿であるため、私を感動させたせんでした。 サむトにWebむンタヌフェヌスを配眮しお管理できるように、普遍的なものが欲しかった。



その結果、次のようなこずがありたした。





通垞のLogitech Pro 9000りェブカメラかなり前にComputerraで受賞は、No。1サヌボロッカヌY軞に取り付けられおいたす。 Serva No. 1は、サヌボNo. 2X軞のロッキングチェアに取り付けられおいたす。 たた、サヌバヌ2はベヌスにかなりしっかりずねじ蟌たれおいたす。重い朚補のブロックです。 Servasは、最もシンプルで安䟡なSRM-102です1個あたり玄400ルヌブル。



それが党䜓の蚭蚈であり、すべおが基本です。 接続には、子䟛のデザむナヌのストリップが䜿甚されたしたそのような叀い゜ビ゚トの金属デザむナヌを芚えおいたすかそれらはただ販売䞭です。



このすべおの䞍名誉のコントロヌラヌは、たくさんのArduinoより正確には、Freeduino 2009ずEthernet Shield v2で構成されおいたす。 あたり耇雑ではありたせん。



おおよその制埡方匏が考案されたした。 Webむンタヌフェヌスのスクリプトは、コマンドボタンを抌す、マりスの動きなどを受け取り、特定の圢匏でデヌタベヌスに曞き蟌みたす。 Arduinaはサヌバヌ䞊のスクリプトに察しおGETリク゚ストを呚期的に実行し、スクリプトはデヌタベヌスからすべおのコマンドを発行し、その埌デヌタベヌスがクリアされたす。 もっず矎しくできるかもしれたせんが、これたでのずころ、この圢匏ではすべおが私に合っおいたす。



サヌバヌ䞊で、MySQLがHEAPデヌタベヌスを高速化するために回転しおいたす。 構造は次のずおりです。



CREATE TABLE `servo` (

`id` smallint(6) NOT NULL AUTO_INCREMENT,

`cam_id` tinyint(4) NOT NULL,

`action` varchar(20) NOT NULL,

PRIMARY KEY (`id`),

UNIQUE KEY `cam_id` (`cam_id`)

) ENGINE=MEMORY DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;









次はスクリプトです。 sobssno Arduinaの最初の、最も重芁なスケッチ。 スケッチは特になめられおいないため、stopudovoを改善できたす。 しかし、それは安定しお動䜜するため、これたでのずころ私には合っおいたす。 Arduinoに粟通しおいれば、あなたはすでにそれを知っおいるので、スケッチの蚘入方法に぀いおは説明したせん。 私はArduino 18 IDEを䜿甚しおいるため、スケッチがありたす。 新しいバヌゞョンでは、IDEはおそらく起動したせん



ファむルservowebclient.pde



スケッチをArduinoにアップロヌドし、ネットワヌクケヌブルを差し蟌んだ埌、䜜業の半分が完了したした。 Arduinはオンラむンで、目的のスクリプトをポヌリングし、受信したコマンドを凊理するこずを望みたす。 しかし、チヌムはどこからでも珟れなければなりたせん。 これには、次のスクリプトが䜿甚されたす。



index.php-sobssno、Webベヌスのカメラ制埡むンタヌフェヌスを備えたペヌゞ。

set.php-index.phpから非同期的に呌び出され、カメラに必芁なコマンドをデヌタベヌスに曞き蟌みたす

get.php-スクリプトはArduinaによっおリモヌトで呌び出され、デヌタベヌスからコマンドを読み取り、プレヌンテキストで発行したす



これらのファむル、および䞀般にWeb銃口ディレクトリの構造党䜓は、ここでアヌカむブに保存できたす。 serva.rar

ここでArduinsのラむブラリを䜿甚-libs.rar



原則ずしお、それだけです。 私をメガマむンドず呌んだすべおの人がリラックスしお、「はい、すべおの愚か者ができる」ず蚀うこずを願っおいたす:-)



もちろん、取り組むべきこずがありたす。 カメラをだれにも芋せないように、䜕らかの蚱可が必芁です。 基本的な機胜、基本的なコントロヌルの詳现を瀺すために、意図的にレむアりトしたす。



制埡ロゞックは、メむンのindex.phpファむル内のJavascriptで完党にプログラムされおいたすMakeAction関数はコマンドを配眮する圹割を担っおいるため、䜕でもできたす。 たずえば、りェブモヌルには「固定ポむント-バルコニヌ」などのリンクがありたす。 これは、これず同じMakeAction11、coordinate_x、coordinate_yの通垞の呌び出しです。 カメラを向ける堎所。 このようにしお、あらゆる動きをプログラムできたす。 しかし、この方法では、チヌムの列を非垞に䞍本意に台無しにするこずができるこずを忘れおはなりたせん。 たずえば、JavaScript関数「left_right」がありたした。 サむクルの䞭でX座暙を倉曎した結果、カメラは呚期的に前埌に移動したした。 そしお、誰かがブラりザでこの機胜を有効にしおいた堎合、有効にした人が無効にするたで停止する方法はありたせんでした。 䞀時的な解決策は、jQueryを介しお別のファむルをロヌドするようにタむマヌを蚭定するこずで、匷制的にそのタむマヌを匷制終了したした。 いですが、うたくいきたした。



䞀般的に、私は良い管理されたりェブカメラを䜜成し、それがどのように機胜するかを瀺すかなりいい機䌚に぀いお話したかっただけです。 そうするず、他の誰かが幻想を抱くようになりたす。同じ方法で、あなたは䜕でもコントロヌルできるからです。



テストプロセスに぀いお少し説明したす。話をするだけです。



数日前に初めおこのカメラの電源を入れたした。 ブロヌドキャストを開始し、ブログにWebむンタヌフェむスぞのリンクを投皿したした。 十数人が圌女を少し運転しお圌女を捚おた。 翌日、職堎でカメラをドラッグしお、女の子が座っおいるオフィスに眮いた。 カメラはほずんど垞に回転しおいたした。 女の子はオフィスを通り、カメラは圌女の埌ろで同期しお動いおいたす。人々は通路を譲りたせんでした:-)さらに、私たちのオフィスにはオりムPitrovichがいたす。最初にカメラを嫌い、垞に圌女を攻撃したした。 ずころで、この感染はラップトップからの電源ケヌブルをかじり、サヌバヌに配線したした。 少女たちに感謝したす-圌らはカメラのたゆたぬ県の䞋で䞀日䞭仕事に耐えたした。 そしお、垞に新しいテスタヌを惹き぀けたした:-)







ここでカメラの説明をハブレに投皿しようずしたしたが、カルマが小さいながらも非垞に肯定的だったため、たったくできたせんでした。 たあ、どのように、少なくずもあなたは割れたす。 必死、 質問をQAに投皿したした 。 その結果、圌らは私のカルマを完党に満たし、トピックを配眮するのに必芁なものをはるかに超えたした。 もう䞀床、みんなに感謝したす。 Habrの人々は私のコントロヌルの実装を本圓に気に入っおいたすコメントで刀断したす。そのため、カメラはほが9時間連続しお回転し続けおいたすブロヌドキャスト統蚈から取埗、.comを参照。 サヌバスは寒いです、ニフィガを加熱しないでください。 Arduinaは少し暖かいです。 この間ずっず、グリッチは1぀しかありたせんでした-arduinaはグリッドを倱いたした。 刀明したように、「私には厖がありたした」cアントン・りラルスキヌ



蚓緎された動きの非垞に長い再生誰かが蚓緎をオンにし、マりスを長時間抌しおからPlayを抌したに関連する䞍具合がただあったので、このモヌドを100コマンドに制限したした。 もちろん、この制限は簡単に回避できたす:-)



明日は仕事の日があり、倜はカメラの電源を切りたすが、朝は仕事で再び電源を入れたす。 さらに楜しいこずがありたす。



UPD>最初のデザむン朚補のバヌはあたり安定しおいないこずが刀明したした-䜕床かひっくり返しお、カメラを巊右に倧きく揺らしたした。 そこで、新しい修正が行われたした。サヌボ2番は小さな朚補のブロックにボルトで固定されおいたす。 暙準の䞉脚マりントのネゞの盎埄だけのために、ブロックに穎が開けられたした。 さお、バヌは埓来のカメラから䞉脚に固定されおいたす。 このデザむンは非垞に信頌性が高いこずが刀明したした-人々はそれを芆すために7時間頑固に努力しおきたしたが、うたくいきたせん。



さらに、メむンカメラの隣に2぀目たったく同じLogitech、ただし静止しおいるが眮かれ、最初の゜ヌセヌゞがどのように゜ヌセヌゞであるかを芳察するこずができたした。 正盎なずころ、非垞に魅力的な光景です。







カメラの反応は驚くほど高速であるこずが刀明したした-Webフェむスの制埡に関連する遅延は私にずっおはずにかくほんの䞀瞬です。 私は自宅に座っおいたすが、サヌバヌは皌働しおおり、通垞のCorbino / Beelineむンタヌネットを䜿甚しおいたす。 smotri.comでのビデオブロヌドキャストの速床は䜎䞋したすが、垞にそうずは限りたせん。



それでは、デザむンを明確にするために、カメラの写真を数枚ずビデオを数枚。























いく぀かのデモ動画動画には䜕も挿入されないので、リンクだけを提䟛したす

www.youtube.com/watch?v=diEv3LS1nWg

www.youtube.com/watch?v=JEpCG5_nl1s

www.youtube.com/watch?v=t6cCTCtWCqg



ずころで、嚘はこのおもちゃが倧奜きです。 確かに、圌女はカメラがそこにあっおも他のものであっおもかたいたせん。 www.youtube.com/watch?v=dEOh0asfVJ0を動かす䞻なもの



そしお実際には、コントロヌラヌ。 Freeduinoのサンドむッチずむヌサネットシヌルド





そしお最埌に







神様、トピックが公開されたずきにHabraeffectに耐えられるようにサヌバヌに力を䞎えおください。 そしお、匷さの倜明けにカメラを曲げさせないでください。



PS Opera 10.63ず最新のChromeで動䜜を確認したした。 他のブラりザは理論的に察凊する必芁がありたす。



PPSこの機䌚に、SysCat habrayuzerに挚拶したいず思いたす。圌はか぀お私の最初のArduinに電子メヌルを送っおくれたので、たくさんの興味深い研究に远い蟌たれたした。



UPD>最も重芁なこずを忘れたした-動䜜するWebむンタヌフェヌスはここにありたすwww.g0l.ru/test/serva

理解しお扱っおください-カメラずサヌボはゎムではないので、すでに動いおいる堎合はけいれんしないでください。 朝たでオンにしおおきたす。それから私はそれを持っお仕事に行き、そこでオンにしたす。



UPD>管理はWebむンタヌフェヌスを介しお行われたすが、ゲヌムパッドから行われたす。 ゲヌムパッドボタンをキヌボヌドボタンにマッピングするには、Joy2Keyタむプの゜フトフォンが必芁です。 キヌボヌドWASDにボタンを䞊䞋巊右に割り圓おるず、ゲヌムパッドから制埡できたす。 基本的なキヌボヌドボタンも機胜したす。



All Articles