2017-01-29

CHIBIBIT 今時の電子工作!?


ネットで面白いものを見つけました。

商品説明を引用します。
chibi:bitというもので、BBC(英国放送協会)が主体となって作っている教育向けマイコンボードBBC micro:bitの互換機です。
仕様はmicro:bitと同じです。25個のLED、2個のボタンスイッチのほか、加速度センサーと磁力センサー、BLE機能を搭載したマイコンボードです。
chibi:bit専用の開発環境があります。
icro:bitの開発環境で書いたプログラムも書き込み可能です。

最初はmicrobitを海外サイトから購入しようと思っていましたが、互換機が出ていて、改良版が出るのを待って、改良版の発売と同時に購入しました。

開発環境がWEBで無料で使用可能!!
しかも、ブロックを組み立てる感覚でプログラムが組めるようになっている。
こんな感じです。
シミュレータもあるので実機がなくても、このサイトだけで楽しめます。
http://chibibit.io/ide/


最初はサイトの説明等にあるようにワニ口クリップで電源をつなげて遊んでましたが、端子の穴ってねじ穴サイズなので別の基板と金属のスペーサーでつなげるといいのでは!
と思い作ってみました。


 電池、スイッチ、圧電ブザーの構成です。
端子はpin出力出来るように端子を付けました。

これで、BlueToothを使ってスマホと連携できます。
ちょっとしたスマート端末になります。(楽しい!)

ちょっとしたプログラムを作成してみました。

起動後、Aボタンで機能選択、Bボタンで決定。

各機能の実行 AまたはBボタンで値を表示

A+Bボタンで機能選択に戻る。


で、機能は以下の4点

・照度計
・温度計
・方位磁石
・スマホの音楽再生(Aボタン)。停止(Bボタン)

さすがにこれだけのプログラムを作るとブロックも複雑に??
見えませんね。

ダウンロードできるようにしてみました。
http://bake-san.com/download/chibibit/chibibitSB.hex

開発環境でインポートしたら見れます。

このchibibitは直接スイッチサイエンスで購入しましたが、amazonでも購入可能なようです。

http://astore.amazon.co.jp/bakesan-22/detail/B01N6JMM7E

2016-03-22

Pebble Watch


スマートウォッチが欲しくなり、悩んだ末PebbleWatch(Classic)をAmazonで購入しました。

Pebble Classic(Amazon)



サイトを参考に日本語化して使用しています。

通知機能が便利ですね、
またCloud Pebbleで開発環境が提供されているので、すぐにアプリが作成できます。

試しに、WatchFaceを作成してみました。

アプリは公開中でAoFaceClock1st です。


SAMPLEソースがあるので、アナログ時計とデジタル時計を合体させ、デザインは独自に作成しました。

起動時にアニメーションするのがかわいいなと自己満足しています。

まだ、粗削りなので少しずつ改良して行きたいと思っています。

ソースは http://bake-san.com/download/pebble/watchface/aofaceclock1st.zip でDOWNLOADできるようにしています。
まだ、デバッグ中なので、コメントや処理がおかしいところがあると思います。
ご注意ください。整理でき次第、再アップします。

プログラムの作成方法は大体理解できたので、時計機能ではないツール的なものを作成したいと思ってさらに勉強中です。



2016-02-11

修理をした炊飯器で甘酒作り

1.おかゆを炊きます。


2.70℃以下まで冷まして、米麹を入れて混ぜます。


3.濡れふきんをかぶせて保温にします。


4.時々温度を確認して60℃から70℃をキープできていることを確認する。
ふたの開け具合で温度調整をすればいいみたい。
この状態で約8時間で出来上がり。
どうなったかはまた後日。

5.完成、ちょっと水っぽくなっています、いい感じです。
今回使用した炊飯器は「おやすみ保温」の機能があり少し低めに保温をしてくれます、これが丁度良く終始60℃から70℃をキープしていました。

7.容器に入れ替え熱を冷まして冷蔵庫で保管します。
8.試飲、めちゃくちゃ甘いので薄めて飲んだほうがいいぐらいです。
3度目の正直で上手くできました。

