Raspberry Pi 汎用AVR開発環境
RasPiduino-HAT
0.プロダクト外観
![]() |
![]() |
1.概要
|
RasPiduino-HAT(Hardware Attached on Top)には図1のようなピンソケットやスイッチが配置されています。
|
2.開発環境の導入
次の順でAVR開発環境をインストールします。
Arduino IDEのインストール → AVR開発環境のインストール → GPIO対応avrdudeのインストール
- 準備
インストール作業の前にユーザにsudoコマンドをパスワードなしで実行できる権限を付与しておきます。
Raspbianに初期登録されているユーザ pi はsudoコマンドをパスワードなしで実行できます。
sudoコマンドをパスワードなしで実行できる権限を付与する方法は→この検索リストを参照して下さい。 - Arduino IDEのインストール
- Linux ARM用Arduinio IDEをダウンロードしインストールします。(2018.01.12現在,最新バージョンは 1.8.5 )
インストール場所をホームディレクトリの ~/Appcations/配下にarduinoでインストールしておくと,GPIO-AVRDUDE_installerが利用できます。- ファイルマネージャを起動しホームディレクトリ(/home/[ユーザ名]に Applications フォルダを作ります。
- ブラウザを起動しhttps://arduino.cc/en/Main/SoftwareからArduino IDE Linux ARMをダウンロードします。
- ダウンロードしたファイル arduino-1.8.5-linuxarm.tar.xz を右クリックし
Extract to をクリックします。図1 - Extract files の Extract to 欄に /home/[ユーザ名]/Applicationsを入力し,
Extractボタンをクリックします。図2
図1
図2
- ターミナルを起動し次のように操作します。
$ cd ~/Applications ←カレントディレクトリ(作業ディレクトリ)をApplicationsに移動します $ ls ←ファイル一覧を表示 arduino-1.8.5 $ ln -s arduino-1.8.5 arduino ←シンボリックリンク arduino を作ります $ ls arduino atduino-1.8.5 $ cd arduino ←arduinoに移動します $ ls arduino hardware lib revisions.txt uninstall.sh arduino-builder install.sh libraries tools examples java reference tools-builder $ ./install.sh ←インストールコマンド install.sh を実行します (警告が沢山表示されますが,無視します) done! ←インストール終了 $
- 念のため,IDEインストール後に手持ちのArduino UNOなどを接続してスケッチが書き込めるか確認します。
- Linux ARM用Arduinio IDEをダウンロードしインストールします。(2018.01.12現在,最新バージョンは 1.8.5 )
- AVR開発環境のインストール
ボードマネージャからインストールします。- インターネットに接続されていることが必須です。
- 下のpackage…jasonへの直接リンクURLをコピーします。
https://kimio-kosaka.github.io/_RasPiduino/package_RasPiduino_index.json - Arduino IDEを起動し「ファイル」→「環境設定」と進みます。図3
「追加のボードマネージャのURL」欄に先程コピーした直接リンクURLを貼り付け,[OK]をクリックして閉じます。図4
図3
図4
- [ツール]→[ボード:]→[ボードマネージャ…]と進みます。図5
- ボードマネージャウインドウが開きます。
最後尾までスクロールするとKosaka.Lab提供の5つの環境がリストされるはずです。
先ず最初に_RasPiduinoをインストールします。図6図5
図6
- ATMegaCore, ATTinyCore-R, bitDuino13 をインストールします。
- 最下段のGPIO-AVRDUDE_installerはGPIO対応avrdudeのインストーラです。
ツール・メニューの選択操作だけでGPIO対応avrdudeをインストールすることができます。(下のデモビデオ参照)
- 用語の整理
命名をテキトーに行い紛らわしい呼び名(用語)になったので整理します。- GPIO対応avrdude GPIOを制御できるAVRライタソフト avrdude を指します。
- GPIO-AVRDUDE_installer 「GPIO対応avrdude」をインストールするためのツールパッケージを指します。
- GPIO対応avrdudeのインストール
GPIO-AVRDUDE_installerを用いるとArduino IDEのメニューを数回クリックするだけでGPIO対応avrdudeをインストールできます。- Arduino IDEが ~/Appcations/arduino でインストールされていることが必須です。
- ボードマネージャからGPIO-AVRDUDE_installerをインストールします。
- 「ツール」→「ボード:」と進みボードリストの下の方にスクロールすると,”Install GPIO AVRDUDE” と “Restore Arduino IDE AVRDUDE” の2つが見えるはずです。これは,インストール,アンインストール用シェルスクリプトを実行する”仮想ボード”です。図7
- 仮想ボード”Install GPIO AVRDUDE”を選択します。→ツールメニューが閉じます。
- 再度「ツール」メニュー開きます。
- 「ブートローダを書き込む」をクリックするとインストールスクリプトが実行されArduino IDEのメッセージエリア(下段の黒い背景のエリア)に進捗が表示されます。図6
- スクリプトの実行が終わると”*** RUNscript finished ***”と表示されます。図8
- Arduino IDE 標準装備のavrdudeに戻すときは仮想ボード”Restore Arduino IDE AVRDUDE”を選択し同様の操作を行います。
図7
図8
- GPIO-AVRDUDE_installerは常駐させておく必要はありません。上記3〜8が済んだらパッケージマネージャからGPIO-AVRDUDE_installerをアンインストールします。
- 参考)インストールとレストアのシェルスクリプトは下の場所に収容されています。図9
~/.arduino15/packages/GPIO-AVRDUDE_installer/hardware/avr/1.0.x/bootloaders/
図9
3.HAT装備のATmega328Pにスケッチを書き込む
- ICSP-328PスイッチをON側にします。
(ver.1.0はICSPスイッチをIN側にします) - Arduino IDEを起動します。
- 書込み装置選択
IDEのメニュー[ツール]→[書込み装置]と進み Raspberry Pi GPIO を選択します。 - ボード選択
IDEのメニュー[ツール]→[ボード:]と進み[ATmega328P]を選択します。 - Clockの選択
IDEのメニュー[ツール]→[Clock:]と進み[8MHz(Internal)]を選択します。 - ヒューズビット書き換え
メニュー[ツール]→[ブートローダの書き込み]と進みます。ダミーのブートローダ書き込みにより,ATmega328Pを内部クロック8MHzで動作させるようヒューズビットの書き換えが行われます。 - 以後、スケッチのアップロードボタンをクリックするとボード装備のATmega328Pにスケッチが書き込まれます。
- スケッチの書込が終わったらICSP-328PスイッチをOFF側にします。
(ver.1.0はICSPスイッチをEX側にします)
4.HAT装備のATmega328Pとシリアルポート通信を行う設定
- 設定方針
- RasPi 3B, ZERO-W のシリアルポートは初期状態では隠蔽されており利用できませんので、シリアルポートを利用できるようにします
- RasPi 2B, B+, B, Zeroのシリアルポート/dev/ttyAMA0はシリアルコンソール用として使われており,起動終了時のメッセージ出力やシェル・コマンドを受け付けるようになっています。Arduinoと通信する場合はシリアルコンソールの機能を止めておかなければなりません。
- シリアルポートの初期設定ではRTS信号線が利用できないので,これを使えるようにします。
- シリアルポートの設定
raspi-configを起動します( $ sudo raspi-config )- 5 Interfacing Options –>[Select]
- P6 Serial –> [Select]
- “Would you like a login shell to be accessible over serial?” –> [No]
- “Would you like the serial port hardware to be enabled” –> [Yes]
- The serial Login shell is disabled
- The serial interface is enabled —> [OK] —> [Finish]
- “Would you like to reboot now?” –> [No]
- GPIO17(物理ピン11番)をRTS信号に割り付ける
- wiringpi パッケージをインストールします( $ sudo apt-get install wiringpi )
(デフォルトでインストールされているかも知れません) - /etc/rc.local ファイルを編集します。( $ sudo nano /etc/rc.local )
exit 0 の行の前に,次の行を挿入して保存・終了します。
/usr/bin/gpio mode 0 alt5 - 以上の作業が終了したらリブートします。
- wiringpi パッケージをインストールします( $ sudo apt-get install wiringpi )
- 確認
- dialoutグループへのユーザの追加
- /dev/ttyS0, /dev/ttyAMA0 は一般ユーザから利用できませんので、これらを使いたいユーザ名をdialoutグループに追加します。
例:ユーザ名 pi をdialoutグループに追加
$ sudo usermod -a -G dialout pi
- /dev/ttyS0, /dev/ttyAMA0 は一般ユーザから利用できませんので、これらを使いたいユーザ名をdialoutグループに追加します。
- RTS信号とリセットについて
- 以上の設定を行うとRasPiでシリアルポートをオープンしたときRTS信号によりボード搭載ATmega328Pにリセットがかかります。
- リセットをかけたくない場合は前述3の2を /usr/bin/gpio mode 0 alt0 とします。
5.ATtiny85にスケッチを書き込む
-
- ブレッドボードにATtiny85を装着し図3のようにICSPを配線します。
Ver.1.0とVer.1.1ではICSP信号の並び順が異なっているので注意が必要です。 - ICSP-328PスイッチをOFF側にします。
(ver.1.0はICSPスイッチをEX側にします)図3
- Arduino IDE を起動します。
- 書込み装置選択
IDEのメニュー[ツール]→[書込み装置]と進み Raspberry Pi GPIO を選択します。 - ボード選択
IDEのメニュー[ツール]→[ボード:]と進み[ATtiny25/45/85]を選択します。図A - Chipの選択
IDEのメニュー[ツール]→[Chip:]と進み[ATtiny85]を選択します。図B - Clockの選択
IDEのメニュー[ツール]→[Clock:]と進み[8MHz(Internal)]を選択します。図C - ヒューズビット書き換え
メニュー[ツール]→[ブートローダの書き込み]と進みます。ダミーのブートローダ書き込みにより,ATtiny85を内部クロック8MHzで動作させるようヒューズビットの書き換えが行われます。 - 以後、スケッチのアップロードボタンをクリックするとボード装備のATtiny85にスケッチが書き込まれます。
- 書き込みが終わったらISCPの配線を取り外します。
- ブレッドボードにATtiny85を装着し図3のようにICSPを配線します。
– 来歴 –
2019.02.09 | kimio kosaka | 図版更新 |
2018.08.20 | kimio kosaka | アップロード |