自宅webサーバー外部公開マニュアル
- 用意するものとネット上のキーアイテム
- osをRaspberry piに載せる
- 入力キーボードを日本語対応させる(ひらがな・カタカナ・漢字)
- ムームードメインで独自ドメイン取得(今回は~~.com)
- MyDNS.jpでユーザー登録して以下を登録
- ムームードメインで以下ネームサーバを登録
- crontabをインストールしてMyDNS.jpにグローバルipを通知
- Apache2をインストール
- ローカルでサイトを見れるか確認
- 外部で設定した以下の情報をApacheの新規バーチャルホストで登録
- サイトが公開されているかターミナル上でチェック
- ルーターの設定からRaspberry Piの80ポートを解放
- URLを打って確認する
用意するものとネット上のキーアイテム
物理準備物
- Raspberry Pi 4 B
- ルーター:Archer AX1800(外部回線を定期契約で使える環境)
- スマホ(サイトが公開されたか確認用)
ネット上のキーアイテム(サイトも含む。)
- 独自ドメイン(ムームードメイン)
- Raspberry pi os(読者の好みで変更可能。しかしlinuxであること)
- Webサーバー(Apache2)
- crontab
- DNSサーバー(mydns.jp DDNS目的)
- chatgpt 4
- yougetsignal(ポートが80で解放されているか確認)
- whatismyip.akamai.com(自分のグローバルipアドレスを確認)
- 「Raspberry PiでMyDNSへIPアドレスを自動通知する」
- Raspberry piのグローバルipアドレス
- Raspberry piのプライベートipアドレス
- ネームサーバ
- ホスト名
osをRaspberry piに載せる
Pi ImagerでRaspberry Pi OS 64bitを64GBのmicroSDカードに載せる
入力キーボードを日本語対応させる(ひらがな・カタカナ・漢字)
osをRaspberry Pi OSに挿入して起動させた後、言語選択が出ます。それらはすべて日本語にさせてください。
上記のサイトで私は言語選択について参考にしました。
ムームードメインで独自ドメイン取得(今回は~~.com)
好きな名前を考えて、それをムームードメインサイトで入力してください。
他のドメイン名と被らないように探る必要があります。
そしてサイトの趣旨に沿ったネーミングにしてください。
こちらをクリックするとムームードメインに移動できます。
MyDNS.jpでユーザー登録して以下を登録
こちらでユーザー登録を行って以下をMyDNS.jpに登録しましょう。
ドメイン(~~~com)
こちらは先ほどムームードメインで取得したドメインを登録してください。
ex: example.com
ホスト名(DNSレコード)
ホスト名とはwebサーバー自体の名前です。以下の二つをMyDNS.jpにそのまま登録してください。
www A type
www AAAA type
ムームードメインで以下ネームサーバを登録
以下の3つをムームードメインのあるタブで登録してください。その項目欄は「コントロールパネル」→「ドメイン管理」→「ドメイン操作」→「ネームサーバ設定変更」→「取得したドメインで使用する」の先に6つあります。以下の3つを埋めてください。
ns0.mydns.jp
ns1.mydns.jp
ns2.mydns.jp
これらのネームサーバはMyDNS.jpの「How to use」で紹介されています。
crontabをインストールしてMyDNS.jpにグローバルipを通知
以下の文でcrontabをインストールしてください。
そしてupdate_mydns.shで定期実行のコードを作成してください。
sudo apt install cron
nano update_mydns.sh
#!/bin/bash
# ユーザー名とパスワードを設定
USERNAME='your_mydns_username'
PASSWORD='your_mydns_password'
# IP アドレスを取得
IP=$(curl -s http://whatismyip.akamai.com/)
# mydns.jp に IP アドレスを更新する
curl -s "http://ipv4.mydns.jp/login.html?username=${USERNAME}&password=${PASSWORD}&ACTIP=${IP}"
これを保存して以下のようにパーミッションを+xにしてください。
chmod +x update_mydns.sh
以下はcrontabの実行時間設定ファイルです。開いて
crontab -e
以下を最終行に追加してください。10分に一回はipアドレスを送信します。
*/10 * * * * /path/to/update_mydns.sh
Apache2をインストール
以下でApache2をインストールしてください。
sudo apt install apache2
ローカルでサイトを見れるか確認
firefoxのURL欄でlocalhostと打って検索すると、ApacheのDocumentrootで指定されたhtmlファイルをサイトとしてみることができます。
外部で設定した以下の情報をApacheの新規バーチャルホストで登録
ホスト名
ドメイン名
サーバーネーム
サーバーエリア(ホスト名含む)
ドキュメントルート
上記をこれから追加していきます。以下はホスト名を設定するコードです。
sudo hostnamectl set-hostname your-hostname
以下のディレクトリにyourdomainname.confを作成して以下を記入してください。
etc/apache2/sites-available/your-domainname.conf

以下のコマンドで設定を有効してください。
sudo a2ensite your-domain.conf
sudo systemctl reload apache2
/etc/apache2/apache2.confの最終行に追加で以下を追加してください。
ServerName your-domain.com
サイトが公開されているかターミナル上でチェック
ドメイン名の解決
以下のコードでドメインとipアドレスが紐づけるか確認します。
nslookup your-domain.com
またはこのコードでもできます。
dig your-domain.com
このコードが実行できない場合はそのツールがインストールできていないだけかもしれません。以下のコードでツールをインストールしてください。
sudo apt update#システムをアップデート
sudo apt install dnsutils#ドメインとipアドレスを紐づけるソフトをインストール
Apache2の設定チェック
Apacheサービスの状態を確認するために以下を実行してください。
sudo systemctl status apache2
バーチャルホストの設定は以下で完成します。「Syntax OK」と出たら成功です。
sudo apache2ctl configtest
ファイアウォールの設定
sudo ufw status
上記を実行してください。ここでもこのコードが実行できない場合はツールがない可能性があるので以下のコードでツールをインストールしてください。また以下の3行目からはインストール済みでも実行してください。
sudo apt update#システムをアップデート
sudo apt install ufw#ポートが開いているかを確認するソフトをインストール
sudo ufw allow 80#80ポート開放
sudo ufw allow 443#443ポート開放
sudo ufw enable#ufwを有効に
sudo ufw status verbose#ファイアウォールを設定しポート開放が可能に
上記の3行目からのコードを実行できたら次に進みます。
公開元のhtmlファイルのパーミッション確認
公開するhtmlファイルのパーミッションを以下のように唱えます。
sudo chmod 777 /var/www/html/index.html
ログの確認
以下を実行して何かおかしい傾向が出ていれば対処をお願いします。
sudo cat /var/log/apache2/error.log
sudo cat /var/log/apache2/access.log
以以下のコードでApache2を再起動してください。
sudo systemctl restart apache2
ルーターの設定からRaspberry Piの80ポートを解放
お持ちのルーターの設定画面にパソコンからアクセスして、NET転送という欄(私のルーター設定では)で、新たに以下の条件でサービスを追加してください。これでwebサーバー用のポートがルーターからも解放されます。
サービス名:HTTP
外部ポート:80
内部ポート:80
URLを打って確認する
「http://ドメイン名」これを打つとサイトが見れます。もし見れない場合は「サイトが公開されているかターミナル上でチェックする」をもう一度試してみて、レスポンスで出力されたログを全てchatgpt4に投げてみてください。わかりやすく説明してくれます。
実現できてなかったRX231マイコンボードを振り返る
こんにちは,えいたです.
去年の今に設計していたマイコンボードが学業の事情でストップしていたので
製作再開に向けて少しだけ振り返りたいと思います.
ちなみにマイコンボードを設計する時の要点を載せた記事も出しました.
以下が設計したものですが
去年はこちらをPCBGOGOに発注してものが届いたんですね.
そこで熱で表面実装の部品をつける前に製作がストップしていました.


上のPCBレイアウトが配線を設計した様子です.確か去年はMEMS振動子のピン配置の設計をミスしてしまって発注した基板5枚ともだめになりました.
U1の部分ですね.
この基板すごく小さいんです.
なのでU1も米粒2つ分ぐらいだから
ピン配置間違えた時点で、「あっ」ってなりました.
基板は発注して家に届くまで2週間かかるんで
時間とられますよね.

この設計図はまた今度拡大させたものをはりますね.
ざっくりはこんな感じでやってました.
たしか24Vまでの電圧を5Vに降圧して3.3Vにまた降圧させるという回路です.
以下が部品表です.
数 部品分類 部品番号 値や型番 サイズや型番 1 コンデンサ C1 0.01μ Capacitor_SMD:C_0603_1608Metric 2 C2 22μ Capacitor_SMD:C_0603_1608Metric 3 C3 10μ Capacitor_SMD:C_0603_1608Metric 4 C4 4.7μ Capacitor_SMD:C_0603_1608Metric 5 C5 1μ Capacitor_SMD:C_0603_1608Metric 6 C6 0.01μ Capacitor_SMD:C_0603_1608Metric 7 C7 1μ Capacitor_SMD:C_0603_1608Metric 8 C8 0.1μ Capacitor_SMD:C_0603_1608Metric 9 C9 100μ Capacitor_SMD:C_0603_1608Metric 10 C10 0.1μ Capacitor_SMD:C_0603_1608Metric 11 C11 1μ Capacitor_SMD:C_0603_1608Metric 12 C12 33μ Capacitor_THT:CP_Radial_D6.3mm_P2.50mm 13 C13 10μ Capacitor_SMD:C_0603_1608Metric 14 C14 0.01μ Capacitor_SMD:C_0603_1608Metric 15 ヒューズ F1 Polyfuse Fuse:Fuse_1206_3216Metric 16 コネクタ J1 USB_B new_borad_2021_8_10:usb_micro_b_mess 17 J2 Conn_01×02 Connector_Pinsocket_2.54mm:PinSocket_1×02_P2.54mm_Vertical 18 J3 Conn_01×16~30 new_borad_2021_8_10:PinSocket_1×15_P2.54mm_Vertical_16_30 19 J4 Conn_01×15 Connector_Pinsocket_2.54mm:PinSocket_1×15_P2.54mm_Vertical 20 抵抗 R1 33k Resistor_SMD:R_0805_2012Metric 21 R2 22k Resistor_SMD:R_0805_2012Metric 22 R3 1.5k Resistor_SMD:R_0603_1608Metric 23 R4 22 Resistor_SMD:R_0603_1608Metric 24 R5 22 Resistor_SMD:R_0603_1608Metric 25 R6 4.7k Resistor_SMD:R_0402_1005Metric 26 R7 47k Resistor_SMD:R_0402_1005Metric 27 R8 47k Resistor_SMD:R_0402_1005Metric 28 R9 47k Resistor_SMD:R_0402_1005Metric 29 スイッチ SW1 SW_Push_SPDT new_borad_2021_08_10:モード切り替えボタン 30 SW2 SW_Push_SPDT new_borad_2021_08_10:電源スイッチ 31 SW3 SW_Push new_borad_2021_08_10:タクトスイッチ 32 SW4 SW_Push_SPDT new_borad_2021_08_10:モード切り替えボタン 33 SW5 SW_Push_SPDT new_borad_2021_08_10:モード切り替えボタン 34 SW6 SW_Push_SPDT new_borad_2021_08_10:モード切り替えボタン 35 半導体 U1 ASDMB-12MHz-LC-T new_borad_2021_08_10:ASDMB-12.000MHz-LC-T 36 U2 TAR5SB33 TAR5SB33 37 U3 RX231_pin48 R5F52315CDFL#30 38 U4 TA48M05F TA48M05F 39 U5 TAR5SB33 TAR5SB33
また記事上げます.
今後また新しいマイコンボードを設計していきます.
6000円資材で自動水やり機を設計と自作
こんにちは,えいたです.今回は「5000円資材で自動水やり機を設計と自作」を紹介します.
今回は説明が少ないですが,結果的に達成できている現状を報告し,この水やり機の設計を考えている方に備忘録として記録します.
水やり機の外観

水やり機の外観は上記です.蓋にポンプの穴をあけて
そこからポンプの端子だけ中に入れれるようにしています.

先ほどの箱の中にはさらに小さいボックスがありまして
この中に回路があります.

ここで使用したハードウェア部品を表にまとめます.
そして回路構造なんですが
正直,以前に私が作ったゴミ箱機とほぼ似てます.モーターがポンプになってセンサーが消えたぐらいです.以下のURLからご確認ください.
自動開閉ゴミ箱を自作【タミヤ・esp32・電子工作】 | えいたブログ Eita blog (robo-diary.com)
機械と種子の様子

完成した機械は画像にはありません.モータドライバからつながっているポンプから供給されている水が右上のパイプから出ます.
種子の中にはすでに発芽したものもあり,毎日水やり機は忘れがちになると思ったので
今回は自動水やり機をつくることになりました.これはdelay関数で1日に1回だけ30秒間で水を供給するシステムにしています.
ポンプから供給される水は無事に種子に行くんですが,すべてに供給されるわけではなさそうです.
種子の上には穴が複数も空いているアクリル板があります.
そこに水を流すことで水やりをしています.

ちなみに植えているものは山桜です.

実は水を供給するとき,すべての種子には供給されてません.
アクリル板が元々歪んでいて,水の重みの影響もあって変形がすすんでいることが原因です.
ですので,購入するアクリル板は分厚いものを選ぶほうがよいです.私の場合は1mmほどのものを購入してしまいました.

貝が置いてあるのは,ポンプを抑えるために利用しました.
奥のほうに見える白い箱が今回に製作した機械です.水の供給元はとなりの大きな衣類箱に貯めてある水で.
参考にしたサイト
いろいろあってArduinoを再インストールすることになりました.
そしてdelay関数の機能を確認することになったので
そのURLを以下に添付します.
参考にしたい方はどうぞ.
ESP32-Arduino IDEを活用した開発環境の準備 | Spiceman, https://spiceman.jp/esp32-arduino-ide/
Software | Arduino, https://www.arduino.cc/en/software
esp32にビルドしたコード内容
今回はゴミ箱機のときと配線で使用した汎用ピンが異なるので
そこだけは注意して参考にしてください.
PWMBと記述しておきながら
ずっとHIGHにしたまま水をやるようにしてます.
あと今回のプログラミングで忘れていた点があって
delay関数は1000という記述で1秒だと言うことでした.
1で1秒ではありません.
int PWMB = 19;
int BIN2 = 18;
int BIN1 = 5;
int STBY = 17;
int AIN1 = 16;
int AIN2 = 4;
int PWMA = 0;
void setup() {
// put your setup code here, to run once:
pinMode(PWMB, OUTPUT);// G19
pinMode(BIN2, OUTPUT);// G18
pinMode(BIN1, OUTPUT);// G5
pinMode(STBY, OUTPUT);// G17
pinMode(AIN1, OUTPUT);// G16
pinMode(AIN2, OUTPUT);// G4
pinMode(PWMA, OUTPUT);// G0
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(STBY, HIGH);
digitalWrite(BIN1, LOW);
digitalWrite(BIN2, HIGH);
digitalWrite(PWMB, HIGH);
delay(30000);
digitalWrite(PWMB, LOW);
delay(86400000);
}
まとめ
ここまでご覧いただきありがとうございます.
マイコンボードの周辺回路設計で抑える要点集
こんにちは,えいたです.
今回は「マイコンボードの周辺回路設計で抑える要点集」を紹介します.
マイコンボード設計では様々な知識をフル活用します.
一見,電子回路の知識だけで済むものではなく
情報工学や機械工学の分野の知識も使いながら設計していきます.
しかし,どこから勉強すべきか困惑する方がいらっしゃると思います.
今回の記事を読めば「どこから設計をスタートすべきか」がわかります.
私はクラシックマウス競技というロボット大会で
PiCo杯の優勝経験があるものです.その知識を活かして今回の記事に言及します.
なお,以下に示す回路図はすべて私が現在設計中のマイコンボードの様子を抜粋した画像です.
そちらを用いて説明を行っていきます.
参考回路図の把握
ご存じの方もいらっしゃいますが,
たびたび「マイコンボード設計」というワードで紹介されるものがあります.
あの内容はマイコンの周辺回路を設計することを示してます.
マイコンの中身を設計することではありません.
マイコンの型番を調べれば,そのデータシートが見つかり
参考回路図を見つけれます.最初はそれを完全に真似して設計するのがおすすめです.
また,この記事で紹介する機能はすべて,マイコンにあるピンの機能を指します.
(ちなみに,コンピュータの中身をソフトウェア的に設計するのがLSIという分野です.)
私が発見した,マイコンボード設計に有益な情報がある記事がありました.
以下のサイトからもマイコン周辺回路設計に関する情報が公開されてます.
RXマイコンの基板パターン設計ガイドのご紹介 | Renesas, https://www.renesas.com/jp/ja/blogs/design-guide-rx-mcu-board-wiring-pattern, RENESAS BIG IDEA FOR EVERY SPACE
マイコンの基本構成、動作 | Renesas, https://www.renesas.com/jp/ja/support/engineer-school/mcu-01-basic-structure-operation, RENESAS BIG IDEA FOR EVERY SPACE
ピン配置とタイマー数の把握

マイコンにはピンとよばれる端子がいくつもついてます.
その一つ一つはまったく異なる機能で構成されてる端子です.
そしてマイコンの中ではいくつものタイマーがあります.
タイマーはカウントする機能のものを意味します.
皆さんが設計するマイコンボードを何に使うのかによってはタイマー数を先に把握する必要があります.
そのタイマーは限られたピンを接続することで利用することができます.
動作モード

マイコンボード設計する中で,「動作モード」に絶対にふれます.
「動作モード」とは
「ブートモード」か「シングルチップモード」のどちらか2機能を実現するモードです.
それぞれの意味は以下の表です.
シングルチップモード プログラム起動 ブートモード プログラム書き込み
つまりブートモードはコードをマイコンにビルドすることを示し
シングルチップモードとは,そのビルドされたコードのプログラムに従って稼働するモードを指します.
動作モードピンがマイコンのどこかにあります.
そのピンは重要なピンですので必死にデータシートでさがしてください.
リセット

「リセット」とはマイコン起動後,供給電圧が内部で不安定に供給され
リセットボタンを押して一度再起動させるという機能です.
上記の画像のRES#_SWラベルがHIGHになるとリセット開始になるというものです.
このリセット機能にはリセットにかかる時間があります.それを規定内で守る必要があります.
ぜひこのリセット機能があるピンを注意深く探して配線設計してください.
クロック発生回路

次に抑えるのは「クロック発生回路」です.
マイコンは内部の周波数だけでは処理できないことが多いため
外部に周波数生成器を設置してそこから供給することが多々あります.
ここの配線設計の仕方もデータシートで調べてください.
この回路で活躍する主な電子部品は「水晶振動子」か「MEMS振動子」で
クロック発生回路の専用ピンに接続することをお願いします.
電気的特性
どの半導体と接するにしろ,定格電圧や定格電流などがあります.
マイコンボード設計ではその定格を把握するためにデータシートで
「電気的特性」というページを確認します.
供給電圧の数値が合ってるかどうかを確認するためには
そのページで確認するとよいでしょう.
マイコンとのUSB通信

もちろんマイコンボードを作るうえで
何かしらの手法でマイコンと通信する必要があります.
例えば,「プログラム書き込み」「モニター出力」「センサーデータ取得」などです.
一般にまず優先するのは「プログラム書き込み」です.
ここで利用されるシリアル通信はUSBです.
USB通信には「D+」,「D-」という2端子が一番肝心な役割をします.
マイコン側に「D+」「D-」という端子があり,USBコードにも「D+」「D-」があります.
かならずこの2端子の配置位置に気を付けるようにお願いします.
以下のURL先のサイトにUSB type-bのピン配置について参考になる図があります.
USBインターフェイス ピンアサイン - tmct-web (xrea.com), https://ss1.xrea.com/tmct.s1009.xrea.com/ref/ta-xx-7e3m04.html, tmct-web
未使用ピンの処理

これまで取り上げた機能やそのピン以外にも重要なピンはあります.
マイコン内部電源電圧を安定させる平滑コンデンサをつける専用のピンなどがあります.
あるいは「水晶振動子」などを接続する専用ピンです.
これらは場合によっては接続しないときもあります.
そんなときは未配線にしてよいかをかならずデータシートで確認する必要があります.
守らなかった場合はノイズが内部で発生してしまうからです.
大抵は「GNDにつなげてください」や「プルアップさせてください」,「ピルダウンさせてください」などの記載があります.上記の画像でも
何も機能を果たさない端子にはデータシートに従ってGNDに接続したり
プルアップさせたりしてます.
まとめ
最後までご覧いただきありがとうございます.
私は現在もマイコンボードの設計を目指しています.
その設計記録を参考にしたい方は以下のURLをクリックしてください.
周辺回路図をここに記録【自作マイコン製作中】【大学生ブログ】 | えいたブログ Eita blog (robo-diary.com)
「ライブラリを追加」でフットプリントを使い回し【Kicad】
こんにちは、えいたです。
今回は『「ライブラリを追加」でフットプリントを使い回し【Kicad】』に言及します。
皆さんがKicadを使う中で、一度作成したフットプリントを現在進行で取り掛かっているプロジェクト以外のプロジェクトでも使いたい場面があると思います。
この記事ではその方法をスクショで備忘録としてお見せします。
注意点
今回の作業をする前に補足して説明したいことがあります。
フットプリント(mod拡張子ファイル)の保存場所が適当になっている方は
ぜひライブラリを作成していったんそのなかに必要なフットプリントのすべてを
移動させたほうがよいです。
予測ですが、kicadではフットプリントを直接共有するボタンはないと思います。
直接共有できるのはライブラリだけなので
作成したライブラリにフットプリントを挿入して
「ライブラリを追加」でフットプリントを間接的に共有するほかないと考えます。
あくまで私の知識なので間違ってたら申し訳ありません。
確認したい方はkicadのマニュアルを参照してください。
KiCad Docs/リファレンス・マニュアル/2015年5月21日
https://docs.kicad.org/5.1/ja/kicad/kicad.html
私はkicadに関する記事を他にもあげています。
参考にしたい方はぜひ見てください。↓
エレクトリカルタイプはどのタイプが適切か【KiCad】 | えいたブログ Eita blog (robo-diary.com)
作業手順

フットプリントエディタにアクセスしてください
どのタブからアクセスしてもよいのですが
私は間違えないようにプロジェクト内で作業したほうがよいと考えてるので
回路図エディタからフットプリントエディタにアクセスします。

ここからファイルをクリックして

「ライブラリを追加」をクリックしてください。

ここはグローバルを選んでください。

皆さんが作成したフットプリントファイル(拡張子はmod)が入っているライブラリフォルダ(拡張子はpretty)を選択してください。
これが皆さんがほかのプロジェクトで共有したいライブラリを選択している作業です。

選択が終わればここにライブラリフォルダが追加されていることが確認できます。
ぜひクリックして中にフットプリントがはいっていることを確認してください。
まとめ
今回も最後まで見て頂きありがとうございます。
自作マイコンボードができるまでにかかる時間
こんにちは,えいたです.
今回は「自作マイコンボードができるまでにかかる時間」について触れたいと思います.
私はクラシックマウスという2輪ロボット大会でPico杯で優勝した実績が2年前にあり,そこから現在は自作マイコンボード製作をしています.
私はまだ製作をしている途中ということで,これまでの結果を報告したいと思います.
早くて1年,おそくて3年はかかる
みなさんがこの記事を見てるということは,時間に追われている方々かもしれませんね.もしくはとりあえず製作期間を把握しておきたいと考えておられるかもしれません.しかし私の経験上,「早くて1年,遅くて3年はかかる」と思われたほうがよいと思います.というのも,私も含めて,製作方法を提示しているエンジニアが少ないんです.なので作り方がわからないのが現状です.この製作は非常にセンシティブな分野でして
予想外の設計ミスが一度の発注で5つ以上は絶対にあると考えてくださって大丈夫です.
まず周りに経験がある人がいない環境にいる方はすごく長期間にわたってこの製作に時間をかけるかもしれません.とくに電気回路の知識やプログラミング,メカニックの知識を事前にわかる人は1年で完成すると思います.しかし全くの初心者は3年はかかることを想定したほうがいいです.
まとめ
見ていただいて,ありがとうございました.
これからもためになる記事を発信していきます.
自作ロボット製作で注意すること【初心者用】
こんにちは,えいたです.
この記事では「自作ロボット製作で注意すること」を記します.
私はクラシックマウスPico杯で優勝していて
現在は自作ロボットを製作しています.
その知識を生かしてここに記しています.
この記事を見ていただいている方はおそらく以下のことに奮起しているのではないかと考えます.
しかし,上記のことに従っているとものづくりは簡単には進みません.
正しい順でことを進める手段をこれから記したいと思います.
自作より市販品のロボットで仕組みを学ぶ
ご存知の方もいらっしゃると思いますが
ものづくりではプロでも苦戦するようなことが世の中にたくさんあります.
初心者がさばけることはほぼありません.
要領よく勉強していくにはまず入門のステップを踏む必要があります.
自作ロボットでいきなり壱からプログラミングを考えたり
電気回路やハードのデザインを考えるよりも
すでに完成しているものを作るほうがよいです.
自作を促している『教育用ロボット』を購入する

まず教育用ロボットを購入してプログラミング力を磨くのが最優先です.
すでにプログラミング教室などで教育用ロボットを使用していた方や大学でさわりだけでもプログラミングをしていた方なら問題ありません.
これをする理由としては,自作ロボットを最初から始めるにしても
スタート地点からするべきことがわからないということが多いからです.
予めプログラミング教室やロボット大会で出場していたり
教育用ロボットに触れていると
どうすれば自作ロボットが作れるかのルートや
調べるべき専門用語を知る手段と自ずと出会えます.

私の場合はマイクロマウスというロボットの大会で
Picoという教育用ロボットをプログラミングさせて出場させてました.
そこで様々な方々と出会えて,結果的に上の写真のような自作マイクロマウスを作って出場させるところまでいきました.
しかし大会の実績はうまくいきませんでしたが.
ロボットアームは無論,市販のものを購入

ロボットアームには様々な工学の知恵が詰まっているんです.制御工学や電気回路,ロボット工学の分野から
逆運動学や
ヤコビ行列といったちゃんとした計算をすることできれいな関節の動きを実現させます.いきなり勢いでモーターを6つほど買ってなんとなくプログラミングさせるというやり方ではとても楽しめるものになるとは思いません.
ロボットアームの作りやプログラミングについて深く知れる教育用ロボットアームの市販品も多く売られています.
値段が高いと思います.
その際は大学などに進学すると
施設費で購入した実験用の教育ロボットアームがあります.
そこで学ぶのもありでしょう.
設計するなら,「大体」は許されない

上の写真は過去に私がコンピュータを「大体」という志で製作をしてたころのものです.
もちろん失敗してしまって,起動はしませんでした.
このころはコンピュータを起動させるための電気回路の設計を曖昧なままにさせてました.
コンデンサをおく位置はここにするなどは感覚でした.
本来ならICの近くに『どの程度の計算をするとこのくらいのμFがちょうどいい』
などの計算をする必要があったんです.しかしそれを怠ると
機械やコンピュータは全く応答してくれません.
しかし,私もまだ初心者の身にいますが
体で慣れるという意味では
ある程度まで勉強したら実習をするという形は好ましいです.
極端に最初から設計もせずに大体でことを進めるのは厳しいです.
加える電流値は慎重に扱うこと

上の写真は私がロボットに挿入したプログラムが間違った結果
ICが燃えたというものです.
モーターが基準値より高速回転すると
その道中にある電子部品は簡単に破壊されます.
プログラムを書くときは是非
if文で『300rpm以上のときは300rpmを維持する』
や『100rpm以下のときは100rpmを維持する』といった上限を決めるプログラムを作るなどの対策をすると好ましいです.
それかヒューズを挟んでください.
計測器をフル活用することがよい

計測器を買ってほしいです.
お金がかかってしまいますが,これなしにロボットを作ると
いざというトラブルは試作段階で何度も訪れます.そのトラブルに対処できずに出費が無駄に発生してしまうことになるんです.
是非とも
自作ロボットをつくりたい方には
安定化電源とテスターとオシロスコープを買っていただきたいです.
このURLの先に過去に安定化電源を使ってヒューズの紹介をしていた記事があります.
興味がある方は是非クリックしてください.
まとめ
ここまで読んでいただきありがとうございました。
私も言えた立場ではありませんが
素晴らしいものづくりを目指してお互いに頑張りましょう!
コードなロボットが作りたい!
自分のプログラミングや制御工学,電気回路の知識をフルで使いたい!
早くロボットの動作を見たい!
実験する前にバッテリーをつなぎたい!