炊飯器の修理


やっぱりね、線が切れていました。この線をつないで修理完了!
前回もトライしたのですがカバーが外せず断念今日は冴えている5分で外せた。
修理が出来たら米麹の甘酒を作ります。

切れた線の両方を半田メッキ処理をします。

そのままつけると短くなるので別の線をつぎ足します。
固定しているピンセットはつかんだまま固定できる優れものです。

余分な線を切り取りあらかじめ差しておいた収縮チュープを熱で縮めて出来上がり

我ながら完璧!!


ブレッドボード?いや、ビスケットボード!

ブレッドボードをそろそろ追加購入しようかとネットを検索していたら、ビスケットボード というものを見つけた。

通常良くするのがブレッドボードで試作をして、その後ユニバーサル基板で目的のものを作成する。というパターンですが。(PICでオルゴールを作成した時もこのパターンで作成しました)
↓ ユニバーサル基板に作り替え ↓

ビスケットボードを使うと
ブレッドボードで試作をして、ビスケットボードで目的のものを作るというパターンになります。

ビスケットボードのポイントを簡単に

  1. ユニバーサル基板と同じ程度の厚みで作成できる。
  2. ブレッドボードのように半田付け無しで部品をつけれる。
  3. 一度部品を刺すと簡単には抜けない。ブレッドボードでは簡単に抜けて困ることがある。
  4. サイズがレゴブロックにジャストフィット、取り付け部品も付属している。
半田ゴテを使わず使用に耐えるものが作れるのがいい。

小さい子供たちに物づくりを体験させるにもいいかもしれない。
レゴブロックと組み合わせて夢が広がるいいものが出たなと思いました。

やり直しはできないことはないが難しいみたい、そういう意味ではもう少し安いと手が出しやすいと思います。
ブレッドボードのように普及をして来れば安くなると思うので、ちょっとここでも紹介してみました。

2016-02-08

100円ショップのLEDガーデンライト


ちょっと、休日に遊んでみました。
100円ショップ(ダイソー)に四角いガーデンライトがあったので、タイルと一緒に購入しました。
LEDは真っ白だと冷たい感じになるので、手持ちの電球色のLEDに交換しました。

明けてみると結構しっかりしていました。
単4の充電池、昇圧および明暗スイッチ回路のIC、太陽電池の構成で100円は驚きです。

LEDの色を変えてデコッていい感じになりました。
久々に妻にもほめられた。

2015-03-27

EEPROM 24FC256にpickit2で書き込み


もっとリアルな電子オルゴールを作りたいと思い外部のメモリからデータを読み取りPWMでWAVデータを再生する。
してみたい、という安易な希望から始めました。
なかなか簡単には行かなかった。

まず、EEPROMにデータを書き込まないと始まらないのですが苦労しました。
I2Cでpickit2から24FC256にデータを送って書き込むようなのですが、I2Cのエラーになって読み書きできません。
原因は単純で配線が長すぎたようです。
ブレッドボードを使って環境が良くないのに配線が10cm以上有った。
写真のように出来るだけ配線が短くなるようにやり直しをしてやっと書き込めました。

2015-03-22

PICで電子オルゴール No2

前回の続きで基板を見直しをしました。
部品の選定をしてレイアウトを整理しました。


基板の配線は以下の通り。
上から(部品側から)みた図になっています。

回路図は次の通りです。



2015-03-18

PICで電子オルゴール

久々に電子工作をしました。
母校の小学校がとうとう閉校になるので、何か記念になるものを残しておこうと思い校歌を電子オルゴールにしてみました。
PICマイコン12F629と圧電スピーカ、電池といった簡単な構成でできます。
写真にあるものは、CDSをつけて明るくなると鳴り出すように作ったので部品がCDSと抵抗2本が増えています。


開発はmikroBASICを使いました。
ライターはPICKit2。

MikroBasicのライブラリーにSOUNDがあり、音程と長さを指定して音を鳴らすことができます。
PIC12F629にはEEPROMがあります。このEEPROMに音程長さを記憶させておき順に読み込み音楽を演奏させています。
そのままでは音程と長さで4バイト必要になりますが、プログラム内部でドレミと音符の長さのテーブルを持ち、EEPROMにはその番号のみで上位4ビットで長さ、下位4ビットで音程の番号を表現させました。

