プリンターから始めましょう。
プリンター
明らかな理由により、プリンターはプロジェクトの重要なノードであるため、慎重に選択しました。 約15種類のモデルを試した後、両面印刷(つまり、シートの両面)を備えたHP Officejet Pro X451dwインクジェットプリンターに決めました。 その競争上の利点は、印刷速度が速いこと、500枚の大きなトレイ(同じ量で別のトレイを購入できること)、および印刷されたシートの出力ウィンドウが配置される十分に高いことです。
印刷シート用のプラスチックスタンドを取り外し(ラッチに取り付けられています)、かなりの高さの差がありました。 これにより、重力の力(「力を使う、ルカ!」)を使用することができました。その影響を受けて、チケットは斜めに置かれたトレイを滑り落ちました。 同時に、トレイ内にシートを押し込むために余分なトラボレーターを作成する必要はありませんでした。
プリンターが届いたとき、私たちは喜んで箱を開けました(私はあなたのことは知りませんが、新しいテクノロジーの匂いが好きです!)そして、それをセットアップし始めました。 最初のテストは「Hurray」で行われ、プリンターは定期的にテストチケットを印刷しました。 しかし、より厳密なテストが開始されると、両面印刷はA4用紙でのみ機能することが判明しました。 そして、私たちのチケット形式はA5でした(結局、私たちは環境に配慮しており、余分な紙に嫌がらせをしたくありません)。 つまり、A5形式のチケットは「裏返して」印刷されました。 すでにカメラを下から配置する方法について考え始めていましたが、数日後、UNIX用のすばらしいドライバーを見つけ(下のサーバーについて説明します)、二重で印刷する方法を教えました。
一般に、プリンターは非常によく機能しました。 約30,000枚のチケットが印刷され、この間に紙詰まりは3回しか発生しませんでした(!)。
Arduino、サーボ、センサー
このプロジェクトでは、Arduino Uno、Troyka Shield、サーボ、ディスプレイ、センサー、その他のささいなものを2セット購入しました。 元のバージョンでは、Arduino接続図は次のようになりました。
最初のArduinoは、トレイの開閉を担当しました。 2番目-勾配センサー(後に別のセンサーが登場-超音波距離計)から情報を受信し、この情報を画面に表示するため。 クイックアセンブリは、問題がないこと、エンジンが正常に回転していること、テスト情報が画面に表示されていることを示しました。

アナログラインセンサーは、テストグラデーションの照度レベルに関するデータを完全に提供してくれました。

骨nの側壁にグラデーションを配置し、その上にラインセンサーを固定しました。

Arduinoに接続されているもう1つのセンサーは、赤外線障害物センサーです。 トレイの上部カバーにあり、その下に、トレイの底壁に特別な穴が開けられています。 そのタスクは、チケットが印刷されてトレイに落ちたことをサーバーに通知することです。

チケットがトレイに落ちるとすぐに、センサーはArduino信号を送信し、その信号がサーバーに渡されて、カメラの記録を開始します。 数秒後、カメラの電源が切れ、サーボに電力が供給され、「カーテン」が開きます。 Makeblock要素からカーテンを作成しました。

Arduinoに接続されている3番目のセンサーは、超音波距離計です。 投票箱の底と床の間の距離を測定し、重量を計算するための追加情報源です。 最終組み立て後、私たちはナイトスタンドでアルドゥインキを隠しませんでしたが、マルチカラーのワイヤーと点滅するLEDがオタクポルノのファンを喜ばせるように、透明なトレイの後ろに置きました(そして私たちの会社にはそれらがたくさんあります)。

トレイ
デザインのもう1つの重要な領域はトレイです。 印刷された競技チケットが入っており、チケットが裏返らないようにトレイを作成する必要があり、カメラの下に正確に落ちてスタックしませんでした。 プレキシガラスの切れ端からグルーガンで接着された最初のプロトタイプは、次のようになりました。
サイズ、カメラの位置、センサー、シャッター付きのサーボを多かれ少なかれ選択した後、図面を作成し、レーザーカッターですべての詳細を切り取りました( lab3dprint.ruの皆さんのおかげです )。 部品はジクロロエタンで接着され(接着の際に亀裂や不規則性が許容されるべきではありません)、その結果、滑らかな縫い目でよりきちんとしたデザインが得られました:

しかし、障害物センサーの下に穴があっても、紙シートはしばしばスタックし(プレキシガラスにくっついて)おり、引力は摩擦力に打ち勝つほど高くはありませんでした。
シートとトレイの表面との接触面積を減らすために、バドミントンストリングを引っ張りました。

しかし、これはあまり役に立たず、チケットは頑固に最後のセグメントで立ち往生し、カーテンにさえ到達しませんでした。 それからさらに進んで、カーテンが開いた直後に回転し始めるプラスチック製の6枚の花びらのギアで下からサーボを取り付けました。

このような下からのチケットの「プッシュ」は問題を解決し、今ではチケットは「ホイッスルで」滑っていました。 私たちは安reliefのため息をついて、骨urに切り替えました。
投票箱
おそらく既に推測したように、ここの投票箱は最も単純な構造要素でもありません。 結局のところ、簡単な方法を探しているわけではないので、非通常の体重計で体重を測定することにしました(ただし、デザインの最初のバージョンではWi-Fi体重計について怠thoughtに考えていました)。 そして、これらのセンサーが重量変化のダイナミクスを測定するために、私たちは投票箱をバネに掛けなければなりませんでした。 テスト設計のために、古いベッドサイドテーブルから金属フレームを見つけ、合板で木製の箱を作り、それをクラッチペダルVAZ 2101のスプリングに掛けました:
心配する必要はありません。単一のZhiguliが傷つけられることはありません。ヒットしたスプリングはすべて自動車部品店で購入されました。 :)競技チケットの推定重量、ばねの張力比、バスケットの容積、およびその他のパラメータの測定により、設計をより大きくし、ばねをより強力にする必要があることが示されました。

