ホーム » 電子情報

電子情報」カテゴリーアーカイブ

2024年7月
 123456
78910111213
14151617181920
21222324252627
28293031  

検索・リンク

IchigoJamとMapleSylup

ボタンとLED点灯

IchigoJam には、LED 命令と BTN() 関数がある。BTN() 関数は、SW2 のボタンが押されていれば1,押されていなければ0を返す。
このため、ボタンを押している間 LED を点灯する関数は以下のように書ける。

10 LED BTN()
20 GOTO 10
RUN

これを踏まえ、ボタンが押された回数を数えるプログラムを作ってみよう。以下のプログラムは、BTN() が 1 の時、Aの値を増やし、Aの値を表示する。

10 A=0
20 IF BTN()=1 THEN A=A+1 : PRINT A
30 GOTO 20
RUN

しかし、このプログラムは1回ボタンを押すだけで、Aの値はいくつも増えるはずである。

これは、IchigoJam の処理が速いため、人間がボタンを1度押してボタンを離すまでの間に何度も繰り返すためである。

練習問題:ボタンを1回押したら1つづつ増えるようにプログラムを書いてみよう。(練習問題)

このプログラムであれば、ボタンが押されない間待ち、押されたらボタンが離れるまで待ち、1回とカウントする。(練習問題)

10 A = 0
20 IF BTN()=0 THEN GOTO 20
30 IF BTN()=1 THEN GOTO 30
40 A = A+1
50 PRINT A
60 GOTO 20

“でもこのプログラムでも「チャタリング」の影響で上手くカウントできない。どう直せばいいのだろうか?”と書いてチャタリングによる誤動作を見せるつもりだったけど、実際にやってみると、IchigoJam の処理速度の影響で、WAITなしでもチャタリングによる誤動作は発生しなかった。

チャタリングは数100μsec~数msecほど継続する可能性がある。このため「25 WAIT 1」と「35 WAIT 1」を追加すれば、問題ない。

複数のLEDの点灯

IchigoJam の定番の最初のプログラムでは、LED1,LED0 命令で LED を点灯させる実験をするが、OUT1~OUT4ポートを使って複数の LED を点灯させてみよう。

              LED 1 2 3 4
    OUT 1, 1      ✕✕✕ 一つづつポートを1に変化
    OUT 2, 1      〇✕✕
    OUT 3, 1      〇〇✕
    OUT 4, 1      〇〇〇
    OUT 2, 0      〇〇〇

    OUT 0         ✕✕✕✕ まとめて消す命令
    OUT `1100      4ポートまとめて点灯/消灯
    OUT `1010     

(練習問題)

10 OUT `1100 : WAIT 20
20 OUT `0110 : WAIT 20
30 OUT `0011 : WAIT 20
40 OUT `0110 : WAIT 20
50 GOTO 10

10進数と2進数

OUT 命令で、複数ポートをまとめて変更する際には、「`1010」といったIchigoJam BASICでの2進数の取扱いの理解が必要なので、ちょっとだけ10進数,8進数,2進数の説明。

IchigoJam BASIC で2進数を扱う場合は、バッククオート` を使う。シングルクオート’ と間違いに注意。

10進数とは 123)10 = 1✕102 + 2✕10 + 3 のように、数字を10をひとまとめとして、10が10個で100を表すというように各桁を対応させたもの。

人間が8本指で進化したら、数字は8をひとまとめで扱い、123)8 = 1✕82 + 2✕8 + 3 = 83)10 として表現する8進数になったかもしれない。

コンピュータの中では、電気のある/なし の2通りで表現することで動いているため、各桁を0と1で表す 2進数 が便利。1010)2 = 1✕23 + 0✕22 + 1✕21 + 0 = 10)10

IchigoJam によるモータ制御の実験

IchigoJam で モータを動かす場合、MapleSylup というモータドライバボードを使うと簡単にモータが制御できる。

IchigoJam には、主要な出力ポートが OUT1~OUT6まである。このうち、OUT2~OUT5までは サーボモータの制御に使える。

(重要) IchigoJam の OUT ポートに直接「直流モーター」を接続してはいけない。モータを回すために大量の電流が使われるため IchigoJam は誤動作などを起こす可能性が高い。場合によってはモータから出るノイズで IchigoJam が壊れる可能性がある。必ず MapleSylup などのモータを動かす専用の回路を経由させること。

直流モータとサーボモータ

直流モータは、直流の電圧を加えることで回転するモータで、電圧を加える方向で右回転・左回転を簡単に制御できる。

サーボモータは、模型飛行機などの羽の角度などを変化させることに特化したモータで、中に直流モータと信号に応じて回転角度を変えるための電子回路が組み込まれているため、パルス幅信号PWM により簡単に角度を変化させることができる。

ただし、モーターは電流がたくさん流れるため、IchigoJam の電源からモータを回すと、IchigoJam を動かすための電力が不足して誤動作してしまう。このため、MapleSylup のモータドライバによって乾電池からの電力でモータを回す必要がある。

ポートの配線

IchigoJam の上に MapleSylup を接続して、MapleSylup のジャンパを配線する。

  • OUT2ポートを、サーボモータではなく直流モータの配線につながるように、J2 を 2=3 接続となるようにジャンパをつなぐ。
  • 同様に、J3 を 2=3 接続となるようにジャンパをつなぐ。

直流モータを動かす(OUT1,OUT2 , OUT5,OUT6)

