鉄道が遅れたらなんとかなってもバスはなんとも

このまえ学校にこんな掲示があった。

例年、定期試験の日にバスの遅延で遅刻するものが散見される。

余裕を持って登校して遅刻しないようにすること。場合によっては徒歩での登校も考えること。

と、まぁバスを利用している人はうちの学校では少数派ではあるものの、こういう問題があることも確か。


一般に鉄道の遅延で遅刻した場合については公欠に準じて扱われることが多い。(参考記事 : 電車が止まって遅刻する)

そもそも鉄道が大きく遅延することは少ない。専用の線路を走るので安定して走行できるから。

確かに平常通り運転していても少々遅れることはあるが、遅延の幅は高々5分ぐらいで済む。

なので事故などで大きく遅れた時は不可抗力であるとして認められることが多い。

必ず認められるのかというとよくわからん話だが、少なくともうちの学校では認めている。


じゃあバスの遅延はどうだろうかというとなんとも言い難いところ。

信号待ちはあるにしても、信号をすっと抜けられるのならばある程度所要時間は正しく決められそう。

ところが実際には通行する自動車が多いと信号待ちの時間が長くなってしまう。これが一番まずい。

さらに厄介なのが踏切で、ラッシュアワーの踏切は閉鎖時間がかなり長い。これがつらい。

とまともに走っていてもこのように所要時間が読みにくい。

駅-学校のバスでの所要時間はバス会社いわく10分らしいが、まずこの時間では到着できなくて15分ほどかかる。

この時点でバスの所要時間はあてにならんことがわかる。


真の所要時間というのは経験により分かることもあるが、天候により交通状況は変わりやすい。

特に雨がひどいですね。雨の時は所要時間が伸びることが多い。

結局これが一番大きな問題で、雨の日こそバスを使いたいが、雨の日は遅れて不便だという話になる。

それが試験の日となればどうだろうか。雨の日に使いたいのに使えないという話になる。

それが場合によっては徒歩での登校も考えろということの示すところで、結局一番信頼がおけるのは自分の足だという話になる。

普段は自転車で通学している人が、装備の都合、雨の日は使えないからと言う時はバス乗るよりも歩いた方がいいかもねって言ってるのだろうか。


一般的にバスの遅れは不可抗力として認められないことが多い。

とはいえ、急な通行規制によるものだったり、乗ってたバスが故障したとか、積み残しを出したとかそういう場合は認めざる得ないのではないかとも思う。

ただ、そのようにして遅れることはまれで、平常通り運行しているにも関わらず遅延することが多い。

そうであるなら自分で考えて余裕を持って来いと。それが一般的なバスの遅延に対する対応のようだ。


遅れないように行動することは重要だが、果たしてどこまでが予期できることで、どこまでができないことなのかはなんとも。

あまりに遅れるし、所要時間と本数の都合歩いた方が早いと言うことで見切りを付けたバスですが、

果たしてどれぐらい遅れるのかというのはなかなかわからないところがある。

ましてや初めて行く土地ならとてもとても。

鉄道の遅延も不可抗力と認めてくれるうちはよいが、認めてくれないなら果たしてどうなるか知れたものではない。

しょっちゅう遅れる路線の人とかつらいだろうな。

なかなか安心を得るのは難しいですね。

もうちょっと細かく警報出せんのかな

昨日から台風が接近していたが、それに伴って警報が発令されていた。

この警報の発令のされ方が難儀なものだった。


去年にうちの学校では警報発令時の対応が変わった。本科から専攻科に進学したが規則は基本的に同じ。

(参考記事 : 市町村レベルで気象警報が出る時代 )

ポイントは去年から始まった市町村単位の警報を活用して判断するようにしたと言うこと。

授業があるかないかの判断基準は学校の所在地の市町村で出ているかどうかで、

自宅の市町村で警報が発令されていた時はそれに準じて扱うということになっている。


で、今日の状況だが、まず学校の所在地の市は警報が出ていないので授業はあり。

自宅の市では警報が発令されているのでそれに準じて登校しなくてよいのだが、

特に問題なさそうなので授業もあることだし通常通り出かけた。雨は降ってたけどこれぐらいなら全く問題は無い。

ただ、自宅の市町村に警報が発令されていたときの行動は人によっていろいろというのが実際のところで、

警報が出ているのだからと登校しない学生もいる。もちろんこれは正しい判断だ。

気付かず登校してしまう学生もいるし、わざと登校する学生もいるのも確か。

登校しなかった場合は授業が欠けたり後の届出が必要などめんどくさいのも事実だし。もちろん危険を冒してまでやるもんじゃないが。


ところで大雨警報の発令状況を見ると、面的に発令されているとも言えなくて、かなり細かく発令されていることがわかる。

学校の所在地の市では出ていないのに、隣の市町村のうち2つは発令されていて、4つは発令されていないなどいうところからもわかる。

これは大雨警報の趣旨にもよるのだが、大雨警報はただ雨が多いと言う意味ではない。

実際、大雨警報が発令されている時よりも発令されていない時の方が雨は強く降っていることも珍しくはない。

大雨警報というのは「大雨によって、重大な災害の起こるおそれのある旨を警告して行う予報。 」とされている。

予報用語/警報、注意報、気象情報 (気象庁)

具体的には土砂災害と河川の増水によらない浸水の恐れがあるということを示している。

