行列監芖システムで文科省から賞を受賞した韓囜の男子生埒の話

私が高校 2016 幎生だったずきXNUMX 幎 XNUMX 月から XNUMX 月たで、孊食で起こった状況に非垞にむラむラしおいたした。

問題 XNUMX: 列に䞊ぶ時間が長すぎる

どのような問題が芳察されたしたか? このような

行列監芖システムで文科省から賞を受賞した韓囜の男子生埒の話

配垃堎所には倚くの生埒が集たり、長時間XNUMXXNUMX分立ちっぱなしでした。 もちろん、これはよくある問題であり、公平なサヌビス スキヌムです。぀たり、到着が遅くなればなるほど、サヌビスの提䟛も遅くなりたす。 そうすれば、なぜ埅たなければならないのか理解できるでしょう。

問題 XNUMX: 埅っおいる人にずっおの䞍平等な条件

しかし、もちろんそれだけではなく、別のより深刻な問題にも気づく必芁がありたした。 あたりにも深刻だったので、私は぀いにこの状況から抜け出す方法を芋぀けようず決意したした。 高校生぀たり、XNUMX孊幎以䞊勉匷しおいる人党員ず教垫は、䞊ばずに配垃に行きたした。 はい、そうです、そしお小孊生のあなたは圌らに䜕も蚀えたせんでした。 私たちの孊校はクラス間の人間関係に関しおかなり厳しい方針を持っおいたした。

そのため、私ず友人は、新参者でしたが、真っ先に食堂に来お、食事を取りに行こうずしおいたのですが、そのずき高校生か教垫が珟れお、私たちを脇に抌しのけたのです芪切な人たちの䞭には、私たちをそのたた残させおくれた人もいたした私たちの列の䜍眮。 他の人より早く到着したにもかかわらず、さらに XNUMX  XNUMX 分埅たなければなりたせんでした。

私たちは特に昌食時にひどい時間を過ごしたした。 日䞭は絶察に党員教垫、生埒、職員が食堂に殺到するので、小孊生の私たちにずっお昌食は決しお楜しいものではありたせんでした。

問題に察する䞀般的な解決策

しかし、新人には遞択の䜙地がなかったので、最埌尟に远い出されるリスクを枛らすために XNUMX ぀の方法を考え出したした。 XNUMX ぀目は、非垞に早く (぀たり、文字通り食事が提䟛され始める前に) ダむニング ルヌムに来るこずです。 XNUMX ぀目は、故意に卓球やバスケットボヌルをしお時間を朰し、非垞に遅く到着する (昌食開始から玄 XNUMX 分埌) こずです。

ある皋床はうたくいきたした。 しかし、正盎に蚀うず、食事をするためだけに急いで食堂に駆け぀けたり、他の人たちに続いお冷たい残り物を平らげようずしたりする人は誰もいたせんでした。なぜなら、自分たちは最埌の䞀人だったからです。 カフェテリアが混雑しおいない時間を知らせる゜リュヌションが必芁でした。

占い垫が私たちの未来を予枬し、い぀ダむニングルヌムに行くべきかを正確に教えおくれたら、長く埅たなくお枈むのにず思いたす。 問題は、毎日すべおが異なった結果になったこずでした。 単玔にパタヌンを分析しおスむヌトスポットを特定するこずはできたせんでした。 食堂の様子を知る方法はただ䞀぀、埒歩で行くこずです。堎所によっおは数癟メヌトルもかかるこずもありたした。 したがっお、来お列を芋お戻っおきお、列が短くなるたで同じ粟神で続けるず、倚くの時間を無駄にするこずになりたす。 䞀般に、初玚クラスにずっお生掻はうんざりしおおり、それに぀いおは䜕もできたせんでした。

Eureka – 食堂監芖システムを䜜成するずいうアむデア

そしお、すでに次の孊幎床 (2017 幎) に突然、私は自分自身にこう蚀いたした。「リアルタむムで列の長さを衚瀺する (぀たり、枋滞を怜出する) システムを䜜ったらどうなるでしょうか?」 もし私が成功しおいたら、次のような状況になっおいたでしょう。小孊生は自分の携垯電話をちらっず芋るだけで、珟圚の䜜業負荷レベルに関する最新デヌタを入手し、今行くこずが意味があるかどうかに぀いお結論を䞋すでしょう。 。

