How to make

RasPiduino(ver.1.0/1.1)取扱説明書

Raspberry Pi 汎用AVR開発環境
RasPiduino-HAT
0.プロダクト外観

 

1.概要

図1

RasPiduino-HAT(Hardware Attached on Top)には図1のようなピンソケットやスイッチが配置されています。

  1. GPIOピンソケット
    Raspberry PiのGPIOが全ピンここに引き出されています。
  2. ICSPピンソケット
    AVR書込用のICSP信号SCK,MOSI,MISOとRST(Reset),3.3V,GNDをここから取り出せます。Ver.1.0とVer.1.1では信号の配置が異なっています。(後述の図3)
  3. ATMEGA328PICSPスイッチ
    1. このスイッチをON側にすると、このボードに搭載しているATMEGA328PにICSP信号が接続されます。
    2. Ver.1.0とVer.1.1では表記が異なっています。
      以後の説明はVer.1.1の表記で解説しますのでVer.1.0を使用している場合は、ON(ver.1.1)をIN(ver1.0),OFF(ver.1.1)をEX(ver.1.0)と読み替えてください。
  4. 3V3ピンソケット
    Raspberry Piから3.3Vが供給されています。
  5. GNDピンソケット
  6. Resetスイッチ
    HATの搭載ATmega328P用のリセットスイッチです。
  7. ATMEGA328P
    1. ATMEGA328Pの全ピンの信号は上下のピンヘッダに引き出されています。
    2. 電源は3.3Vが供給されています。
    3. 前述のISCP-Resetを押すと無条件にリセットがかかります。
  8. RasPiduino-HATには小型ブレッドボードが搭載されているので、ここにAVRライタや実験回路などを構成することができます。
2.開発環境の導入