EEPROMの内容は校歌なので載せてもと思い、ソースのみを公開します。
休符の扱いがわからずDelayで表現しています。
Delayはライブラリーで実装されておらず、パラメータに変数が使えないので4分休符のみのコーディングです。
調子に乗ってコーディングしていたら、プログラムエリアが足りなくなりました。
SOUNDとEEPROMのライブラリーで結構メモリーを食ってしまっているようです。



program MUSIC
'                             0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15
'                             R   C   C#  D   D#  E   F   F#  G   G#  A   A#  B   C   C#  D
  const doremi as word[16]= (  0,262,277,294,311,330,349,370,392,415,440,466,494,523,554,587)
'                 tempo=120
'                              0    1    2    3    4    5    6    7    8  9
'                              1    2.   2    4.   4    8.   8   16.   16
  const onpu   as word[9]= (2000,1500,1000,0750,0500,0375,0250,0188,0125)

' Declarations section
sub procedure init_rtn
  GPIO = 0
  CMCON = 000111
  TRISIO = 000000
  'ANSEL = 000000

  Sound_Init(GPIO, 2)

end sub

main:

  dim eromdt as byte
  dim takapt as byte
  dim nagapt as byte
  dim takasa as word
  dim nagasa as word
  dim yasumi as word
  dim i as byte

  init_rtn

  while true
    i=0                         'EPROM READ POINTER
    while < 127                 'EPROM MAC ADDRESS 128
      eromdt = EEPROM_Read(i)   'DATA READ FROM EPROM
      if eromdt = $FF then      'DATA VALUE FF is END of DATA
        i =128                  'Exit Loop When set 128
      else
        takapt = eromdt and $0f 'DATA low4bit is SOUND Pitch
        nagapt = eromdt >> 4    'DATA High4bit is SOUND Length
        if takapt = 0 then
          'select case nagapt
          '  case 4
              Delay_ms(500)
          '  case 2
          '    delay_ms(1000)
          '  case 0
          '    delay_ms(2000)
          'end select
        else
          takasa = doremi[takapt]'Pitch Table
          nagasa = onpu[nagapt]
          Sound_Play(takasa,nagasa)
          Delay_ms(16)
        end if
      end if
      i=i+1
    wend
    
    'ENTRY SLEEP '
     GPIO =0
     OPTION_REG = 000000
     INTCON = %10001000'
     NOP
     NOP
     asm
       sleep
     end asm
     NOP
     NOP
    'RESUME SLEEP
     INTCON = 000000

  wend

end.



2013-01-13

vbausbio.dllのusbio2.0対応、windows7対応

vbausbio.dllのv100を暫定公開していましたが。
bugがあり正常に動作していませんでした。

開発に最新のVisualStudioを使って原因の切り分けが難しくなっていましたので、
この度、VC++6.0の環境を復活させて見直ししました。

いい感じになったので再度暫定公開をします。
開発環境が元に戻ったのでバージョンを戻しましたv070になります。
ダウンロードは以下の場所からできます。
http://bake-san.com/download/vbausbio/v070/vbausbio_v070.zip
動作確認をした環境は
○WindowsXP + Excel2003
○Windows7 32bit + Excel2013 32bit
○Windows8 32bit + Excel2013 32bit
×Windows8 64bit + Excel2013 64bit

※2013/01/15追記
vbausbio.dllは32bitのdllのため、64bitのアプリケーションからは使えないようです。
OSが64bitでもアプリもdllも32bitであればWOW64の機能で動作するみたいです。
64bitと32bitの混在は不可とのこと。
Windows8 64bitでも Excelが32bitであれば動作しそうです。

いままで上手く動作しなかった方は一度試してみていただければと思います。

開発環境は32ビットですが64bitでも上手く動作するかもしれません。
誰か人柱になっていただいてテストをお願いできればと思います。

問い合わせをいただいていた、
VisualStudioをインストールしないと動かない
uio2_outなどの命令が定義されていないなどのエラーがでる。
などの不具合に対応しています。