なのでそのときの雨量よりはむしろ累積の雨量が重要になってくる。今回の場合はかなり長いこと雨が降り続いたので警報が発令されたこともわかる。


にしても、発令される市町村とされない市町村があるというのはどういうことかという話だが、

今回の警報はこの土砂災害の恐れがあると言うことで出ていることが多かった。

このときの基準となっているのが土壌雨量指数基準で、これは1km四方ごとに定められている。

大雨警報・注意報の土壌雨量指数基準値 (気象庁)

ここでは奈良市を例に取って考える。

ここで使ってるメッシュコードはGeocode Viewerで調べた。

奈良市の東部は山深くて、須川ダムという水道用水を貯めるダムがあってそこのメッシュコードは5235-0763なのだが、警報基準は108・注意報基準86となってる。

一方で西部の学園前駅のあたりのメッシュコード5235-0630で調べると警報基準は148・注意報基準118となっている。

とまぁ、同じ市内でもかなり違うものである。まぁ奈良市は広いのでしゃあないね。

ここで一番低い数字を使って警報の基準としている。

なので、須川ダムのあたりでは土砂崩れの恐れがあると警報が出ても、実は学園前のあたりでは注意報すらでないはずの値であるという可能性もありうる。


市町村単位で警報が出ることになるようになって、これまでよりもきめ細かく警戒を呼びかけられるようになった。

それは評価に値することだし、特に文句があるわけではないけど、広い市町村では必ずしも的確とは言えない気がした。

さっきの奈良市はかなり広い市だったが、同じ奈良県には王寺町・上牧町・河合町・斑鳩町・三郷町・平群町・安堵町と小さな町が並んでいる地域もある。

この7町あわせても面積は奈良市の1/4程度だから、かなり細かく警報・注意報が発令されることが分かる。

こうなってくると果たして奈良市のように広い市町村を1つの警報区分とすることが適当なのかという疑問が出てくる。

奈良市ぐらいならと言うかもしれないけど、京都市も1つの区分だからね。こっちの方がもっとひどい。

もっとも、大きく気象条件が変わる場合は分けて考えてますけどね。例えば大津市は旧志賀町・葛川・伊香立とそれ以外で分けてますしね。

ただ、奈良市の場合、明確な区分をするほどではないのだろう。というかそうやって分けられてるのはかつての警報区分をまたいで合併したとかの場合だし。

それも奈良市の場合は月ヶ瀬村を合併した時には、月ヶ瀬を奈良県北東部から奈良県北西部に変更したぐらいだ。だからよっぽどの場合でなければ市町村は区切らないと言える。

もうちょっと細かくできればなぁと思うのだけど、なかなか難しそうです。

外環状線というものの使い方

今日は余った回数券で京都・大津に出かけようと思ったけど、雨がひどいし台風が来ているのでやめた。

回数券はもったいないが、10回の値段で買ったものを12回使って元は取ったものなのでまぁいいかと。

今度の土曜日に組み込みの講座に出かける時に使おうかと。もったいないけどね。


その大阪に出かけた時に実は鶴橋から天王寺に行く時に遠回りして行った。

どんなけ寄り道してるねんと言われそうだが、まぁいろいろ思うところもあって。

どこに寄り道してたのかというとおおさか東線ですね。

なんか変な名前の路線だが、おおさか東線は2008年にできたJRの新線で放出~久宝寺を結んでいる。

まぁ新線とはいうけど、もともと貨物線があったのを、高架化して旅客化したものなんですけどね。

一応計画では新大阪駅へ伸びる予定だけど、こちらは手間取っていて2018年に完成予定。


最近の関西の新線の中ではかなり地味な方だと思うのだが、まぁ通ってるところが微妙なので。

大阪都心を通る京阪中之島線とか阪神なんば線や、これまでバスで往来していた地域にやってきた今里筋線・近鉄けいはんな線に比べるとどうにも。

一体なぜこんな路線が出来たのか。


そもそもこれ、大阪外環状線として計画されていたもの。

環状線というと大阪環状線のように丸いものを想像するけど、必ずしもそうでもない。

都市から一定の距離を保って複数の放射路線と接続する路線だと考えるとよい。

だから、既にある路線で言えば、近鉄京都線・橿原線や大阪モノレールがこれにあたる。

近鉄京都線・橿原線を考えると、乗り換え可能な大阪から出てきた放射路線は、

JR京都線-琵琶湖線(京都)・京阪本線(丹波橋)・JR学研都市線(新田辺・新祝園)・近鉄奈良線(西大寺)・近鉄大阪線(八木)・近鉄南大阪線(橿原神宮前)

あと烏丸線で四条烏丸まで行けば阪急京都線にも乗り換えできる。あと歩かないといけないけど郡山でJR大和路線と乗り換えも。

使い方はいろいろだけど、放射線同士を結んだり、そうでなくとも環状線は放射線とセットで使うことが多い。これがポイントですね


さて、それでおおさか東線はどうなんだって話だけど、

学研都市線の放出と大和路線の久宝寺を結んでいる。その途中で中央線(高井田中央)・近鉄奈良線(JR河内永和)・近鉄大阪線(JR俊徳道)で乗り換えできる。

もっとも近鉄の乗り換え駅は各停しか止まらんので便利かと言われると疑問はある。けど乗り換えて使うことは出来る。

ところでJR河内永和ってすごい駅名ね。なんでこんなことになったんだろ。JR俊徳道もそうだけど、近鉄の駅の隣なんだしわざわざJRと付けんでもとは思うが。

