Raspberry Pi 3 B+


Raspberry Pi 3 +Bを使ってルービックキューブソルバーロボットの製作

回路を製作し、3Dプリンターで各パーツを出力してロボットを組み立てます。


詳細は、以下の「How_to_make]を参照してください。


  使用した部品


使用した部品は、Aliexpress、Amazon、スイッチサイエンス、秋月電子通商等で購入しました。

1.Servo TD-8325MG (180deg 25Kg metal) and metal arm "25T"   2個 (Aliexpress)

2.Raspberry Pi
 Pi Zero 2Wが購入できなかったため、今回は手持ちのRaspberry Pi 3 B+を使用します




  Pi Zero2を購入出来次第、切り替えて使用できるように接続ボード(後述)を作成しました。

3.PiCamera V1.3  1個 & ケーブル:30cm cable Raspberry Pi Camera 1本(Amazon)


4.128x160 Pixels Display(1.77 inch) SPI TFT with ST7735 driver 1個(Aliexpress)


5.Led module 3W ホワイト  1個(Aliexpress)


6.TTP223 Capacitive Touch Switch button self-locking module 2.5-5.5V  1個(Aliexpress)


7.降圧モジュールAMS1117-3.3 DC 4.75V-12V to 3.3V Voltage Regulator 1個 (Aliexpress)


8.USB MICRO-B BREAKOUT BOARD  1個(Aliexpress)


9.その他
・Prototype board
・40pin(2x20) GPIO female header
・8pin(1x8) Female Header
・Male Headers 90deg
・Female Headers
・Capacitor 16V 220μF

10.ネジ類 (ネジの山崎:https://www.ymzcorp.co.jp/ym12/neji_shop.html)
*六角穴付ボルト
 ・M4X20、1個  ・M3X12、30個  ・M2.5X10 4個  ・M2.5X4 4個

*六角穴付皿ボルト
 ・M3X12 30個




  Rasperry pi GPIO pinout


1.Rasperry pi Zero 2 Wのピン配置


2.Rasperry pi 3 B+ GPIO pinout(ピン配置はZero 2と同じです)


3.使用するPin





  接続ボードの作成


1.両面スルーホール・ユニバーサル基板を図の大きさに切断しました。
 ・2x20 ヘッダー(Rasperry piと接続ボードを接続するヘッダー)は反対側にあります。
 ・配線の点線は基板の反対側を示しています。


2.回路図  参考として回路図を記載しておきます。




  サーボの確認


 サーボの回転角度を確認し、サーボを中間位置に設定します。

1.サーボに目印の為にアームを取り付けてください。

2.Rasperry piと接続ボードを接続し、接続ボードにサーボを接続します。

3.サーボの電源をONにして、Rasperry piの電源をONにします。

4.Rasperry piが起動終了後、PCでVNCビューアを起動しRasperry piに接続します。

5,Rasperry piのデスクトップ画面が表示されたら、コマンドライン「LXTerminal」を起動します。

6.プロンプトから次のように入力して、Enterキーを押しフォルダを移動します。
   cd cubotino/src

7.続けて、venvをアクティベートするため次のように入力してEnterキーを押します。
   source .virtualenvs/bin/activate  ( 「スペース+.」に注意)

8.最後に次のように入力して、サーボの180°の位置を確認します。
   python Cubotino_T_servos.py -set 1  (スペースのない2つの'-'と1の前のスペースに注意)


(1)(,virtualenvs) pi@cubotino:~/cubotino/src $ の (,virtualenvs)はvenvがアクティブになっていることを表しています。
(2)この状態で、Enterキーを押すと、サーボが180°の位置に動きます。
(3)「-set+スペース」の後の値「-1~1までの浮動小数点値」でサーボが0°から180°まで動きます。

9.操作8の後に続けて、-1 と入力するとサーボが0°の位置に動きます。
 サーボが0°から180°まで動いているか確認してください。

10.最後に、0 を入力してサーボを中間位置に設定します。

11.quit() と入力してpython を終了してください。


12.「LXTerminal」を終了します。これでサーボの中間位置の設定を終了します。

13.サーボの電源を切ります。(サーボの中間位置が保持されたままです)

14.Rasperry piのイチゴマークをクリックして、「ログアウト」からシャットダウンを選択してください。




  ロボットの各パーツを作成し組み立てる


ロボットの各パーツを3Dプリンターでプリントアウトします。
 相当の時間がかかります。

1.Rasperry piの「cubotino」ホルダの中にstlファイルが入った「stl」フォルダがあります。
転送ソフト「WinSCP」等のソフトでPCに転送して使ってください。

2.次のホームページからも、直接「stlファイル」をダウンロード出来ます。
https://www.instructables.com/CUBOTino-Autonomous-Small-3D-Printed-Rubiks-Cube-R/?utm_source=newsletter&utm_medium=email

3.各パーツをプリントアウ後、組み立てます。
 次の「How_to_make」を参照してください。
(上記ホームページからダウンロード)
 この資料に「アセンブリの詳細」が記載されていますので参照してください。省略します。

4.組み立て後、サーボ角度の微調整をします。
 piCamera はまだ接続していません。
(1)7月版と8月版では、プログラムを変更しているので方法が違います。
(2)上記「How_to_make」の「23) Tuning:の3. Fine tuning servos angles (changed on 25th July 2022):」に
 詳細に記述されていますので参照してください。

(3)以下は、7月版と8月版共に同じ操作です。
 ①サーボの電源をONにして、Rasperry piの電源をONにします。
 ②Rasperry piが起動終了後、PCでVNCビューアを起動しRasperry piに接続します。
 ③Rasperry piのデスクトップ画面が表示されたら、「LXTerminal」を起動します。
 ④プロンプトから次のように入力して、Enterキーを押しフォルダを移動します。
   cd cubotino/src

 ⑤続けて、venvをアクティベートするため次のように入力してEnterキーを押します。
   source .virtualenvs/bin/activate  ( 「.」に注意)

(4)この後、7月版と8月版では、方法が違いますので、上記「How_to_make」を参照してください。

(5)最終的に、パラメータファイル「Cubotino_T_settings.txt」を修正します。




  ロボットの自動起動等の最終設定


サーボの調整、ロボットの起動等に問題が無ければ、ロボットの自動起動、タッチセンサーによるRasperry piの シャットダウン機能をセットします。

1.ロボットの自動起動のセット
(1)Rasperry piのコマンドライン「LXTerminal」を起動します。
(2)venv(,virtualenvs) pi@cubotino:~/cubotino/src $)からから次のように入力します。
  sudo crontab -e

(2)初めてエディタを選択する時(Choose 1-3[1]:と選択を求められたとき)は、nano に「1」を選択します。


(3)crontab が表示されたら、最後の行「#@reboot /bin/sleep 5;……….」のコメントを解除します。
 ①「#」を削除し、終了「Ctrl+x」を押します。


 ②保存を聞かれるので、「y」キーを押して保存します


2.タッチボタンによるシャットダウンの設定
(1)続けて、プロンプトから次のように入力します。
  sudo nano Cubotino_T_bash.sh

(2)最後の行、「#halt -p 」のコメントを解除します。


(3)「#」を削除し、終了「Ctrl+x」を押して、yキーで保存してください。

以上で設定終了です。