また、命令の表記が統一されていないものがありv100で統一していました。
そのため逆に今までのプログラムが動かなくなっていました。
今回のv070では今までの表記も残しています。
該当の命令は以下のとおりです。
 uio_getdevs
 uio_getDevs
 uio_seldev
 uio_selDev
 uio_getvid
 uio_getVid
 uio_getpid
 uio_getPid
 uio_selid
 uio_selId

定義がされていなかったのは以下の命令です。
途中でソースがデグレートしていたようです。
 uio_cmd
 uio2_out
 uio2_inp
 uio2_inOut
 uio2_outIn
 uio2_setSys
 uio2_getSys

2012-10-07

メモリー制限のないHI-TECH C で12F629を使う

いままでPICはmikroBASICを使っていましたが、ちょっと凝ったプログラムを組むと2kの壁にぶつかり思うようにできていませんでした。
そこで、無償のMAPLABで使える無償でメモリー制限の無いHI-TECH C とC18を使ってみるもとにしました。

CONFIGとか初期設定がPIC毎に重要になってくるので、覚書としてブログに投稿しています。

まずは手持ちのPICを 12F629を試してみることにしました。
Googleで検索して調べながらしましたが、どうもHI-TECH CのバージョンによりCONFIGビットの書き方が違うようでかなり悩みました。検索すると古いバージョンのサンプルが多いようです。

__CONFIG(UNPROTECT & MCLRDIS & BORDIS & PWRTEN & WDTDIS & INTIO) ;
このパターンは古いバージョンとなり、ソースの先頭に
#define _LEGACY_HEADERS
が必要になります、このおまじないをつければ、古いバージョンのソースが使えます。

ここでつかったサンプルソースは新しいバージョンのCONFIGです。
#define _LEGACY_HEADERSは必要ないのでコメントにしています。

ソースは以下の通りです。

 
// test001.c
//#define _LEGACY_HEADERS
 
#include "pic.h"
#include  // Required to interface with delay routines
 
#ifndef _XTAL_FREQ  
// Unless already defined assume 4MHz system frequency  
// This definition is required to calibrate __delay_us() and __delay_ms()  
#define _XTAL_FREQ 4000000
#endif


 
__CONFIG(CP_OFF & BOREN_OFF & MCLRE_OFF & PWRTE_OFF & WDTE_OFF & FOSC_INTRCIO); //Idoling current 0.06uA
 
void main(void){
  int i;
 
  GPIO=0;
  CMCON = 0b00000111;
  TRISIO = 0b00000000;
  //ANSEL = 0x00;  

  while(1){
    for (i=0;i<5 p="p">      GPIO=0b00111111;
      __delay_ms(30);
      GPIO=0b00000000;
      __delay_ms(70);
    }
     __delay_ms(50);
 
    for (i=0;i<2 nbsp="nbsp" p="p">      GPIO=0b00111111;
      __delay_ms(30);
      GPIO=0b00000000;
      __delay_ms(170);
    }
  __delay_ms(500);
 }

}


2011-12-19

ジュールシーフ

http://pc.watch.impress.co.jp/docs/column/musashino_proto/20091008_320118.html?mode=pc
ここのサイトで紹介されているジュールシーフをブレッドボードで試しているところです。
使い古した電池でつけっぱなしで3日目、0.5vまで電圧が下がっていますが、まだついています。
以前、ガーデニングライトの回路図を調べた時に間違って書いた回路、そのものです。

2011-10-16

VBAUSBIO.DLL V1.00 公開間近!!

久々の書き込みになります。

Km2Net様からUSB-IO2.0と書籍「かんたん!USBで動かす電子工作」が販売開始されたので
自分が公開しているvbausbio.dllを対応させようと作業していました。

新命令を追加することでUSB-IO2.0に対応させました。
今までの汎用USB-IOにも対応できるように今までの命令は残してあります。

また今回の対応でUSB-FSIOの動作確認、
Windows7 32bit/64bitでの動作確認も合わせて出来ています。