今のところはそれだけだけど、新大阪まで伸びたら、新大阪でJR京都線・淡路で阪急京都線・野江で京阪本線と接続する予定があるそうだ。

ここまでできたら環状線同士をつなぐ機能も強化されそうだけど、今のところはなんとも。


学研都市線で放出に行けば、なんか大和路線で各停として走ってそうな黄緑色の電車が。

どうも車両は大和路線と同じグループらしい。

こんな微妙な路線使う人いるんかいとおもったら、それなりには乗客いた。

1時間に4本走ってるからなかなかのもの。

電車は東大阪市内を走っていく。周りを見ると住宅と小さな工場ぐらいしかない。パッとしないところを走っていく。

永和ではわりと乗り降りがあった。近鉄への乗り換えもあるけど、そもそも駅周辺はわりと栄えてるところらしく。

そして久宝寺に到着。最初から最後まで乗り通してる人もそれなりにいた。

ここで天王寺方面行きに乗り換えようと思ったら反対のホームへ移動せなならんが、通路が細かった。


今のところ東大阪市内に用事がなければいまいち使い道が思いつかないが、

一応これを利用したJR奈良~北新地・尼崎の直通列車が走っている。

その名も直通快速、まぁ大和路線内では大和路快速も快速も区間快速も直通快速も一緒だが。

ただ、あまり役に立つものでもなくて、大和路快速に行けば梅田には行けるので、利用はふるってなさそう。知らんけど。

やはり新大阪に行かんとならんね。そうなれば特色も出しやすくなる。

ただそれでも各線の接続駅のうち久宝寺・放出・淡路・新大阪は大きな駅だけど、俊徳道・永和・野江は各停しか止まらないので不便そうだ。

もちろんここでの乗り換えが有用だとなれば停車駅に反映される可能性もないことはないけど、あまり期待はできんでしょうね。

そうなるとやっぱり使えんのかなとも思う。どうなるかは少なくとも2018年にならんとわからんけど。

初心者がうまくCを学ぶ方法は

今日は組み込みの講座でC言語の1回目、組み込みプログラムで使う前にPCでいろいろやってた。

この会の参加者のバックグラウンドはいろいろで、基礎的な事項からやる必要がある。

そんなわけだからこの回ではCでのプログラミングを1からやる必要がある。


この回の講師の人はMIT OpenCourseWareの内容を元にして説明していた。

これは、アメリカのマサチューセッツ工科大学の講義の内容を公開しているものでこれのC言語の集中講義が元になっているよう。

と、まぁそんなことからもわかるとおり大学の授業で体系的に説明することを意図した内容になっている。

よくできているのはよくできているのだが、なかなかうまくいってなかったかなと思った。


Cのプログラムを作って動かしても何も表示されないのでは困る。

そんなわけでHello worldを作るにあたって、putsだとかprintfだとか標準入出力関数を使う。

しかしよく考えてみると標準入出力関数を使うというのを体系的に説明しようとすると、

関数を説明して、ヘッダファイルを説明して、そこで初めて使えるぐらいで、この講義でも確かにそれらの説明が終わった後で示されていた。

けど、それではHello worldすらかけないという問題がある。

この講義では一番最初にこう書けばHello worldと表示できるのだと言っているけど、それじゃあHello world以外はできない。

とまぁ、話を進めていく中で手を動かせないまま話を進めて行かざるえないような問題もありそう。

演習問題をやろうにもprintfを取り上げていないから、計算結果を表示できないなど都合が悪い。あとそもそも演習問題が難しい。


実際に物事をやりながらCでのプログラミングを学んで行くならば、

最初にputs・printfぐらいは先取りして、その上で進める必要がありそう。そういう意味ではHello worldって良く出来たものだよね。

その上でmain関数の意義はおいておいて、main関数だけ使って変数・演算子・制御構造について学んでいくというのがよさそう。

ここらへんは特に重要なので自分で考えて作れるようにすることが大切だと思うのだが、

そこまでの演習はできてなかったかなと。果たしてどれほどforの使い方が本当にわかっていたのだろうか。

その上で配列・ポインタ・関数・ヘッダについて学んで、そこで詳しく標準入出力をすればよいのではないかなと。


高専の授業では授業アンケートがあって、プログラミングの授業の区分が講義科目になっていたことに違和感を感じたものだが、

実際の授業の進め方は、半分講義、半分演習という形で、かなり演習色の強い科目だった。

まぁ数学の授業にも似てるかも知れませんね。あれも理屈はあるけど実際に具体的な数字や式で試してなんぼという面はある。

その数学も講義科目だったから、同じようなもんか。

もちろんしっかり説明を聞いて、どのように動くか、なぜこうすればよいかと学ぶことも大切ですが、

結局それを実際の場面で使えんことにはどうにもならんので、講義と演習は二人三脚でやっていかなあかんと。

どうも、それがうまくいっていないかなという気がした。

まぁ最終的にマイコンのプログラミングで不便がなければよいのですが、まぁ次回もあるので、うまくフォローしていきたいなと。

大阪に新しく出来た献血ルームへ行ってきた

この前に大阪に行った時に献血してきた。

僕の初めての献血も大阪府で、日本橋の献血ルームでやった。

またここでしようかなと思ったのだけど、もっと都合がよいところがあったので今回はそうではなかった。


献血と言っても種類がいくつかあるのは知っての通り。(参考 : 役立つ血小板成分献血)