urnとフレームの2番目のバージョンは次のようになります。


投票箱は展示用のアルミニウムのプロファイルとプレキシガラスから組み立てられ、フレームは市場で「ジョーカーウノ」として知られる構造から組み立てられました。 より強力なスプリングが建設市場で購入され、ホルダーをフレキシブルな金属ケーブルで接続しました:

骨withのあるフレームがプリンターに対して誤って移動しないように、プリンターに特別なベッドサイドテーブルをデザインに追加することにしました。その結果、すべてが次のようになりました。

サーバー側
鉄片と並行して、「頭脳」に取り組みました。 そして、システム全体の頭脳は、UNIXで書かれた特別なスクリプトです。 彼の仕事は次のとおりです。- Habrからデータを受信します。
- このデータに基づくメンバーのチケットの形成。
- 印刷する。
- Arduinoとの通信。
- ビデオ録画。
- Habrへのビデオの送信。
- トラブルアラート。
便宜上、SSHアクセスを介してスクリプト管理を整理しました。これがプロジェクトコントロールパネルの外観です。

データは10レコードの部分で送信されます。 情報が受信されると、スクリプトは最初のチケットのPDFファイルのアセンブリを開始し、参加者のアバター、ニックネーム、姓、名、およびカルマと評価を挿入します。 生成されたPDFがプリンターに送信され、赤外線障害物センサーからの信号の待機が開始されます。 チケットが印刷され、センサーの視野に入るとすぐに:

(もちろん、最も愛されているHabrユーザーでテストしました)
...記録は、トレイの上にあるカメラから開始されます。 記録が行われた後、Anatoly Wassermanからの30のビデオメッセージの1つが添付され、ファイルが送信トレイに配置されます。 次の呼び出しで、Habrサーバーはこれらの記録されたビデオをピックアップします。 次に、カーテンを開けて、チケットが投票箱に落ちるのを待ちます。 赤外線センサーがチケットの表示を停止するとすぐに、重量を再計算し、次のチケットの印刷を開始します。
Habrから受け取ったすべてのチケットがすでに印刷されている場合、ステータスを「0」に変更します。これは、新しいデータバッチを受け入れる準備ができたことを意味します。 途中で、スクリプトはカメラ、プリンター、Arduinoのエラーをチェックし、デバイスの1つに突然問題が発生した場合、SMS通知を受け取ります(コンテスト参加者を待たせることはできません!)。
プロジェクト支援
おそらく、あなたがたの多くは、プロジェクトが開始されたとき、この感覚に精通しており、もうそれをやりたいという欲求はありません-すべてのおいしいものがすでに完了し、すべてが機能し、新しいタスクに切り替えたいです そして、一部のユーザーが電話して修正したいのですか、それとも...正直なところ、私たちも例外ではありませんでした。 このプロジェクトは45日間続き、この間、打ち上げ後の私たちのアドレナリンの熱意は徐々に少し無関心に変わりました。 それにもかかわらず、プロジェクトを定期的に監視し、サーバーからSMSが送信された場合、SSHを介して正直に接続し、そこで起こったことを確認しました。 スクリプトを再起動するだけでよい場合もあれば、ガードを呼び出してプリンターに紙を送る場合もあります(このセキュリティミッションはこの名誉ある任務を何時間も実行しましたが、感謝します!)。 たとえば、フィットネスセンターなどの最も予想外の場所で、警告のSMSが私たちを追い抜いたことがあります。

または運転:

しかし、プロジェクトが完了した今、それは私たちの生活の中で最も興味深いものの1つであることを認めざるを得ず、私たちの手は、さらに楽しいものを思い付くために再びひっかきます! プロジェクトに無関心ではなく、私たちの競争に参加してくれた皆さんに感謝します。 ;)
そして今、私たちのオタクコンテストの勝者のリストであるドラムのumble音で!
賞品 | 勝者 |
---|---|
ラップトップ | @noizefan |
ラップトップ | @yongchunlaohu |
ラップトップ | しゅう |
Samsung Galaxy S5 | @alexeyfdv |
Samsung Galaxy S5 | しゅう |
Samsung Galaxy S5 | @BVYU |
Google Nexus 7 | しゅう |
Google Nexus 7 | @ zolt85 |
Google Nexus 7 | @rmq |
Google Nexus 7 | @mrise |
Google Nexus 7 | しゅう |
顎骨 | @thepry |
顎骨 | しゅう |
顎骨 | @msdrSoul |
顎骨 | @SCIF |
顎骨 | @ sveta0203 |
跳躍運動 | @ MrMeowington5 |
跳躍運動 | @jackee |
跳躍運動 | しゅう |
跳躍運動 | @verbaux |
跳躍運動 | しゅう |
跳躍運動 | @usupport |
バックパック | @koltira |
バックパック | @ldinc |
バックパック | @ミケレ |
バックパック | @ Kag0r |
バックパック | しばけー |
バックパック | じゅり |
Tシャツ | しゅう |
Tシャツ | @homm |
Tシャツ | なかむら |
Tシャツ | @アレスアド |
Tシャツ | @pettson |
Tシャツ | @alex_trueman |
Tシャツ | しゅう |
Tシャツ | しゅう |
Tシャツ | @gyok |
Tシャツ | @ graycat660 |





