【1.5万円で作るサッカーロボ】の第1弾、要件定義とRaspberry Pi Pico(ラズピコ)の環境構築と、Lチカ編です。

【1.5万円で作るサッカーロボ】ってなんだよ

この、【1.5万円で作るサッカーロボ】は、もともとあった電子工学研究会で新たに立ち上げたロボットプロジェクト(略して電工研ロボプロ)でメンバーに伝えることをブログにもまとめておくよっていう企画です。

このプロジェクトのために初年度予算約15万円を確保したのですが、予想以上に新入部員が多く、1台約1.5万で作ることになりました。

内容は、ロボットって何??どうやったら作れるの??っていうレベルの超初心者向けです。僕の通っている高校はロボットとはかけ離れた人生を歩んできた人が行く普通の普通科高校なので、そういった人でも理解できるような内容にしていくつもりです。

最後に、保険をかけておきますが、厳密性は皆無だと思われます。。間違ってるとこやちょっとおかしくねってところがあったら、メンバーにも間違ったことを伝えてしまっているので、教えて頂けるとありがたいです。

じゃあ、本編に入っていきます!!

どんなロボットを作るの?

タイトルから分かるようサッカーロボットを作ります!!RoboCupJuniorサッカーライトウェイトに出場するつもりです。

構成

構成は、できるだけ単純で安い部品を使って製作します。全国大会で上位入賞は難しいけど、出場はソフトを工夫すれば余裕くらいのハードウェア構成にします。

ロボットを制御するためのマイコンは、600円のRaspberry Pi Picoを使います。

足回りはもちろんオムニで全方位移動できるようにします。(予算的に三輪です。) モーターはダイセンさんが出しているギアードモーター×3、センサーはライン×4、ボール×4、ジャイロの最小構成です。

回路実装は、ユニバーサル基板で頑張ります。

フレームは、MDFを頑張って切り出して、適当なスペーサーなどなどを使ってつなげます。

開発計画

完成目標は12月のRoboCupJunior埼玉南ノード大会です。このときまでに試合できるロボットを作ります。

夏休み中に、ラズピコにそれぞれのセンサやモタドラを繋いで一つずつテストしていって、それが完了したら基板とフレームづくりをして、ハードを完成させます。

その後、10月の文化祭に向けて、ソフトを作って、それ以降は大会に向けて調整していきます。

マイコンって何??

唐突ですが、こっからは技術的な話題です。

Ender3

この黒い塊がマイコンです。マイコンは略称で、正式名称はマイクロコンピューターです。

その名の通り、コンピュターの一種です。ロボットや電化製品などを動かすために、省電力で、IOが充実しているのが特徴です。

こういったマイコンが組み込まれた装置のことを「組み込み機器」と読んでいます。

Ender3

このマイコンが載った基板のことをマイコンボードといいます。(略してマイコンと言われることも多い)

マイコンボードは、マイコンを使いやすいようにパソコンと通信のためにUSBがついていたり、動作確認用のLEDがついていたりします。一般的には、実験段階ではマイコンボード、完成品は自分で基板を作るといった使い方です。今回作るロボットでは、最後までマイコンボードを使用します。

ちなみにこの写真のボードの名前はArduino Nanoです。載っているマイコンの名前はATmega328P-AUです。

今回使うRaspberry Pi Pico(ラズピコ)

【1.5万円で作るサッカーロボ】に搭載するマイコンボードは、Raspberry Pi Picoです。定価500円の激安マイコンボードです。普通のRaspberry PiはOSが載るのですが、Picoには載りません。

ちなみに、こいつに乗ってるマイコンはRP2040っていうチップです。実は、僕の今シーズン作るロボットにも載せようかなと思っていたり思ってなかったり。。。

ペリフェラルは、25ピンあって、全ピンPWM対応、ADC×3、SPI×2、I2C×2、UART×2などなどしっかり揃っています。

開発環境を構築しよう!

開発環境の構築とは、パソコンでプログラムを書いて、マイコンに書き込むことができるようにすることです。

