goo blog サービス終了のお知らせ 

マカロニペンギンの健忘録

特にテーマを決めているわけじゃないが、私が気になったことを書いていく予定です。

PICでソフト的チャタリング対策

2011年04月09日 | Weblog



チャレンジ第2弾としてPICでソフトでチャタリング対策ができないもの無いかと言うことで作ってみました。

10MHzで動いている場合のdelayの値なので、お使いのPICによって数字を入れ替えてください。

思っていたよりも、良いできです。

Microchip社のPICを使ってみた。

2011年04月09日 | Weblog

Arduinoのすばらしさが分かってきたので、原点回帰と言うことでPICに戻ってみました。

しかし、PICは使い始めるまでの予備知識が半端じゃない。
まず、PICマイコンにはいろいろな種類があって「このPICはこれができるけど、このPICじゃこれはできない」を知らなければいけない。
プログラム言語もアセンブラからC言語まである。いまさらアセンブラでもないのでC言語を使おうと思っても、ネットでの情報はアセンブラがほとんどでC言語は少ない。さらに対応しているC言語はいろいろなメーカーから出ていて、フリーのものじゃライブラリーが少ないだの。ネットでチュートリアルを見つけてもC言語の種類が違うので参考にもならないだの。
マイコンにプログラムを書き込むのにライターが必要だの。このPICにはこのライターで書けるけど、他のPICはこのライターでは書き込めないので別のライターが必要だの。
プログラミングをするためのOSがほぼWindowsに固定されていて、UbuntuでやろうとしてもPICのメーカーであるMicrochipからの正式なサポートがないソフトだとか、オープンソースのソフトがあるにはあったのですが、C言語のコンパイルはできたけど、最新のライターのファームウェアには対応していないので書き込みができないだの。結構時間をかけましたが、私のスキルではUbuntuでPICを使うことはできませんでした。

とにかく、めんどくさい。

「Arduinoに戻っちゃおうかな」とあきらめ半分・・・・・・

苦節、数日。
やっとこさ、PIC16F88にLEDを点灯することができました。

5000円で買ったライターが無駄にならなかった。よかったよかった。

使えるようになるとPICのすばらしさが分かるのですが、使えるようになるまでの壁が高すぎます。これが初心者が敬遠する原因になってしまうのだと思います。
取っつきやすさではArduinoはピカイチ。

参考資料

Ubuntuで「ユーザー設定ファイルを読み込むことができません。」のエラーメッセージ対策

2011年03月08日 | Weblog
私はUbuntu 10.10 - Maverick Meerkat上でGoogle Chromeを使用しています。
ある時から起動のたびに以下のメッセージが出てしまい、めんどくさい思いをしていました。

ユーザー設定ファイルを読み込むことができません。 一部の機能が利用できない可能性があります。また、設定への変更は保存されません。


私の場合は以下のように対処しました。(別の原因もあるかもしれないのであくまでも参考程度)
コマンドプロンプト(「アプリケーション」ー「アクセサリー」ー「端末」)で起動

>cd ^/.config/google-chrome
>ls -al

するとlocal stateファイルだけが、ユーザーがrootになっているのに気がついたので

>sudo chown ユーザー名 local state
>パスワード

としてめんどくさいメッセージが出てこなくなりました。

もし、私と同じ状況でしたら参考にしてみてください。

#arduino @ptorrone Make:Japanの「なぜArduinoが勝利して今も生き続けているのか」

2011年02月22日 | Weblog
Make:Japanに載っていた「なぜArduinoが勝利して今も生き続けているのか」という記事
原文は「Why The Arduino Won And Why It’s Here To Stay」だから、きっと「勝利してもなおそのままでいられるのか」という意味合いだと思う。

まぁ、本題。
書いてあるとおりだと思う。
値段が安いし、簡単に使えるし、柔軟性もあるし、いいことずくめ