次の順でAVR開発環境をインストールします。
Arduino IDEのインストール → AVR開発環境のインストール → GPIO対応avrdudeのインストール

  1. 準備
    インストール作業の前にユーザにsudoコマンドをパスワードなしで実行できる権限を付与しておきます。
    Raspbianに初期登録されているユーザ pi はsudoコマンドをパスワードなしで実行できます。
    sudoコマンドをパスワードなしで実行できる権限を付与する方法は→この検索リストを参照して下さい
  2. Arduino IDEのインストール
    1. Linux ARM用Arduinio IDEをダウンロードしインストールします。(2018.01.12現在,最新バージョンは 1.8.5 )
      インストール場所をホームディレクトリの ~/Appcations/配下にarduinoでインストールしておくと,GPIO-AVRDUDE_installerが利用できます。
      1. ファイルマネージャを起動しホームディレクトリ(/home/[ユーザ名]に Applications フォルダを作ります。
      2. ブラウザを起動しhttps://arduino.cc/en/Main/SoftwareからArduino IDE Linux ARMをダウンロードします。
      3. ダウンロードしたファイル arduino-1.8.5-linuxarm.tar.xz を右クリックし
        Extract to をクリックします。図1
      4. Extract files の Extract to 欄に /home/[ユーザ名]/Applicationsを入力し,
        Extractボタンをクリックします。図2
        図1 図2
      5. ターミナルを起動し次のように操作します。
        $ 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!               ←インストール終了
        $
    2. 念のため,IDEインストール後に手持ちのArduino UNOなどを接続してスケッチが書き込めるか確認します。
  3. AVR開発環境のインストール
    ボードマネージャからインストールします。

    1. インターネットに接続されていることが必須です。
    2. 下のpackage…jasonへの直接リンクURLをコピーします。
      https://kimio-kosaka.github.io/_RasPiduino/package_RasPiduino_index.json
    3. Arduino IDEを起動し「ファイル」→「環境設定」と進みます。図3
      「追加のボードマネージャのURL」欄に先程コピーした直接リンクURLを貼り付け,[OK]をクリックして閉じます。図4
      図3 図4
    4. [ツール]→[ボード:]→[ボードマネージャ…]と進みます。図5
    5. ボードマネージャウインドウが開きます。
      最後尾までスクロールするとKosaka.Lab提供の5つの環境がリストされるはずです。
      先ず最初に_RasPiduinoをインストールします。図6

      図5 図6
    6. ATMegaCore, ATTinyCore-R, bitDuino13 をインストールします。
    7. 最下段のGPIO-AVRDUDE_installerはGPIO対応avrdudeのインストーラです。
      ツール・メニューの選択操作だけでGPIO対応avrdudeをインストールすることができます。(下のデモビデオ参照)
    8. 用語の整理
      命名をテキトーに行い紛らわしい呼び名(用語)になったので整理します。

      1. GPIO対応avrdude GPIOを制御できるAVRライタソフト avrdude を指します。
      2. GPIO-AVRDUDE_installer 「GPIO対応avrdude」をインストールするためのツールパッケージを指します。
  4. GPIO対応avrdudeのインストール
    GPIO-AVRDUDE_installerを用いるとArduino IDEのメニューを数回クリックするだけでGPIO対応avrdudeをインストールできます。
    1. Arduino IDEが ~/Appcations/arduino でインストールされていることが必須です。
    2. ボードマネージャからGPIO-AVRDUDE_installerをインストールします。
    3. 「ツール」→「ボード:」と進みボードリストの下の方にスクロールすると,”Install GPIO AVRDUDE” と “Restore Arduino IDE AVRDUDE” の2つが見えるはずです。これは,インストール,アンインストール用シェルスクリプトを実行する”仮想ボード”です。図7
    4. 仮想ボード”Install GPIO AVRDUDE”を選択します。→ツールメニューが閉じます。
    5. 再度「ツール」メニュー開きます。
    6. 「ブートローダを書き込む」をクリックするとインストールスクリプトが実行されArduino IDEのメッセージエリア(下段の黒い背景のエリア)に進捗が表示されます。図6
    7. スクリプトの実行が終わると”*** RUNscript finished ***”と表示されます。図8
    8. Arduino IDE 標準装備のavrdudeに戻すときは仮想ボード”Restore Arduino IDE AVRDUDE”を選択し同様の操作を行います。

      図7 図8
    9. GPIO-AVRDUDE_installerは常駐させておく必要はありません。上記3〜8が済んだらパッケージマネージャからGPIO-AVRDUDE_installerをアンインストールします。
    10. 参考)インストールとレストアのシェルスクリプトは下の場所に収容されています。図9
      ~/.arduino15/packages/GPIO-AVRDUDE_installer/hardware/avr/1.0.x/bootloaders/
      図9
3.HAT装備のATmega328Pにスケッチを書き込む
  1. ICSP-328PスイッチをON側にします。
    (ver.1.0はICSPスイッチをIN側にします)
  2. Arduino IDEを起動します。
  3. 書込み装置選択
    IDEのメニュー[ツール]→[書込み装置]と進み Raspberry Pi GPIO を選択します。
  4. ボード選択
    IDEのメニュー[ツール]→[ボード:]と進み[ATmega328P]を選択します。
  5. Clockの選択
    IDEのメニュー[ツール]→[Clock:]と進み[8MHz(Internal)]を選択します。
  6. ヒューズビット書き換え
    メニュー[ツール]→[ブートローダの書き込み]と進みます。ダミーのブートローダ書き込みにより,ATmega328Pを内部クロック8MHzで動作させるようヒューズビットの書き換えが行われます。
  7. 以後、スケッチのアップロードボタンをクリックするとボード装備のATmega328Pにスケッチが書き込まれます。
  8. スケッチの書込が終わったらICSP-328PスイッチをOFF側にします。
    (ver.1.0はICSPスイッチをEX側にします)
