FC2ブログ

マイクロマウス(#1)

現在、本体を設計するために、CADの勉強をしています。使用するのはFusion 360です。以前、授業で使ったので、その流れで使っています。今年もきっと授業を担当することになると思うので(苦笑)。

あと、RX220を使った開発キットを秋月電子から購入しようと思っています。CUPボードとベースボード、開発用ソフトウエア一式がセットになっていて、これで¥2,700です。これを購入するのが手っ取り早いです。早めに入手したいのであれば、リアル店舗まで行くべきですが、それほど急いではいないので、近隣まで出かける用がある時にでも、立ち寄ってみることにしようと思っています。気軽に行くと、出費が増えることもあります(苦笑)。

これらと併行して、どんな内容にしようか、考える必要があります。まぁ、やることには困らない、ということですね。

マイクロマウス(#0)

授業開始までは、あと半年あるので、まずは、サークル活動としてやっていけるように準備を開始することにしました。何事も、計画と準備です。これで成否の大部分が決定してしまいます。

まずは、サークル参画者のための、場所を作ることにしました。幸いなことに、redmineが導入されているようなので、そこを間借りしてプロジェクトを新規に作成しました。今は、ここを充実させているところです。サークルとしての活動は9/4を予定しているので、それまでの間にやらないといけないことをチケットで切り出しました。

redmineは導入してあるのですが、使い方というか、そういったものがなっていないと感じました。これは教員側の姿勢の問題だと思うのですが、ツールを提供して終わりではありません。使い方のヒントは与えないといけません。拙い私の作りを見て、参考にしてもらえれば、と思っています。

あと、肝心のソース管理システムが導入されていません。まぁ、ひとりで開発することが多いので、困らないのでしょうが、それでも、ソースの履歴がわかったりすると便利です。何より、ソフト屋さんには必需品です。今から親しんでおくのはメリットがあります。

ということで、導入しようと思っているのですが、私の独断で進めるわけにもいかないので、相談が必要になります。個人的には、gitを考えています。

ソース管理はすぐには必要ないのですが、文書管理もできると便利です。なので、導入は急ぎたいと思っています。教育も必要ですね。時間は限られているのに、やれる人が私しかいないので、とても忙しい1ヶ月になりそうです。夏期スクーリングもありますし(苦笑)。

マイクロマウス

いろいろな要素が重なり合って、マイクロマウスに挑戦することになりました。この手の技術には昔から興味があったのですが、あまり深く関わることはできませんでした。

去年から、学校で教えるようになったのですが、そこには3Dプリンタがあり、CADが使えればモノを作ることが可能です。そのCADの授業のために、勉強もしました。測定器も豊富ですし、何か困ったことがあれば、専門家もそばにいることですし。一部の学生は興味を持っているようですし、状況を考えると、「進め」ということなのでしょう(苦笑)。

最初、市販品を考えていたのですが、高い割りには、性能がいまひとつのものしかありません。これでは、大会に出ても上位入賞は難しいです。となれば、完全自作しかありません。ということで、その方針でこれからやっていこと考えています。

まずは、資料収集から始めます。学生の手前もあるので、途中で止めることはないと思いますが、どんな物語が綴られていくのか、まったく先が読めない状況です。

Raspberry Pi3を使ってみた(3)

今回は、Raspberry Pi3をUSBタイプのSDDから起動することに挑戦します。SDカードをブートローダとして使わないことを目指します。なお、これができるのは、Raspberry Pi3のみみたいです。

まず、公式ドキュメント(英文)から読むことを始めました。ここに一通りの手順が記載されているので、この通りにやればできるはずです。ただ、これは実験的な(experimental)方法のようで、必ずしもすべてのUSBドライブで動作しないかも、とあります(苦笑)。然しながら、「挑戦なくして進歩なし」なので、チャレンジしてみることにします。
https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/msd.md

公式ドキュメントによると、OSはRaspbian Lite、または、Raspbian with PIXELをインストールする必要がありそうです。NOOBSでもできるのかもしれませんが、詳細は不明です。また、環境を構築するまでは、OS入りのSDカードが必要です。一気に作業を進める人向けのメッセージですかね。

準備段階として、以下を実施します。

$ sudo apt-get update
$ sudo apt-get install -y rpi-update
$ sudo rip-update

(ここでしばらく時間がかかりました)

$ echo “program_usb_boot_mode=1” | sudo tee -a /boot/config.txt
$ echo “program_usb_boot_timeout=1” | sudo tee -a /boot/config.txt

$ sudo reboot

起動後に、
$ vcgencmd otp_dump | grep 17:
を実行し、「17:3020000a」と表示されればOKです(実行前は「17:1020000a」だった)。

公式のドキュメントでは、タイムアウト値の引き伸ばしについては触れていないのですが、HDDをつなぐ場合にはスピンアップが必要なため、デフォルトの2秒では(たぶん)タイムアウトが発生してしまいます。もっとも、今回はSSDをつなぐわけで、機械的な部分がないので変更しなくても大丈夫だと思いますが、HDDを接続しても大丈夫なように変更しておくことにします。

1)パーティションを作成する
ブートパーティションはFATでないとダメみたいです。まず、USBをRaspberry Piに接続し、パーティションを作成します。

USBを接続すると、/dev/sdaとして認識されるはずです(実際にはマウントされない)。以下のコマンドを実行します。

$ sudo parted /dev/sda

partedが入力待ちになったら、以下の通りに実行します。

mktable msdos
mkpart primary fat32 0% 100M
mkpart primary ext4 100M 100%
print
quit

パーティションをフォーマットします。

sudo mkfs.vfat -n BOOT -F 32 /dev/sda1
sudo mkfs.ext4 /dev/sda2

2)データのコピー
まず、rsyncをインストールします。

