卓上はんだ吸煙機をつくってみた



・目的

卓上はんだ吸煙機をつくる

 

・使用したもの

アクリル板

 

 

アイネックス ケース用ファン80mm 標準タイプ CFY-80F

アイネックス ケース用ファン80mm 標準タイプ CFY-80F

 

オウルテック 金属製ファンガード 8cm シルバー FANGuard-M8/II

ATtiny13a-pu 
TA7291P (モータードライバ)
NJM7805FA(5V 1A  3端子レギュレータ)

トルグスイッチ

DCコネクタ

ユニバーサル基板

オスピン

 

・方法

 (1)回路を組み立てる

 回路図を図1に示した。

単純にモータードライバはon/off

 のみにしか使っていない。

TA7291Pの4ピン(verf)は12Vに

7,8ピンも12Vにつないである。

 

適当なトランジスタがあれば

トランジスタを使った方がいいかも

しれない。

 

今回使ったらファンは3端子で

赤黒白のコードでつながれていた

使った端子は赤と黒のコード

f:id:shangtian:20180102232923p:plain

 

 (2)プログラム

スケッチを図2に示した。

0ピンにトルグスイッチを接続

しており、digitalRead()で値を受けとる。

const int IN1 = 1;
const int IN2 = 2;
const int SWI = 0;
void setup() {
  pinMode(IN1,OUTPUT);
  pinMode(IN2,OUTPUT);
  pinMode(SWI,INPUT);
  //Serial.begin(9600);
  }

void loop() {
  int val = digitalRead(SWI);
  //Serial.println(val);
  if(val == 0) off();
  else rot();

  delay(1000);
}

void rot() {
  digitalWrite(IN1,HIGH);
  digitalWrite(IN2,LOW);
  
}

void off() {
  digitalWrite(IN1,LOW);
  digitalWrite(IN2,LOW);
}

図2:スケッチ

 

(3)組み立て

 アクリル板を適当な大きさに切って

ファンをグルーガンで接着。

 

基板もファンの側面に接着。
f:id:shangtian:20180109125215j:image

 

 

一応完成
f:id:shangtian:20180109125149j:image

 

・結果

線香を燃やして試してみたら

ちゃんと煙を吸引していた

ので一応成功

 

ただスイッチでon/offのコントロール

しかしてないんでマイコンを使う

意味が無かった気がする

 

nanopi neo のセットアップ

 

この記事は MCC Advent Calendar 2017 - Adventar の20日目の記事です。

前回はgurapomuさんによる

人間性とか社会性とかの話 - ヒューマンコンテンツにっき

でした。

 

目次 

 

・nanopi neoとは 

 

nanopi neoはFriendlyARM社が

発売しているpiボード。

このボードはUbuntu core 16.04

をサポートしており、他にも

使えるosがある模様。

 

nanopi neoにはmicroSDカード

スロット、USBポート、LANポート

電源供給用microUSBポートをそれぞれ

1個ずつそなえている。またAudio I/O

5pin、 GPIO 36pinを装備しており

UART SPI I2Cもサポートしている。

 

但しWiFiBluetoothは内蔵していない。

これは値段相応ってところですねぇ

Wifiがついてないのは結構痛い

ただusb無線lanアダプタでwifi接続も

可能なんだけど自分はうまくいかなかったです

 

 

秋月電子では1680円で販売されている。

Raspberry piが4000~5000円するのと

比べるとかなり安価。

 

 ・OS イメージの書きこみ

microSDカードにOSイメージを

書き込む。

 https://m.mediafire.com/folder/n5o8ihvqhnf6s/Nanopi-NEO

に飛んでofficia-lROMsファイルの中の

nanopi-neo_FriendlyCore-Xenial_4.11.2_20171122.img

をダウンロード

 

SDカードをマウントしてイメージを書き込む

$diskutil list
$diskutil unmountDisk /dev/disk2
$ cd Downloads
$sudo dd if=nanopi-neo_FriendlyCore-Xenial_4.11.2_20171122 of=/dev/rdisk2 bs=1m

時間が数分かかるので待つ

 

・シリアル通信で端末を開く

SDカードにイメージを書き込み終わったら

nanopiにSDカードを入れる。

電源を入れる前にシリアル変換機を

UARU0に接続する。

 

以下の表のように接続すること。

 

シリアル変換 nanopi neo
RX TX
TX RX
5V ---/td>
GND GND

f:id:shangtian:20171220081836j:plain

出典:File:NEO pinout-02.jpg - FriendlyARM WiKi

 

f:id:shangtian:20171217181811j:plain

 

接続し終わったらターミナルで

$ls -l /dev/tty.*

でシリアル変換機のデバイス名を調べると

/dev/tty.usbserial-A1032F1Q

であったので

$screan /dev/tty.usbserial-A1032F1Q 115200

を実行してシリアル接続をする

$screen 接続先デバイス ボーレート

という感じで書く nanopi neoとは115200bps

で通信可能

 

nanopi neoを電源に接続すると

NanoPi-NEO login:
Password:

を要求される

デフォルトで

non-root user

ユーザー名 : pi
パス    : pi

 

root user

ユーザー名 : root 
パス: fa

 

ログインすると図のような画面が表れる。

f:id:shangtian:20171217175106p:plain

 

ユーザー名、パスワード、言語、タイムゾーンssh

などの変更は

$sudo npi-config

f:id:shangtian:20171217180611p:plain

・ピンの半田づけとヒートシンクの取り付け

まずはオスピンを半田づけしていく

f:id:shangtian:20171217181709j:plain

 

Nanopi neo

はかなり熱を発するとのことなんで

ヒートシンクを取りつける

f:id:shangtian:20171217181910j:plain

 

 白い正方形のやつがcpuグリス

f:id:shangtian:20171217182032j:plain

グリスを載せたらヒートシンク

ネジ止めする

f:id:shangtian:20171217182112j:plain

なんか間が結構空いてるなぁ

f:id:shangtian:20171217182135j:plain

 

明日はepcnt19さんによるNginxモジュールを書いてみるです。

<参考文献>

NanoPi NEO - FriendlyARM WiKi

screenを使ったserial接続と終了の方法メモ - Qiita

SDカードにイメージを書き込む方法 - Qiita

dd (UNIX) - Wikipedia

NanoPi NEO初期設定メモ · GitHub

 

esp-wroom-02(esp8266) boot mode(x,y)とは

esp-wroom-02がエラーコードをシリアル

モニタにはき出したものを見るとたとえば

rst case:2 boot mode:(1,6)

みたいなのが書いてある。

今回はそのboot modeについて

 

端的に言うとboot mode:(x,y)は

esp-wroom-02の状態を表している。

 

シリアルモニタの通信速度を74880bps

に設定するとboot modeを知ることが

出来る。

 

まずはboot modeのxについて

GPIO15,GPIO0,GPIO2のピンの状態を

2進数で表すと以下の表のようになる 

2進数 GPIO15 GPIO0 GPIO2
000 Low Low Low
001 Low Low High
010 Low High Low
011 Low High High
100 High Low Low
101 High Low High
110 High High Low
111 High High High

 

それぞれのピンの状態によって

ESP8266の動作が変わる

シリアルモニタで表示されるboot mode(x,y)

のxは以下の表の10進数部分と対応する

 

例えば

esp8266にプログラムを書き込むときは

x=1に設定する

またプログラムを実行するときは

x=3に設定する 

xの意味
code(2進数) code(10進数) 意味
000 0 Remapping
001 1 Boot from the UART0. Also includes flashing
the flash memory for subsequent normal start
010 2 Jump start
011 3 Boot from flash memory
100 4 SDIO low speed V2
101 5 SDIO high speed V1
110 6 SDIO low speed V1
111 7 SDIO high speed V2

 

 次はboot mode(x,y)のyの部分について

以下の表に示した

yの値はcodeの値と対応する

yの意味
code 意味
0 Remapping
1 UART Boot
2 Jump Boot
3 FLASH Boot
4 SDIO LowSpeed V2 IO Uart1 Booting
5 SDIO HighSpeed V1 IO Uart1 Booting
6 SDIO LowSpeed V1 IO Uart1 Booting
7 SDIO HighSpeed V2 IO Uart1 Booting

 

<参考文献>

Kolban’s book on the ESP8266 | Neil Kolban Tech

ディスプレイなしでRaspberry piを操作する方法

この記事はMCC Advent Calendar 2017 - Adventarの5日目の記事です

  

 

 

・はじめに

このまえRaspberry piをディスプレイなし

で使わないといけない時があって苦労したんで

まとめときます

 

・前提として

Raspberry piにはOSが

インストールされていること

OSはRaspbian            

ここではRaspberry pi 3 Model Bを使用した

またssh接続を有効に設定してあること

 

スマホssh接続

-用意するもの

Androidスマホ

 Termux 

Termux - Google Play の Android アプリ

ConectBot

ConnectBot - Google Play の Android アプリ

 の2つのアプリをインストール

 

まずはRaspberry piスマホ

usb接続する

 

次にテザリングを有効化する


f:id:shangtian:20171204095952j:image

usbテザリングを有効化


f:id:shangtian:20171204100027j:image

 

Termuxを起動して


f:id:shangtian:20171204100112j:image

$arp -a

を実行してRaspberry pi

ipアドレスを確認

raspberrypi {192.168.42.205} 

とかいてある

 

ConectBotを起動して

右下のプラスマークをタップして
f:id:shangtian:20171204100506j:image

 

さっき確認したraspberry piipアドレス

以下のように記入して右上の➕をタップ
f:id:shangtian:20171204100639j:image

 


f:id:shangtian:20171204100701j:image

 

ここでパスワードを入力すれば終了

f:id:shangtian:20171204212534p:plain

 

これでssh接続完了

f:id:shangtian:20171204212537p:plain

 

sshじゃなくてGUI操作するぞ

sshじゃ困るという場合VNC viewerという

アプリを使ってリーモートディスクトップ

環境を作る

 

まずはスマホ

VNC Viewer - Remote Desktop - Google Play の Android アプリ

をインストール

 

先ほど使ったConnectBotでssh接続して

ラズパイ側のセットアップをしていく

 

Raspberry pi側にもインストールする

必要がある為(ラズパイがネットに繋がってないと

インストールできないため有線しとくといい)

$ sudo apt-get install x11vnc

インストールし終わったら

$z11vnc -forever

vncを起動する

f:id:shangtian:20171204212549p:plain

 

上手くラズパイ側でVNCを起動できると

以下の写真にたいになる

f:id:shangtian:20171204212601p:plain

 

以上でRaspberry pi側のセットアップは終わり

あとはスマホVNC viewerを起動して

Addressに最初に調べたipアドレスを記入する

Nameの方は任意で大丈夫だ

f:id:shangtian:20171204213756p:plain

 

OKをタップする

f:id:shangtian:20171204213800p:plain

f:id:shangtian:20171204213805p:plain

 以上で完了

 

 

・有線してssh

パソコンとRaspberry piを有線LAN接続して

sshを確立する

 

(1)macの場合

mac mini (Late 2014)

macOS Sierra 10.12.6

 

まずRaspberry pimac miniとを有線接続

f:id:shangtian:20171204220034j:plain

ターミナルを開いて

$ssh pi@raspberrypi.local

 

で接続できる

 

 (2)windowsの場合

Let's note CF-SZ5

Windows10

まずインストールしなければならないものが

いくつかある

まずは

Tera Termをインストール

「Tera Term」定番のターミナルエミュレーター - 窓の杜ライブラリ

 

次に

Bonjour Print Servicesをインストール

ダウンロード - Bonjour Print Services (Windows)

 もしiTuesがインストールされていれば

Bonjour Print Servicesをインストールする必要はない

 

インストールし終わったら

ラズパイとPCを有線して

Tera Termを起動する

 

f:id:shangtian:20171204230024j:plain

ホスト(T):raspberrypi.local

と記入してokをクリック

f:id:shangtian:20171204222630p:plain

 ユーザー名とパスワードを入力すると

f:id:shangtian:20171204222642p:plain

接続できる

f:id:shangtian:20171204222652p:plain

 

(3)ubuntuの場合

ubuntuでは特に何かインストールが

必要なわけではない

f:id:shangtian:20171204230113j:plain

端末を開いて

$ssh pi@raspberrypi.local

で完了

f:id:shangtian:20171204230133p:plain

 

<参考文献>

Raspberry Pi Zero に Android から USBテザリング で SSH接続 | Home Made Garbage

Raspberry PiとMac or Windows PCを有線で直接繋いでさくっとSSH接続する - Qiita

ATTiny13Aでシリアル通信を行う

・目的

ATTiny13Aのピン一つでシリアル通信を行う

 

・使用したもの

ATTiny13A

シリアル変換機

ダイオード

トランジスタ

10KΩ抵抗 1個

ブレッドボード

Arduino IDE

mac mini

 

・方法

 

(1)ライブラリのインポート

まずはシリアル通信を行うために

ライブラリを追加する

 

下のサイトにとんで

Nerd Ralph: AVR half-duplex software UART supporting single pin operation

 

赤で囲ってある部分をクリックすると

ライブラリをダウンロードできる

 

f:id:shangtian:20171116185859p:plain

 図1:ライブラリのダウンロード

出典:Nerd Ralph: AVR half-duplex software UART supporting single pin operation

 

ダウンロードし終わったら

zip形式のライブラリをインストールを

クリックしいて BasicSerial3を選択する

f:id:shangtian:20171116190247p:plain

 図2:ライブラリの追加

 

(2)回路を組み立てる

 

図3に回路図を示した

シリアル変換器につなげるときは

TX-RX RX-TX

とクロスして接続すること

f:id:shangtian:20171116185106p:plain

 図3:シリアル通信回路

 

(3)ライブラリの設定

 

使うピンの指定と通信速度はをスケッチ上では

指定できないのでライブラリを直接編集して

指定する。

 

まずは使用するピンの指定から

$vim Documents/Arduino/libraries/BasicSerial3
$vim BasicSerial3.S

 13,14行目にデフォルトで

#define UART_Tx 5
#define UART_Rx 5

とあるので5を2に変更

#define UART_Tx 2
#define UART_Rx 2

 

つぎに通信速度の指定

$vim BasicSerial3.h

7行目にある

#define BAUD_RATE 115200

がシリアル通信の速度を指定している

今回38400bpsに指定したいので

#define BAUD_RATE 38400

に変更して保存

 

以上でライブラリの設定は終わり

 

(4)スケッチの作成

スケッチを示した 

1を受け取ったら”CHIBA”を返し

それ以外は”jajaja”を返す 

#include <BasicSerial3.h> 

void setup() {

}

void serOut(const char* str) {
   while (*str) TxByte (*str++);
}

void loop(){
  byte c;
  c = RxByte();
  switch(c) {
    case '1': 
      for (uint8_t i=0;i<10;i++) serOut("CHIBA");
      serOut("\n\r");
      break;
    default:
      serOut("jajaja");
      break;
      
  }
}

図4:スケッチ

 

・結果

 

上手くいくとこんな感じ

f:id:shangtian:20171117212955p:plain

 図5:シリアルモニタ

 

追記

BasicSerial3.SのUART_Tx 、UART_Rx 

を違うピンを割り振れば

普通のシリアル通信が行える

回路図を図6に示した

$vim BasicSerial3.S

 13,14行目

#define UART_Tx 1
#define UART_Rx 0

f:id:shangtian:20171117220041p:plain

図6:回路図

 

<参考文献>

Nerd Ralph: AVR half-duplex software UART supporting single pin operation

ATtiny13Aでシリアル通信(UART)を行う: 猫にコ・ン・バ・ン・ワ

ATTiny13A ブートローダー書き込み

ATTiny13Aは秋月で50円ほどで

とにかく安い

ピンの数が少ないんでかなり制限

されて使いにくいかもしれないけど

とにかく安い

 

というわけで使ってみる

 

・目的

ATTiny13Aにブートローダーを書き込む

 

・使用したもの

 

ATTiny13A

Arduino UNO

Arduino IDE

ブレッドボード

ジャンパワイヤ

mac mini

 

 

・方法

 

(1)Arduino に ArduinoISPを書き込む

 

まずはArduino unoにArduinoISPを書き込む

 

f:id:shangtian:20170629230220p:plain

図1:ArduinoISP

 

(2)ボードマネージャに追加

 

まずは

Arduino IDE に ATtiny10/13 の開発環境を組み込む | Make | kosakalab

にアクセスして図2の赤四角の

部分をクリックしてzipファイルを

ダウンロード

 

f:id:shangtian:20171116082103p:plain

図2:Arduino IDE に ATtiny10/13 の開発環境を組み込む | Make | kosakalab

 

ダウンロードしたファイルを解凍すると

以下のような構成になる

 

bitDuino_2017-2/

                        ┣ bitDuino10/

                        ┣ bitDuino13/  <---使うのはこのファイル

                        ┗bitDuino_Readme.txt

 

次に

  書籍/Arduino/

ディレクトリにHardwareという名前で

ディレクトリを作成しておく

 

先ほど解凍したファイルの中にある

   bitDuino13

をHardwareにコピー

 

うまく追加されるとツール->ボード

で以下の図のように表示される 

f:id:shangtian:20171116083820p:plain

 図3:ボードの選択

 

(3)配線

図4のように配線して

Arduino uno とATTiny13Aのピンの対応表

を表1に示した。

f:id:shangtian:20171115234008p:plain

図4:Arduino unoとATTiny13Aの繋げ方

 

 表1:対応表

 

Arduino uno

ATTiny13A

SDK

D13

7(PB2)

MISO

D12

6(PB1)

MOSI

D11

5(PB0)

RESET

D10

1(RESET)

 

(4)ブートローダーを書き込み

 

ツールを開いて図5のように書き込み装置

Arduino as ISP を選択して

ブートローダーを書き込むをクリック

 

f:id:shangtian:20171116083655p:plain

 

<参考文献>

Arduino IDE に ATtiny10/13 の開発環境を組み込む | Make | kosakalab

Arduinoで、小っちゃいIC(ATTiny)を使う方法 - Qiita

 

 

Ada入門:繰り返し構文

・目的

今回は繰り返し構文について

Adaの繰り返し構文はバリエーション

がけっこうあるきがする。

 

・方法

ここでは5種類の繰り返しかた

をやってみる

 

まずこれ

c言語でいうdo whileみたいなやつ

  i := 0;

   loop
      put("i =");
      put(i, 5);
      New_Line;
      i := i + 1;
      exit when i = 4; --iが4になったら終了
   end loop;

 

次は、条件文で繰り返しを抜けるパターン


      i := 0;
  loop
      Put("i =");
      Put(i,5);
      New_Line;
      i := i + 1;
      if i = 4 then exit; end if;
   end loop;

次はwhile文

  i := 0;

   while i < 5 loop
       Put("i =");
       Put(i,5);
       New_Line;
       i := i + 1;
   end loop;

つぎはfor文

iが1から4の間繰り返す

for i in 1..4 loop
      Put("Hello World");
      Put(i);
      New_Line;
   end loop;

今度は8〜5の間繰り返す

ただし8 7 6 5 4

という感じで処理される

 

for i in reverse 5..8 loop
      Put("Good morning");
      Put(i);
      New_Line;
   end loop;