RL78/G10は小型の組み込み用途のマイコンです。ここでは、16ピンのR5F10Y4を用い、共通のハードウェアとして、40個のLEDを制御してみます。
ここで使用するマイコンの機能は、最も基本的な機能であるポートとタイマをこれまた基本的な動作であるインターバル・タイマ機能で使用します。
インターバル・タイマを使用してタイミングを決めてLEDの点灯を高速で切り替えることで、人の目には複数のLEDが同時に点灯しているように見せています。この処理はタイマの割り込みを使用してバックグラウンドで処理します。
このハードウェアを用いて何かプログラムを動かす場合には、ハードウェアに密着したこの処理はあまり意識する必要はありません。上位のプログラムは決められたメモリにデータをセットしておけば、勝手に表示してくれます。
細かな原理やタイミングは別途説明いたします。まずは、ボードを作って、遊びましょう。
なお、プログラムはすでに準備していますので、下記のURLからダウンロードしてください。
http://japan.renesasrulz.com/cafe_rene/m/sample_program/253.aspx

また、LEDの制御に関しては以下に示す動画(マイコンのポート機能(出力拡張))も参照してください。

http://japan.renesas.com/videos/index.jsp?p=157
http://japan.renesas.com/videos/index.jsp?p=157&v=UW2jPzLrOm0
http://japan.renesas.com/videos/index.jsp?p=157&v=21Hm8LTuRAY
http://japan.renesas.com/videos/index.jsp?p=157&v=Pg_Vpm3t2oU
http://japan.renesas.com/videos/index.jsp?p=157&v=eEiW0cfwKu8
http://japan.renesas.com/videos/index.jsp?p=157&v=OUJrpDN2eH4
http://japan.renesas.com/videos/index.jsp?p=157&v=RJTi0PmpE6M

 

RL78/G10で遊んでみよう1(ゲームで遊ぼう1)

仕事を離れて、16ピンのRL78/G10を使って遊んでみました。RL78/G10では、8本のP0を使うことで、4×8のマトリクスのLEDを制御できます。今回はこれにステータス表示用にP41を追加することで、5×8=40個のLEDを使ってゲームを作ってみます。RL78/G10の16ピンの残りは電源、グランドを除くと、5本となります。このうち、オン・チップ・デバッグで使用するP40/TOOL0端子を除いた4本を入力端子として使用します。
使用できる機能を下の図に示します。


 

この構成で実現できるゲームとしては、いわゆる“落ちもの”が考えられます。ここでは、LEDの4×8の部分を使用して、点灯するLEDを上から下に動かします。LEDの各列には、対応した4個のSWが並びます。点灯したLEDが一番下の赤いLEDまで来たときにその列に対応したSWを押すと加点され、それ以外のタイミングでSWを押すと、得点は減点されます。加点は1回で1点ですが、減点はレベルに応じて、1点~3点です。減点時にはステータス表示部のLEDが3回点滅します。
前もって決められた点数になると、レベルが上がり、それに伴って落ちてくるスピードが少しずつ速くなります。レベルはP41を用いて表示する6個のLEDで表示します(6個で10レベルまで表示します)。
決められた時間が経過するか、ある得点以上になるとゲームは終了する機能も追加します。RESET端子を入力ポートで使用しているので、ウォッチドッグ・タイマ(WDT)を用いて、リセットをかけるで、次のゲームに移るようにします。

◎対象とするハードウェア
ここでは、下図に示すように、40個(すべては使用しない)のLEDを制御することにします。ハードウェアの動作や基本的な制御は、「マイコンのポート機能(出力拡張)」を参照してください。



 

さらに、RESET端子も入力ポートとして使用することで、4個のSWを接続します。これらのLEDとSWの配置の概要を次の図に示します。P00~P03に接続されたLEDをゲームの画面として使用し、P41に接続されたLEDをステータス表示で使用します。ただし、LED10は省略することがあります。
(SW入力もマトリクス制御すると、16個程度は制御可能ですが、多重押しで表示が乱れないようにするにはダイオードが必要で、面積が大きくなってしまうので、今回は見送ります。)


 

◎タイミング制御
LEDの点灯は、1面のスキャン時間を10msとし、1行の点灯タイミングは1.25msとしておきます。必要なタイミングはTM00を用いて発生します。
1面のスキャンを5回行ったタイミング(50ms間隔)でSWのチェックを行います。その際に、SWが押されたこと、有効か無効かまで検出します。簡単化のために、ノイズ対策は無視しているので、最速で0.1秒ごとにSWを押したことを検出できます。
画面スクロールのタイミングには、TM01を用います。TM01のタイミングはゲームの難易度(4段階準備しています)や得点で変化します。難易度が高い場合には、0.2秒で開始し0.06秒程度まで速くなります。(大丈夫かなぁ)
各難易度でのレベル変更の得点は、テーブルにしてあるので簡単に変更可能です。
ゲームはクリア(得点が定められた値に達する)か、タイムアウト(一応5分に設定しています)で終了します。終了すると、最初(ゲーム選択)に戻ります。