大きく全血献血・成分献血に分けられ、全血献血は血をそのまま採るもの、成分献血は必要な成分だけをとって戻すもの。

献血基準 (日本赤十字社)

ここを見てみると下に献血の間隔というのがある。

ここを見ると分かるが全血400mL献血の後また400mL献血するには12週間開ける必要がある。

赤血球というのは回復が遅いので多く間隔を開ける必要がある。あと年3回までという制限もある。

一方で成分献血は成分献血の後なら2週間後、400mLの後でも8週間後にはできるようになる。

そんなわけで400mL献血と成分献血を組み合わせれば年に3回以上協力できるので、まぁだいたい2ヶ月間隔で行ってる。

それで僕はこの前の3月に400mL献血しているので、今協力できるなら成分献血だと言うことになる。


しかしここで1つ大きな問題があって、成分献血というのは時間がかかる。1時間ぐらい採血に時間がかかる。

僕が1時間ぐらい時間を使うことはかまわないにせよ、そのせいで回転が悪いので協力しようとしてもずいぶん待たされたり、できなかったりする。

普段は平日に帰り道にある血液センターでやっているが、平日ということもありあまり問題は無い。

ただ、毎日やってるわけではないので最近は行きにくい。だから大阪でやるかと思ったんだけど。

けど休日に大阪の都心でとなると厳しいよなと思った。

全血400mL献血なら、それでも少し待たされるだけで済むからいいんですけどね。


とりあえず調べてみるかと大阪府赤十字血液センターのWebサイトを見てたらうまい方法を発見した。

まいどなんば献血ルーム (大阪府赤十字血液センター)

そういや最近できたって言ってましたね。日本橋から近い気もするけど、立地はよっぽどいいか。

ここを見ると全血献血と成分献血をやっているが、成分献血は予約制だと書かれている。

なるほど賢いなとおもった。これは献血する人にとっても、血液センターにとってもありがたいことだから。

献血する人にとっては予約するという手間はかかるものの、待ち時間は少なく済む。

血液センターにとっては有効期間の短い血小板製剤の供給の予定が立てられるというメリットがある。

ただ少し都合が悪いかなとおもったのは、なぜか予約用の電話番号が携帯電話なんですよね。

僕がよく行く血液センターの成分献血予約はフリーダイヤルなので。ああ、ここは必ずしも予約しなくていいし、来る人もほとんど予約してませんよ。


というわけで電話をかけて、土曜日の午前中にと言ったら11:50からと割りあてられた。

えらい変な時間だが、この時間ならスムーズにいくよとはっきりしているので都合はいいか。

行くとカウンターにタッチパネルがおいてあってその場で問診票に回答するようになっていた。

固定施設ではタッチパネルでマークシートを塗る機械が置いてあることが多いのだけど、それを受付するカウンターでできるようになってたと。

そしてこれで呼び出しをするとレシーバーを渡された。なるほど、これで「○○さん、問診室へ」など呼ばなくても済むと。

問診があって、検査のための採血があって、そこで「温かい飲み物飲んだら採血が早く済むよ」など言われた。なるほど。

そして採血。驚いたのは飲み物を持ってくるからこの中から選んでくれと言われたこと。飲み物飲みながら採血できた方がうれしいけど。

終わった後、献血カードと記念品が渡されたが、一緒にコインが渡された。これでアイスクリームかお菓子が取り出せるようだ。

飲み物以外にそんなサービスまであるのは珍しいかなと思った。いいところだと思った。


お出かけのついでに成分献血というには都合がいいかなと思った。

かなり採血室も広くて、成分献血ができそうなところも相当あったので、そもそもキャパシティも大きそう。

時間帯が時間帯だからってのもあるけど、そこに成分献血する人が僕入れて2人だからなかなか。

あと予約してなくても全血400mL献血はできますのでどうぞ。

インターンシップ先を決めようとにらめっこ

今日はインターンシップ説明会があった。

うちの専攻科では本科または専攻科でインターンシップに行かなければならないことになっている。

本科の時はじゃんけんで負けたりしたことによりインターンシップに行けなかったので専攻科では行かなければならない。


しかし専攻科のインターンシップと本科のインターンシップは1つ大きな差がある。

それは専攻科ではインターンシップの期間は実働10日以上となっていることだ。

ようは2週間のプログラムを選ばなければならないということだ。

本科のときは実働5日以上だったので1週間のプログラムでもよかった。

まぁ2週間ぐらいの方がよいという話はよく言われているが、現実には2週間受け入れてくれるところは限られるという問題がある。


とはいえ2週間受け入れてくれるところがないわけではないのでリストを調べてみた。

専攻科生向けリストと言うこともあるのかそれなりにはあった。

ただ、どういうわけか知らんけど8日間とか9日間とか中途半端なプログラムもあって、惜しいなぁってのもあった。

プログラムの詳細については詳しく書かれてないのがほとんどだけど、

その会社の事業内容と関係ないわけはないので調べていたら非常に興味があるところがあった。

ただ1つ難点があって交通費は支給してくれんそうで。このあたりの条件は会社によってもいろいろだけど、交通費は支給してくれることが多い気がする。

けどわりに近いので交通費の負担は少なくて済むので、それを理由にしてやめるほどのものでもないかなとも。

他にもいくつか候補を挙げておいた。


ところでインターンシップ先は企業には限らない。大学もインターンシップ先になりうる。

