ATmega328pの書き込み装置を自作してみた

・目的

ATmega328pにブートローダーや

スケッチを書き込むのにブレッドボード

に配線するのが面倒なので

ユニバーサル基板に配線した。

 

・使用したもの

 コンデンサ22pF

10kΩ抵抗

ユニバーサル基板

 

 

 

 ・方法

(1) 回路図

 

 図1にのように配線した。

f:id:shangtian:20170629230308p:plain

 図1:回路図

 

書き込み方法は図2のように

Arduinoと対応してるピンを接続する。

f:id:shangtian:20170909213753j:plain

f:id:shangtian:20170909221409j:plain

f:id:shangtian:20170909221447j:plain

 

(2)スケッチを書き込む

 

Arduino UNOにArduinoISPを書き込む

f:id:shangtian:20170629230220p:plain

 

ボードをATmega328pに設定する

f:id:shangtian:20170701131923p:plain

 

書き込み装置をArduino as ISPに設定する

f:id:shangtian:20170701093509p:plain

 

その後書き込みたいスケッチをの

ページを開き書き込み装置を使って書き込むをクリック

f:id:shangtian:20170701093601p:plain

Arduinoで モータードライバ TA7291p をつかってみた。

・目的

 モータードライバーを使ってDCモータを

 制御する。

・使用したもの

Arduino uno

TA7291p

ブレッドボート

ジャンパワイヤ

Mac mini

 

・方法

 (1)TA7291pのピン配置

TA7291pの端子配置を表1に示した。

ロジック側電源はTA7291pの電源。

出力側電源はモーターに供給する電源。

制御端子はpwmを使用する時に使う。

 

3,9pinはNC端子(何も接続しないこと)

端子記号

端子番号

端子説明

Vcc

7

ロジック側電源端子

Vs

8

出力側電源端子

Vref

4

制御電源端子

GND

1

GND

IN1

5

入力端子

IN2

6

入力端子

OUT1

2

出力端子

OUT2

10

出力端子

表1:ピン

 

(2)PWMを使用しない時

 

pwmを使用しない時の回路図を図1に示した。

この時注意しなければならないことはVref端子の処理である。

pwmをしない場合はVsに抵抗を介して接続すること。

これをしないと上手く動かなくなる。

図1では10kΩ抵抗を接続した。

f:id:shangtian:20170907100821p:plain

図1:pwmを使用しない

 

pwmを使用しない時のコードを

図2にしめした。

 

const int Pin1 = 8;
const int Pin2 = 9;

void setup() {
  pinMode(Pin1,OUTPUT);
  pinMode(Pin2,OUTPUT);
}

void draw() {
  digitalWrite(Pin1,HIGH);
  digitalWrite(Pin2,LOW);
  delay(10000);
  digitalWrite(Pin2,LOW);
  digitalWrite(Pin2,HIGH);
  delay(10000);
  digitalWrite(Pin1,LOW);
  digitalWrite(Pin2,LOW);
} 

図2:pwmを使用しないとき

(3)PWMを使用する時

 

pwmを使用する時、回路図を図3に示した。

ATmega328pを搭載しているArduino UNOは3,5,6,9,10,11

ピンでpwmに対応している。

 

pwmは以下のようにして使える

value は0~255を指定できる

 

const int pwm = 3;
void setup(){        pinMode(pwm,OUTPUT); } void loop(){         value = 100;        analogWrite(pwm,value); } 

 

 

f:id:shangtian:20170907100912p:plain

 図3:pwmを使用するとき

 

コードを図4に示した。


const int Pin1 = 8; const int Pin2 = 9; const int Pwm = 10; void setup() { pinMode(Pin1,OUTPUT); pinMode(Pin2,OUTPUT); pinMode(Pwm,OUTPUT); } void draw() { digitalWrite(Pin1,HIGH); digitalWrite(Pin2,LOW); analogWrite(Pwm,100); delay(5000); digitalWrite(Pin1,HIGH); digitalWrite(Pin2,LOW); analogWrite(Pwm,200); delay(5000); digitalWrite(Pin1,LOW); digitalWrite(Pin2,HIGH); analogWrite(Pwm,100); delay(5000); digitalWrite(Pin1,LOW); digitalWrite(Pin2,HIGH); analogWrite(Pwm,200); delay(5000); digitalWrite(Pin1,LOW); digitalWrite(Pin2,HIGH); delay(5000); }