今回はVB2010EXPRESSとExcel VBAで動作確認しましたので、
両方の定義ファイルも用意しています。

まだ、ドキュメントが整備できていないので暫定での公開になりますが
以下の場所からダウンロードできます。
http://bake-san.com/download/vbausbio/v100/vbausbio_v100.lzh
これも暫定ですが、VB2010EXPRESSのサンプルも
以下の場所からダウンロードできます。
http://bake-san.com/download/sample/VB2010/VBAUSBIOTEST.LZH




Km2Net様のUSB-IO2.0は秋月から購入できるようになりました。(1000円です)
http://akizukidenshi.com/catalog/g/gM-05131/


書籍はアマゾンから購入できます。


参考資料:


2010-10-30

PICkit2購入


前から欲しいと思っていたのですが秋月で部品を購入するときに衝動買いをしてしまいました。
これにピン配列変換ケーブル、ICテストクリップ、ブレッドボードを追加購入して使っています。


PICkit2はICSP方式なので書き込みアダプターを自作するなどして皆さんは使われているようですね。

自分の場合はPICに合わせてPICkit2とICテストクリップをつなげてPICをそのクリップで挟んで書き込みをしています。
ブレッドボードテスト回路を組んでPICをブレッドボードにつけたままできるようになり便利に使っています。

もちろん、PICkit2とブレッドボードを直接つなげてもできるのですが、つけたり外したりが楽なのでクリップを使っています。
また実装した後でもICSP用のピンを用意しなくても挟むだけで書き換えができます。

回路設計は面倒になりますが、実装した後でも書き換えができるのは便利ですね。

2010-05-26

USB-FSIO(汎用USB-IOの後継)がキャンペーン価格で購入できます。

Km2Netさんから2010/05/28から出荷予定のUSB-FSIOです。
今までの汎用USB-IOと同サイズにもかかわらず、かなり機能アップしています。
今はキャンペーン中で今までの汎用USB-IOの1500円に+500円の2000円で購入出来るようです。
Km2Netさんの意気込みが感じられますね、購入を検討されている方は耳よりな情報だと思います。

自分が公開しているvbausbio.dllは現在対応作業中です。
おそらく、USB-FSIOのコマンド追加という形で今までのUSB-IOも使えるものになるのではと思います。

VB.NET(VB2008)のサンプルはKm2NetさんのHPで入手出来ます。
Linuxのサンプルは私が公開しているソースを手直ししていただいているのでそれが使えると思います。vbausbio.dllの対応を優先しているのでそのソースのテストが出来ていません、時間をみてテスト予定です。
未テスト了解のもとであれば以下のリンクから入手出来ます。
http://bake-san.com/download/usbfsio/linux/

また、前回のブログにもあるようにRubyにも対応を考えています。
とりあえずは従来の汎用USB-IOに対応させて、USB-FSIOにも対応を考えています。



USB-FSIOの概要は以下の通り。

・USBインターフェイスを使った入出力基盤で、デジタル入出力、アナログ入力、PWM制御が行える入出力基板です。
・USB 2.0(FullSpeed)で入出力制御を行います。
・デジタル入出力最大19ピン、アナログ入力最大5Ch、PWM制御最大5Chが利用可能です。
※モーター、RCサーボ、LED調光が簡単に行えます。
・1回の命令で複数の出力が出来るようになり、効率的に信号送信が可能です。
・62Byteのユーザー用フラッシュロムを利用すれば、シリアル番号の登録やセキュリティーデバイスも作成可能です。

使ってみての感想
PICと同様に電流が扱えるのでLEDも直接点灯出来ます(Max200mA、LEDで10~20個、電流制限抵抗は必要です)
どのピンをデジタル、アナログ、PWMの割り当てもPIC同様にコマンド出来るのもいいですね。
ブレッドボードで使えるようにピン配列が変更されているので便利になりました。
USB-FSIOから電源を取る場合は右側のフリースペースにVCC、GNDが用意されているのでリード線を付ければ取れますが、USBの規格上500mAまでなので200mAを超える場合は外部電源を用意したほうがいいと思います。

2010-05-06

Rubyで汎用USB-IOを使う Windows、VBA用Dllを使用