◎部品配置
下に、LEDやSWおよび抵抗を配置するための穴あけの例を示します。このページを印刷し、●印が付いた位置に穴をあけてください。
MCUの位置も示していますが、自由に配置して構いません。


部品面での部品配置 と穴あけ位置

全て、手配線を行う場合の配線例を下に示します。


配線面での配線例

 

片面配線でのプリント板を作る場合の配線面のパターン例を示します。


プリント配線パターン例(片面)

 

 初心者用に少しモディファイしてみます。LEDをそのままボードに挿入するのではなく、リード(足)の間隔を広げるようなフォーミング(足曲げ)を行うことにします。40個ものLEDの足を曲げるのは大変ですが、半田付けが楽になります。
まずは、LEDのリードですが、2本のリードは長さが異なります。長い方がアノード(+側)で、短い方がカソード(-側)です。フォーミングするとどちらかが分かりにくくなるので、アノード側のリードの先をマジックで赤く塗ります。
次に、LEDのリード側から見て、アノードが下になるように持ちます。アノードのリードを付け根から5mm程度のところで90度右に折り曲げます。このとき、LEDの付け根の方をピンセットや先の細いラジオペンチで固定して折り曲げてください。そうすると、長さを決めやすいだけではなく、強いストレスでLEDが壊れることを防止することになります。
さらにそこから5mmで手前に折り曲げます。基板の穴の位置に合わせるので、こちらはできるだけ5mmに近くしてください(若干狭め)。
また、折り曲げの角度は90度より若干小さめにすると、基板への挿入時にLEDの固定ができます。
完了したら、今度はカソード側を下にして、同様に根本から5mm程度のところで90度右に折り曲げます。そこから5mmで手前に折り曲げます。

 

このようなフォーミングを全てのLEDに施したら、LEDは準備完了です。


フォーミング時の部品面での部品配置と穴あけ位置

 

それでは、LEDを基板に挿入します。基板の穴のピッチは2.54mmの倍数なので、LEDのリード間隔の10mm(5mm+5mm)ではこれより若干狭いので、リードを少し広げて挿入することになります。リードが広がることで、LEDが基板に固定されます。



基盤へのLEDの挿入

 

配線(線材)には導線が0.3mmφの太さの単線(ジュンフロン線)を使用します。線材をLEDに接続するためには、ワイヤストリッパーで被覆を10mm程度剥いておき、線材をLEDのリードに巻き付けます。


 

このとき、LEDのリードが長すぎて邪魔なら、適当なところで切ってください。なお、リードには、2本程度の線を接続するので、短くしすぎないようします。



 

必要な線の接続ができたら、半田付けして、接続を固定します。必要に応じて、バンソウコウで線を固定します。
先に、半田付けしたいところにコテ先を当てて、余熱して、半田を当てます。これで、半田が溶けて、配線部分を被います。半田はあまりつけすぎないようにして下さい。半導体は熱に弱いので、必要以上に加熱しないでください。コテ先に半田を付けてから半田付けしたいところにあてるようにはしないでください。



 

本数が結構あるので、やけどに気を付けて頑張ってください。


配線面での配線例

 

LEDへの配線が正しくできているかを確認します。
たとえば、下の図の右端のLEDへの配線をチェックしてみます。このために、単3電池を2本直列に接続したものを準備し、そこから引き出したプローブをRL78/G10のソケットに当てていきます。

 

それでは、今まで半田付けをやったことがない人に何回か手ほどきをして、実際に半田付けをやってもらいました。
実際の作業の様子をビデオにしておきましたので、そちらをご覧ください。今回は部品の準備から始めて、半田付け、回路のチェック、最後にゲームで遊んでいるところまでの3本を作成しましたので、ご覧ください。


ルネサスマイコンRL78で電子おもちゃを作ろう!(1/3)


ルネサスマイコンRL78で電子おもちゃを作ろう!(2/3)


ルネサスマイコンRL78で電子おもちゃを作ろう!(3/3)

 

主な部品(線材以外は秋月電子で購入しました)

基板:片面ガラス・ユニバーサル基板Aタイプ2.54mmピッチ(155x114mm)
LED(赤):赤色LED3mmOSDR3133A500mcd30度100個入
LED(黄):3mm黄色LEDOSYL3133A100個入
LED(緑):3mm黄緑色LED500mcd30度OSNG3133A(100個入)
ICソケット:16ピンDIPソケット
マイコン:R5F10Y47ASP使用RL78マイコンモジュール
SW:キートップ付きのタクトスイッチ(10個入)
抵抗:1/4W型510Ω×5本、3.3kΩ×4本
半田:鉛フリーはんだ0.8mm
線材:半田付け対応のジュンフロン線(単線)

Anonymous