ただ、僕は企業で働く技術者ってどんなもんか知ることが大切かなと思っているので、今のところ考えてない。

実際には進学先を決めるにあたって行くかもしれないけど、まぁそれは専攻科の科目とは関係なく行こうかなと思っている。

そういう選択肢もあるんだよって話。

あともっとおもしろいやり方もあって、企業の1週間のインターンシップに参加して、大学の1週間のインターンシップに参加して2週間として単位を修得する方法もあるらしい。

ずいぶん不気味だが、確かにそれは理にかなってるよなとも思った。報告会で2つ発表しないといけないなどめんどくさいそうな点もあるが。


なんにせよまずはインターンシップ先を確保しなければならない。

学内で何人などあるのでそれを調整してもらわないといけない。

本科の学生とも調整が必要な場合があるので、なんにせよ早いこと相談しに行かなあかん。

逆ポーランド記法の電卓をつくる

20円の商品を9つ、5円の商品を7つに消費税5%加算した金額はいくらだというのを普通電卓で計算しようとすると、

20×9を計算してM+、5×7を計算してM+、MRで2つを足した結果を呼び出して×1.05などすると思う。

まぁめんどくさいなぁと思うところだが、まだM+があるからなんとかなってる。


大概の関数電卓なら式を打ち込んで計算できて便利ですね。

ただ、そういう機能を持った電卓を作ろうと考えると難しい。

普通電卓なら作るのは簡単だけど、それではおもしろくないと。

そう思ってArduinoで作った電卓では逆ポーランド記法で入力するようにした。


逆ポーランド記法というのは演算子を後ろに書く方法ですね。

1+2と演算子を真ん中におくのが中置記法、+ 1 2 と演算子を前に置くのがポーランド記法、

まぁこの2つはよくありそうな表記だけど、1 2 +と演算子を後ろに置く逆ポーランド記法は不気味。

ただ、1と2を足して という風に口で言うのと同じような並びになってるので意外と打ちやすいし、

あと式を受けとった後の処理が非常に便利だというのが非常にうれしい。

ポーランド記法・逆ポーランド記法ともに括弧を省略してもうまく表すことが出来る。

(1+2)×(3+4)は逆ポーランド記法だと 1 2 + 3 4 + * と表すことができる。括弧無しでうまくいくのは処理が易しい理由の1つか。


処理が便利だというのは、数字を受け取った時はスタックにpushして、演算子を受け取った時はスタックからpopして計算して結果をpushするだけで済むから。

1 2 + 3 4 + * を例にとって考えてみる。

まず1をpushしてスタックが[1]となり、2をpushして[1,2]となる、ここで+を受け取ったら2つpopして1と2を取り出して足して3をpushしてスタックは[3]に。

次に3、4をpushして[3,3,4]、ここで+を受け取ったら2つpopして3と4を取り出して、足した7をpushして[3,7]、

ここで*を受け取ったら2つpopして3と7を取り出して21をpushして最終的に[21]となって、この計算ができた。

括弧のことを考えなくてよくて、演算子を受け取ったら受け取った時にその計算をすればいいというのがうれしい。


そんなわけでRubyでそんな電卓を作ってみた。

p gets.split(/\s+/).inject([]){|s,x|
  if    x=='+'
    t=s.pop;s.push(s.pop+t)
  elsif x=='-'
    t=s.pop;s.push(s.pop-t)
  elsif x=='*'
    t=s.pop;s.push(s.pop*t)
  elsif x=='/'
    t=s.pop;s.push(s.pop/t)
  else
    s.push(x.to_f)
  end
  s
}

たったこんなけで大概の四則演算はできる計算機が作れるってんだからうれしいね。

getsで入力された文字列を空白で区切って、区切ったそれぞれについて演算子ならスタックにpopして計算してpush、数字ならそれをpushするということをしているだけ。

ここに最初に書いた例を計算してみよう。

20 9 * 5 7 * + 1.05 * と入力すればよい。そしたら225.75と出てきた。

普通電卓ならM+を使わないとできなかった計算がそのまま入力できた。


ただ電卓を作ってもおもしろくないが、スタックを用意して少し工夫するだけで出来ることは広がる。

実におもしろい。

まぁこれが普段計算するのに便利なのかといわれると、便利な時もあるし不便な時もあるというのが答えかなと。

ただ、逆ポーランド記法の電卓はマニアには人気があるそうだから、意外と便利なのかも知れない。

ふと手にした74シリーズは74HCか74LSか

マイコンの周辺回路を作る時に入力4回路NANDゲートのIC、7400を2つ買ってきた。

74シリーズもいろんな品種があるんだけど、その中では一番安かった74HCシリーズから74HC00を持って来た。

26円とは安いなと思ってあまり考えずに持って来たのだけど、調べてたら驚くべき事実に気がついた。


74シリーズはTTL ICとして知られている。

TTLってのはTransistor-Transistor Logicの略で、ダイオードとトランジスタで作られたDiode-Transistor Logic(DTL)との対比でこう呼ばれている。

まぁそれが74シリーズの起こりで、その後74シリーズは広く使われるようになったわけだけど、派生品も作られるようになった。

74HCシリーズも派生品の1つですね。


で、74HCはなんなんだって話ですけど、実はCMOSロジックICなんですね。

HCはHigh-spead CMOSの略らしいです。知らなんだ。

CMOSはnMOSとpMOSを相補的に並べたもので、これでロジックを作っている。

