NESTロボコン機反省
この記事はマトモにロボットやって4ヶ月ぐらいの人が書いています。目的は、反省を文章でまとめ、思考を整理し、次回へつなげるためです。また、多くのことを経験した人が成功したことをまとめるブログだけでなく、初心者が失敗を交えて体験をかくブログがあってもいいんじゃないかと思っているからです。そのため、参考になることはほぼないかもしれませんが最後まで読んで頂けたら嬉しいです。
ということで今回は、NESTロボコン機の機械と回路の反省をそれぞれ担当者がまとめてくれたので書いていきます!ところどころ、Junのコメントも書いときます。
ちなみにNESTロボコンの実戦は10月下旬に延期されたのですが、プレゼンテーション賞の審査のみ実施され、プレゼンテーション賞を取ることが出来ました!!ポスター書いたのは3214です。ポスターは最後に貼っときます。
実戦はなかったのですが、あるつもりで準備を進めていたのであったとしたらこんなので出てました。ブロッカーがいないなどツッコミどころ満載ですが、これがうちのチームの夏休み毎日ロボット作り続けた成果です。実戦までにはマトモなプログラムが出来るはずなので乞うご期待!!
本日、NESTの実戦が中止されてなかったとしたらこのロボットで出場していました。
— All_outlook (@All_outlook) 2021年8月29日
ボール認識、回り込み、ライン認識などの調整があまくもし大会があったとしても微妙な成績になっていたと思います。
課題がヤバく、反省をブログでまとめるのはきついのでメモ程度にこのスレッドに書いておきます。 pic.twitter.com/g9WPkvmATi
機械(3214)
最近、母と妹を除く女性と話してない気がする(お巡りさんこいつです。)All_outlook機体担当3214です。
いや~高校生になれば1か月で付き合えるって思って
いた、中学生の俺、あとで職員室に来なさい。ていうか、(まだ続くのか…)俺は付き合えないじゃなく、付き合わないだけだからね。勘違いしないでよね( ´д)プイッ。(キモッ)
機体説明
「何このロボット!!くそかっこいい」なんて声をもらった時は、嬉しいですよね。なんか作ってよかったー的な感じになって。このロボットってカッコいいですか?自分で作っておいてなんだけど、お前、クソカッコいいな、おい。
まぁーカッコいいところしか褒めるところないですけどね…。
えっ?どういうことだって?じゃあ見せてやるよ。このロボットの反省点改め、失敗を!!
(本文は深夜テンション100%で書かれています)
フレーム
あなた今こう思いました。ダサいと。正直こんなフレームにするつもりはなかった。
じゃあ何でこうなったて?いろいろ原因は考えられるけど、一番は肉抜き方法だと思っている。例えば、このフレームには、丸だの三角だの四角が溢れている。作り上げるまで気づかなかったが、これらの形の共存は非常にダサい。(はよ気づけ!)
他には、全体的に見た時に分かるのだが、統一感というものが皆無である。これらは、ただ、ネジ穴の無いところを抜いたという方法で作ったからである。この方法では、簡単に肉抜き出来るがクオリティに期待できないことを学んだ。次の機体設計では、この反省を活かし、初めから、どこら辺を抜くかを考えて誰が見ても統一感があるフレームを作っていきたい。
ボール補足センサーカバー
パッと見上手に出来たと思った。実際3Dデータを作った後もそう思っていた。でも違った。
印刷すると、ボール補足センサーを入れる場所や、ネジ穴を作る為にサポータが作られる。それらを取るときにこの部品は、負荷に耐えられずに壊れてしまう。(死角からの刺客だぜ)
ギリギリ設計では、こう言った3Dデータ印刷時に起こる問題に対処できないかもしれない。
なのでこれからは、ゆとりを持った部品作成を心掛けていきたい。
壁(リポカバー付き)
このLIPOカバーは上からLIPOが取れるという仕組みになる予定だった。(嫌な予感)
しかしLIPOのコードを上から抜くスペースが小さく上の段をいちいち外さなければいけないことが実際に作ってみて気づいた。LIPOに限った話ではないが使う部品のデータシートに書いてない情報(←データーシートには書いてあるはず…ByJun)も調べた方がいいことの重大さに今頃になって気づいた。(本当今頃だよ)今回のケースは、LIPOコードの正確な大きさを知らないばっかりに起きた出来事で今回の機体作成のミスの中で一番防げたじゃないかなと思う。
(てかLipoって全部大文字で書くものだっけ???ByJun)
このブログを読んだ人も他人事と思わずに一度立ち止まってその設計でほんとに大丈夫か考えてもらえたら嬉しい。
IRカバー
流石に失敗例が多いので最後は、数少ない成功した部品で、尚且つあまりロボカッパーのブログで紹介されないIRカバーについて説明したい。まず、IRを入れるところは、センサーが認識する範囲を3Dプリンターで狭くしていますか?
(←この図はイメージです。ByJun)
狭くするのとしないとではセンサーの範囲がこれほど違う。この範囲が広いと、他のセンサーとの干渉してしまい、正しい値を読み取りづらくなってしまう。(←これ実験してなくてホントかどうかはわからないです。今後実験する予定。ByJun)目安と言うか、このカバーは、IRを入れるところよりも両端2mmずつ減らした。
肉抜きも忘れては、いけない。ここでは、強度をあまり必要としない為、限界まで肉抜きが可能になる。
最後に
3Dデータしかここまでなかったから、完成品が気になるって!?
しょうがないな~こちらが完成品です。
え?3Dデータと全然違うですって?何があったのかは、是非とも他の記事等All_outlook関連のSNSで補完しといてね。
最後に自分なりにCADで失敗しない方法をまとめたので特に未来の自分、未来のロボカッパーは、よく読んでおくように。
其壱 クリアランスをしっかり行う(←クリアランスはとるものですByJun)
其弐 完成したデータを少なくても2度見直す
其傪 設計のデータ・修正は、チームメンバーに必ず伝えてから行う
其肆 自分の技術にあった設計をする
其伍 自分の分野のロボット競技だけではなく、他の分野のロボット競技から情報を得る
回路(fTomo)
どうもお久しぶりです。fTomoです。今回は初めての本格的な基板設計をしてみてよかったこと、気をつけないといけないことなどをまとめてみたいと思います。
今回の設計は大きなミスが何度も出てきてやらかしたー感がすごいのですが、このミスは絶対誰かのため(主に自分)に結構役立つ気がします。(こんなミスするならやるなよっていう正論はもう…と、言うことできりかえていきましょー
大きなミス
今回の設計の一番のミスは完成を優先的にしてしまったので研究開発が不十分な状態で基板の設計発注をしてしまったので実装してみて初めてミスに気づくことがあり時間・金銭的なロスが出てしまったことです。これはもう少し計画やチーム内での連絡をやっていれば防げるミスだったと思います。
主にAtmega32U4に関しての問題が大きかったです。32U4はArduino Leonadoなどに使われているマイコンで、私達のロボットのメインマイコンやラインセンサ用のサブマイコンにする予定でした。結果理想と現実の違いを形にしたものができました
328pと同じように使えると思い発注し、基板が届いたあとから32U4の開発を始めブートローダー書き込みにつまずき、解決できない状態で大会が近づいてきたため一旦開発を諦めArduino MEGAを買うことになってしまいました。
その場しのぎでユニバーサル基板に実装して大会に出ることになりました。
モータードライバについても同じで初めて使うチップ(DRV8432)を開発せず実装して動かないという最悪なミスがありました。その後チップを個別に開発をしたのですが動かず、これも一旦開発をやめることになってしまいました。
これらのミスは発注前に開発しておけば防げたミスだと思います。
まあ大きなミスはこんな感じですね。
細かいミス
次に細かいミスを紹介します。
・通信線の+-ミス
・参考にした回路が間違っていた
・ピッチの短いチップ部品のハンダブリッジ
など小さいけど結構致命的なミスが多いですw(笑ってる場合じゃない
メリット、デメリット
<メリット>
・ほとんどの部品をチップにすることで小型軽量化ができたところ
・フレーム基板は強度、重量ともに◎
・ユニバーサル基板と違い配線の手間がない
・高密度配置ができる
・自由に配置ができる
・かっこいい
<デメリット>
・チップ部品の価格が高い
・配線のミス修正が大変
・回路のミスに気づきにくい
・はんだ付けがものすごく難しい(リフローできたらデメリットじゃなくなる
正直このメリット・デメリットを見てもらうとわかるのですが、必要な技術と実力があってないですよね。もっと部品点数が少ない回路や使ったことのある技術を積極的に流用していけば、もう少しデメリットを減らせると思います。
まとめ
今回の基板は使ったことのない技術や部品を盛りだくさんにしてしまったことが敗因だと思っています。開発をもっと深くできるように時間的余裕を持った計画を立てることも大切だと思います。
いらないと思いますが、今回の回路のデータを公開します。このデータを反面教師として見てもらえればと思います。
ホントの最後 次回設計するときの自分へ
たぶん32U4が使えれば大体の基板は動くつもりなので開発がんばってもらいたいが、多分間に合わないので新しいメインマイコンの選定からしていったほうがいいと思います。
・次回は開発に時間をかけるようにしないと
・モータードライバが動かないと約8000円の赤字なので死にものぐるいで開発しなければ
追加したい技術はメインマイコンからサブマイコンをリセットできるように通信線を増やして更に使いやすいものにしてほしいです。あと追加でセンサやカメラその他いろいろ追加したくなったときのためにインターフェースを応用のできるものにして使う量よりも余裕があり、使い回せるような設計にしてみたいです。
以上で反省は終わりたいと思います。次回の糧にして頑張りたいと思います。
ポスター
ちなみにこのポスターところどころ実装予定のことが書いてあったり、ちょっと間違ったこと書いてあったりします。
最後にプログラムについては、プログラム担当のYoshitoがロボットを全部動かせるようになった書きます!
では、また今度。
ESP32でBluetooth相互無線通信(Arduino互換機)
どーもJunです。
久しぶりにまともな技術ブログを書いていこうかなと思います。
土日月と学校が休みだったのでいろいろ作業できました。土曜はいつもは授業がるのにテスト後ということで、月曜は3年生のクラスマッチだったので休みでした。今日(火曜)は、クラスマッチで昼前には、学校が終わりました。明日もクラスマッチなので休みです。
なんかテスト後っていうことで休みが多くて最高です。
そんなこんなでESP32を色々試してみたので書いていきたいと思います。
概要
今回は、ESP32で相互無線通信することを目標に1つ1つ手順を追って説明していきたいなと思います。
試作していく回路&プログラムはこんな感じです。
1、ESP32単体でArduino互換として使ってみる
2、Bluetoothで一方向無線通信
3、Bluetoothで双方向無線通信
用意するもの
ESP32
ESP32-WROVER-Eって名前がついてる適当なやつを用意すれば大丈夫なはずです。ちなみに僕が使ったのは、ロボットに搭載するときのことも考えて開発ボードではなくチップだけのやつです。
これです↓
ちなみに、チップと変換基板を自分ではんだ付けするタイプだとピンヘッダを自由に変えれるのでピンソケットにしました。
まぁ、なんだかんだこれを買うのが一番楽かもしれませんが少し高いので高校生だとそう簡単には買えません…
シリアル変換モジュール
適当にこれを使いました。ロボットに実際搭載するときには、もっと安いやつがあるらしいのでそっちを搭載したいですね。
細かい部品たち
・ブレッドボード
・ジャンパ
・LED × 2
・タクトスイッチ × 6
・LED用抵抗(330Ω) × 2
・プルアップ用抵抗(2kΩ) × 4
ちなみに抵抗は超絶適当にあったやつを使っただけなので適切な値は違うかもしれません。まぁ動いてるのでので良いといことにしましょう。
まぁ多分このくらいあれば十分ですかね。
ESP32単体でArduino互換として使ってみる
じゃあやっていきましょう。
まずは、適当に回路をくんでいきます。
回路
IO13に抵抗をかましてLEDをつけて、IO15とGNDの間にそのままタクトスイッチをつけます。
プログラム
プログラムは、ArduinoIDEに入ってるサンプルスケッチのButtonをちょっと改造したやつを使います。
const int buttonPin = 15; const int ledPin = 13; int buttonState = 0; void setup() { pinMode(ledPin, OUTPUT); pinMode(buttonPin, INPUT_PULLUP); } void loop() { buttonState = digitalRead(buttonPin); if (buttonState == HIGH) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } }
変更点は、ピン番号だけですかね。
ちなみに、タクトスイッチはプルアップされてるので通常時はIO15はHIGHになっています。なので、このプログラムだと通常はLEDをが光っていて、ボタンを押すとLEDが消えます。
書き込み
これがArduinoと違って難しいところです。開発ボードを買った人は、元から自動書き込み回路が入っているのですが、チップを買ってしまった人は手動回路をつくってプログラムを入れないといけません。これが意外とめんどくさいです。トランジスタを使って自動回路を作れるらしいのですがめんどくさくてまだやってません。
回路としては、IO0とENにプルアップしてタクトスイッチをつなげます。
あとは、適当にArduinoかなんかから3.3Vを取ってきて、シリアル変換モジュールのGNDをチップのGNDへ、TxDをRxDに、RxDをTxDに繋げばOKです。
IO0をGNDとショートさせながらEN(RESET)をGNDとショートさせて再起動すると書き込みモードになります。
なので、もうすこし具体的に書くと
IO0 押す EN 押さない
↓
IO0 押す EN 押す
↓
IO0 押す EN 押さない (再起動完了)
↓
(書き込みボタンを押す)
↓
(マイコンボードに書き込み開始しますって表示が出たら)
↓
IO0 押さない EN 押さない
みたいな感じです。そんで、プログラムが入ったらENを押して再起動してあげれば動き出します。
まぁこれでうまく行っていればこの動画みたいな感じになるはずです。
ESP32手動書き込みやってみた pic.twitter.com/Ej8727IGEa
— All_outlook (@All_outlook) 2021年6月29日
Bluetoothで一方向無線通信
じゃあ次行ってみましょう。
無線通信の第一歩ということで、まずはスマホとESP1台との通信やっていきましょう。
スマホやタブレットに「Serial Bluetooth Terminal」ってやつを入れれば通信できるようになります。
回路はさっきのままで大丈夫です。まぁLEDしか使いませんが。
プログラム
#include "BluetoothSerial.h" #if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED) #error Bluetooth is not enabled! Please run `make menuconfig` to and enable it #endif BluetoothSerial SerialBT; void setup() { Serial.begin(115200); SerialBT.begin("ESP32test"); Serial.println("device start"); pinMode(13, OUTPUT); } char databox; void loop() { if (SerialBT.available()) { databox = SerialBT.read(); Serial.println(databox); if (databox == 'L') { digitalWrite(13, LOW); } if (databox == 'T') { digitalWrite(13, HIGH); } } delay(20); }
これも、ほぼサンプルスケッチのままですがまぁいいことにしましょう。
そしたらさっきみたいな方法で書き込んだら大丈夫です。
うまく行ってたらこんな感じになるはずです。
いい感じ pic.twitter.com/op6w5zXjMb
— Jun (@jun_robot) 2021年6月26日
そしたら、スマホやタブレットをESP32にしていきましょう。まずは、受信側(今使ってた方)のMACアドレスを調べます。さっきのアプリでDeviceってとこをみると確認することが出来ます。
40:f5:20:53:**:**
みたいなのがわかったらOKです。ちなみにこのプログラムでも調べられます。
もちろん「**」のところは任意の文字列です。
void setup(void) { Serial.begin(115200); Serial.println("-----------------"); uint8_t macBT[6]; esp_read_mac(macBT, ESP_MAC_BT); Serial.printf("%02X:%02X:%02X:%02X:%02X:%02X\r\n", macBT[0], macBT[1], macBT[2], macBT[3], macBT[4], macBT[5]); } void loop() { delay(1000); }
そしたらそのMACアドレスを下記のプログラムに書いて送信側のESP32に書き込みます。
2箇所あるので気をつけてください。
#include "BluetoothSerial.h" BluetoothSerial SerialBT; String MACadd = "40:f5:20:53:**:**"; uint8_t address[6] = {0x40, 0xf5, 0x20, 0x53, 0x**, 0x**}; bool connected; void setup() { Serial.begin(115200); SerialBT.begin("ESP32test", true); Serial.println("device start"); connected = SerialBT.connect(address); if(connected) { Serial.println("Connect OK"); } else { while(!SerialBT.connected(10000)) { Serial.println("No connect"); } } if (SerialBT.disconnect()) { Serial.println("Disconnected Succesfully!"); } SerialBT.connect(); pinMode(15, INPUT_PULLUP); } void loop() { if (digitalRead(15) == LOW) { Serial.println("LED is ON."); SerialBT.write('T'); } if (digitalRead(15) == HIGH) { Serial.println("LED is OFF."); SerialBT.write('L'); } delay(20); }
これが出来たら、一方向通信は完成です。こんな感じになっていますかね?
昨日からやってたESP32でbluetooth 通信できた!
— Jun (@jun_robot) 2021年6月26日
次は相互通信
左:送信側 右:受信側 pic.twitter.com/iefGzvFbXG
Bluetoothで双方向無線通信
それでは、目標の双方向通信やっていきましょう。これは、大して難しくないです。
さっきまでのプログラムでペアリングするところが書かれているので、loop内のプログラムは、普通のシリアル通信と何ら変わりないかんじです。
まぁ一応プログラム書いておきます。
マスター側
#include "BluetoothSerial.h" BluetoothSerial SerialBT; String MACadd = "40:f5:20:53:61:9e"; uint8_t address[6] = {0x40, 0xf5, 0x20, 0x53, 0x61, 0x9e}; bool connected; void setup() { Serial.begin(115200); SerialBT.begin("ESP32test", true); Serial.println("device start"); connected = SerialBT.connect(address); if(connected) { Serial.println("Connect OK"); } else { while(!SerialBT.connected(10000)) { Serial.println("No connect"); } } if (SerialBT.disconnect()) { Serial.println("Disconnected Succesfully!"); } SerialBT.connect(); pinMode(13, OUTPUT); pinMode(15, INPUT_PULLUP); } char databox; void loop() { if (digitalRead(15) == LOW) { Serial.println("LED is ON."); SerialBT.write('T'); } if (digitalRead(15) == HIGH) { Serial.println("LED is OFF."); SerialBT.write('L'); } if (SerialBT.available()) { databox = SerialBT.read(); Serial.println(databox); if (databox == 'L') { digitalWrite(13, LOW); } if (databox == 'T') { digitalWrite(13, HIGH); } } delay(20); }
スレーブ側
#include "BluetoothSerial.h" #if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED) #error Bluetooth is not enabled! Please run `make menuconfig` to and enable it #endif BluetoothSerial SerialBT; void setup() { Serial.begin(115200); SerialBT.begin("ESP32test"); Serial.println("device start"); pinMode(13, OUTPUT); pinMode(15, INPUT_PULLUP); } char databox; void loop() { if (digitalRead(15) == LOW) { Serial.println("LED is ON."); SerialBT.write('T'); } if (digitalRead(15) == HIGH) { Serial.println("LED is OFF."); SerialBT.write('L'); } if (SerialBT.available()) { databox = SerialBT.read(); Serial.println(databox); if (databox == 'L') { digitalWrite(13, LOW); } if (databox == 'T') { digitalWrite(13, HIGH); } } delay(20); }
まぁこんなかんじです。これは、動画を撮ってないので動画はなしです。
まとめ
そんなこんなでBluetooth無線通信が出来ました。電源をつけたら2秒ほどでペアリングされ通信可能になるのでとてもいい感じです。
ESP32はArduinoより計算速度も早くてピン数も多いのでメインマイコンとしてありだなと思ったりしています。これだけすごくて400円で買えるってコスパ最高です。
今回の記事はこれで終わりです。何か質問などありましたら、コメントやTwitterのDM(@jun_robot か @All_outlook)までお願いします。
実は、この記事「アラバマ物語」っていう映画を見ながら書きました。なんか学校の課題で見て感想文をかいっていうのがあったのでみてました。
感想としては、あんまり良くわからなかったのですが、酷い人種差別があったんだなーぐらいのことはわかりました。まぁもう少し良く考えて感想文書いていきたいなと思ってます。
何度も言ってますがテストが終わったのでいろいろやっていきたいなーっと思ってます!
てか、11時頃に始めたのに気付いたら3時ですね。まぁ明日(今日かな?)は学校休みなので問題なしです。
では、また今度 。
JLBPCBに頼んでみた
どうもお久しぶりです。fTomoです。
私の本格的な記事は電源装置以来ですね。実はあのあと4代目まで電源装置を作ってましたw気が向いたら電源装置の記事も書いていきたいです。
今回はEagleで設計した基板を「JLCPCBで発注してみたよ」という内容です。
Eagleでの設計
まず、Eagleでの設計では普段気にしてることを注意すれば問題ないと思います。ライブラリを自作してるならピンのサイズの確認や部品の外形に線を引いてるかを確認したほうがいいです。(そのせいでミスした…)
ガーバーデータの作成は結構手間がかかりました。
http://renato-tech.blog.jp/archives/21482998.html
この方のブログからCAMファイルをダウンロードさせてもらいガーバーデータを作成しました。
発注
そしたらあとは簡単。作ったZipファイルをJLPCBのページに貼るだけでOK(全部英語なので雰囲気でわからない場合はGoogle翻訳でページ全体を翻訳したほうが良さげ)その他の(板厚、色 ステンシル)などを選べば支払いが残るのみ。
この支払が一癖あって銀行かPaypalかクレジットカードの3つしかなく、(また全部英語)高校生には少し壁があるように感じましたが、バンドルカードというアプリ(youtubeなどでCMを一回は見てるかも…)を使うことで交通系ICカードのように支払いができました。カードを作るのは3分あればできて年会費などは無料なのでぜひ調べてみてください。
届いてみての感想
基板は2~3日で完成したのですが、配達が休日を挟んだ関係で5日ほどかかったので特別早いとは感じませんでした。仕上がりはズレなども特になく細い線もしっかり出ていて趣味やロボットづくりの個人的用途には十分でした。今回2箇所ほどミスがあったまま発注してしまったので修正が大変でしたが。
次回の基板作成でミスがないように気をつけて設計していきたいです。ちなみにミスの内容は自作ライブラリの配線ミスとピンの結線ミスがありました。
ロボットインフォ(Yoshito)
なぜこのチームでやっていこうと思ったのか
中学校で科学部に入って、ロボカップに関わってきたものの、ほぼ知識や技術を取得しないまま、科学部での活動を終えてしまったと感じた。しかし、自分たちでどんなセンサを搭載したことによって、どういう機能を成すのかということを考えること、思うように動いたときの嬉しさは身に付けられたと感じ、ロボカップに関わってきたことを無駄にしてはいけないと思いため、このチームでやっていこうと思った。また、自分のやりたいように動いたときの嬉しさをより実感できるのは、プログラムであると思い、プログラミングをしていこうと思った。
なぜロボカップをやるのか。また、どんな力を習得したいのか
人間と機械とが共存していく社会となるのだから、自分自身がロボカップを通じてその社会に関心を持つこと、人に関心を持たせることだと思う。また、ネットが普及している世の中でありふれた情報にありつけるため、その情報をどう吸収していくかというとこや、吸収した情報で他にはないものをつくったり、使ったりするという、情報を吸収していく力や創造力を育むためだと思う。こういう技術を持ったチームと戦うことになるわけだから、こういうことをしていこうと考える、判断力や思考力も育むためだとも思う。
この先、デバッグを繰り返していくことになるから、嫌になっても続けるという耐久心や集中力等も養っていきたいと思った。
具体的にどんなデザインのどんな構成のロボットを作りたいか。また、将来的にロボットに搭載していきたい技術
自分たちは、三輪の機体をつくろうとしているため、ボールの取り合いになったときや機体に衝突されたとき、四輪の機体にはパワーで勝つことは難しいため、ボールを所持したときのテクニックで勝っていきたい。しかし、衝突されることはあると思うため、低重心にし、キッカーやドリブラー、全方位カメラや超音波センサで自分たちのもう一機体や相手の機体、ゴールの位置を考え、最適なルートでゴールをできるような機体にしていきたい。
自分は、他チームとの練習試合を行ってみたいと思った。練習試合をすることによってそのチームのブログだけでは分からなかった技術、活動環境を知ることができたり、相手がこうだったから急がなければという危機感も沸いてくると思った。また、All outlook内であがっている、ロボット講座?も良いと思う。何がやりたいか分かっているメンバー通しではなく、何がやりたいか分からない他の人の意見には、大きな発見があるかも知れないと思ったから。また、他の人に伝えることによって、交流を深められたり、ロボットに興味を持っている子どもたちに教えることでロボカップでのやりがいを見出すこともできると思う。
前項の内容を踏まえて、あなたがリーダーだったとしたら6月、各人へ何をやらせるか
プログラマーには、ネットからの情報収集や実験、機体製作には機体が故障したときの修理のしやすさや最大限、自分たちのやりたいことができるよう、センサやアクチュエータが最善の位置にある機体を考えること、回路製作には、なるべく複雑化していない回路を作ってもらうこと。
ロボカップについて(3214)
なぜこのチームでやっていこうと思ったのか
正直、他の三人とは違ってその場の雰囲気で決めてしまった節が強くなぜこのメンバーと聞かれたら皆がALL OUTLOOKだとしか言えない。
なぜロボカップをやるのか。また、どんな力を習得したいのか
ロボカップには正直未練があったとは言えないし高校でもロボットを続けるなんて最初は思ってなかったが引き受けた以上しっかり皆と協力してロボカップでいい記録を残したいとは思っている。技術面に関してはCADをある程度、最終的には作業を今の三分の一(10時間かかるのを3時間)にして自分の使える時間を増やしていきたいと考えている
しかし私は技術面以上に体力面、精神力、そして判断力を伸ばしていきたいと考えている。今挙げた三つは、将来社会にでた時に必要とされる能力で、まず体力を増やすことでサービス残業にも耐えることができると共に高校での体育の時間での長距離や長時間の女子との会話にも耐えれる能力が身に着けられると期待できる。次に精神力だがこれも社会に出た時に必要とされる能力の一つであり強い精神力を持つ人間は、フィクションだとしても現実でも成功や強い能力者になれることを歴史が物語っている。また精神力を鍛えることで今まで恥ずかしかった多くのことが出来るようになり加えて人間関係にもいい影響力を与えることが出来ると考えている。そして最後の判断力だがこの能力が一番重要だと考えている。というのもこの判断力には他の2つとは違い、判断力と言うのはこの世界で生きることにおいて最も使えて最も人によって差が出る能力だと言えるだろう。例えば勉強 勉強に必要とされる能力は集中力だとされているが集中力に人によって差は全くと言っていい程に無いと断言できる。では何が必要か?それは効率のいい勉強法である。効率のいい勉強法を探すのは一筋縄ではいかない。そうここで必要となるのが判断力である。判断力さえあればどこを徹底的にやるかなどの選択が効率的に早くわかる。この様に判断力は普段の生活での取捨選択で遥かに合理的にできる能力と言えるのではないかと考えている。
ではこれらの能力を上げるにはどうすればいいのか?今私は生徒会と言う名のブラックとALL OUTLOOKと言う名のブラックの二本のわらじで頑張っているのだが正直ブラックの両立なんて頭の中お花畑でも選ばない選択肢の一つだが頭の中お花畑以下の脳を持つ私には「どこか行ける」と深夜テンション×早く寝たい欲で考えてしまい今の自由に使える時間が週に4~5時間という受験期最後の週並みの地獄というか労働基準法余裕でムシしている状況に身を投げ出しており実際片耳にストレスが原因の異常が発生したり(耳鼻科には時間がなさ過ぎていけてない)鬱に近い症状が出たりして「正直5月でこれって、生徒会で役員になった後や大会前になった時には過労で死ぬんじゃねーの、まあ死んだらその時考えるか」とか最近考えている。この状況を打破するには先ほど述べた三つの能力を活用するしかないと考えている。ではどうやってこれらの能力を伸ばすかについてだがこれらを伸ばすには自分の脳をフル回転させながら作業する癖をつけるのが今の足りない頭ではそう考えている。
さあ三つの能力を手に入れるのが先か俺が自殺するほどに追い込まれてニュース報道されるのがさきか乞うご期待
具体的にどんなデザインのどんな構成のロボットを作りたいか。また、将来的にロボットに搭載していきたい技術
ロボットに関りがない例えば私のクラスメイトにもかっこよさが分かるそんなロボットを作りたくて例えばルール規範に引っかからない程度の塗装やメッキをつけたりしたりして外見の見栄えをでもちゃんと機体としてもしっかりしているロボットを作りたい。
今後搭載したい技術はカーペットに引っかからない素材でのタイヤ作成ぐらいしか今は思いつかない。
前項の内容を踏まえて、あなたがリーダーだったとしたら6月、各人へ何をやらせるか
皆に言いたいことで特に伝えたいことはミーティングの時間がながいことである。他の三人は少なくても1時間以上家で過ごしてからのミーティングだから2時間以上続けて話すことが出来るかもしれないが私は大体家に帰ってからのミーティングのため、続けて2時間の話し合いをされると正直頭にくる。しかも皆真剣にやれば1時間で終わるのに‥‥
だからミーティングはできるだけ早く終わらせる様に努力してもらいたい。そのために私が皆に求める能力は物事を早く判断し決定する能力である。例えば自分が持ってる考えを隠さずに言ったり、考える時間に時間制限やミーティングの時間をしっかりと定めていきたい。そうすることで時間内にミーティングを終わらせると考え自動的に皆の意識がミーティングに集中したり効率よく判断する能力を伸ばすことが予想されると思っている。またミーティングをやる時間を次第に減らすことでこの能力をさらに伸ばすことができるだろう。
ロボットを作れる環境あるって奇跡かも(Jun)
どーもJunです。
今回は、みんなに「作文書いてね」って課題出したらお前もなんかかけと言われたので書いていきます。僕のテーマは「公民館とか部活とか」的なことをかけとYoshitoに言われたのでやっていきます。
最初に注意として、ここに書いたことはただの僕の意見なので、そう思って読んでください。しかも、今思ってることであって多分一週間もすればまた意見が変わってます。まぁそう思って読んでいただければいいです。
※ゴミみたいな文章になっちゃたので読んでも意味わからないかもしれません…
じゃあ本文
僕は、中学で科学部に入部したときからロボットをはじめました。僕が入った中学は、ただの公立の中学校ですが「○○中学校です。」と地域の人に言うと「なんかロボット強いとこね」的なことがロボットやってますとか言わなくても返ってきたり返ってこなかったりする学校です。
僕の中学の科学部は、何年か前にすごい先生が来て援助金などを申請したりしながら環境を整えてオンステージに部活として出場するところから始まったらしいです。
僕の世代は、オンステージ、サッカー(ライト、ビギナー)、生物とかいろいろ始めていて、部員も50人ほどいました。
僕が入学した時点では、そのすごい先生は、うちの地域の公立トップの高校に転勤したところだったらしいです。しかし、そのすごい先生がいなくなった後も、やりたいことをやらせてくれる環境を整えてくれるやる気のある先生がいて、僕も様々な技術を習得することができました。
しかし、その方も僕が中3になったタイミングでいなくなってしまいました。そして、新しく来た方は、うちの県の技術科で上の方にいる方でした。それまでにいたやる気のある先生は、生物が専門でロボットに関する専門的な知識はないけれどしっかり環境を提供しやらせてくれる先生でした。
科学部は、ロボカップに出ることがメインの活動だったので2年生の11月のノード大会から始まるシーズンが最後になります。なので、その技術科の方が来てから本格的な活動はしていなかったので実情はそこまで知らないのですが、後輩から聞くには結構変わっているらしいです。
まず、ロボカップからは離れていく流れっぽいですね。今年度からは本当に出ないで技術科のほうの大会に出るらしいです。先生的には、去年、全国行った僕たちが部活に来るのも改革にしにくくてあれだったのかもしれませんですねー。あとは、部室が変わったことで蓄積れていたロボットとか壊しちゃったり、最近はコロナとかもあって週1でしかやってなかったり…
まぁ先生にとって部活の顧問はほぼボランティアみたいなものらしいのでしょうがないんでしょうね。
その技術科の方の大会は、マイコンを使えないなどコレまで部活に蓄積されてきたノウハウがすべて消えてしまうのではないかと思ったり。
ここから僕が最近「おかしくね」って思っていることを書きます。
今の科学部は、正直言って全国大会に行けるノウハウも環境もありません。なのに部員が70人、新入部員だけで20人強です。これって普通の科学部じゃ絶対ありえないことだと思います。半分ぐらいの人は「全国大会に行けるなら」とか「最近、プログラムとか流行ってるから」みたいな適当な理由で入って来ていると思っています。これまで通りの環境があればそれでも一定のやる気があればある程度の技術や結果がついてきました。しかし、現在の週イチ活動かつノウハウも殆ど残っていない環境では、大会どころか技術も身につかないんじゃねと思ったりします。
てか、そんくらいのスタンスでやる気がある人はできるようになるよっていうのが普通なんじゃないかと高校に入ってみて思いました。でも、今の僕の母校の科学部は、部員数が多すぎるのです。
また、学校の校門のところに先輩の世界大会優勝や僕らの全国大会優勝などがまだ貼られています。今は、ロボカップで全国に行けるであろう環境もないのに。これは、一種の詐欺になっちゃてるんじゃないかなと思ったりしています。
僕の世代にも、科学部に入るためにわざわざ、うちの中学まで来ている人がいたりしました。大会の実績で多くの部員を釣っているのに、それを実現できる環境が無いって入ってから気付いた人がいたら本当に可愛そうです。
色々、文句を書きましたが、公立の学校なのでしょうがないことでもあります。最近は、部活を減らす傾向になっているし。
でも、コレまであった科学部という環境はロボットを学習するのに当たって、とてもいい環境だったと思っています。それをなくしてしまうのは大きな問題だと思ったりしますが、しょうがないです。
でも、国はIT教育などと言っていますが、ITを学ぶためには、自分で好きなようにいろいろやってみるのがベストだと思います。僕も、そうやって技能を習得していきました。よくあるレゴしかやらないロボット教室では、足りないことが多すぎる気がします。
もっと国などが、ロボット教育を推奨する活動などを進めてくれてもいい気がしたりしていますが、国に求めるのはちょっとあれなきもします。
全国的に、好きなようにいろいろ作れる手助けしてもらえるような環境が増えていけばいいなーと思ったり。
なんか支離滅裂な文章になっちゃいましたがまとめに移って行きます。
・科学部という良い環境が無くなってしまった。
・自由なものづくりを支援する環境がもっと増えてほしいな
っていうことです。
2つ目は、特に本当の初心者に向けての環境が少ないんじゃないかなと思ったり思っていなかったり。
これからやっていきたいと
一旦は、オンステージの時達成できなかった世界大会出場を目指して、ライトウェイトをやっていきたいと思っています。
そうして、実績などがちゃんとできてきたら、地域の小学生などを対象にロボット教室的なのをやってみたいなと思っています。
週に一回、公民館で集まって作業とかをしているのですが、そこでロボット教室やってみたら的なアドバイスを貰ったりしました。 あとは、毎年、地域の人達がモノづくり教室をやっていてそこのボランティアをやったりしたことがあるので、また行ってみて需要調査をしてみたりしたいですね。
内容としては、ダイセンさんのTJ3Bを買ってもらってみんなで組み立てて簡単にプログラムの基礎だけ教えて、やりたい人は生徒さんの好きなように拡張していっていいよみたいなのをやってみたいなのを需要が多かったら毎週やってみたりとやっていきたいなと思っています。講師は、高校生だけになってしまうので参加費はロボット購入代だけです。
こういうの世間的にどういう評価なのかは全然わからないのですが、ロボットは、最初の一歩が何から始めたらいいのかわからないことが多いと思うのでそういう人の手助けになったらいいなと思っています。特に、TJ3Bだと簡単に始めれるけど、極めようと思ったら奥が深く、Arduinoなどへの移行も比較的簡単なためいいと思っています。
ちなみに僕も小学生の頃から興味はあったのですがScratchを少しやっていたぐらいで、どうやったらロボットができるのかは全然わかっていませんでした。レゴ系のロボット教室へ入ってみたいなーと思っていたりしたのですが、月謝が高い割に授業日がすくなかったりと入ることはなかったです。
まぁどんなことをするのにも実績とかがしっかりあったほうが信頼などを得やすく話が早い気がしているので、今年はまず、ロボカップで上位になれるよう頑張っていきます。
来年以降、ロボット教室などに手を出していけたらなと思っています。
最後まで読んでくれてありがとうございます。
こんな形式の教室がうまくいってるよなどと言ったご意見、アドバイスなどいただけると嬉しいです。まぁ、実行に移すのは来年以降なのですが…
これかくの2時間位かかった…
終始何言ってるのかよくわかんない文章でしたが、真夜中に書いたので許してください。(自分で作った期限に苦しまされた)
いつものブログ書くのとはちょっと違う感覚だったな。
「Jun宛のラブレター」(fTomo)
一、なぜこのチームに入ったのか
このチームに入った理由は大きく3つあります。
1つ目は、中学校での活動を維持できることです。このメリットは今まで学んできた技術を活かし前大会では中止で出場できなかった全国大会出場を目指して活動ができることです。
2つ目は熱中できる活動や、内容があることです。学生生活という限られた時間の大半を使うほど熱中するということは、まさに
「青春」
と言えるのではないでしょうか。この四人での活動は私の人生の1ページに印象深く残ると思っています。
別に思い出づくりのためではなく活動をするのではなく大きな目標をチームで達成することがこのチームに入った大きな理由と言えると思います。
二、なぜロボカップをやるのか。
これについてはまず私がロボカップというものに触れるきっかけが重要だと思っています。子供の頃からおもちゃの分解や中はどうなっているのだろうと機械や機構などに興味がありました。小学生の頃には祖父が電気系の仕事をしていたこともあり、はんだ付けや昔の電子工作(真空管・ICの登場)などの話をしたりと大きく私の趣味に影響しました。
さらに、一番近い中学校が科学部でロボカップに出場していて「この部活に入りたい」
と強く思っていました。これがロボカップとの出会いです。
そして、様々な繋がりがありロボカップに出場してその楽しさを身を持って感じました。
この活動を高校性になってもできることは大きなモチベーションになっていて、目標達成に大きく影響していると思います。
今回の活動で習得したい力はハードとソフトの両方向から物事を考えるなどの、
「物事を多面的、多角的に見る」
と、いう力を習得したいです。これには今後の勉強や社会に出た時にも通用する能力だと思っています。集中しているときや急いでいるときにこそ有効になるのではないかと思っています。
三、具体的なロボットの構成
デザインに関しては中学で計四台の機体を作ってきての反省点やよかったところを参考に固めていきたいと思っています。
主な反省点は
・メンテナンス性の向上
・ヒューマンエラーの起こらない設計
・部品配置や回路の簡略化
この三点があります。
メンテナンス性はコネクタの選定や基板の自作、機体の共通化を主にしていきたいと思います。
ヒューマンエラーのない設計というのは、ボタンの押しミス、プログラムの書き込みミスなど気を付ければ回避できるものですがそこの信頼性を上げることが重要だと思っています。
部品配置や回路の簡略化に関しては私がチームの回路担当ということで重点的に書いていきたいと思います。
まず部品配置は、高密度に配置するため電解コンデンサやコネクタなどの一部を除いて表面実装部品を多用しある程度コストや手間が増えますがその分表面実装のメリットを最大限生かせるように設計していきたいと思います。
回路の簡略化とは、チップ抵抗の値をできるだけ限ることでコストや実装時の取り付けミスを減らす目的があります。その他に一枚の基板にできるだけセンサーやマイコンを乗せることでコネクタの数を削減し結果的にヒューマンエラーを減らすことにもつながると思います。基板の両面を使った面積削減、パスコンなどを近づけて配置するなどの工夫など回路設計は細かいですが大きな効果を得ることができるポテンシャルを持った部分だと思っています。
革新的な技術を書けという無理難題を提示されたのですが一応書き留めておきます。
・機体のフレームにCAEの解析機能を使った攻めの設計(主に肉抜き)
メリット
軽量化及び形状の最適化
・ねじ・スペーサーの削減のため一段目と二段目の部分を共通化
(モーターマウントやキッカーなど)
メリット
軽量化やメンテナンス性の向上
個人的にやりたいこと
・メインマイコンを表面実装にする場合USBシリアル変換をメイン基板に乗せて直接書き込みたいと思っています。
四、チームのリーダーだった場合
ブログに書かれていた設計・実験に関しては同じことをしていたと思います。
違う点としては担当の割り当てを個人個人の得意分野や経験のあるものを担当にしていたと思います。実際初めてのことを覚えるということに多くのリソースを割かれてしまっているイメージがあり、やったことのある人がやったほうが効率がいいのではないかと思うことがこの二か月でいくつかありました。
結果的に今のところ軌道に乗ってきてはいるので意外と問題ないのかもしれませんね。
機体設計に関しては二人を担当にして平行に二種類の案を出してもらいそれを比べメリットデメリットを書き出してブラッシュアップしたものを使いたいと思っています。
この方法は新幹線の試験車などでも使われている手法です。二種類の先頭車や車体構造の違う中間車を作りデータを実際に走らせて最適解を求め量産車に落とし込むことをしています。私はそれをデータ上で検証をしてより良い機体ができると思います。
回路設計も二人で確認したいと思います。
まず回路設計、基板に落とし込むところまでを一人でやり、配線ミスやピンミスをもう一人が確認という二段階での検品をして発注したいと思います。この手法を取ると格段に回路のミスが減ると思います。
その他の実験に関しては今現在出ているものとほぼ変わらないと思います。
五、終わりに
今回思っていることや考えを文章化することでメンバーの考えや自分の考えをよくまとめることができいい取り組みだったと思います。この意見交換で革新的で新しいアイデアや技術が出てそれを形にできるように努力していきたいと思います。
これを書き終わった後に思いついたアイデアなどもこんな感じで文章やホワイトボードなどに図式化してメンバー間で共有していきたいと思います。
以上
タイプミスや変換ミスがないことに期待
未来の自分たちに期待