びんぼうでいいの 組み立てからドライバのインストールまで

・はじめに

aitendoで販売しているArduino UNOの互換機である

びんぼうでいいの をくみ立てた。

 

値段は以下の通り

びんぼうでいいの基板 500円

部品パック      250円

AVRマイコン     230円

 

・手順

 

(1)半田付け

なにはともあれ買ってきた部品と基板を

半田付けする。

f:id:shangtian:20170921000650j:plain

発振子が16Mhzと12Mhzの2つをとりつけないと

いけないので、その位置だけ注意して半田づけ

する。

 

半田すると下の写真みたいになる

f:id:shangtian:20170921000909j:plain

 

(2)ブートローダーを書き込む

 

ブートローダー書き込み済みの

ATmega328Pを購入したなら

(2)は読み飛ばしていい

 

素のATmega328Pを購入したなら

ブートローダーを書き込む必要がある

 

書き込み方法は以下の記事にまとめて

あるので、それを読んでほしい

 

shangtian.hatenablog.com

 

ブートローダーを書き込んだら

さっき半田付けしたICソケットに

ATmega328Pを装着

f:id:shangtian:20170921003901j:plain

(3)ドライバのインストール

 

Mac

 環境:Mac mini(Late 2014) 

            macOS Sierra 10.12.6

 

aitendoのホームページに載っている

ドライバはインストールしても最新の

Mac osには対応してないようだ

 

以下のからまずzipファイルをダウンロード

github.com

Download ZIPをクリック

f:id:shangtian:20170920184243p:plain

 

ダウンロードしたZIPファイルを解凍したら

CH34x_install_v1.3.pkgをダブルクリック

するとドライバのインストールが開始される。

f:id:shangtian:20170920184447p:plain

インストール終了ごMacを再起動する。

 

再起動したら びんぼうでいいの を

パソコンにつなぐ

 

ターミナルを開き

$ ls /dev/tty*

を実行して下の図のように表示されていれば

ちゃんと認識されている。

f:id:shangtian:20170920184928p:plain

 

 

 

CH34X usb-serial driver をmacにインストールしたらクラッシュする問題の解決方法

・はじめに

aitendo のびんぼうでいいの を買って

きたので、それ用のドライバをインストール

したところmacカーネルパニックを起こし

再起動がエンドレスに・・・

 

 ・解決方法

環境は 

Mac mini(Late 2014)

macOS Sierra 10.12.6

 

(1) まずセーフモードで起動

 

macが起動したらすぐShiftキーを押す

 

Appleロゴと進行状況インジケータが表示

されたらShiftキーを放す

 

ログイン画面が現れたらログイン

 

(2)ドライバ削除

ログインしたらターミナルを開き

以下のコマンドを実行

 

$sudo rm -rf /System/Library/Extensions/usb.kext
$sudo rm -rf /Library/Extentions/usbserial.kext

 

でusb.kextとusebserial.kextを完全消去

これでカーネルパニックから抜けられるはず

 

その後macを再起動する。

 

(3)修正版のドライバをダウンロード

 

adrianmihalko/ch340g-ch34g-ch34x-mac-os-x-driver

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

f:id:shangtian:20170920184243p:plain

 

zipファイルを解凍したら

CH34X_Install_V1.3.pkgをダブルクリックして

インストール

 

f:id:shangtian:20170920184447p:plain

 

インストールしたら再起動

 

(2)確認

 

再起動後デバイスを接続したのち

$ls /dev/tty*

を実行して以下のようにデバイスが表示

されれば成功

f:id:shangtian:20170920184928p:plain

 

<参考文献>

support.apple.com

github.com

Ada入門:整数を使う

・目的

整数の扱いかたを知り、四則演算等をAdaで行う。

 

・方法

まずはコードの例から

 

with Ada.Text_IO, Ada.Integer_Text_IO;
use Ada.text_IO, Ada.Integer_Text_IO;

procedure integer1 is
   ---変数宣言
    val1           : INTEGER := 10;
    val2           : INTEGER;
    val3,val4      : INTEGER;

begin

    val2 := 2;
    val3 := val1 - val2;
    val4 := val1 + val2;

    Put("val1 = ");
    Put(val1);
    New_Line; --改行
    Put("val2 = ");
    Put(val2,2);
    New_Line;


    Put("val3 = "); Put(val3,0); New_Line;
    Put("val4 = "); Put(val4,0); New_Line;

end integer1;
 

 

with Ada.Text_IO;

with Ada.Integer_Text_IO;

 でAda.Text_IOライブラリをインポートする

ことでテキストを画面に表示したり、標準入力

を可能としたりする。

 

Ada.Integer_Text_IOでは整数の変数を扱うことが

できるようになる。

 

use

useを使うことでコードの記述量を大幅に

減らすことができる。例えばuseを使わない場合

Ada.Text_IO.Put("val1 =");

みたいになるが

use with Ada.Text_IO;