TTLで言うトランジスタというのはもちろんバイポーラトランジスタのことだから、中身は全く違うと言ってもよい。

自分ではTTLを買ったつもりがCMOSを買っていたわけですね。

ただ、現在では74HCシリーズがロジックICとしては一番一般的なものらしく、そんなこともあって安く入手することができたとも言える。

広く使われている事にはそれなりに理由もあって、CMOSはゲートには電圧をかけるだけで、論理が反転する時にしか電流は流れないという特徴がある。

バイポーラトランジスタの場合はONの間はゲートに電流が流れる。それがほとんどないんだから消費電力が抑えられる。

というわけで低消費電力が特徴なわけですが、かといって今は微細化などにより動作速度も速くなったので特にこだわりがなければこれがよいとなるそうだ。

一方で気を付けないといけないこともあって、静電気に弱いとか、あいてる入力端子はHかLにしておかないと動作が不安定になるということがある。

あまり考えずともうまく動いてしまったけど、CMOSにはCMOSの事情があるってわけだ。


もう1つよく使われるシリーズがある。74LSシリーズですね。

入力部にショットキーバリアダイオードを使って高速化したものだそう。LSはLow power Schottkyの略だそう。

入力部にダイオード使ってたらそれTTLちゃうやんって。DTLみたいなもんですよ。まぁそれでもTTLって言ってますけどね。

当初はショットキーバリアダイオードを使って高速にしたものは消費電力が高かったらしい。それが消費電力が下がって74LSになったと。

こうなれば無印の74シリーズを使う理由はないと74LSシリーズはTTLの一般的なICとなったとさ。

そして無印の74シリーズは今やレアものになってしまったそうで。

なので本当にTTLが欲しかったら74LSシリーズを選べばよかったわけですね。

ちなみに共立では74LS00は74LS00より5円高い31円で手に入るそうで。まぁどっちにしても安いことに違いはない。

もっと高機能なものになるとさらに高いだろうけど、まぁ多くの場合はこの2つで足りるでしょうね。


しかし最近では標準ロジックICでガリガリ回路を組むことも少なくなっただろうね。

CPLDとかFPGAを使えば所望のデジタル回路が簡単に作れてしまうんだから。(参考記事 : CPLDの上手い使い方)

そんな中で標準ロジックICを使うのは少しだけ外付けのロジックを付けたい時なんだろうね。

実に今回の使い方はそれにあっている。

最近ではそれに適したゲート1つとか2つとかだけのICも売られているそうで。

ユニロジック74LV-A LVT-A 1G/1GW/2G (ルネサスエレクトロニクス)

1つだけ必要なら1つだけ載せようという考えだ。なるほど、確かにこんなの載ってる回路あるよね。

標準ロジックICは主役ではなくなっても脇役としてはずっとずっと活躍していくんだろうとわかりますね。

マイコンの周辺回路を作る

Arduinoの周辺回路の組み立てができた。

くわしく回路図なども載せられたらよかったのだけど、めんどくさいのでそれは載せないことにした。


まずLCDの接続ですが、LCDはI2Cで接続するだけだから簡単ですね。

I2C低電圧キャラクタ液晶モジュール(16×2行) (Strawberry Linux)

これのデータシートをみるとわかるが、リセット・SCL・SDA・GND・VDDをつなげばいい。

本来は電源は3.3Vなのだが、5Vでも動くそうなので、Arduinoの電圧に合わせて+5Vを供給した。

あと忘れてはいけないのがI2Cバスをプルアップすることですね。SCL・SDAをそれぞれ10kΩでVccへプルアップした。

動作させるプログラムはここのAVRサンプルを元にI2Cの通信の内容だけ参考にすればよい。

コントラストは5Vになった分下げる必要があって、20でうまく動いている。


次にマトリックスキーの作成だが、4×3にスイッチを並べて、縦にスイッチの足の片方を1本の線につなぐ。

そしてもう片方の足は横に1本の線につなぐ。

あとは縦の線をVccに10kΩでプルアップすれば一応完成。

ここで縦の線には1つだけLで後はHを与えてやれば、縦の線からLにした行でボタンが押されているところがあればLが出てくる。

この7本の線とVccをArduinoのところまで持って行ってやる必要があるが、ここでフラットケーブルを使った。

フラットケーブルの端をバラして、縦横の線とVccにつなぐ。

そして反対の端には買ってきた10ピンの圧接端子をガシッと取り付けてやった。これでフラットケーブルで接続できるようになった。

この時点でマイコンとジャンパーワイヤーで接続してテストしたところうまく動いた。

char initKey(){
  pinMode( 8,OUTPUT); digitalWrite( 8,HIGH);
  pinMode( 9,OUTPUT); digitalWrite( 9,HIGH);
  pinMode(10,OUTPUT); digitalWrite(10,HIGH);
  pinMode(11,OUTPUT); digitalWrite(11,HIGH);
  pinMode(5,INPUT); pinMode(6,INPUT); pinMode(7,INPUT);
}
char readKey(){
  char t;
  digitalWrite( 8,LOW); delay(1);
  t=digitalRead(7)<<2|digitalRead(6)<<1|digitalRead(5)
  digitalWrite( 8,HIGH);
  if(t==0b011) return 1;
  if(t==0b101) return 2;
  if(t==0b110) return 3;
  digitalWrite( 9,LOW); delay(1);
  t=digitalRead(7)<<2|digitalRead(6)<<1|digitalRead(5)
  digitalWrite( 9,HIGH);
  if(t==0b011) return 4;
  if(t==0b101) return 5;
  if(t==0b110) return 6;
  digitalWrite(10,LOW); delay(1);
  t=digitalRead(7)<<2|digitalRead(6)<<1|digitalRead(5)
  digitalWrite(10,HIGH);
  if(t==0b011) return 7;
  if(t==0b101) return 8;
  if(t==0b110) return 9;
  digitalWrite(11,LOW); delay(1);
  t=digitalRead(7)<<2|digitalRead(6)<<1|digitalRead(5)
  digitalWrite(11,HIGH);
  if(t==0b011) return 11;
  if(t==0b101) return 0;
  if(t==0b110) return 12;
  return -1;
}

