hollywis's diary (はりうすブログ)

はりうすの活動日記です

中華で始める Arduino入門日記2 PCと接続する

のすけです。 それでは、今回は実際にArduinoに触っていきたいと思います。

この連載は、爆安の中華製のArduino互換機を入手し、色々と苦しみながらも安い互換機でArduinoを学習してしまおうというものです。 入手の話はこちらから。

hollywis.hatenablog.com

今回使うArduino互換機

f:id:hollywis:20151128184840j:plain

前回ご紹介した中華キットに入っていたやつです。「UNO」とデカデカと書いてあります。 ちょっとパーツが歪んでたり、部品点数が公式品より少ない感じですね。

  • 型番:詳細不明 ArduinoUNO R3 互換製品

f:id:hollywis:20151128184933j:plain 一番左に何やらスイッチがあり、その隣にUSBの端子、一番右に黒い丸い穴が付いていますね。

f:id:hollywis:20151128184942j:plain PCと接続するためのUSBの端子はこのようになっています。PC側とArduino側で形が違います。 プリンターとかと接続するUSBと同じやつっぽいです。

接続してみる

  • 接続するPC:Macbook 2015 (OS X El Capitan: 10.11.1)
  • Arduino:ArduinoUNO R3 互換製品

まずIDEのダウンロード

下記のページからArduino IDEをダウロードします Arduino - Software

f:id:hollywis:20151120152437p:plain

そしてインストールして起動。

f:id:hollywis:20151128203847p:plain

Arduinoのロゴが表示されて起動しました。

起動したら、上部のメニューから「ツール」ー「マイコンボード」から Arduino/Genuino Uno」を選択します。

f:id:hollywis:20151128203624p:plain

これで、PC側の準備はOKなはず。

ArduinoをUSBで接続します。

f:id:hollywis:20151128204643j:plain Macbookは通常のUSBではなくUSB type-cですので、白い変換端子を付けています。 普通のPCはそのまま接続できると思います。

接続すると何やら赤いランプがつきました。

そしてPCを確認してみます。 f:id:hollywis:20151128211344p:plainツール」ー「シリアルポート」にArduinoっぽいデバイスがあれば成功なのですが、、、ありません。

そうこの中華Arduinoは、USBのモジュールを安いものに差し替えているらしく 別途ドライバーをインストールしないと動かいないそうです。

USBドライバのインストール

それでは、早速ドライバを入れていきます。

USBチップがCH340またはCH341になりますので このドライバをインストールします。 ネットで「CH340 arduino」とかで検索するといっぱい出てきます。 ⇩とかでダウンロードしましょう。(Mac以外にもWindowsLinux版もあり) http://0xcf.com/2015/03/13/chinese-arduinos-with-ch340-ch341-serial-usb-chip-on-os-x-yosemite/

⇩とか

DCcduino_ch340-drivers.zip - Google ドライブ

ダウンロードしたzipを解凍して「ch34xInstall.pkg」インストールします。

そしてPCを再起動して、もう一度Arduinoと接続してみます。

認識されない。。。

OS X El Capitan対応に疾駆八苦

どうやら、OS X El Capitanに問題があるようですね。。 インターネットで調べると以下の記述を発見!

Under OS X 10.11 El Capitan Apple change the way kext signing can be disabled by introducing “System Integrity Protection” and a new cli util “csrutil”. To disable kext signing you will need to do the following: Reboot and press CMD+R immediately after the chime to enter Recovery Mode Open Terminal from Recovery mode run the command csrutil enable --without kext reboot

10.11 El Capitanは“System Integrity Protection”というセキュリティがあるそうで、そのままでは動かいない模様。 csutilツールで設定を書き換える必要があるようです。書いてある手順の通り実施してみます。

  • 再起動しすぐに「comand + R 」キーを押して、リカバリーモードに入る

  • ターミナルを開く(上の方にユーティリティというメニューがある)

  • ターミナルで次のコマンドを実行「csrutil enable --without kext」

  • 再起動

その結果・・・ f:id:hollywis:20151128213804p:plain

「dev/cu.wchusbserial14110」というのが出てきました。やったーーー!認識された!!

ちなみにkextはKernel Extentionの略だそうです。おそらくこの設定はKernel Extentionの セキュリティが甘くなる設定ですので、実行は自己判断でお願いします。

今回はここまで、次回からは実際にプログラミングして動かしていきます。

まとめレシピ

材料

  • Macbook(10.11 El Capitan) 1台

  • Arduino Uno r3(中華製) 1個

  • USBケーブル      1個

手順

  1. ArduinoIDEのインストール

  2. USBドライバのインストール

  3. Elcapitan用の設定をする

  4. ArduinoをPCと接続

  5. ArduinoIDEのマイコンボードを選択

  6. ArduinoIDEのシリアルポートから接続を確認

中華製Arduinoは別途ドライバーのインストールや、Macの最新OSの対応でなかなか 苦戦しましたが、なんとかPCとの接続に成功しました。

hollywis.hatenablog.com

3/5追記 実はYosemite対応も大変だった

MacYosemiteを繋いでいる場合にも、特殊な手順が必要でしたのでここに記載します。

  1. Mac(Yosemite)を起動してCH340のdriverをインストール

2.ターミナルを開いて次のコマンドを実行 sudo nvram boot-args="kext-dev-mode=1"

3.再起動する

3/31追記 謎のエラーその1

avrdude: ser_open(): can't open device "/dev/cu.wch": No such file or directory ioctl("TIOCMGET"): Inappropriate ioctl for device

MakBookProで起こりやすいようです。

この場合アプリケーションを開いて以下のところまでfinderで潜り

Arduino.app/Contents/Java/hardware/arduino/avr

ディレクトリに platform.txt & programmers.txt の2つがありますので

次の一文をReplaceします。 -P{serial.port} "-P{serial.port}"

ただ単に、ダブルクォートで囲むだけです。

そして、IDEを再起動すると動きます!

謎のエラーその2

COM1 がなんたらというエラー PCに刺すUSB端子を変えて、PCを再起動すると動くことがあります。

その他、動かない場合は下記のページを見たり、ググったりして頑張りましょう。 Arduinoは世界的に利用されているため、必ず解決策があるような気がします。 Arduino - Troubleshooting