MapleSylup では、今回 OUT1,OUT2 と OUT5,OUT6 の出力ポートにそれぞれ直流モータを接続する。OUT1,1 とOUT2,0 の時、OUT1側が V+, OUT2側が GND=0V になることでモータが回転する。OUT1,0 と OUT2,1 とすれば、OUT1側がGND=0V, OUT2側が V+ となることで、先ほどとは逆方向に回転する。

((( モータを片方だけ動かす )))
OUT 0      OUTポート全部を 0 にする。
OUT 1,1    左モータが回転する。(OUT2 がまだ0のため)
OUT 1,0    左モータが止まる。
OUT 2,1    左モータが逆転で動く。
OUT 2,0    左モータが止まる。
OUT 5,1    右モータが回転する。
OUT 5,0
OUT 6,1    右モータが逆転で動く。
OUT 6,0
((( モータを複数動かす )))
OUT 1,1
OUT 5,1    両方のモータが動く
OUT 1,0
OUT 5,0

((( モータを複数同時に設定 )))
OUT '000001  OUT1=1,OUT2=0,OUT5=0,OUT6=0 左モータが動く
OUT '010000  OUT1=0,OUT2=0,OUT5=0,OUT6=0 右モータが動く

サーボモータを動かす(PWM2)

MapleSylup では、OUT2,OUT3,OUT4,OUT5 をサーボモータに接続できるが、OUT2 は、直流モータを動かすために使うので、今回は OUT3,OUT4 を使う。

サーボモータを動かすためには、専用の PWM 命令を使う

PWM 3, 100
PWM 3, 200

PWM2, 50  PWM2,100

サーボモータを左右に動かすプログラムは以下のようになる。(練習問題)

10 PWM 3,100 : WAIT 30
20 PWM 3,200 : WAIT 30
30 GOTO 10

DCON2024 本選にて4EIチームが企業賞

DCON2024に4EIより数値計算部として岡本君,片岡さん,渡邉君 が 5/10(金),11(土)の両日渋谷ヒカリエホールにて開催された本選(最終審査会)に参加し、企業賞(アイング賞, QUICK賞) を受賞しました。

作品イメージ

(2024/5/20追記) 企業賞 QUICK さまの副賞を頂きました

{CAPTION}

(2024/5/21追記) DCON副賞 エナジードリンクが届きました。

{CAPTION}

キャンパスウォーク2024電子情報工学科

{CAPTION}

{CAPTION}

{CAPTION}

{CAPTION}

2023年度・卒業式

3/18(月)には、本科卒業式・専攻科修了式が行われました。
卒業生の皆さん、おめでとうございます。
卒業式の前には、優秀学生表彰ということで、電子情報工学科からは下記2名が表彰となりました。
  • 電子情報通信学会北陸支部優秀学生賞 岡田 知士 さん
  • 情報処理学会北陸支部優秀学生賞 田中 慶人さん

卒業証書は、松田 張万さんが代表をつとめました。また、卒業式では送辞・答辞が電子情報の担当の年度にあたり、4年 山口 准星 さんの送辞、5年 並河 壮真 さんが答辞を務めました。コロナ禍の中の苦労などの思い出が多かったかと思いますが、お疲れさまでした。

{CAPTION}

ふくいソフトウェアコンペ大賞!

2023年12月23日に開催された、ふくいソフトウェアコンペティション2023にて、4EI 藤野間くん, 中西くん, 山腰くんによる「チャリレコ- 1人1人の未来を守る次世代システム-」が、ふくいソフトウェアコンペの最優秀賞を受賞しました。

電子情報工学科・インターンシップ報告会

10月30日に、電子情報工学科・インターンシップ報告会が行われました。4年生が夏休み期間中にて、企業での2週間ほどの研修について発表しました。来年を踏まえ3年生も聴講しました。{CAPTION}

高専祭

週末、高専祭が開催されました。電子情報の学生も、パンケーキ屋、焼きおにぎり屋などの露店をだしていました。お疲れさまでした。{CAPTION}

日本ゲーム大賞2023「U18部門」で2EI福嶋君コラボレーションプラットフォーム賞🏆

一般社団法人コンピュータエンターテインメント協会による、18歳以下の方が開発したゲーム作品を対象に審査、表彰する「U18部門」で、2EI福嶋くんが
コラボレーションプラットフォーム賞(Nintendo Switch プチコン4 SmileBASIC 作品名:CRYPTFACTOR)を受賞🏆しました。

落ちてくる数字に、数を入力すると素因数分解され、1になると撃破….(^_^;

第34回 高専プロコン 競技部門 優勝🏆

令和5年10月14日(土),15日(日)にサンドーム福井で開催された、第34回 全国高専プログラミングコンテスト(福井大会)の競技部門で、4EI 高橋くん、辻くん、前田くん、指導教員 西先生 による「蟹高専」チームが優勝🏆しました。🎉

{CAPTION}

競技部門 優勝 蟹高専

自由部門 敢闘賞 チャリレコ

同じく、自由部門にて本選に参加した 4EI 藤野間くん、中西くん、鈴木くん、山腰くん、治内 杏太、指導教員 小松 先生 のチームによるチャリレコも敢闘賞となりました。

メディア掲載

※は学内のみアクセス可

第34回全国高専プログラミングコンテスト福井大会

10/14(土),15(日)の両日、第34回全国高専プログラミングコンテストが、福井高専主管にてサンドーム福井で開催されます。 今年は、一般の方も入場可能です。 procon.gr.jp

システム

最新の投稿(電子情報)

アーカイブ

カテゴリー