電話のプッシュボタンの順番に並んでいることを想定している。

なにも押されてなかった時は-1、0~9を押された時はその数字、0の左右のボタンは11・12を返す。


ただ、これでは13しかないデジタル入出力ポートを7本も使うのでロジックICを使って4本に圧縮したのだが、

このことは書くと長くなるので省略。

2入力4回路NANDゲートのIC、7400を2つ買ってきて組み合わせて作ったんだけど配線が大変だった。

LCDを接続するためのピンヘッダ、フラットケーブルでマトリックスキーを接続するためのボックスヘッダも取り付けなならんかったので。

配線に使える線が赤1色しかないからえらい混乱しそうになるし。

まだ自分がどんな回路を作ってるかわかりながらはんだ付けしてるからましだけど。


あとLEDも取り付けた。LEDは1つArduinoのボード上にもあるようだが、上にユニバーサル基板を乗せると隠れるので、その代替に1つ、

あとPWMのポートにつなげたLEDを1つ用意した。LEDは赤と緑なので300Ωの抵抗を挟んでつないだ。

安いLEDなんだけどけっこう明るい。PWMで制御してもデューティー比上げたらすぐに明るくなっちゃう。

それとブザーも取り付けといた。ブザーは適当なデジタル入出力ポートにつなげばいい。

これで完成。


キャラクタLCD・マトリックスキー・LED2つ・ブザーとかなり充実したインターフェースを取り付けることが出来た。

ここまで日曜日と今日ちょっとの作業でできた。

これだけで十分いろんなことができる。キャラクタLCDはいろいろ表示できるし、12個もスイッチがあればいろいろ入力できる。

ポート数の制約はあるけど、LCDもマトリックスキーもポート数を節約したのでまだまだ拡張できますね。

これで早速、逆ポーランド式の電卓を作ってみている。

ただ電卓を作るには12個ではキーが足りないな。演算子は何回か押して選ぶなどすれば収められますけどね。

またゆっくり遊ぼうかなと。

あべの筋を走っていくチンチン電車

昨日買ってきた部品で工作してたけど概ね正しく動いた。

ちょっとはんだづけが外れてる部分があって動作おかしかったけど、そこは後でなおす。

この工作のことは後に書くこととして、今日は別の話。


昨日日本橋に行く前に寄り道をしていた。

鶴橋から天王寺に行って、阪堺電車に乗って堺まで行ってから行ったんですね。

なんのこっちゃという話だが、順を追って説明する。


こんな寄り道をした理由は2つあって、1つは昔から阪堺電車のことが気になってたからというのがある。

幼い頃、浜寺公園へ行くことがあった。南海に乗って浜寺公園駅で降りて歩いていけばすぐ浜寺公園だ。

その途中、チンチン電車が止まっているわけである。これはなんやねんと気になってたのである。

実はこれが阪堺電車で、阪堺線の終点がこの浜寺駅前って停留所だったんですね。

さて、ここで路線図を見てみる。

阪堺電車 路線図

路線図を見てみると、大阪側は恵美須町と天王寺駅前から出ていることが分かる。

恵美須町って聞いたことある人も多いはず。堺筋線の駅名にもなってるよね。でんでんタウンの最寄り駅ですね。

あの駅の北側の出口は電気街のところに繋がってるけど、南側の出口を出たあたりにあるのがこの阪堺電車の恵美須町駅ですね。

ちなみに恵美須町の1つ手前の南霞町は新今宮駅と同じところにある。

というわけで日本橋のあたりで阪堺電車の乗り降りができるので、乗ってみようかなと思ったわけだ。

これは偶然だけど阪堺線は今年で100周年らしい。ちょうどいい。


もう1つの理由が阿倍野再開発の集大成とも言われる再開発ビル、あべのキューズタウンが完成したから。

阿倍野再開発というのは1976年から始まり、未だに終わっていない。

阿倍野地区第二種市街地再開発事業 (大阪市)

事情はいろいろあるのだけど、再開発ビルが建たないというのが1つの理由だったのだと思う。

そんな中、その阿倍野再開発の中核となる大きな商業ビルを東急不動産が建てると手を挙げたわけだ。

そして2011年4月26日、とうとう完成したと。

僕にとってはあべのってのはいまいち縁はないのだけど、どんな風景なのかなと気になって、

それなら天王寺から阪堺電車に乗って見ればいいねって思ったわけだ。


天王寺駅前では阪堺電車はあべの筋の路上から出発する。

工事中なので歩道橋からは行けないと書いてあるから地下から行った。地下鉄の駅と直結している。

ここで てくてくきっぷ を購入、600円で乗り放題だ。