4.HAT装備のATmega328Pとシリアルポート通信を行う設定
  1. 設定方針
    1. RasPi 3B, ZERO-W のシリアルポートは初期状態では隠蔽されており利用できませんので、シリアルポートを利用できるようにします
    2. RasPi 2B, B+, B, Zeroのシリアルポート/dev/ttyAMA0はシリアルコンソール用として使われており,起動終了時のメッセージ出力やシェル・コマンドを受け付けるようになっています。Arduinoと通信する場合はシリアルコンソールの機能を止めておかなければなりません。
    3. シリアルポートの初期設定ではRTS信号線が利用できないので,これを使えるようにします。
  2. シリアルポートの設定
    raspi-configを起動します( $ sudo raspi-config )

    1. 5 Interfacing Options –>[Select]
    2. P6 Serial –> [Select]
    3. “Would you like a login shell to be accessible over serial?” –> [No]
    4. “Would you like the serial port hardware to be enabled” –> [Yes]
    5. The serial Login shell is disabled
    6. The serial interface is enabled  —> [OK] —> [Finish]
    7. “Would you like to reboot now?” –> [No]
  3. GPIO17(物理ピン11番)をRTS信号に割り付ける
    1. wiringpi パッケージをインストールします( $ sudo apt-get install wiringpi )
      (デフォルトでインストールされているかも知れません)
    2. /etc/rc.local ファイルを編集します。( $ sudo nano /etc/rc.local )
      exit 0 の行の前に,次の行を挿入して保存・終了します。
      /usr/bin/gpio mode 0 alt5
    3. 以上の作業が終了したらリブートします。
  4. 確認
    1. 設定を有効にするためリブートします。
    2. シリアルポートが存在するか確認します。
      1. RasPi3, ZERO-Wの場合 /dev/ttyS0 が存在するか確認( $ ls -l /dev/ttyS* )
      2. RasPi 2B,B+,B,ZEROの場合  /dev/ttyAMA0 が存在するか確認( $ ls -l /dev/ttyAMA* )
    3. GPIO Physical pin 8, 10, 11 がALT5となっているか確認します。( $ gpio readall )
  5. dialoutグループへのユーザの追加
    1. /dev/ttyS0, /dev/ttyAMA0 は一般ユーザから利用できませんので、これらを使いたいユーザ名をdialoutグループに追加します。
      例:ユーザ名 pi をdialoutグループに追加
      $ sudo usermod -a -G dialout pi
  6. RTS信号とリセットについて
    1. 以上の設定を行うとRasPiでシリアルポートをオープンしたときRTS信号によりボード搭載ATmega328Pにリセットがかかります。
    2. リセットをかけたくない場合は前述3の2を /usr/bin/gpio mode 0 alt0 とします。
5.ATtiny85にスケッチを書き込む
    1. ブレッドボードにATtiny85を装着し図3のようにICSPを配線します。
      Ver.1.0とVer.1.1ではICSP信号の並び順が異なっているので注意が必要です。
    2.  ICSP-328PスイッチをOFF側にします。
      (ver.1.0はICSPスイッチをEX側にします)

      図3
    3.  Arduino IDE を起動します。
    4. 書込み装置選択
      IDEのメニュー[ツール]→[書込み装置]と進み Raspberry Pi GPIO を選択します。
    5. ボード選択
      IDEのメニュー[ツール]→[ボード:]と進み[ATtiny25/45/85]を選択します。図A
    6. Chipの選択
      IDEのメニュー[ツール]→[Chip:]と進み[ATtiny85]を選択します。図B
    7. Clockの選択
      IDEのメニュー[ツール]→[Clock:]と進み[8MHz(Internal)]を選択します。図C
    8. ヒューズビット書き換え
      メニュー[ツール]→[ブートローダの書き込み]と進みます。ダミーのブートローダ書き込みにより,ATtiny85を内部クロック8MHzで動作させるようヒューズビットの書き換えが行われます。
    9. 以後、スケッチのアップロードボタンをクリックするとボード装備のATtiny85にスケッチが書き込まれます。
    10. 書き込みが終わったらISCPの配線を取り外します。

図A ATtinyグループの選択

図B Chipの選択

図C Clockの選択

– 来歴 –
2019.02.09 kimio kosaka 図版更新
2018.08.20 kimio kosaka アップロード

Make

Make

PAGETOP
Copyright © kosakalab All Rights Reserved.
Powered by WordPress & BizVektor Theme by Vektor,Inc. technology.
PAGE TOP