新しいマイコンボードが出てきてもこれらをすべて網羅していることは難しい。
やはり、会社の利益が絡んでくるのでハードの内部をオープンにすること自身ができないんだろうなぁ。

私自身、昔からマイコンボードで機械を操作するという夢を見続けてきたが、Arduinoと出会うことが出来たから数十年止まっていた夢という歯車が動き出したって感じです。
今では家に帰ってきてはArduinoとハンダゴテをいじっている日々が続いている。

とにかく頭で考えるより、まず触って動かしてみるというスタンスが私には合っている。

作者のPhillip Torroneさん Twitter:@ptorrone 写真が怖いです。Googleで検索をかけると結構笑顔な写真があるのでもったいないです。
http://adafruit.com/ でもお仕事をしているらしいです。

闘病中の少年を支える「ロボット小学生」

2011年01月28日 | Weblog
なんとなくYoutubeを覗いてみてこんな動画を見つけた。

闘病中の少年を支える「ロボット小学生」


ロシア語なので何をしゃべっているか分からないが、説明文と動画だけで大体のことがわかる。
白血病の子供が自宅にいながら学校生活が出来ているのである。

授業を受けるだけなら教室にカメラをおいてUstreamにでも流しておけばこんな大掛かりなロボットは必要ない。
だけど、それは授業を受けているというだけで学校生活を送っていることにはならない。

このロボットは学校に登校して、廊下を歩いて、友達や先生と話すことができて、まさに学校生活を送っているのである。

ハイテクとはこのようなところでこそ生きてくるなぁ。

逆に1985年に開催されたつくば科学万博で見た多くのロボット達は26年経った今でも実用化されていない。(唯一aiboだけは家庭の中に入ってくることが出来たが、ASIMOは展示場だけで家庭に入ってくる気配さえない。)
日本はみんなプロトタイプ止まりだなぁ。

杉下右京手帳が届いた

2011年01月15日 | Weblog
先日、頼んだおいた「杉下右京手帳2011」が届いた。
この手帳の元となっているテレビ番組「相棒」はSPECが終わってしまった今では家族全員で見る唯一のテレビ番組です。
(本当にこの番組以外家族全員で見ることはない・・・)

小学1年生の娘は予備知識無しで理解できないようなことはとりあえずスルーしているようですが、中学1年生の息子の方はそれなりに理解しているようです。

そこで手帳の話。
基本的には右京さんの名言(?)集になっている。
そして月初めごとに○○シーズンごとの簡単なあらすじや最近の右京さんとの違いなどが書かれています。

今回、この手帳を手にして改めて「いったい私はいつ頃から相棒を見ているのだろう」という疑問にぶち当たりました。
Pre SeasonというSeason 1よりも前の話があるらしいのだが、これは見ていない。
写真をみていても水谷豊が若い。
きっとSeason 2の途中からかSeason 3ぐらいから見ているのだと思う。
この前レンタルビデオ屋さんで見かけたので、いつか見てみたいと思う。

あらためて「相棒」が好きになりました。
そしてこの手帳の制作者さんご苦労様、そしてありがとうございました。

BUFFALO LS-WXLシリーズのPC連動電源機能をUbuntuで使う

2010年12月19日 | Weblog
先日のブログ「BuffaloのNASのPC連動電源機能について」で「BUFFALOのNASのPC連動電源機能をUbuntuで使用することができないかなぁ」ということを書いた。
するとSakaGyuさんからのコメントがあり、PC連動電源機能=Wake on LANであると言うことを教わりました。
早速Wake on LAN用のクライアントソフトをインストールした。
実際、言葉で言うほど難しいわけではなく、UbuntuソフトウェアセンターでWake on LANを検索しインストールするだけである。
そして、コマンドプロンプトで
wakeonlan -i 192.168.***.*** -p 2304 00:**:**:**:**:**
192.168.***.*** :ipアドレス
00:**:**:**:**:** :macアドレス NASの底に記載してある

これで立ち上がれば、パラメータはOKである。