$ sudo apt-get install -y rsync

マウントしてからrsyncでコピーします。

$ sudo mkdir -p /mnt/target
$ sudo mount /dev/sda2 /mnt/target/
$ sudo mkdir /mnt/target/boot
$ sudo mount /dev/sda1 /mnt/target/boot/

$ sudo rsync -ax —progress / /boot /mnt/target

3)codlin.txtとfsたbの修正
このままでは、/boot/cmdline.txtや、/etc/fstabがSDカード(mmcblkOp)を指したママなので、sdaに変更します。

$ sudo sed -i "s,root=/dev/mmcblk0p2,root=/dev/sda2," /mnt/target/boot/cmdline.txt
$ sudo sed -i "s,/dev/mmcblk0p,/dev/sda," /mnt/target/etc/fstab

4)SSHホスト鍵の更新
公式ドキュメントでは、SSHのホスト鍵を更新していたので、ここでも更新して起きます。

$ cd /mnt/target
$ sudo mount --bind /dev dev
$ sudo mount --bind /sys sys
$ sudo mount --bind /proc proc
$ sudo chroot /mnt/target
$ sudo rm /etc/ssh/ssh_host*
$ sudo dpkg-reconfigure openssh-server
$ exit
$ sudo amount dev
$ sudo amount sys
$ sudo amount proc

5)USBでブートするか確認
アンマウントして電源を切ります。

$ cd ~
$ sudo amount /mnt/target/boot
$ sudo amount /mnt/target
$ sudo poweroff

その後、電源を切り、SDカードを抜いたのち、再度電源を入れると、正しく作業が終了していれば、Raspberry Piが起動するはずです。ちなみに、起動までの時間は遅くなりました。まぁ、頻繁に立ち上げるわけでもないので、あまり気にならないかもしれませんが。

Raspberry Pi3を使ってみた(2)

前回は、Raspberry PiにOSをインストールし、環境設定を行うところまで行いました。日本語化対応も行い、GUI画面が表示できるところまで確認しました。

今回は、開発環境を構築することにします。現時点で何がインストールされているのか確認したところ、gcc/g++はインストール済みでした。makeもありました。であれば、c/c++で開発する分には問題ありません。できればIDEを使いたいところですが、マシンパワーを考えると、難しいでしょう。

肝心のエディタですが、emacsがインストールされていませんでした。viはインストールされていましたが、私はemacs派なので、早速インストールしました。

$ sudo apt-get install emacs

開発環境は必要に応じて都度対応したいと思っているので、この辺にします。

このRaspberry Pi3に関しては、少し使い込んでみようと思っています。そのためにも、SDカードからのブートが心配の種です。これを解決するためにSSDから起動できるようにしたいと思っています。次回はこの話題について触れていくことにします。
プロフィール

core_dump

Author:core_dump

「AyajinSoft」の[Ayajin」ですが、今は昔、某所に派遣されていた時に、「怪しい人=怪人」と呼ばれたことがあり(オシロスコープなど、他の人が持っていないようなものを持っていただけなんですけどね)、なぜかこの音が気に入ってしまい、以来、この表記を使っています。

基本的に組み込み技術者です。一時期、iOSアプリの開発に従事していましたが、今後は制御系を中心にやっていこうと思っていますが、なにぶん相手のある話なので、組み込みや制御を中心に、アプリ寄りなところまで含めて幅広くやって行こうと思っています。

技術者なのですが、最近、いろいろなことに興味や面白さを感じるようになりました(ソフトウエア工学だけでなく、自然科学、人文科学、社会科学などなど)。それが高じて、現在、大学で哲学を中心に勉強しています。

最新記事
最新コメント
月別アーカイブ
カテゴリ
アクセスカウンタ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR