びんぼうでいいの セットアップ

最近はRaspbery PiよりもArduino Unoの方をよく使う。

最初はネットワークがないのがアレだなと思っていたのだが、
実験のようなことをする場合はArduinoの方が何かと便利である。

アナログ入出力がある。
スケッチ例が用意されている。
起動が速い。
shutdownせずに電源を落とせる。
安い。
など。

Arduinoや電子パーツに親しんできて、以前から知ってはいたが手を出さずにいた、
aitendoの「びんぼうでいいの」を買った。

aitendoではキットをいくつか買って作ってみたのだが、びんぼうでいいのを使って
動かす例が紹介されているものが多い。
今まではそれをarduinoで動かしていた。

安いし、2台あってもいいなと思った。

びんぼうでいいのは部品を自分ではんだ付けするものと、実装済みのものがある。
また、実装済みのものにはブートローダ書き込み済みのものと未書き込みのものがある。

私が買ったのは部品実装済みでブートローダ未書き込みのもので、
1120円だった。

http://www.aitendo.com/product/13649

部品実装済みではあるが、ピンソケットとピンヘッダははんだ付けする必要がある。
ピンソケットを付ける穴が2列になっているが、WEBの写真通り外側に付けた。
電源はUSBをつなぐのでDCジャックは付けなかった。

また、マイクロUSBコネクタははんだ付けが不完全なので補強してくださいという注意書きがWEBに記載されている。
aitendoらしい。
でも、こんなことは全然気にならない。喜んで補強した。
そしてそこで気づいたのだが、
USBポートがarduinoはUSB BタイプであるがbinbodeiinoはマイクロUSBである。

ブートローダ書き込みの方法はWEBに記載されている。

少し手間取ったのだが、ちゃんと読むと書いてある通りにすればできる。

binbodeiinoのブートローダ書き込みについて検索するといろいろ情報があり、接続が違う方法などが紹介されていたりする。
いくつかやり方があるのかもしれないしバージョンとか機種とかによるのかもしれないが、とりあえずArduino Unoとびんぼうでいいの(S)ではうまくいった。

接続は

Arduino ---- binbodeiino

13 ---- 13
12 ---- 12
11 ---- 11
10 ---- Reset
5V ---- 5V
GND ---- GND

arduinoのIDEを起動する。

書き込む側のarduinoにスケッチ例の「11. ArduinoISP - ArduinoISP」を書き込む。

IDEの「ツール」ー「ボード」と「ポート」が、書き込む側のarduinoのものになっていることを確認し、「書込装置」に「Arduino as ISP」を選択する。

「ブートローダ書き込み」を実行する。


以下のようなエラーが出たのだが、配線が違っていたり、
書き込み側にArduinoISPのスケッチをアップロードしていなかったりなどが原因で、
WEBで検索すると出てくるような特定のファイルを書き換えるとかいうことは一切必要なかった。
--------------------------------------------------------------------------------
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.

ブートローダの書き込み中にエラーが発生しました。
--------------------------------------------------------------------------------

このエラーが出ても、正しい接続と手順で再実行すれば問題なく書き込める。


ブートローダを書き込んだbinbodeiinoをUSBケーブルでPCに接続すると、私のPCでは
デバイスマネージャーで「USB-SERIAL CH340(COM6)」として認識された。


今まであまり意識していなかったが、実装されているマイコンを見てみた。
心臓部といえる部品である。

Arduinoは ATMEGA328P-PU
binbodeiinoは MEGA328P

328Pが同じだし同等品なのだろうが大きさが全然違う。

いくつかサンプルスケッチを動かしてみたが問題なく動いた。
しばらくこれを使ってみる。

トランジスタの動作を実感する

トランジスタの動作を実感する実験。



スイッチを上にすると、330Ωの抵抗とLEDに3.3Vの電圧がかかりLED赤が点灯する。
普通にLEDを点灯する単純な回路。



スイッチを下にすると、トランジスタのベースに電流が流れ、コレクタ・エミッタ間に増幅された電流が流れ、LED青が点灯する。



LEDと10KΩを直列につないで3.3Vの電圧をかけてもLEDは点灯しない。

つまり、LEDを点灯することのできない小さな電流が、LEDを点灯させられるだけの大きな電流に増幅されている。

3.3Vの電圧があってLEDを点灯したいだけならばトランジスタはいらないが、
小さな入力電流があってにそれに応じた大きな出力を作るときに有効である。

aitendo 基板付きI2CキャラクタLCDモジュール(16x2) [ATD1602CPB]

http://www.aitendo.com/product/17479

組み立て。
部品は少ないが少し迷う。

WEBの写真を見て、バックライトの配線を確認。

バックライトは片面に両面テープがついていたのかもしれない。
そのままつけたのでズレる。

チップコンデンサという小さな部品のはんだ付けをする。

基板の片側に仮はんだ付けをし、そこにチップコンデンサをおいて
片側をはんだ付けした後、反対側をはんだ付けする。

ピンヘッダは付属していないので持っていたものを付ける。

バックライトを使う場合はRLEDをはんだでショットすると書いてあるのでその通りにする

つまり、RLEDと書いてある部分をはんだでつなげる。

配線は書いてある通りに

VDD → 3.3V
SDA → A4
SCL → A5
RST → RESET
VSS → GND
LEDA → 3.3V

「びんぼうでいいの+LCD_ST7032.hライブラリで動作を確認しております。」
と書いてある。

びんぼうでいいの=arduinoに置き換えてよい。

arduinoのIDEを開く。

スケッチ → ライブラリをインクルード → ライブラリを管理...

ライブラリマネージャの検索フィルタに「LCD_ST7032」と入力すると、
LCD_ST7032ライブラリが表示されるので「インストール」をクリック。

ファイル → スケッチ例 の最後の方に「LCD_ST7032」が追加されているので、
その下の「HelloWorld」を選択して実行。

とりあえず動いた。

ときどき文字が左右にあるいは上下に反転する....
どこかはんだ不良があるかな...と半田を直したら、
最初から反転してしまうようになった。

指で触れたりすると正常に戻る。

なんなのこれは。









秋月電子 I2C接続キャラクタLCDモジュール 16x2行 白色バックライト付 ACM1602N1-FLW-FBW

参考
http://skomo.o.oo7.jp/f47/hp47_54.htm

ピンヘッダをはんだ付け

各ピンの機能

1(VSS)Ground
2(VDD)3.3V
3(Vo)LCD contrast adjust
4(SCL)SERIAL CLOCK INPUT
5(SDA)SERIAL DATA INPUT
6(BL+)Power supply for BL+
7(BL-)Power supply for BL-

arduino unoとの接続(ブレッドボード)

1 - Ground
2 - 3.3V
3 - 半固定抵抗の真ん中
4 - A4
5 - A5
6 - 3.3V
7 - Ground

半固定抵抗の両端をGround, 3.3Vへ

スケッチ

上記リンクのものをそのまま使って表示できた。
以下に転載

#include <Wire.h>
const char table[]={"From fairest creatures we desire "};

void setup() 
{
  Wire.begin();       // I2C初期化
  LCD_begin();

  byte i;
  writeCmd(0x80);//ディスプレイON、CURSOR-OFF、blinking-OFF
  delay(5);
  for(i=0;i<16;i++)
  {
    writeData(table[i]);
    delay();
  }
  writeCmd(0xC0);//2行目の先頭に移動
  delay(5);
  for(i=16;i<32;i++)
  {
    writeData(table[i]);
    delay(5);
  }
}

void loop() {}

void LCD_begin(void)
{
  // LCD初期化
  delay(15);
  writeCmd(0x01);//クリア ディスプレイ
  delay(5);
  writeCmd(0x38);//8ビットモード、2ライン、5x8ドット
  delay(5);
  writeCmd(0x0f);//ディスプレイON、CURSOR-ON、blinking-ON
  delay(5);
  writeCmd(0x06);//CURSOR移動、スクロールOFF
  delay(5);
}

void writeCmd(uint8_t cmd) 
{
  uint8_t rs_flg;
  Wire.beginTransmission(0x50);
  rs_flg = 0x00;
  Wire.write(rs_flg);
  Wire.write(cmd);
  Wire.endTransmission();
}

void writeData(uint8_t dat) 
{
  Wire.beginTransmission(0x50);
  Wire.write(0x80);
  Wire.write(dat);
  Wire.endTransmission();
}




LM386の発振対策(aitendo スピーカホルダ式アンプキット [K-SPK16X35-386])

LM386の発振について検索してみると、複数の人が「7とGNDの間に10μFのコンデンサを入れる」と書いていたのでやってみたら、「ブー」という雑音はしなくなった。



なぜかはわからないが.......


参考
http://www.tij.co.jp/jp/lit/ds/symlink/lm386.pdf



aitendoのアンプキット

aitendoのアンプキットを3つ作った。

左から

TDA2822アンプキット [K-224B](スピーカー、プラグ、電池ボックスは別売り)

スピーカホルダ式アンプキット [K-SPK16X35-386]

シングルトランジスターアンプ [AKIT-203]


TDA2822はよく鳴る。
Raspberry piのオーディオジャックはそのままだとスピーカーが鳴らないが、
これを通すとよく聞こえた。


 AKIT-203はほとんど増幅されない。

何が問題なのだろうか。回路や部品の良しあしはまったくわからない。
そんなに複雑なものでもないので部品のつけ間違い等はないと思う。

AKIT-203はコンデンサが一個足りなくて買ってきた。

入っていたものは 100μF, 25Vだったが、
同じものがなかったので 100μF, 35Vのものを使った。
耐圧が違うと影響あるのだろうか?

可変抵抗がついていて左に回すと音が大きくなるがめいっぱい回しても
大音量で聴いているイヤホンからもれてくるくらいの音しかでない。
可変抵抗は200Kなのだが、大きすぎるのだろうか?


K-SPK16X35-386は音量は十分だがブーというような小さなノイズがずっとある。
音質もあまりよくない。
LM386というICを使っているのだが、発振しやすいことで有名なようだ。

K-224Bを最初に作って、「アンプってこんな簡単な構成で鳴るのか」と感心して
いろいろキットを作ってみているのだが、K-224Bのようにはいかなかった....

LEDをだんだん明るく・暗くする arduino uno

analogWriteという関数は、pinのON/OFF(HIGH/LOW)という2つの値ではなく、 0から255までの値を設定できる。 それを使ってLEDをだんだん明るくそしてだんだん暗くすることができる。

int a = 0;

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

void loop()
{
  for (a=0; a<255; a++) {
    analogWrite(9, a); 
    delay(10);
  }

 for (a=255; a>0; a--) {
    analogWrite(9, a); 
    delay(10);
  }
}

Raspberry Pi 1 Model Bのケースを作った

ベースとなるケースはマルツで数年前に買ったもの。
フタにあいている穴はラジオのケースにしようとして開けたもの。

穴はピンバイスで開けた。
四角い部分は丸い穴をならべて開けてやすりで平らにした。

ピンバイスで穴をたくさんあけるのがキツかったので東急ハンズでドリルを買った。

ついでにM2.6のネジとナットを買って、piにあいている二つの穴を使って固定した。

横に開けた穴は使わないインターフェースだがここを開けないと入らないので開けた。

LANポートがふさがっているがwlanを使っているのでとりあえずいらない。







Interface 2008年9月号付属の ColdFire基板

先日新宿の紀伊国屋で何を買うでもなくなんかおもしろい本がないかなあと眺めていて、
ラズベリーパイとか電子工作とかその辺の関連の書棚を見ていたら、
「付属ColdFire基板ではじめるEthernet入門」という見出しが表紙に書いてある本があった。中に小さな基板がついていて、そこにRJ-45と電源ジャックをはんだ付けして3.3vのACアダプタを用意すれば使えるとのことであった。

おもしろそうだなと買って帰り、秋葉原に行ったついでに必要な部品等を買ってきた。

RJ-45のジャックは、以下3つの使用を想定しているとのことであった。

Stewart Connector社のSI-600002-F
Pulse社のJ0012D21NL
KINSUN INDUSTRIES社の3070110204

