ホーム » スタッフ » 斉藤徹 (ページ 144)

斉藤徹」カテゴリーアーカイブ

2025年6月
1234567
891011121314
15161718192021
22232425262728
2930  

検索・リンク

電子情報卒研発表会

1203011049_960x640.JPG

太陽電池パネル、雪が軽…(02/29)

  • 02/27 太陽電池パネル、雪が軽く振っているだけであれば、くもり空という割には、意外と発電電圧あるなぁ。22.29[V] am8:30,2/27 #fnct_solar

この記事は、twitter の @TohruSaitohに掲載した #fnct タグ付き記事を、まとめたものです。


太陽電池パネル監視プログラム

太陽電池パネルの監視システムのプログラムを、 次年度卒研や創造工学演習のプログラムサンプルとして、 そのまま掲載します。
# ダサいとか突っ込まれそうだけど…

太陽電池パネルの環境

太陽電池パネルの設置場所:電子情報棟3Fのホール。 写真が南側を向いた状態。 太い柱などもあるため、夏であれば日陰になる場所。 近々ベランダに移動させる予定。

監視のノートパソコンをネットワーク接続させるためのPLC(電源線Ethernet)。

監視用のノートパソコン。右手前に小さいUSB-Bluetoothモジュールが挿してある。

太陽電池パネル監視

福井県機械工業会との連携事業で太陽電池パネルを購入し、 これの監視システムを、Arduino+Bluetoothで構築してみた。 Bluetoothの制御への応用の下準備として簡単なプログラムで作っている。 Bluetoothを利用したのは、太陽電池パネルを少し離れた場所のサーバで モニタリングするため。

太陽電池は、抵抗で1/10に分圧(写真右下茶基板)し、 Arduino nano(写真左下青基板)のA/D変換で電圧を測定し、 ノイズ対策で移動平均をとった値を、Bluetoothのシリアルプロファイル(SPP)変換の モジュール(写真左上赤基板)で取れるようにした。

これをDebian GNU/Linuxを古いノートパソコンに、Bluetoothモジュールを付け、 muninという測定値のグラフ化システムによって表示させている。

太陽電池パネルでは、温度により変換効率が変動するため、温度センサー(写真右上緑基板) を付けてある(Temp)。 電圧は、太陽電池パネル電圧(Solar)・インバータバッテリ電圧(Battery)・インバータ負荷電圧(Load)の3つ を測定している。

muninのモニタ状況を学外からも見れるようにするためには、少し手間取った。 電子情報棟3Fのホールに設置したけれど、Ethernetの引き込み口が無い。 WiFi接続も検討したけど、学科のFERECルータはWeb認証が面倒だし、 Firewall設定やらがややこしい。 そこで、別用途に導入を検討していた電源線ネットワーク(PLC)を利用している。

後は、学科のWebサーバの特定ディレクトリ配下を、 このモニタリングノートパソコンのWebに見えるように設定した。

iPadの手書きメモ・ソフ…(02/08)

  • 02/07 iPadの手書きメモ・ソフトで、会議メモを乗りきれるか実験中。終わったら即、メモを関係者にメールするぐらいなら、うまく使えてるかな… #fnct

この記事は、twitter の @TohruSaitohに掲載した #fnct タグ付き記事を、まとめたものです。


FacebookのEchizenBotの紹介

Facebookで@EchizenBotのページを作ったけど、 ホームページで「いいね!」ボックスを追加しないと、 「スタート」が消えないので..

2EI実験でオセロプログラム

2EIの後期実験では、後半の私の担当実験では、「五目並べ・オセロ」のプログラム 作成というテーマを実施しています。 思考プログラムは大変だけど、標準入出力で2人が交互にコマを置く場所の x,y座標を入力する。そしてゲームの禁止手判定や勝敗判定をするプログラムを 作るというテーマ。 授業で、2次元配列や関数がちょうど終わったあたりなので、 配列表示や盤面周辺に壁の領域を作るというテクニックを、 雛形プログラムで見せるだけで、2週テーマの割にそれなりに完成させてくれます。

ただ今回、元々プログラミングが好きなK君は、自分の実験週のちょっと前あたりから、 先発で実験をやっている友達をみて面白そうということで、グラフィックス表示・マウス入力も含めて完成度の高いものを 実験前から作り始めたようです。

思考ルーチン組んじゃった

実験2週目ということで、課題に取り組んでもらっていたら、K君のプログラムの前で 他の人が「すげーすげー」の声。よく見ると、思考ルーチン組んでます。 完成度も高く、オセロで手を打てる場所をヒント表示してくれたり、 オセロも得意そうな学生さんも「負けそう」な雰囲気。

本人に、完成度を何気なく聞いてみる。
「何手読み?」→「難易度変えられるけど、これは7手です」
「終盤は完全読み?」→「終盤は打てる手少ないし倍の手数、だから14手です」
「コーナーの処理は?」→「配点高くしてます」
「枝切りは?」→α・βです」
「行数は?」→「3000行」

適当なサイトに転がっている物を、自己流で部分的に改造しただけなら、 こういった回答をスラスラできません。
思わず、「来年の高専プロコンの競技部門、声かけるからね…」
「レポートに3000行印刷は、頼むからやめてね。フローチャートだけにして…」

ものづくりとしては面白…(01/31)

この記事は、twitter の @TohruSaitohに掲載した #fnct タグ付き記事を、まとめたものです。


グラフィックスと総括

プログラミング応用の授業は、3次元グラフィックスの計算方法の説明も先週に終り、 今日は課題作成の時間とした。 途中、試験前ということもあり、関数の引数の受け渡しの復習と、型についての説明を行った。

変数の受け渡し

基本は、関数への値渡しと返り値による受け渡しを説明。 関数による複数の計算結果を、呼び出し側に伝えるには、 ポインタ渡し、配列渡し、構造体渡しがある。 簡単には、以下のような例をベースに説明。

int foo( int x , int y ) {
:
return x*x + y*y ;
}
void main() {
printf( "%d\n" , foo( 12 , 34 ) ) ;
}
//---
void rarg( double*r , double*th , double x , double y ) {
*r = sqrt( x*x + y*y ) ;
*th = atan2( y , x ) ;
}
void main() {
double zr , zth ;
rarg( &zr , &zth , 1.0 , 2.0 ) ;
}
//---
void rarg( double rth[2] , double xy[2] ) {
rth[0] = sqrt( xy[0] * xy[0] + xy[1] * xy[1] ) ;
rth[1] = atan2( xy[1] , xy[0] ) ;
}
void main() {
double zrth[2] , zxy[2] = { 1.0 , 2.0 } ;
rarg( zrth , zxy ) ;
}
//---
struct RTH {
double r , th ;
} ;
struct XY {
double x , y ;
} ;
void rarg( struct RTH*p , struct XY*q ) {
p->r = sqrt( q->x * q->x + q->y * q->y ) ;
p->th = atan2( q->y , q->x ) ;
}
void main() {
struct RTH rth ;
struct XY xy = { 1.0 , 2.0 } ;
rarg( &rth , &xy ) ;
}

この後に、プログラムの式を正確に理解するためのヒントとして、 型の概念を説明し、式の一部分もそれぞれ型を持ち、 演算子を適用するごとに型が変化していく状況を説明する。

システム

最新の投稿(電子情報)

最近の投稿(斉藤 徹)

アーカイブ

カテゴリー