RaspberryPiでLCDモニタ
aitendoの2.2インチTFT液晶をRasPiで使う - @SRCHACK.ORG(えす・あーる・しー・はっく)
を参考にやったがLCDでのコンソール表示が90度回転しなかったので、試した結果。
- コンソールログインにする(GUIを立ち上げない)
/etc/inittab:
# The default runlevel.
id:2:initdefault:#1:2345:respawn:/sbin/getty --noclear 38400 tty1
1:2345:respawn:/sbin/fbterm-login fb1 tty1
でランラベルを2に下げただけではだめだった。なぜ?
で、
rasp-config
を実行し
3 Enable Boot to Desktop/Scratch
Console Text console, requiring login (default)
を選択することで、LCDにログインプロンプトが出るようになったが、
90度回転していない。
/sbin/fbterm-login:
#!/bin/bash
# example: fbterm-login fb1 tty1
export FRAMEBUFFER=/dev/$1
exec /usr/bin/fbterm -r 1 --font-size=12 /bin/login < /dev/$2
を
/sbin/fbterm-login:
#!/bin/bash
# example: fbterm-login fb1 tty1
export FRAMEBUFFER=/dev/$1
exec /usr/bin/fbterm --screen-rotate=90 --font-size=12 /bin/login < /dev/$2
に修正したら90度回転するようになった(横長表示)
こっちで設定するのかと思っていたが、こちらはGUIのときに有効になるみたい。
/etc/modules:
# fbtft
fbtft_device name=adafruit22a rotate=90 speed=16000000
jQuery コードリーディング その2
まず、全体を俯瞰してみる。
- ファイルサイズ:247KB
- 総行数:9190行
- 総文字数:247351文字
だいたい新聞朝刊二日分をくまなく読むくらいの量ですね。
では、読み始めます。
コメントは飛ばして15行目から。
(function( global, factory ) { if ( typeof module === "object" && typeof module.exports === "object" ) { // For CommonJS and CommonJS-like environments where a proper window is present, // execute the factory and get jQuery // For environments that do not inherently posses a window with a document // (such as Node.js), expose a jQuery-making factory as module.exports // This accentuates the need for the creation of a real window // e.g. var jQuery = require("jquery")(window); // See ticket #14549 for more info module.exports = global.document ? factory( global, true ) : function( w ) { if ( !w.document ) { throw new Error( "jQuery requires a window with a document" ); } return factory( w ); }; } else { factory( global ); } // Pass this if window is not defined yet }(typeof window !== "undefined" ? window : this, function( window, noGlobal ) { // Can't do this because several apps including ASP.NET trace // the stack via arguments.caller.callee and Firefox dies if // you try to trace through "use strict" call chains. (#13335) // Support: Firefox 18+ //
いきなりわからん。というか最初だからこそわからないのか。
そもそも
}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
の'{'に対応するカッコが見つからないんだが(viの % コマンドで探したが)...。
このコメントの意味がよく分からないけど、use strict をつけるとASP.NET, Firefoxでdieするのと関係あるの?よくわからん。もう少し、見てから戻ってきます。
// Can't do this because several apps including ASP.NET trace // the stack via arguments.caller.callee and Firefox dies if // you try to trace through "use strict" call chains. (#13335) // Support: Firefox 18+ //
どんどんいこう。
var arr = []; var slice = arr.slice; var concat = arr.concat; var push = arr.push; var indexOf = arr.indexOf; var class2type = {}; var toString = class2type.toString; var hasOwn = class2type.hasOwnProperty; var support = {};
arr で配列を準備。slice,concat,push,indexOfはarrのメソッドの対するエイリアス。
class2type でプロパティを準備。プロパティは連想記憶(ハッシュ)と同じようなものだと理解している。toString, hasOwnはclass2typeのメソッドに対するエイリアス。
support でプロパティを準備。
次回に続く。このペースでいくと何時終わるのやら。
jQuery コードリーディング その1
jQuery のソースコードを読んで、
jQueryとjavascriptを勉強する連載(予定)。
jQueryを使ったjavascriptプログラミングの勉強ではないです。
モチベーションはこれ
- ちょっとしたWebアプリを書けるようになりたい
- 美しいコードに触れたとき、涙があふれ、アメリカに行かなければと思った ──中島聡流プログラミングの原点 #OpenGL|CodeIQ MAGAZINE
最近はオープンソースにもいいものがあります。例えば、jQueryは僕がMicrosoftの外に出てから、一番美しいと思ったコードですね。
ブログ主のプログラム関連スペックはこんな
- Cはだいたいわかる
- Railsはさわったことがある。Herokuで自分用に動かしている簡単なアプリがある。
- javascriptは見よう見まねでコードを書いたことがある。生涯コード記述量は300行くらい。
jQueryのバージョンは現時点で最新の2.1.1を使う。
いつ終わるかわからないが、終わらせるまでやりたいと思う。
Pebble でWorldCupを楽しむ
2014 FIFA World Cup Brazil の試合スコアをライブ表示するPebble Appをつくってみた。
スコアが動くとブルッとします。多分動くと思う。
PCな方はこちら
Android/iOSな方はこちら
このあたりを使って作っています。感謝。
- Simply.js
- kimono : Turn websites into structured APIs from your browser in seconds
- LiveScore.com : Live World Cup Soccer / Football Scores
基本的にはこれと同じです。
Pebbleでサッカースコアライブ更新表示してみた - じんじろげのジロジロモニタ
最近のアクセス傾向
あいかわらずRaspberryPiが人気。特に監視カメラが人気みたいですね。ありがとうございます。
あとは、Pebbleも徐々にアクセスが増えてるみたい。
RaspberryPiにいろいろつないでみた
この記事は書きかけです
RaspberryPiを
にすることを目的にいろいろつなげるだけつないでみた。
RaspberryPiに
をつないでみた。
RaspberryPiにつないだArduino(ATMega328P-PU)に
をつないでみた。
RaspberryPiとArduino(ATMega328P-PU)の間は、SPI(スケッチ書き込み用)とシリアル通信でつないでみた。
各種デバイスをRaspberryPi, Arduinoのどっちにつなぐかはかなり適当です。
当初は、5V系デバイスはArduino, 3.3V系はRaspberryPiにするつもりでしたが必ずしもそうはなってないです。
GPIOでArduinoへスケッチ書き込み
ArduinoというかATMega328への書き込みと言った方が正確かも。
Gertboard | Arduino IDE Installation (ISP) | Gordons Projects
を実施
シリアル通信でArduinoと接続
ちょっとはまった。
何か送信できるけどうまく取り込めない。3.3V(RaspberryPi) <-> 5V(ATMega328)変換で結線ミスかPullUpが弱いのかと思って悩んだ。が、結局は、Getboard(という評価ボード)が12MHzなので、16MHzでATMega328を動かす場合は設定ファイルを書き換える必要があった。
以下を変更。
5V電源はGPIOから供給
RaspberryPiにつないだATMega328P-PUにサーボモータをつないでいるので、RaspberryPiの5V電源で十分な電流が流せる必要がある。
が、microUSB経由だとポリフューズがあるので700mAまでしか流せない(実際、microUSB電源供給でサーボモータを動かすとすぐ落ちる)。
色々調べるとGPIOの5Vに直結するのが良さそう。
なのでmicroUSBから電源供給しないで5V 2A のAC/DCアダプタをGPIO 5Vに直結することにした。
デジタル温度計
ここを参考に実装。
Raspberry Pi で温度センサ(DS18B20+)を読んでみた - 完全に個人的な備忘録
# 1-wireをarduinoで使えるようにもトライしてみたい気もするが
この記事は書きかけです
Chromecastを買いました
Chromecastを買いました。
Google Chromecast ( クロームキャスト ) Wi-Fi経由 テレビ接続 ストリーミング / HDMI / 802.11b/g/n / 1080p ) GA3A00035A16
- 出版社/メーカー: Google
- メディア: Personal Computers
- この商品を含むブログ (33件) を見る
chromecastに対応したアプリの情報をchromecastに飛ばしてテレビに表示させることができます。
セットアップは、PCをWiFiネットワークにつなげたことがあれば問題なくできると思うので省略します。
chromecastの機能のポイントは、
- chromecastに対応したアプリしかテレビに表示させることができない
- 対応アプリでは、PC/スマホからchromecastに映像を送るのではなく、chromecastがそのコンテンツをインターネットから持ってくる
です。(と、理解している)
ただ、2つ目に関しては、ローカルに保存した動画をPCのchromeブラウザで再生したらTVで見られたので、chromeブラウザで表示できるものはなんでもTVで見れると言う方が正しそうですね。でも、音がたまに途切れたりしたので、コンテンツによっては厳しそう。
全体構成のイメージはこんな感じです。
できることとかをまとめるとこんな感じだと思います。
勘違いがあれば、ご指摘ください。
現在できること
- PC(Windows/Linux。Macはすいませんよく知りません)
- ChromeブラウザにGoogle Cast - Chrome Web Storeをインストールすることで、chromeブラウザの画面を飛ばせるようになります。
- スマホ(android), iPhone/iPad
できないかと思いきやできること
できないこと
DVDをPCで再生してTVでみるコンテンツが自分のPCにしかないものは無理。もちろん、DVDと同じコンテンツがインターネット上から見れるなら話は別です。
手持ちの動画ファイルをPCで再生してTVでみる理由は同上と思っていたのですが、chromeブラウザで再生できるフォーマットだったらTVでみれた
#12/10追記 まだ正式機能ではないようだけど、デスクトップを転送できるので、↑は一応できるみたい。
ちょっと頑張るとできること
今のところのとても満足してます。
ひとつうれしい誤算だった(あんまりちゃんと考えいていなかったところなのです)のは、chromeで再生中のニコ動をchromecastに飛ばしてから、PCで別の作業を初めてもTVではニコ動が表示され続けるってことですね。
サブモニタ的な使い方もできる感じですね。