仮想CentOS7(Linux)にアルディーノの開発環境を構築する方法

▼この記事をSNSでシェアする▼

スポンサーリンク

スポンサーリンク

以前の記事にも書いたのですが、勉強がてらLinuxを仮想化してWindows上にインストールしたので、そこにArduinoの開発環境をつくってドローンのプログラムを作る準備をしたいと思います。

ということで、仮想OSでArduinoの開発環境構築をするときの手順と注意点をまとめてみました。

 1.開発環境についての説明

ホストOS

Windows10 (Lenovo ideapad310、CPU COREi5)

ゲストOS

VirtualBox5.1.22上のCentOS7(カーネル:3.10.0-514.26.2.el7.x86_64)

一般ユーザーBobでログイン

Arduinoボード

Rokit

2.アルディーノのインストール

CentOS7は、RHEL(Linux)系統のOSですので、Linux対応のarduino.1-8-3をインストールすると、zipファイルが表示されます。

それを、ホームディレクトリに移動

展開(右クリックのメニューからも可能)

展開するとこんな感じ

Arduinoというファイルを起動させることで、ArduinoIDEが起動します。

&:バックグラウンドジョブとして行うことで、ターミナルでほかのコマンドが実行できるようにする。

そうすると、Centos7上にアルディーノのIDEが表示されます。

3.CoDrone用のライブラリのインストール

今回はCoDroneのプログラムを開発していくので、それに対応したライブラリを導入します。

のちのち#include <CoDrone.h>と記入して、プログラムでCoDroneの関数を使えるようにするためにこの動作を行います。

スケッチ > ライブラリをインクルード > ライブラリを管理

CoDroneで検索し、最新のバージョンをインストール

4.Arduinoボードのインストール

CoDroneはRokitが必要なのですが、ツール > ボードのところから追うのですが表示されません。(おそらくデフォルトはArduino Unoです。)

開発するArduino ボードを正しく選びましょう。プログラムのコンパイルができるのに、アップロードができないなんてときに、ボードが正しくないことが多いです。

rokitのインストール

ファイル > 環境設定 より、追加されたボードマネージャのURLに、https://raw.githubusercontent.com/RobolinkInc/Robolink/master/package_rokit_index.jsonを入力し、OKをクリック

ツール > ボード > ボードマネージャ

「全て」のタブから「提供された」へ切り替えると、Rokitが表示されるので、インストール

ツールからボードからRokit-SmartInventor-mega32_v2選択

5.USBの接続からプログラムのロード

大まかに確立したい接続は以下の二つ

Arduino --①ー- ホストOS --②ー- ゲストOS(仮想CentOS)

①仮想ポートをつくり、ArduinoとホストOSの接続を確立する。

下のリンクよりWindows10にVCPドライバをインストール

VCPドライバインストール先

PCがWindows64bit版なので、CP210xVCPInstaller_x64を実行

②ホストOSとゲストOS(仮想CentOS)の接続を確立する。

アルディーノをインストールしたマシンがLinuxなので、仮想マシン上にLinux用ドライバをインストールしていましたが、ホストOSに対応したドライバを入れて

バーチャルボックスのUSBコントローラを有効化をすれば、解決できました。仮想OS側でカーネルモジュールをいじる必要はないです。

USBコントローラを有効化 にチェックする。

設定 > USB  > USB1.1(OHCI)コントローラをチェックし、OKを押下する。

OS起動時に予めArduinoを接続し、CentOS7を起動

CentOS側で認識 デバイス > Silicon Labs CP210x USB to UART Bridge(COM3)を選択する

ツール > シリアルポート > /dev/ttyUSB0 にチェック

そして →のアイコンをクリックし、プログラムのコンパイルとボードへの書き込みを行う。

ターミナルから /dev/ttyUSB0 の権限を調整する。

6.デバイスファイルの権限調整の注意点

所有者以外がアルディーノにプログラムをロードするには、

  1. カーネル起動段階のデバイスファイルの権限をいじる
  2. 所有グループであるdialoutにBobを追加する。

今回は2の方法でやります。

→所有するユーザーとグループの読み取りと書き込みしか許されていないので、それらに該当しないBobユーザーがデバイスにアクセスすることができない。。。

#chmod 666 /dev/ttyUSB0 だと、起動しなおすとパーミッションや所有者が元に戻ってしまう。

解決策(応急処置的であまりよくないですが、)

Bob をdialout グループに追加する

[Bob@localhost ~]$ cat /etc/group | grep dialout

dialout:x:18:

vi /etc/passwd

Bob:x:1000:18:Bob(i am general user1):/home/bob:/bin/bash

こうすると、再起動してもUSBへのアクセスができる。

もっとも1のデバイスファイルの起動時のデフォルトパーミッションをいじる方法に自信がなかったのですが、、、

7.おわりに

これで開発環境を整え、仮想CentOS7からプログラムを作成し、Arduinoにloadする環境ができました。

これから、Arduinoのコマンドとかプログラムの例を挙げていきたいと思います!

前にこれを読んだのですが、アルディーノの入門書はこれがおすすめ!

アルディーノ自体初心者に扱いやすいものですが、どういう仕組みで動いているかを把握するのによいかと。

では!

スポンサーリンク

▼この記事をSNSでシェアする▼

フォローする

メニュー・主な記事カテゴリ

おすすめ特集!




「ゆとり鳥日記」について
ITを中心に関心の赴くままに好きなように書いていく雑記ブログ!管理人が二人います。
◆フクロウ(19卒就活生)
◆トンビ(社会人1年目SE)

詳しいプロフィール
お仕事の依頼・ご要望

ゆとり鳥日記をBTCで応援する