プログラマーが問題を解決する方法

画像



私は定期的にローカルITポータルの「イベント」セクションをチェックしましたが、最近、私が長い間探していたもの、つまり別のハッカソンを見つけました。 はい、単純なハッカソンではなく、 複雑で正しいものです:スタートアップなし、人事なし、トピックを課したり制限したり、 夕食なしで 。 一般的に、私はバッグを詰め始めました...



それについて-記事を読んでください。



なに? 再び?!



おそらくあなたは、別の「{placeholder}のソーシャルネットワーク」のようなことをするのが好きではないことを知っている/覚えいるでしょう。 そして、これは、結局のところ、私の不本意は、今後のハッカソンの主催者の目標と完全に一致します。 一般的に、そして今回は、何か新しいことを試すために、異常なことをすることにしました。 私の選択はArduinoにかかった。



私たちが同僚の一人の誕生日にプロジェクトチームに与えた、そして私が週末に借りることができたまさにそのarduino(オーナーが言ったように「絞る」)。 それをどうするかを理解するために残った。



プログラミングタンバリン、標準、ワンピース



誰もが管理者タンバリンに関する伝説を知っていますか? 鉄をよみがえらせ、死者の中から網をよみがえらせるのか。 そうでない場合、何とどのようにここに描かれています 。 したがって、これらのタンバリンは管理者を支援するだけでなく、精神的な問題としてプログラマの問題を解決することがわかります。 ちょっと音を立てると、それだけです-バグが修正され、プロジェクトがコンパイルされて動作します。 そして、私はそのようなタンバリン、プログラマーを適切なエネルギーで満たしています。



画像



しかし、誰もがそのようなデバイスを持っているわけではありません。 そして、たとえあったとしても、常に機能するとは限りません。 しかし、私のものは証明されたものであり、忠実に奉仕した最初の年ではありません。 一般的に、私は問題を抱えているすべての人にタンバリンの生命力を利用する機会を与えることにしました。 もちろん、プログラマだけでなく、誰にとってもタンバリンで十分です。 そのため、「bubna.net」プロジェクトのアイデアが生まれました。タンバリンのライブブロードキャストを行うサイトで、ページ上のボタンをクリックするだけでそこに話しかけることができます。 彼は圧力をかけ、促し、問題を解決し、別の患者に道を譲った。 この考えにこだわることが決定されました。



ナブルのための脳があり、タンバリンもあります。 タンバリンを打つ何かが必要でした。 だから私は2台のステアリングカーを手に入れました:



画像



そして、そのようなブレッドボード:



画像



そして、それに配線し、すべての小さなもの。 ところで、私はこのアイデアの実現のおかげで初めてArduinoに慣れました。 そのため、ハッカソンの準備のために必要なほぼすべてのものを購入しました。



行こう!



夜はハッカソンを始めました。 マルチメーター、はんだごて、必要な腺-彼はすべてをすべての消防士に持っていきました。 私のような人が彼のアイデアを思いつきました。 私のような誰かがチームなしで来ました。 残り-両方なし。 ビジネスアナリストのビクトリアとモバイルアプリケーションのプログラマーであるアンドレイの2人の参加者が、私の悪い考えに夢中になったように思えました。 タスクは単純に分配されました。私は鉄を使い、男は残りを行います。 残りは、ボタンとタンバリンのライブブロードキャスト、プレゼンテーション、ティーコーヒークッキー、ジョークを含むサイトです。 私の仕事は、bubnilkaのすべてのコンポーネントをまとめて機能させることです。



ハッカソンは金曜日の夕方から日曜日の夕方まで行われました。 初日、私はarduino、電源、ブレッドボード、ワイヤー、サーボを扱うことにしました。 サーブとアルデュインの接続に問題はありませんでした。ただし、パワーアップヒット(眼圧計からの電源には非標準のプラグがありました)およびブレッドボードのワイヤ色の選択が例外でした。 最初のサーバーが1時間以内にコマンドの実行を開始しました。



2つの「マレット」(サーボごとに1つ)を作成することが決定されました。これにより、ストロークを交互に組み合わせたり、遅延を変化させることが可能になります。 「ハンマー」-先端に消しゴムが付いたボールペンの棒で、テーブル上で球形に芸術的に拭かれます。 サーボスイングにプラスチック製の紐で固定し、非常に優れた「打楽器」を取得します。