さらっとそれらの型番を検索してみたが見つからない。
秋月にも千石電商にもない。

Pulse社のJ0011D21BNLという型番のものが見つかったので、
想定型番ではないがいけるんじゃないのとはんだ付けしてみたが、
ケーブルをつないでもリンクアップしない。基板も、接続した家のルータのポートもLEDが点灯しない。

ケーブルのせい、ルータのせいを疑っていろいろ試してみたが基板に問題があるとしか思えなかった。

買った本をもう一度よく読んでみる。

Interface(インターフェース) 2008年9月号。

2008年!?

10年以上前だ。

RJ-45のジャックは使えないものがあるので注意みたいなことが書いてある。

J0011D21BNLは、リンクアップや送受信時に点灯するLEDがついている。
これがあるとダメなのか?と思い、秋葉原で買ってきた型番不明のLEDなしのジャックを使ってみようと思い、一度つけたジャックを外そうと思ったのだがハンダ吸いをつかって半田を除去してみたが足が8+2本もあって外れない。

しかたがないので、本をもう一冊買うことにした。
秋葉原の書泉ブックタワーにこの手の本や雑誌があるコーナーがあったなと思い行ってみたが、さすがに2008年のバックナンバーは置いてなかった。

今思うと逆になんで紀伊国屋はこんな古い雑誌を置いていたのだろう....

また紀伊国屋に行ってみるかと思ったがその前にWEBで検索してみると、
Amazonで中古品がたくさん出品されていて価格も安かったので3冊注文した。

そしてノンブランドジャックをはんだ付けしてみたが、やはりダメだ。
2枚の基板をムダにした。あと2枚ある。

やはり指定型番じゃないとダメなのかと、もういちど3つの型番を検索してみると、
Pulse社のJ0012D21NLがmarutsuで買えた。ひとつ1000円くらいだったが3つ買った。

数日後家に届いて、さきほどはんだ付けしたら、ようやくリンクアップした。

192.168.1.0/24 はちょうど家のLANで使っているアドレスで、
基板に設定されている 192.168.1.10 は未使用だったため、
家のルータの空きポートにつなぐと pingが通り、telnetもできた。

Cインタプリタがあったり、いろいろ部品を追加したりできるようなので
これからいじっていきたい。







raspberry pi 4

またraspberry piを買ってしまった。

4

なんとメモリが4GB
1,2,4から選べるという話だけど、どの店でも4GBしか売ってない。

変わったところは、電源のインタフェースがUSB-Cに
5V 3Aが必要らしい

hdmiがマイクロに

zeroのとき買ったHDMIミニのケーブルを使おうと思っていたが、マイクロだった。
またケーブルを買った。

zeroでさえミニなのに、マイクロにする必要あったのか?


箱を開けて本体を初めて見たとき、「なんか雰囲気が違う!」と感じた。

オーラが違うというか。


普段いれない Raspbian Buster with desktop and recommended software
をSDカードに焼き、

普段やらないがディスプレイ・キーボード・モニタを全部つないで起動

真っ暗な画面が数十秒程度表示されたのち、タイのお寺みたいなきれいなデスクトップが表示された。

おお....

国の選択をして、パスワードを設定して、無線LANのSSIDが自動で検出されるので選んでパスワードを設定する。

ターミナルを起動してraspi-configを起動し、コンソールとsshを有効にする

さらにいつもやらないがvncを有効にする。

RealVNCをWindowsにインストールしてつないでみると

「No matching security types」というエラーでつながらない。


VNCサーバの設定で Option - Security
の Authenticationを 「Unix password」から「VNC password」に変更し、
パスワードを設定したらつながるようになった。

が、今思ったのだが接続するときにアカウントを「pi」にすればつながるんじゃないだろうか?

が、vncで接続アカウントを設定する方法がわからないので

とりあえずこれで行こう。


メモリが4GBにもなって、CPUも新しくなって、漏れ聞こえる情報ではかなりサクサク動き、「パソコンとして使える」ような噂である。

が、そういう使い方はしないだろうな....