今回、使用するラズピコは、組み込み用途では数少ないPythonでプログラムを書くことのできるマイコンです。統合開発環境のThonnyをインストールすれば、書き込みまで全てができます。ちなみに、Thonnyはソニーと読むらしいです。

インストール方法を解説していきます。

まずは、このリンク( Thonnyホーム )にアクセスしてください。

右上の方にDownloadとあると思うので、自分の使ってるOSを選択してインストール。

いつも通り普通にインストールして、起動。

Languageを日本語にして、Initial settingsをRaspberryPiに変更して進む。

これだけでインストール完了です!

その後、ラズピコをパソコンに接続して、右下の[Python x.x.x]をクリックするとラズピコを選択できるので選択する。すると、ドライバをインストールするように言われるのでインストール。

これで準備完了です。 早速、Lチカしてみましょう!!

Lチカやってみよう!!

Lチカって知ってますか?Lチカとは名前の通りLEDをチカチカさせることです。プログラムで言うところのHello Worldみたいな感じです。

LEDを点灯させてみよう

以下のプログラムをThonnyにコピペか写経してください

1
2
3
import machine
led = machine.Pin(25, machine.Pin.OUT)
led.value(1)

コピペ or 写経

プログラムを学ぶとき、サンプルをコピペする方法と、写経といってお手本のサンプルを見ながら自分でタイプする方法があります。

初めの方で短めのプログラムは写経するようにしたほうが、プログラムの雰囲気が理解しやすくなるかもです。

そしたら、緑の [実行] というボタンを押せばラズピコにプログラムが書き込まれます。

基板上の緑LEDが光りましたか??

光ったら成功です!!光らなかった人は、打ち込んだプログラムがあってるか、マイコンとちゃんとケーブルでつながっているか、確認してみてください。

プログラムの解説

さっき書いたプログラムの意味はこんな感じです。

1
2
3
4
5
6
## machinライブラリを使うことを宣言
import machine
## machineライブラリのPin関数を使って、25番pinをOUTPUTに指定して、ledという名前を付ける。
led = machine.Pin(25, machine.Pin.OUT)
## ledを1にする。(電気を流す)
led.value(1)

点灯させたLEDを消そう

チカチカさせるためにはLEDを消す必要があります。どうやったら消せると思いますか??

そうです。USBをパソコンから抜けば消えます。(ちがいます)

皆さんわかっていると思いますが、led.value(1)led.value(0)にすれば消えます。

チカチカさせよう!!

LEDを付ける、消すというプログラムは書けるようになったので、これを一定時間ごとに繰り返すようにすればチカチカします。そこで、一定時間待つ関数は、utimeライブラリの、sleep(秒)関数です。

それを導入して、5秒毎に付けたり消したりするプログラムを書くとこんな感じになります。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import machine
import utime
led = machine.Pin(25, machine.Pin.OUT)

led.value(1)
utime.sleep(5)
led.value(0)
utime.sleep(5)
led.value(1)
utime.sleep(5)
led.value(0)
utime.sleep(5)

無限にチカチカさせよう

上のプログラムには問題があります。

どんなに頑張っても、有限回しかチカチカが繰り返されないことです。

この問題を解決するために、while 条件式:を導入します。while 条件式:は条件式が成り立っている間、それ以下のインデントがついている部分が繰り返されます。

今回は、無限にチカチカさせたいので、条件式の部分をTrueにします。すると、ずっと条件式が成り立っていることになるので、無限ループになります。

インデントとは

Space又はTabで作った、空白のことです。Pythonは、インデントがプログラムに影響を与える特殊な言語です。

上記のことを考慮してプログラムを書くとこうなります。

1
2
3
4
5
6
7
8
9
import machine
import utime
led = machine.Pin(25, machine.Pin.OUT)

while True:
    led.value(1)
    utime.sleep(5)
    led.value(0)
    utime.sleep(5)

チカチカしましたか?

できていたら、時間をいじってみたり、いろいろ変えて試してみてください!

おわりに

今回は、【1.5万円で作るサッカーロボ】の導入から、ラズピコの開発環境構築、Lチカをやってみました。

次回は、PWMを予定しています。

では、また次回!