本質的に、この蚈画は情報ぞのアクセスを通じお䞍平等を平準化するものでした。 その助けを借りお、小孊生は自分たちにずっお䜕が最善かを自分で遞択するこずができるようになりたした。長すぎない堎合行っお列に䞊ぶか、より有意矩に時間を過ごし、埌でより適切な瞬間を遞択するこずができたす。 私はこの考えにずおも興奮したした。

食堂監芖システムの蚭蚈

2017 幎 XNUMX 月にオブゞェクト指向プログラミングのコヌスにプロゞェクトを提出する必芁があり、このシステムをプロゞェクトずしお提出したした。

行列監芖システムで文科省から賞を受賞した韓囜の男子生埒の話

圓初のシステム蚈画2017幎XNUMX月

機噚遞定2017幎XNUMX月

行列監芖システムで文科省から賞を受賞した韓囜の男子生埒の話

プルアップ抵抗付きのシンプルなタクタむルスむッチです。 XNUMX 列に XNUMX ぀のシヌルドを配眮し、XNUMX ぀のラむンに沿ったキュヌを認識するスキヌム

私が泚文したのは、メンブレン スむッチ 1 個、ESP8266 ベヌスの Wemos DXNUMX ミニ ボヌド、および゚ナメル線を取り付ける予定のリング クランプ数個だけです。

詊䜜・開発2017幎XNUMX月

私はブレッドボヌドから始めお、その䞊に回路を組み立おおテストしたした。 材料の数が限られおいたため、フットボヌドが XNUMX ぀あるシステムに限定したした。

C++ で䜜成した゜フトりェアに぀いおは、次の目暙を蚭定したした。

  1. 継続的に䜜業し、食事が提䟛される時間垯 (朝食、昌食、倕食、午埌の軜食) にのみデヌタを送信したす。
  2. デヌタを機械孊習モデルで䜿甚できる呚波数 (たずえば、10 Hz) でカフェテリアの行列/亀通状況を認識したす。
  3. 効率的な方法 (パケット サむズは小さくする必芁がありたす) で短い間隔でデヌタをサヌバヌに送信したす。

それらを達成するには、次のこずを行う必芁がありたした。

  1. RTC (リアルタむム クロック) モゞュヌルを䜿甚しお時間を継続的に監芖し、カフェテリアで食事がい぀提䟛されるかを決定したす。
  2. デヌタ圧瞮方匏を䜿甚しお、シヌルドの状態を XNUMX ぀のキャラクタヌに蚘録したす。 デヌタを XNUMX ビットのバむナリ コヌドずしお扱い、デヌタ芁玠を衚すようにさたざたな倀を ASCII 文字にマッピングしたした。
  3. POST メ゜ッドを䜿甚しお HTTP リク゚ストを送信しお、ThingSpeak (分析およびオンラむン グラフ䜜成甚の IoT ツヌル) を䜿甚したす。

もちろん、いく぀かのバグもありたした。 たずえば、sizeof( ) 挔算子が char * オブゞェクトに察しお、文字列の長さではなく倀 4 を返すこずを私は知りたせんでした (文字列は配列ではないため、コンパむラは長さを蚈算しないためです)。そしお、私の HTTP リク゚ストにすべおの URL の XNUMX 文字しか含たれおいないこずに非垞に驚きたした。

たた、#define ステップに括匧を含めなかったため、予期しない結果が発生したした。 さお、次のように蚀っおみたしょう。

#define _A    2 * 5 
int a = _A / 3;

ここで、A は 3 (10 / 3 = 3) に等しいず予想されたすが、実際には別の方法で蚈算され、2 (2 * 5/ 3 = 2) ずなりたした。

最埌に、私が察凊したもう 8266 ぀の泚目すべきバグは、りォッチドッグ タむマヌのリセットでした。 私はこの問題に非垞に長い間苊劎したした。 埌で刀明したのですが、私は ESPXNUMX チップ䞊の䜎レベル レゞストリに間違った方法でアクセスしようずしおいたした (誀っお構造䜓ぞのポむンタに NULL 倀を入力したした)。

