N tuple’s blog

気がつけばいつも周回遅れ、えせエンジニアのメモ書き

久しぶりのArduino、ATtiny13Aの開発を行う

レジストに印刷されたイタリアがかっこいい!

f:id:ntuple:20160626175828j:plain

何周遅れかわからないほどの周回遅れだけどArduinoを再開、

これは随分前、ユーロが高かった頃に買ったものだ

何をしたいのかと言うと、リモコンでTVの電源、音量制御のコントローラーを作るのだ

 

昔買った Arduino Duemilanove が今の環境で使えるのか確かめてみた

 

なんの問題もなく使える、ちょっと拍子抜け

USBドライバーを入れなくても認識されましたよ、進歩しているのね

 

Arduioの設定は

 〔ツール〕⇨〔ボード〕からArduino Duemilanove or Diecimila を選択

 〔ツール〕⇨〔プロセッサ〕から ATMega328 を選択

 〔ツール〕⇨〔シリアルポート〕からcu.usbserial-A9007WJw を選択

 

ダウンロードページ

 Arduino 1.6.9  Arduino - Software

 

ArduinoでATtiny13Aの開発をする

Arudino でATinyのプログラム開発し、Arduino を書き込み機にしてチップに焼くこともできるらしい。

IDE Ver 1.0.5 なら割とすんなり環境を整えることができるようだけれど、Ver 1.6.9 では少し手直しが必要でした。

ATtiny 44/84/45/85 ならVer 1.6.*で正式サポートされているようです。

参考ページ

Ver1.0.5でATtiny13を開発 Arduino IDEでATtiny他の開発(Arduino-ISP編)

Ver1.6.*でATtiny 44/84/45/85を開発 Programming an ATtiny w/ Arduino 1.6 (or 1.0)

 

ARMやIntelのCPUを仲間に加えるためにいろいろと修正が必要になったみたい

変更するのは

  • ディレクトリー名の変更
  • テキストファイルの修正(2ファイル)

 

やってみよう

1、ATtiny13開発の関連ファイルを取得する

 Core13 から Released /core13_022_arduino_1_6.zip をダウンロードします

 

2、ダウンロードした "attiny13" をAruinoのスケッチ保存ディレクトリに移動

 書類/Arduino/ の下に hardware と名のディレクトリを作ってその中に展開した attiny13 を移動します。

 

3、一部のディレクトリ名を変える

ディレクトリの構成と変更するところ(一箇所)を示します

$ tree -d

.           ※(スケッチの保存場所)

└── hardware    ※(ディレクトリーがなければ作る)

   └── attiny13    ※(2でダウンロードしたもの)

       └── avr

           └── cores   ※この名前を variants に変更する

               └── core13

 

4、テキストファイルの置き換え

次の2つのファイルを置き換えます

  • hardware/attiny13/avr/boards.txt
  • hardware/attiny13/avr/platform.txt

 置き換えるファイルは下のリンクから

 ファイルの保存場所

 参考ページ boards.txt,platform.txtの設定方法の説明 

 Setup Arduino IDE to program Attiny 13/44/45/84/85

 

〔ツール〕⇨〔ボード〕から ATtiny_13 を選択、コンパイルできるようになりました

f:id:ntuple:20160626181111p:plain

 

単なるLチカで42%も使う。アセンブラを使わないとダメかも

最近のiOSアプリ開発はどうなっているのだ?

iOSの進化と共にObjective-CXCodeも進化しているようだ、最近はどうなっているだろう?

先人たちの知見を拝借、メモに残します

 

iOS開発はSwiftという新しい言語が使える

ふむ、Objective-Cじゃなくてもいいのか。

しかし、今回は納期もあまりないから(先人たちの)実績が多いObjective-Cにしよう。

Objective-CやCのライブラリーとうまく繋がるのかな?たぶん大丈夫なんだろうけど。

 

・メモリー管理はARCにまかせる

retainとかreleaseをいちいち書かなくても良いらしい、ありがたい。

autoreleaseも不要、というより書いちゃダメとのこと

 

インスタンス変数の代入・参照は @property を使う

setter,getterをコンパイラーが生成してれるようだ、コードが見やすくなりますね。

hoge.val みたいにドットで参照、設定ができるのもいいかも。

オブジェクトの所有関係により strong weak の指定をすること

スレッドセーフにするかどうか等のパラメータがあるようだ、あとで調べよう。

 

・インターフェースビルダーはXCodeに組み込まれた

XCodeと行ったり来たりしなくてもいいんだな

 

・IBOutlet、IBActionはインターフェースビルダーとの繋がりを示す

なんか初めの頃に、これに引っ掛かって進めなくなったんだよ

単にインターフェースビルダーへの手がかりを与えるキーワードだったんだな

iOSの世界は全てをコードに記述する必要はなくて、あらかた暗黙的にやってくれるのだが、何をどこまでやってくれるかの境界が見えない間はかえって混乱してしまうのだよ。

main() から書くのが当たり前の世界でコードを書いてきたからなあ。

スッキリしたい方、先人の教えへどうぞ

 iOSアプリ開発初心者だがIBOutletとかIBActionって何なのさ(^_^;)

 

・main()はそのままでいい

main()を修正する必要はなさそう

メインでやることはだいたい決まっているのでフレームワークという共通メインルーチンに任せる。

起動やタップなどの事象が発生した時に呼ばれるメソッドに必要な処理を記述する。

 

・[ ]の中は smalltalk の世界

なるほど、[object message]とみれば smalltalk そのもの、外側はCの世界

 

・実機で動作させてみるには iOS Developer Program に入る必要あり

¥11,800(税別・年間)

高い気もするけど必要な投資、いよいよ後に引けなくなってきたぞ。

iOS アプリ開発の初めかた