図4:pwmを使用したとき

ATmega328pで自立走行三輪車を作ろう(その1)

・目的

 ATmega328pを使ってロボットを

 作る。取り敢えず走れば良いw。

 

・(その1)での目標

回路を設計して、ユニバーサル基板

に配線する。

 

今回はセンサー類は一切つけない。

またモーター制御はモータードライバ

TA7291Pを使用した。

 

・使用したもの

 

    16MHz水晶振動子

 NJM2396F05(レギュレータ5V1.5A)

    コンデンサ10μF

 ユニバーサル基板(ブレッドボード風)

 モータードライバ TA7291P

 

 

 

・方法 回路設計

Arduino unoに搭載されている

ATmega328Pを使用して制御する。  

 

ATmega328Pは5V電源を必要とする

ため5V1.5Aのレギュレータ

NJM2396F05を使った。

 

このレギュレータは4端子あり

Vin,Vout,GND,ON/OFF CONTROL

ON/OFF CONTROL端子を使用

することで、レギュレータの

ON/OFFを制御出来るが

今回は使用しないのでVinに

接続する。

  

 今回pwmを使わずモーターを制御する。

つまり速度の調整は出来ない。

 

TA7291Pのデータシートによると

pwmを使用しない場合はVref端子を

オープンにせず、Vsに3kΩ以上の抵抗

を介して接続する。

 

今回マイコン側の電源とDCモーター側の

電源を同じ電源を使ったため、

モータのノイズがマイコンの動作を不安定に

させた。電源は別にした方がよい。 

 

 

図1に回路図を示した。

f:id:shangtian:20170824184806p:plain

図1:回路図

 

 

f:id:shangtian:20170826205316j:plain

図2:実際配線した図

Raspberry piでsshを使ってみる

・はじめに

毎回Raspberry piにディスプレイとマウス、キーボードを接続して動かすのが面倒なので

sshで接続すること。

 

但し、ローカルネット

ワーク上での方法を紹介する。

 

・目的

sshを使ってRaspberry piにアクセスすること。

 

・使用したもの

Raspberry pi3 modelB(Rasbian)

Mac mini

 

・方法

Raspberry pi側の設定

Raspberry piの設定画面から

sshを有効にするをクリック

f:id:shangtian:20170812161403p:plain

 

Raspberry pi側の端末でipアドレス

以下のコマンドで確認

$ifconfig

 

クライアント側で端末を開き

 

$ssh ユーザー名@ipアドレス

 で接続する。以下に例を示した。

$ssh pi@192.168.2.111
password:*******

で接続出来る。

 

ラズパイのデフォルトでの

ユーザー名とパスワードは

ユーザー名  pi

パッスァード raspberry

 

・追記

ファイルを転送するときは

sftpを使用する。まずはサーバーに

アクセスする。

 

$sftp ユーザー名@ipアドレス

 

例:

$sftp  pi@192.168.2.111
password ******

 

サーバー側のファイル操作

 

                  ディレクトリ表示 ls

                  ディレクトリ移動 cd

一つ上のディレクトリに移動 cd ..

 

クライアント側のファイル操作

  

     ディレクトリ表示 lls              

     ディレクトリ移動 lcd

一つ上のディレクトリに移動 lcd ..

 

 

サーバーからファイルをダウンロード

              $ get  ファイル名

 

サーバーにファイルをアップロード

              $put   ファイル名

processing.jsを使ってみた

・目的

webページ上でprocessingを

実行出来るprocessing.jsを使って

みた。

 

・使用したもの

Raspberry pi(rasbian)

         Apache2

mac mini

 

・方法

(1)processing.jsをダウンロード

 

 processing.jsを以下のサイト

 からダウンロード

 http://processingjs.org/download/

   

 

f:id:shangtian:20170803170420p:plain

上の写真の赤線部分をクリックすると以下

GitHubのサイトに飛ぶ。下の写真(図1)

の赤線をクリック。

 

f:id:shangtian:20170803170433p:plain

 図1:ダウンロードページ

 

ダウンロードしたzipファイルを