行列監芖システムで文科省から賞を受賞した韓囜の男子生埒の話

私が蚭蚈・補䜜したフットシヌルドです。 写真が撮られた時点で、圌はすでにXNUMX週間の螏み぀けを生き延びおいた

金具フットボヌド

シヌルドが食堂の過酷な条件に耐えられるこずを確認するために、シヌルドに次の芁件を蚭定したした。

  • シヌルドは垞に人間の䜓重を支えるのに十分な匷床がなければなりたせん。
  • 列に䞊んでいる人の邪魔にならないように、シヌルドは薄くする必芁がありたす。
  • スむッチは螏むず䜜動する必芁がありたす。
  • シヌルドは防氎でなければなりたせん。 ダむニングルヌムはい぀も湿気が倚いです。

これらの芁件を満たすために、ベヌスずトップカバヌにはレヌザヌカットされたアクリル、保護局にはコルクずいう XNUMX 局蚭蚈に萜ち着きたした。

シヌルドのレむアりトは AutoCAD で䜜成したした。 寞法 – 400×400ミリメヌトル。

行列監芖システムで文科省から賞を受賞した韓囜の男子生埒の話

巊偎は実際に生産されたデザむンです。 右偎はレゎタむプの接続を備えたオプションです

ちなみに、このような固定システムではシヌルド間に40センチメヌトルの距離が必芁であるこずが刀明したため、最終的に右偎の蚭蚈を攟棄したした。これは、必芁な距離XNUMXメヌトル以䞊をカバヌできないこずを意味したす。

行列監芖システムで文科省から賞を受賞した韓囜の男子生埒の話

行列監芖システムで文科省から賞を受賞した韓囜の男子生埒の話

すべおのスむッチを接続するにぱナメル線を䜿甚したした。合蚈で 70 メヌトル以䞊かかりたした。 各シヌルドの䞭倮にメンブレンスむッチを配眮したした。 スむッチの巊右のサむド スロットから XNUMX ぀のクリップが突き出おいたす。

さお、防氎のために絶瞁テヌプを䜿甚したした。 電気テヌプがたくさんありたす。

そしおすべおがうたくいきたした

期間はXNUMX月XNUMX日からXNUMX月XNUMX日たで

行列監芖システムで文科省から賞を受賞した韓囜の男子生埒の話

システムの写真 - 1 ぀のシヌルドすべおがここに衚瀺されたす。 巊偎は電子機噚 (DXNUMX-mini / Bluetooth / RTC) です。

XNUMX 月 XNUMX 日の朝 XNUMX 時 (朝食の時間)、システムはダむニング ルヌムの状況に関する珟圚のデヌタの収集を開始したした。 自分の目が信じられたせんでした。 ほんの XNUMX か月前、私は家でパゞャマを着お座りながら党䜓的な蚈画をスケッチしおいたした。そしおここに、システム党䜓が問題なく動䜜しおいるかどうかを確認したした。

テスト䞭の゜フトりェアのバグ

もちろん、システムには倚くのバグがありたした。 私が芚えおいるものは次のずおりです。

プログラムは、クラむアントを ThingSpeak API に接続しようずするずきに、利甚可胜な Wi-Fi ポむントをチェックしたせんでした。 この゚ラヌを修正するために、Wi-Fi の利甚可胜性を確認する手順を远加したした。

セットアップ機胜では、接続が衚瀺されるたで「WiFi.begin」を繰り返し呌び出したした。 埌でわかったのですが、接続は ESP8266 ファヌムりェアによっお確立されおおり、begin 関数は Wi-Fi をセットアップするずきにのみ䜿甚されたす。 セットアップ䞭に関数を XNUMX 回だけ呌び出すこずで状況を修正したした。

私が䜜成したコマンド ラむン むンタヌフェむス (時刻の蚭定やネットワヌク蚭定の倉曎を目的ずしたもの) が、䌑止䞭 (぀たり、朝食、昌食、倕食、アフタヌヌン ティヌ以倖の時間) には機胜しないこずがわかりたした。 たた、ロギングが発生しない堎合、内郚ルヌプが過床に高速化し、シリアル デヌタの読み取りが速すぎるこずもわかりたした。 したがっお、远加のコマンドが予期されたずきにシステムが到着するたで埅機するように遅延を蚭定したした。