最近、Rubyを良く聞くようになってきたので、すこしずつ触ってみているところです。
目的が無いとすぐ飽きてしまいそうなので、汎用USB-IOを使えるようにしてみたいと思っています。

まず、簡単なところから、Windows限定になりますが、自分が公開しているVBA用Dll(vbausbio.dll)で使えるようにしてみました。

RubyはWindows版 で下記 1.8.7 のインストールをしています。
Ruby MSI Packages 安定版配布サイト
http://arton.hp.infoseek.co.jp/indexj.html
ActiveScriptRuby 1.8.7(p249) with-winsock2 tcl-stub
http://arton.hp.infoseek.co.jp/ActiveRuby.msi

最新版のVBA用Dllをダウンロードしソースを格納するフォルダーにコピーしてください。

RubyでVBA用Dllが使えるように定義をしたソースをダウンロードして同じくソースを格納するフォルダーにコピーしてください。
usbio.rb というファイル名の定義ファイル(プログラム)です。

あとは以下のようにプログラムを記述すれば汎用USB-IOを制御できるようになります。

require 'usbio'

p USBIO.find()

p USBIO.out(0,0,0)
p USBIO.out(1,0,0)

16.times do |j|
USBIO.out(1,j,0)
256.times do |i|
USBIO.out(0,i,0)
end
end

p USBIO.free()

サンプルソース等は以下の場所にUPしています。
まだ、テストが出来ていないので不具合がでるかもしれません。
不具合等あれば、連絡を頂けたらと思います、よろしくお願いいたします。

http://bake-san.com/download/sample/ruby/

移転しました

バケさんの電子工作(ブログ)は移転をしました。
http://bake-san.com/bdenshi/ から
http://bake-san.blogspot.com/ に変更しました。

セキュリティ面から見直しをして変更することになりました。
当分の間過去のブログは両方で見れるように考えています。

ご迷惑をおかけしますが、よろしくお願いいたします。

2010-02-27

1.2VでLED点灯回路の明暗センサー改良? @バケさん


簡単な回路で暗くなると点灯させていたのですが、明るい時に発振を止めて昇圧しないようにしてLEDを点灯させないようになっています。
これでは消えている時でもLEDに1.2Vがかかってしまいます。
LEDは点灯に必要な電圧より低くなると電流も流れにくくなりますが、効率を考えると無視できないと思います。

そこで、CDSの抵抗値で電源自体をON/OFFして消灯時の電流をできるだけ少なくするように回路を考えてみました。
トランジスタ1個でも可能なのですがトランジスタを2段にして、点灯時の消費電力も抑えるようにまた反応が良くなるように考えています。

トランジスタを1つ介して点灯する形になるので、そのトランジスタが抵抗(電圧降下して)になり、少し暗くなった感じがします。

簡単な回路では無くなりつつありますが、効率がよくなればと思い考えてみた回路です。
まだまだ、改良の余地がありますね、またいい回路が思いつけばアップします。

補足:CDSと直列にある5kの抵抗を変えることにより、ON/OFFするタイミングを変えれます。
また電源の電圧にも影響するので調整が必要になります。

2010-01-29

LED照明を作る2 @バケさん

出来ました、20Wぐらいの明るさですね。
直下は明るいのですが、離れるとくらいです。次の課題ですね。

テスターで測ると30mA、3Wでした。
こんなもんかな、といった感じです。
常夜灯に使うナツメ球が5W程度なのでそれより省電力になります。


ちなみに回路は家庭電源用LED電球の製作の通りに作っています。

2010-01-28

LED照明を作る @バケさん

製作記事としては珍しくないと思いますが、日曜大工で子供部屋を作成中なので照明も作ってしまおう!と思い作り始めました。

簡単に効率がいいものを考えてトランスレス電源を使う事にしました。
今回はサイトにあった回路でそのまま作成しています。回路図はまたアップします。

写真の右側が電源回路で左側がLEDです。
基板のサイズをあわせたので2段構造にする予定です。

回路の原理がわかったので、これで上手くできれば次回は自分で回路設計をして作りたいと思います。