以前からiOSのアプリを作ってみたくて本を読んだりしたけれど、途中で投げ出してしまってた。

このままじゃ一生アプリを作らないかもと思い、作らざるをえない状況に追い込んでみた。

つまり、仕事としてiOSアプリ開発を受注した。大丈夫か。

 

クライアントの

 「経験はおありですか」

というお約束の質問には

 「もちろんです、お任せください」

とこれまたいつものハッタリで答え、あとには引けない状態に突入。

 

まあ、XCodeを使って"Hello World"を表示したことはあるから丸っきりのウソじゃない、シミュレータだけどね。

仕事を頼む側からすれば経験のある人に任せる方が安心なのでしょうが、コンピュータの応用範囲は広がる一方だし、同じ仕事の繰り返しじゃあ作る方もつまらないから新しいことに挑戦したいよね。

いままでいろいろな仕事をこなしてきたけれど、どれも経験のないものを引き受けて、受注が決まってからから勉強を始めるのが常でしたね。

今はネットがあるし、先人たちが解決法を示してくれているからあまり不安を感じません。

昔は受注したその足で本屋に向かい、重たい本を何冊も抱えて帰ったものでした。

 

心の広い先人たちに感謝しつつ、後に続く人たちへの道標を残せればいいなあと思ってます。

かえって迷子にしてしまうかも

AX05から始まるSIMはロック解除アダプターが使えない

SIMフリー化したiPhone3GSを有効活用するためBB-ExciteのSIMを申し込んだ。

開通日は12月8日だが先にSIMが到着したので試しに入れてみたところ、SIMフリーのiPad-miniとiPhone4s、フリー化したiPhone3Gsは問題なく電波を掴む。

がしかし、SmartKingを使ってSIMロック解除しているiPhone4sに入れると

「不正なSIMです」と表示され使えなかった。

 

ググってみるとDocomonoのピンクSIMには対応してないらしい。

ピンク色でなくてもSIMの番号がAX05から始まるものはダメなんだって。

さらに最近発行されるDocomoのSIMはこのタイプになっているようだし、AX05に対応するアダプターが開発される予定はないとのこと。

 

f:id:ntuple:20141203221846j:plain

IIJmioのSIMを1枚残すしかないかな

BB-Exciteへの乗り換えをもくろんでいたのだけれどなあ

BBエキサイトのSIMを注文した

iPhone3GSのSIMフリー化が無事に成功したのでモバイル端末として復活、活用したいと思いました。

で料金がとても魅力なBBエキサイトとのSIMを頼んでみることにしまいた。

WEBからの注文でクレジットカードがあればOK。

1G/月のコースにしてみる。

 

注意するところ

  • SIMが届くまでに時間がかかる
     今日(11月22日)に頼んで、最短で12月8日でした。
  • SIMの交換はできない
     SIMのサイズ、SMSの有無の交換はできないようです。

OCNモバイルONEのSIMを追加してみた

OCNマイページの「追加の手続き」から「OCN モバイル ONE SIMカード/端末追加」をクリックする。

SIMは2日後に宅配便で到着、思ったより早い。

 

SIMロック解除したiPhone3Gsに入れて動作確認。

プロファイルをインストールするだけでOK

 

使用上問題ないようなら、家族全員のSIMをIIJmioからOCNへの乗り換えを考える。

iPhone3Gs iOS 6.1.6 SIMロック解除

iOSを6.1.6(iPhone3Gsの最終バージョン)にしてもSIMロックを解除できるみたいなので挑戦してみた。

参考にしたサイトは

今更ながらiPhone3gs完全脱獄! SIMロック解除もOK!

ですが、この通りの手順ではダメでした。

うまく行った手順をメモします。

 

私の条件

  • Mac10.6(10.9ではRedsn0wが使えなかった)
  • iPhone3Gs 32G 旧ブートROM
  • iOS 6.1.6

準備するもの

  • redsn0w (脱獄のために使う)
  • iPhoneファーム (iOS6.0のもの、6.1.6ではない)

流れ

  • iTuneを使ってiOS6.1.6にしておく
  • redsn0wを使って脱獄する
  • ultrasn0wをインストールしてSIMロック解除

 redsn0wで脱獄する手順

  1. iPhoneMacに繋いでおく
  2. redsn0w(redsn0w_mac_0.9.15b3)を起動
  3. Extras>Select IPSW でファームiOS6.0を指定、Backで戻る
  4. Cydiaのインストールのみチェックされていることを確認してNextクリック
  5. Jailbreakをクリック、ブートのタイプを聞かれるので No を選択
  6. iPhoneの電源を切り、Nextをクリック
  7. DFUモードにする(ボタンを押すタイミングに注意)
  8. 処理が終わるまで待つ

※DFUモードにするには

 電源ボタンを押したままにする

 2、3秒でリンゴマークが表示されるのでそのままホームボタンを押す

 10秒くらいしたらリンゴマークが消えるので電源ボタンを離す

 さらに10秒くらいホームボタンを押したままにしておく

 

 

SIMフリー化ソフトに対応するBasebandのバージョンにする

一旦iPadのバージョンを入れた後で05.13.03に下げる

  1. 再度redsn0wで install ipad baseband をチェックして4.〜7.を行う
  2. 再度redsn0wで downgrade from iPad baseband をチェックして4.〜7.を行う

脱獄がうまく行けば iPhone に Cydia というアプリがインストールされている。

このアプリを使ってSIMフリーにするための ultrasn0w を入れる

ここからはiPhoneのみを使います

  1. Cydiaをクリックして起動、初期設定などを行う
  2. 左下の「ソース」をクリック、右上の「編集」、左上の「追加」を押して
    http://repo666.ultrasnow.com を入れる
  3. 「検索」より Ultrasn0wを探してインストール

以上