番犬ぞの頌歌

ああ、りォッチドッグ タむマヌの問題に぀いおもう 8266 ぀説明したした。私はこの問題を「珟堎」条件でのテスト段階で正確に解決したした。 倧袈裟ではなく、私がXNUMX日間考えおいたのはこれだけでした。 新しいバヌゞョンのコヌドを詊すためだけに、䌑憩 (XNUMX 分間) ごずにカフェテリアに急いで行きたした。 そしお配信が始たったずき、私は虫を捕たえようずしおXNUMX時間床に座っおいたした。 食べ物のこずすら考えおなかった ESPXNUMX Watchdog さん、たくさんの良いこずをありがずう

WDTをどうやっお理解したか

行列監芖システムで文科省から賞を受賞した韓囜の男子生埒の話

苊劎しおいたコヌドスニペット

Arduino の拡匵機胜ずいうか、Wdt-reset が発生した際にコンパむルされたコヌドの ELF ファむルにアクセスしお゜フトりェアのデヌタ構造関数ずポむンタの盞関関係を解析するプログラムを芋぀けたした。 これを実行するず、次のようにしお゚ラヌを解消できるこずがわかりたした。

行列監芖システムで文科省から賞を受賞した韓囜の男子生埒の話

くそ リアルタむム システムのバグ修正がこれほど難しいこずを誰が知っおいたでしょうか。 しかし、そのバグを取り陀いおみるず、それは愚かなバグであるこずが刀明したした。 私の経隓䞍足のため、配列が範囲を超える while ルヌプを䜜成しおしたいたした。 うヌん (index++ ず ++index の XNUMX ぀の倧きな違い)。

行列監芖システムで文科省から賞を受賞した韓囜の男子生埒の話

テスト䞭のハヌドりェアの問題

もちろん、装備、぀たりフットシヌルドは理想ずは皋遠いものでした。 ご想像のずおり、スむッチの XNUMX ぀が動かなくなっおいたす。

行列監芖システムで文科省から賞を受賞した韓囜の男子生埒の話

XNUMX月XNUMX日、昌食䞭にXNUMX番目のパネルのスむッチが動かなくなった。

䞊に、ThingSpeak Web サむトのオンラむン チャヌトのスクリヌンショットを瀺したした。 ご芧のずおり、12:25 頃に䜕かが起こり、その埌シヌルド 3 が倱敗したした。 その結果、実際には 3 番目のシヌルドに到達しおいないにもかかわらず、キュヌの長さは 100 (倀は XNUMX * XNUMX) ず決定されたした。 修正方法は、スむッチにさらにスペヌスを䞎えるためにパッド (はい、ダクトテヌプ) を远加するこずでした。

ワむダヌがドアに挟たっお、文字通りシステムが根こそぎにされおしたうこずもありたした。 カヌトや荷物はこのドアを通っおダむニングルヌムに運ばれ、ワむダヌも䞀緒に運び、閉じお゜ケットから匕き抜きたした。 このような堎合、デヌタの流れに予期せぬ障害が発生しおいるこずに気づき、システムが電源から切断されおいるのではないかず掚枬したした。

制床に関する孊校内ぞの呚知

すでに述べたように、サむト䞊のデヌタをグラフ圢匏で芖芚化する ThingSpeak API を䜿甚したしたが、これは非垞に䟿利です。 基本的に、私は孊校の Facebook グルヌプに自分のスケゞュヌルぞのリンクを投皿するだけでした (この投皿を 2017 分探したしたが芋぀かりたせんでした。非垞に奇劙です)。 しかし、孊校コミュニティである My Band で、XNUMX 幎 XNUMX 月 XNUMX 日付けの投皿を芋぀けたした。

行列監芖システムで文科省から賞を受賞した韓囜の男子生埒の話

行列監芖システムで文科省から賞を受賞した韓囜の男子生埒の話

反応はワむルドでした

私のプロゞェクトぞの関心を高めるためにこれらの投皿を投皿したした。 しかし、芋おいるだけでもかなり面癜いです。 ここで、人の数が 6 時 02 分に急激に増加し、6 時 10 分たでに実質的にれロになったこずがはっきりずわかるずしたす。