次に1分おきにこのコマンドをNASに送ってやらなきゃならない。
cronコマンドで設定する。
cronコマンドに関してはGoogle先生に聞いてみて!!

ポートの説明はBUFFALOのお客様サポートに載っていました。
WOL(Wake on LAN)に対応していますか。

SakaGyuさん、ありがとうございました。

ArduinoでたくさんのLEDを扱う-高速版

2010年12月01日 | Weblog
前回の「AruduinoでたくさんのLEDを扱う」を改良版です。
ハードの変更はありません。
前回のプログラムから
なにもLED表示の変化が無いのはおもしろくないので乱数でLED表示が変わるようにした
毎回全部のLEDの初期化をやめ、縦横別々に初期化を行うようにした。
直接ポート操作を行い、すべてのPINをいっぺんに書き込みを行うようにした
を変更していきました。

あまりにも早くなってしまったので、乱数で変わっていく様子が分からないので一番外側のループで擬似Waitしています。
   
boolean ledStat[9];
int ledTime = 10000;
byte ledByte = B111000;
int col=2;
int row=2;
int r;
void setup() {
pinMode(0, OUTPUT);
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(13, OUTPUT);
PORTD = ledByte;
}

void loop()
{
r=random(0,9); //乱数発生
ledStat[r] = !ledStat[r];
for(int t=0 ; t<=ledTime ; ++t){ //Wait Time
for(int i=0 ; i<=row ; ++i){ //横列ループ
ledByte = B111000; //ledByte初期化
ledByte = ledByte - (1 << (i+3)); //横列セット
for (int j=0 ; j<=col ; ++j){ //縦列ループ
if (ledStat[i*3+j] == true){ //縦列セット
ledByte = ledByte + (1 << j);
}
PORTD = ledByte; //書き込み
}
}
}
}


Arduino on BreadBoard

2010年11月07日 | Weblog
我が家にもう一つのArduinoファミリーが増えました。

Arduino on a BreadBoard

ブレッドボード上にArduinoシステムを載せました。
これらは私のオリジナルではありません。
文末に参考にさせていただいたホームページのリンクをはっておきます。

使ったモノは
ブレッドボード
ブレッドボード用ワイヤー
LED
220Ω抵抗
10kΩ抵抗
10μF電解コンデンサ
16MHzの発振子
22pFセラミックコンデンサ
タクトスイッチ
ブートローダがあらかじめ書き込んであるATmega328P
FT232RL USBシリアル変換モジュール(秋月) 
です。
全部の値段は2500円位でしょうか。(なかでもUSBシリアル変換モジュールが高い)

組み立ては意外なほど簡単でした。
唯一つまづいたことはATmegaとFT232RLのTXDとRXDを同じにつないでしまったことでした。、ATmegaのTXDはFT232RLのRXDへ、ATmegaのRXDはFT232RLのTXDへお互いにリャンコにしてつないでください。

現在はUSBからの電源供給で動いています。
別電源でとる場合は3端子レギュレータ等を取り付けてください。

今回、ブレットボードのArduinoを作ってみて、PICで作るのとちっとも変わらないような気します。
しかし、PICとの大きな違いは導入部分、つまり取っ掛かりやすさだと思います。

実は私も大昔にPICに挑戦したのですが、その頃にブレットボードが存在していたのか、私が知らなかっただけなのかは知りませんが、とにかくユニバーサル基板にはんだで配線して一発本番でした。
ホント、Trial and Errorが難しい環境でした。

それに比べArduinoとブレッドボードという環境はTrial and Errorがとってもしやすい環境です。
根本的に取っ掛かりが良いのです。
ほとんど同じものなのに導入部分のイメージが違うだけで、こんなに全体のイメージが違ってしまうものなのかと正直驚いています。

参考にさせていたホームページ
ITP PHYSICAL COMPUTINGSetting up an Arduino on a breadboard

TODBOT BLOGArduino chip sticker label

元祖Arduino回路図