画像



家で安全に夜を過ごしたので、楽器の本体の製造を始める必要がありました。 自動化されたタンバリンの基礎のために、私は、 最近完了した中断修理から残ったベニヤ合板のスクラップを使用することにしました。 これらすべてを一緒に固定するために、より長いタイとワイヤーが必要でした。 通常、スクリードは非常に便利です。 これはすべて、カットして包帯を巻いた指で行われたことを考えると、非常にうまくいきました(何が起こったのか聞かないでください):



画像



タンバリン+マレット+ベース= eBuben:



画像



中身は?



ハッカソンの会場に戻って、このデバイスに音を教える必要がありました。 さらに、呼び出されたスピリットがそれでも問題を悪化させるのではなく修正するように、十分にメロディアスに聞こえます。



Arduinoファームウェアは、2番目のネイティブ言語であるC ++で作成する必要があります。 しかし、これは私の頭を壁にぶつけても、せずに壁にぶつけるのを助けませんでした。 経験的に、サーボの最小位置と最大位置を選択することが可能であり、そこから打撃がはっきりと発生し、はっきり聞こえるようになりました。 サーボがタンバリンに当たる(最大位置まで)および反撃する(最小まで)のに必要なタイミング。 など 「休息状態」からストレス、ショック、そして休息へのservの移行のための有限状態機械が「発明された」。 Nサーバーの非同期制御(この場合は2つありました)、ロギング、サンプルタイプ(無音、i番目のサーボによるビートまたはすべての同時)、トラックの再生と停止、トラックのループ、X秒の再生などのメカニズムを追加しました。 .d。 実際、タンバリン用の小さなシーケンサーが開発されました。 確かに、音楽を録音する機能はありませんが、ファームウェアに直接ハードコードするだけです。



これらはすべて、シリアルポートを介して制御されました。 もちろん、ユーザーのトラックをコンピューターから直接「arduino」にロードすることもできますが、これには十分な時間がありませんでした-プレゼンテーションでタンバリンを顔に当てないで安定した作業を達成するために。



リーキージーンズ、ボタンアコーディオン、プランB



土曜日から日曜日の夜、小さな本と将来のWebページとの間に、生放送でレイヤーを作成する必要がありました。 ソリューションは、Pythonのコンソールサーバーで、目的のURLをリッスンし、目的のバイトを目的のポートに送信しました。 すべてがシンプルです。 しかし、Python 2.xの代わりにPython 3.xを使用することは、なんと大きな間違いでしょう。 誰が知っている、彼は理解します...



夜は、最も根強い参加者によるいくつかの映画の共同視聴で始まり、温かいチューブオイルヒーターの隣の豆袋の椅子で続きました。 私は一晩中ジーンズを燃やしたことを夢見ていた。 直接感じました。 私は目を覚まし、それらをチェックし、穴を見つけられず、寝ました。 午前中、次のテーブルの人がテストしたボタンアコーディオン(おそらく彼ら自身がそれについて書くでしょう)が干渉し始めました...一般的に、冗談のない楽しい夜でした。



日曜日は、カットされたすべてを完成させ、チームメイトが同時に作業したWebページにリンクすることに専念しました。 残念ながら、ページのプレゼンテーションで何かがおかしくなり、彼女はデバイスの起動を拒否しました。 2番目のタンバリンを持っていれば、すべてうまくいくと思います。 そのため、バックアッププランを使用する必要がありました。eBubenはバックアップボタンで起動されました(常にプランBがあるはずです!)。



そして、これが私たち自身のeBubenです。







ドメイン名bubna.netは登録されないことに決めました-それは怠zyであり、主なタスクはもともとサイトではありませんでした...

更新しました。 :ドメインが既に登録されていることが判明しました(モスクワ時間11:54に確認)。 おそらく誰かがこの記事に触発されたのでしょう。



目標は達成され、週末は無駄ではなく、「最も技術的に進んだプロジェクト」のノミネートは私たちのものでした。



PS Hackathonは成功しました。 多くのクールなプロジェクトと情熱的な人々がいました。 主催者のおかげで、私は次のWTHを待ちます。



PPSしかし、私がこれらのITの集まりに行かせてくれた妻と娘に最大の感謝をします。 彼らの承認と支援がなければ、私は成功しなかったでしょう。



All Articles