実は最近、堺市の支援で大阪市内と堺市内をまたがって乗る場合の運賃が290円から200円に下がったのであまりお得感はないが、とりあえず買った。

あべの筋の中心を電車は走っていくわけだけど、すると車はその両側1車線しか走ることが出来ない。幹線道路で片側1車線はきついかな。

さて、電車から周りを見ると、まだ工事中のところもあったが、わりと大きなビルが整然と並んでいてさすがは再開発地区。

ただ、それはあべの筋の西側の話で、東側は再開発の対象ではないのでそちらはそうでもないが。

阿倍野停留所は路上にあるが、その先進んでいくと道路から出て、普通の線路になる。

あとはずっとそうなのかなと思っていたら、少し進んだらまた路上を走る。ここはそれほど交通量は多くないですね。

そしてまた専用の線路を走り、住吉で路上を走る恵美須町からの線路とクロスして住吉大社駅の目の前の住吉公園駅に到着。


ここから改めて堺方面を目指すために少し歩いて路上にある住吉鳥居前停留所へ。まさに住吉大社の鳥居の前だった。

ところで、阪堺電車は基本的に 恵美須町-我孫子道 ・ 天王寺駅前-浜寺駅前 ・ 天王寺駅前-住吉公園 の3系統が走っている。

基本的には浜寺駅前へは天王寺駅前から乗り換え無しで行ける。最近まではできなかったみたいだけど。

恵美須町方面-堺市内は乗り換えが必要だが、これは我孫子道で行えばよい。すれば直通電車があったのと同じ運賃で乗れる。

天王寺駅前からだと浜寺駅前へは直通電車があったんだからそれに乗ればよかったのだが、どうせフリーきっぷだしと住吉公園で一回降りてみた。

また専用の線路に入り走っていく。そして大阪市内最後の我孫子道駅へ到着。

ところで路上では踏切はないのだけど、専用の線路を走る区間では踏切はある。ここで気付いたのだけど、一部の踏切は警報器だけで遮断機がないね。


そして大和川を越えて堺市へ。しばらく専用の線路を走り続けるのだけど、また路上を走るようになる。

ここは大道筋って大きな道なのだけど、垣根で区切られた中央を電車は走っていく。なので幹線道路だけど自動車との干渉はあまり考えなくていい。

もっとも交差点では信号に従って進む必要はあるのだけど。それはここまでの路上区間にも言えることだが。

こうして路上区間を延々と走っていくと、信号待ちがうっとうしく感じる。

しかし、信号待ちについては他の車と同じ条件、専用の線路を走る区間は信号待ちがないだけに余計に感じるわけだ。

そうして市街地を縦断したら、また専用の線路に入り、終点の浜寺駅前へ到着。浜寺公園は目の前だ。

その後、また天王寺駅前行きに乗って、途中で乗り換えて恵美須町駅へ向かった。

堺市内で座席が埋まるほど乗ってきて驚いた。値下げ効果か?


阪堺電車は大阪市内では黒字らしい。大阪市内ではまわりが住宅地なので、使う人は多いのだろう。

ところが堺市内ではかなりの赤字らしく、阪堺電車の経営は厳しいそうだ。

堺市内だけでの利用は限られるだろうし、堺市内から大阪市内へとなると、南海の方が速くて便利だと言うことになる。

堺~新今宮と大小路~南霞町を比べると、堺~新今宮は所要時間8分・運賃250円、大小路~南霞町は所要時間31分、運賃は値下がりして200円だが以前は290円だ。

そりゃ流行らんわけやわ。

実は天王寺駅前~浜寺駅前の直通運転を開始したこともここに理由があって、南海と平行する恵美須町~浜寺公園とは違うルートを主にして需要を掘り起こそうと思ったそうだ。

堺市の中心部から天王寺へはなんしか乗り換えが必要だった。

堺~新今宮~天王寺は乗り換え時間入れて15分ぐらいで南海・JRあわせて370円、それに対して大小路~天王寺駅前は所要時間33分で運賃は今200円、以前は290円。

昔の運賃でもかなり安くつくし、乗り換えの手間がかからないことを考えれば使おうかなとも思うかも知れない。なるほど直通電車はよさそうだ。


さて、シリコンハウスで買い物を終えたら15時ごろ、案外早く終わったのでキューズモールでも見てくるかと阪堺電車に乗った。

普通は日本橋と阿倍野は阪堺では移動しないけどフリーきっぷがあるから。

恵美須町駅に行ったらそこにいたのはいかにも古めかしい車両。窓全開になってた。非冷房車か。

阿倍野停留所で降りて、キューズモールに行ったら人だらけ。そりゃオープンしたばっかりだからしゃあないか。

地下1階に東急ハンズがあった。あまり多くのものは置いてないけど、見所は多いか。

そして、キューズモールを出て、阿倍野再開発地区を一周してきた。

キューズモールの裏側は住居用らしきビルが整然と建ち並んでた。

そんなビルの1つを見ると、なぜか銭湯が。もともとここで銭湯やってた人が再開発ビルでも銭湯やるとしたんだろうな。

不思議な光景ですが、まぁいかにも再開発らしいことかな。


ところで阿倍野といえば近鉄が約300mのビルを建てると言っている。

そのビルから下を見てみると阪堺電車が走っている光景が見られるのだろう。

なんともミスマッチな光景だが、今日も明日もチンチン電車は大阪を走っていくわけだ。