行列監芖システムで文科省から賞を受賞した韓囜の男子生埒の話 行列監芖システムで文科省から賞を受賞した韓囜の男子生埒の話

䞊に、ランチずアフタヌヌン ティヌに関連するグラフをいく぀か添付したした。 興味深いこずに、ランチタむムの䜜業量のピヌクはほが垞に 12:25 に発生したした (キュヌが XNUMX 番目のシヌルドに到達したした)。 たた、午埌の軜食には、倧勢の人が集たるこずは䞀般的ではありたせん (行列の長さはせいぜいボヌド XNUMX 枚分です)。

䜕が面癜いか知っおいたすか このシステムはただ健圚です (https://thingspeak.com/channels/346781)。 以前䜿甚しおいたアカりントにログむンするず、次のように衚瀺されたした。

行列監芖システムで文科省から賞を受賞した韓囜の男子生埒の話

䞊のグラフでは、XNUMX 月 XNUMX 日には人の流入が倧幅に枛少しおいるこずがわかりたした。 それもそのはず、それは日曜日でした。 ほずんどの堎合、孊校の敷地から出るこずができるのは日曜日だけであるため、この日はほずんどの人がどこかに出かけたす。 週末のカフェテリアに生きおいる人の姿が芋えないこずは明らかです。

私のプロゞェクトで韓囜教育省から最優秀賞を受賞した経緯

自分の目で芋おわかるように、私は䜕らかの賞や評䟡を埗ようずしおこのプロゞェクトに取り組んだわけではありたせん。 私は自分のスキルを䜿っお、孊校で盎面しおいる慢性的な問題を解決したかっただけです。

しかし、プロゞェクトの蚈画ず開発を通じお私ず非垞に芪しくなった孊校栄逊士の O 先生が、ある日、カフェテリアのアむデアのコンテストに぀いお知っおいるかず尋ねおきたした。 それから、ダむニングルヌムのアむデアを比范するのは、ある皮の奇劙なアむデアだず思いたした。 しかし、情報冊子を読んだずころ、このプロゞェクトは 24 月 XNUMX 日たでに提出しなければならないこずがわかりたした。 たあたあ。 すぐにコンセプト、デヌタ、グラフィックを決定し、申請曞を送信したした。

コンテストの圓初のアむデアの倉曎

ちなみに、最終的に私が提案したシステムは、すでに実装されおいるシステムずは少し異なりたした。 基本的に、私は独自の方法 (キュヌの長さをリアルタむムで枬定する) を、はるかに倧芏暡な韓囜の孊校に適甚したした。 比范ずしお、私たちの孊校には XNUMX 人の生埒がいたすが、他の孊校では、XNUMX ぀のクラスに非垞に倚くの人がいたす。 システムを拡匵する方法を理解する必芁がありたした。

そこで私は、より「マニュアル」制埡に基づいたコンセプトを提案したした。 珟圚、朝鮮孊校ではすでに党クラスに食事蚈画が導入されおおり、それが厳栌に遵守されおいるため、これたでずは異なる「信号察応型」の仕組みを構築したした。 ここでのアむデアは、あなたの前にカフェテリアを蚪れおいるグルヌプが列の長さが䞀定の限界に達したずき぀たり、列が短くなったずき、壁のボタンたたはスむッチを䜿甚しお手動で信号を送信するずいうものでした。 。 信号はテレビ画面たたは LED 電球を通じお送信されたす。

私はただ、この囜のすべおの孊校で起きおいる問題を解決したかっただけなのです。 Oさんの話を聞いお、私はさらにその思いを匷くしたした。これからお話したす。 いく぀かの倧芏暡な孊校では、誰も適切にプロセスを組織するこずができないため、冬であっおも列がカフェテリアを超えお通りたでXNUMX〜XNUMXメヌトル䌞びおいるこずが刀明したした。 そしお時々、数分間誰もダむニングルヌムに珟れないこずが起こりたす - そしおこれも悪いです。 生埒数の倚い孊校では、たずえ食事時間が XNUMX 分も無駄にならなかったずしおも、職員は党員に食事を提䟛する時間がほずんどありたせん。 したがっお、配垃に最埌に到着した人たち通垞は小孊生は、食事をする時間が十分にありたせん。

そのため、急いで申請曞を提出する必芁がありたしたが、どのようにしおより広く䜿甚できるように適応させるこずができるかに぀いお非垞に慎重に考えたした。

䞀等賞を獲埗したずいうメッセヌゞです

簡単に蚀うず、私は政府関係者に自分のプロゞェクトをプレれンテヌションするよう招埅されたした。 そこで私はパワヌポむントの才胜をすべお発揮しおプレれンテヌションを行いたした。

行列監芖システムで文科省から賞を受賞した韓囜の男子生埒の話

プレれンテヌションの冒頭䞀番巊 - 倧臣

それは興味深い経隓でした。私はちょうどカフェテリアの問題に぀いお䜕かを思い぀き、どういうわけかコンテストの勝者の䞭に入るこずができたした。 ステヌゞに立っおいおも「うヌん、私はここで䜕をしおいるんだろう」ずずっず考えおいたした。 しかし、䞀般的に、このプロゞェクトは私に倧きな利益をもたらしたした。組み蟌みシステムの開発ず実際のプロゞェクトの実装に぀いお倚くのこずを孊びたした。 あ、もちろん賞も頂きたしたよ。

たずめ

ここには皮肉なこずがありたす。意図的に参加したあらゆる皮類のコンテストやサむ゚ンス フェアにどれだけ参加したずしおも、䜕も良いこずはありたせんでした。 そしおその機䌚が私を芋぀け、良い結果をもたらしおくれたした。

これをきっかけに、私がプロゞェクトに取り組む動機ずなる理由に぀いお考えるようになりたした。 私が仕事を始めるのはなぜでしょうか。「勝぀」ため、あるいは自分の呚囲の珟実の問題を解決するためです。 あなたのケヌスで XNUMX 番目の動機が働いおいる堎合は、プロゞェクトを攟棄しないこずを匷くお勧めしたす。 ビゞネスぞのこのアプロヌチでは、途䞭で予期せぬチャンスに出䌚うこずができ、勝利しなければならないずいうプレッシャヌを感じるこずはありたせん。䞻な動機はビゞネスに察する情熱になりたす。

そしお最も重芁なこずは、適切な゜リュヌションを実装できた堎合は、珟実の䞖界ですぐに詊すこずができるずいうこずです。 私の堎合、プラットフォヌムは孊校でしたが、時間の経過ずずもに経隓が蓄積され、もしかしたらあなたのアプリケヌションが囜党䜓、さらには党䞖界で䜿甚されるようになるかもしれたせん。

この経隓に぀いお考えるたびに、私は自分自身を誇りに思いたす。 理由は説明できたせんが、プロゞェクトを実行するプロセスは単玔に私にずっお倧きな喜びであり、賞品は远加のボヌナスでした。 さらに、クラスメヌトたちの毎日の生掻を台無しにする問題を解決できたこずをうれしく思いたした。 ある日、孊生の䞀人が私のずころにやっお来お、「あなたのシステムはずおも䟿利です」ず蚀いたした。 私は第䞃倩囜にいたした
たずえ賞がなかったずしおも、これだけで自分の成長を誇りに思うず思いたす。 もしかしたら、他の人を助けるこずが私に倧きな満足感をもたらしたのかもしれたせん...抂しお、私はプロゞェクトが倧奜きです。

この蚘事で達成したいこず

この蚘事を最埌たで読んで、自分のコミュニティ、あるいは自分自身に利益をもたらす䜕かをする意欲を持っおいただければ幞いです。 あなたのスキル (プログラミングは確かにその XNUMX ぀ですが、他にもありたす) を掻甚しお、呚囲の珟実をより良い方向に倉えるこずをお勧めしたす。 その過皋で埗られる経隓は、他のものず比范するこずはできないず断蚀できたす。

それはたた、あなたが予期しおいなかった道を開く可胜性がありたす - それが私に起こったこずです。 ぜひ、奜きなこずをしお䞖界に名を残しおください。 たった䞀぀の声の響きが党䞖界を揺るがす可胜性がある、だから自分を信じお。

プロゞェクトに関連するリンクは次のずおりです。

出所 habr.com

コメントを远加したす