procedure ファイルの名前 is

begin

   Put("val1 =");

end<ファイルの名前>;

 

整数の宣言をするのは

procedure ファイルの名前 is

   ここの間

begin

 procedure ... is と beginのあいだ

に宣言する

 

変数に値を代入するときは:=を使う

   val := 11;

 

つぎは掛け算、割り算、余りについて

 

with Ada.Text_IO, Ada.Integer_Text_IO;
use Ada.Text_IO, Ada.Integer_Text_IO;

procedure integer2 is

   val1,val2,val3,val4  : Integer;
   val5,val6,val7       : Integer;
begin

   val1 := 15;
   val2 := 3;
   val3 := 4;

   val4 := val1 / val2;  --割り算
   val5 := val1 * val2;  --掛け算
   val6 := val1 mod 4;   --余り
   val7 := val1 rem 4;   --余り

   Put("val4 ="); Put(val4,0); New_Line;
   Put("val5 ="); Put(val5,0); New_Line;
   Put("val6 ="); Put(val6,0); New_Line;
   Put("val7 ="); Put(val7,0); New_Line;


end integer2;


Ada入門 : Hello World

・目的

 Hello Worldを表示すること

 

・方法

Adaの基本構成は

procedure<プログラムの名前> is
     <宣言部分>
  begine
      <実行部分>
  end <プログラムの名前>;

  

では実際にHello Worldを実行してみる

 

with Ada.Text_IO; --ライブラリをインポート

procedure HelloWorld is

begin

   Ada.Text_IO.Put("Hello World!");
--文字を表示 end HelloWorld;
   --終了

図1:HelloWorld.adb

 

HelloWorld.adbをコンパイル

 

$gnatmake HelloWorld.adb

 

そして実行

$./HelloWorld

 

Arduino トルグスイッチを使ってみた

・目的

トルグスイッチでLEDをコントロールすること

 

・使用したもの

Arduino UNO

LED2個

10kΩ4個

トルグスイッチ

 

・方法

(1)回路図

単純にスイッチとして使うとき

回路図を図1に示した。

 

f:id:shangtian:20170911155520p:plain

図1:トルグスイッチとLED

 

f:id:shangtian:20170912230645j:plain

図2:トルグスイッチとLED

 


トルグスイッチ

(2)スイッチを読み取ってLEDを制御

 

トルグスイッチでanalogRead();で

値を読み取りそれに対応してLEDを

光らせる。

図3にコードを、図4に回路図を示した。

 

const int Pin1 = 2;
const int Pin2 = 3;
const int LED1 = 4;
const int LED2 = 5;

void setup() {
  pinMode(Pin1,INPUT);
  pinMode(Pin2,INPUT);
  pinMode(LED1,OUTPUT);
  pinMode(LED2,OUTPUT);
  Serial.begin(9600);
}

void loop(){
  int val1,val2;
  val1 = digitalRead(Pin1);
  val2 = digitalRead(Pin2);

  if(val1 == 1){
    digitalWrite(LED1,HIGH);
  }else if(val1 == 0){
    digitalWrite(LED1,LOW);
  }

  if(val2 == 1){
    digitalWrite(LED2,HIGH);
  }else if(val2 == 0){
    digitalWrite(LED2,LOW);
  }
  Serial.print(val1);
  Serial.print(":");
  Serial.println(val2);
  delay(1000);
}
 

図3:LED点滅

f:id:shangtian:20170911155534p:plain

図4:ArduinoとトルグスイッチとLED

f:id:shangtian:20170912230720j:plain

図5:ArduinoとトルグスイッチとLED


Arduino トルグスイッチ

Ada gccコンパイラインストール  macでの開発環境構築 

・目的

macgccは .adbをコンパイルできないので

できるようにgnatmakeをインストールする

 

・方法

(1)Adaコンパイラをダウンロード

 

以下のサイトから最新のものをダウンロード

sourceforge.net

 

ファイルを解凍する

$sudo tar jxvf gcc-7.1.0-x86_64-apple-darwin15-bin.tar.bz2

 

(2)インストール

解凍したファイルに移動する

$cd gcc-7.1.0-x86_64-apple-darwin15-bin.tar.bz2
$sudo ./doinstall

インストールが終わるまで10分ぐらいかかる

かもしれない

 

(3)PATHを通す

インストールしただけではコマンドは

使えないのでPATHを通す必要がある。

ホームディレクトリにある

.bash_profile

を編集する

 

もしそのファイルがない時は新たに

作る必要がある

$cd ~
$mkdir .bash_profile
$vim .bash_profile

 

そして以下の内容を書き込む

export PATH=/opt/gcc-7.1.0/bin:$PATH

その後

$. ~./.bash_profile

これで完了

 

(4)コンパイラの方法

以下のこまんどでOK

$gnatmake filename.adb

 

<参考文献>

qiita.com

http://sam.truman.edu/adaonthemac.html

motw.mods.jp

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