解凍し、processing.jsをコピーしておく。

 

f:id:shangtian:20170812160455p:plain

 

(2)index.html

以下のhtmlファイル(図3)を作成

 

<DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Processing Demo</title>
<script src="./processing.js"></script>
</head>
<body>
<canvas data-processing-sources="processing.pde"></canvas>
</body>
</html>

図3:index.html

 

(3) processingのコード

webページ上で動かしたいprocessing

のコードを図4に載せた。

int x,y;
void setup() {
  size(400,400);
  background(255);
  x = 0;
  y = 0;
}

void draw() {
  
  x++;
  y++;
  ellipse(x,y,10,10);
  
  if(x>width || y>height){
    background(255);
    x = 0;
    y = 0;
  }
} 

 

(4)

 

(1)でコピーしたprocessing.jsと

(2)で作成したindex.htmlそして

(3)で作成した.pdeををApache

 ドキュメントルートに入れる。

 

・結果


example of processing.js

Raspberry pi appachのドキュメントルートの変更 設定設定ファイル反映

・はじめに

apache2のドキュメントルートの

変更方法を以下に示しておく。

 

・方法

デフォルトの状態ではドキュメント

ルートは

/etc/apache2/sites-available

にある。設定ファイルを開く

$vim 000-default.conf
DocumentRoot /home/pi/Documents/myWeb/

この下に

DocumentRoot /home/pi/Documents/myWeb/
<Directory /home/pi/Documents/myWeb/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

を貼りつける。

ファイルほ保存して

$sudo a2dissite
で設定を反映させると
以下が表示される
Your choices are: 000-default
Which site(s) do you want to disable (wildcards ok)?

 

 apache2を再起動

$sudo /etc/init.d/apache2 restart

もし記事が役立ったら↓の広告をクリック

シリアル変換モジュールでATmega328Pにスケッチを書き込む

・はじめに

 ATmega328pにArduino IDE

 スケッチを書き込むには

 あらかじめATmega328pに

 ブートローダーが書き込んで

 ある必要があります。

 

 書き込んでいない場合はまず以下の

 記事を参考にブートローダーを

 書き込んでください。

 

shangtian.hatenablog.com

 

 ・目的

 

 Arduino IDEを使いATmega328Pに

 スケッチを書き込み、Lチカ

 させる。

  

 Arduino IDEを使いATmega3281Pに

 書き込む方法は3種類ある。今回

 は3つ目の方法を紹介。

 

・使用したもの

 

 シリアル変換モジュール(秋月)

 ATmega328P

    ブレッドボート

 ジャンパワイヤ

 水晶発振子16MHz

 コンデンサー 22pF

    コンデンサー 0.1μF

 

 

 

・方法

 

 (1)回路

 回路図を図1に、接続ピン対応表を

 表1に示した。

f:id:shangtian:20170807184036p:plain

図1:回路図

 

表1:接続ピン対応表

Arduino uno

ATmega328p

D0(RXD)

3 (TXD)

D11 (TXD)

2 (RXD)

RST

1  (REST)

 

(2)プログラム

 

プログラムを図2に示した。

 

 void setup() {
  pinMode(8, OUTPUT);
}

void loop() {
  digitalWrite(8, HIGH);
  delay(1000);
  digitalWrite(8,LOW);
  delay(1000);

}

図2:プログラムコード

 

 

(3)書き込み

 プログラムをATmega328pに書き込む。

 

 ATmega328pのボードマネージャが

 必要なので以下の記事を参考に

 ボードマネージャをインストール

 してください。

 

shangtian.hatenablog.com

 

 

ボードマネージャの設定は図2を参照。

 

f:id:shangtian:20170701131923p:plain

 

設定が終わったら図3の赤丸をクリックして

スケッチを書き込む。

f:id:shangtian:20170701092155p:plain

 

 

shangtian.hatenablog.com

 

shangtian.hatenablog.com

 

 

<参考文献>

http://www.gammon.com.au/breadboard
http://mcu-tw.blogspot.jp/2014/10/lesson-1ftdiupload-sketchatmega328p-pu.html
https://b.eax.jp/eh/arduino/10405/
http://ht-deko.com/arduino/atmega328p.html
https://okuzawats.com/bootloader-20150516/