RASPBERRY PI ZERO W でLチカ
用意した物
- ピンヘッダを取り付けたラズパイは既にあります。 Amazonで購入。
どれもこれもたくさん入っていて、単純なLチカだと余ります
とは言え、Lチカセットみたいのを購入するより割安。皆で分けても良さそう- ブレッドボード
- ジャンパワイア
- LED
- 抵抗
5pcs SY-170 ミニブレッドボード カラフルブレッドボード [並行輸入品]
- 出版社/メーカー: HiLetgo
- メディア: おもちゃ&ホビー
- この商品を含むブログを見る
HiLetgo 40PCS デュポン ワイヤー ジャンパー ブレッドボード 接続ワイヤー (オス-メス)1P-1Pピッチ 2.54mm 長さ 20CM [並行輸入品]
- 出版社/メーカー: HiLetgo
- メディア: おもちゃ&ホビー
- この商品を含むブログを見る
HiLetgo 3mm LED ダイオード LED電子部品バッグ 5種類 各20pcs 合計100pcs [並行輸入品]
- 出版社/メーカー: HiLetgo
- メディア: おもちゃ&ホビー
- この商品を含むブログを見る
- メディア:
- この商品を含むブログを見る
Lピカ
- まず、お試しで、Lピカを・・・
奥側の一番右のピンが3.3v(常時通電)のピンなので、GPIO(23)に繋げたジャンパワイアをそこに差し替えてLEDが発光するかお試し。
うん、光りました。OKそう。
Lチカ
- 差し替えたピンを元に戻して・・・
- 以下のソースを記載したpyファイルを作成し、
sudo python xxx.py で実行する
import RPi.GPIO as GPIO import time pin_no = 16 GPIO.setmode(GPIO.BOARD) GPIO.setup(pin_no, GPIO.OUT) try: while True: GPIO.output(pin_no, True) time.sleep(0.05) GPIO.output(pin_no, False) time.sleep(0.05) GPIO.output(pin_no, True) time.sleep(0.05) GPIO.output(pin_no, False) time.sleep(0.75) except KeyboardInterrupt: pass GPIO.cleanup()
Raspbianのsudo viでpiユーザーと同じ.vimrcを適用させる方法
次のコマンドを実行するだけ!
sudo ln -s /home/pi/.vimrc /root/
- 当然piユーザーで.vimrcを作成しておく必要がありますが・・・
【Swift】AVAudioPlayerのinitializeでエラー!?
- AVAudioPlayerを使ってmp3を再生しようと実装をした時にハマったこと・・・
- 以下のソースの様にAVAudioPlayerをイニシャライズしようとすると、何故かその行でブレイクしてしまう・・・何かの例外はキャッチして止まっているようだが、何も情報が出ない・・・。にもかかわらず、ステップアウトしていくと、クラッシュするでもなくそのまま処理が進んでってしまう。なんじゃこれは。。。
AVAudioPlayer(data: data, fileTypeHint: AVFileTypeMPEGLayer3)
- これでいいのか!?
- ググってもなかなか解決策が見当たらなかったのだが、ようやく以下のリンク先にあるやり方で解決。例外が発生すると、そこで自動的にブレイクする設定にしていたのだが、その例外の種類を全開にしていると起こるようだ。。。「All」から「Objective-C」に変えたら確かに起こらなくなった。以下のリンク参照
【Swift】UIToolbarをキーボードと一緒に上げ下げしたい
画面の下に張り付いているUIToolbar… こいつを画面下から現れるキーボードと一緒に上げ下げしたい!!
- ようやく答えを見つけた。以下のリンクを参照してなんとか解決。
- リンク先はconstraintsの参照をViewControllerにもたせていたが、identifier使って取ってみた
@objc private func keyboardWillShow(_ notification: Notification) { let frame = notification.userInfo![UIKeyboardFrameEndUserInfoKey] as! NSValue let height = frame.cgRectValue.height let duration = notification.userInfo![UIKeyboardAnimationDurationUserInfoKey] as! Double UIView.animate(withDuration: duration) { super.view.constraints.first(where: { (constraint) -> Bool in return constraint.identifier == "toolBar" })!.constant = height super.view.layoutIfNeeded() } } @objc private func keyboardWillHide(_ notification: Notification) { let duration = notification.userInfo![UIKeyboardAnimationDurationUserInfoKey] as! Double UIView.animate(withDuration: duration) { super.view.constraints.first(where: { (constraint) -> Bool in return constraint.identifier == "toolBar" })!.constant = 0 super.view.layoutIfNeeded() } }
【Swift】複数のUITextFieldを1つのUITextFieldDelegateで扱う時の話
- 下記の事をやったときに、どのUITextFieldを操作しても同じDelegateメソッドが発火してしまう。DelegateメソッドのパラメータにUITextFieldが渡ってくるのだが、配置したUITextFieldのどれでDelegateが発火したかどうやって判断するのが良いのか?
- ViewControllerに複数のUITextFieldを配置
- UITextFieldのdelegateをそのViewControllerに接続
- ViewControllerでUITextFieldDelegateをimplements
- UITextFieldにtagを付けて、パラメータで渡ってきたUITextFieldのtagで判断する
- UITextFieldを@IBOutletで参照し、その参照とパラメータが同じかどうかで判断する
どっちかな〜〜
【Swift】NavigationControllerで1つ前の画面に戻る方法
NavigationControllerで1つ前の画面に戻る方法
- 気がつくと忘れてしまう
self.navigationController?.popViewController(animated: true)
フィラメントLED
・さて、どれがLEDでしょうか?
まさかこんなLEDの電球があるとは思わなかった。答えは一番左端の奴がLED。これ全然わかんないでしょ。LEDの右隣が10Wの白熱電球。で、更にその右隣が25Wの白熱電球。LEDなのに全く違和感なし。これなら全部LEDにしちゃっても問題ないな。
LED シャンデリアランプ 2W E17金口 C35 電球色相当 フィラメント ライト 雰囲気重視 レトロ電球 3個セット 電球色
- 出版社/メーカー: Amanda
- メディア:
- この商品を含むブログを見る
Swiftでバーコードを読もうとした時のエラー
バーコードでエラー
- Swiftでバーコードを読んでみようと、ちょっとやってみた。
すると、以下のエラーに出くわした。
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[AVCaptureMetadataOutput setMetadataObjectTypes:] Unsupported type found - use -availableMetadataObjectTypes'
正誤表
どうも、処理の順番がマズってたみたいだ
- 正
let aVCaptureMetadataOutput = AVCaptureMetadataOutput() aVCaptureMetadataOutput.setMetadataObjectsDelegate(self, queue: DispatchQueue.main) aVCaptureSession!.addOutput(aVCaptureMetadataOutput) aVCaptureMetadataOutput.metadataObjectTypes = [AVMetadataObjectTypeEAN13Code, AVMetadataObjectTypeEAN8Code]
- 誤
let aVCaptureMetadataOutput = AVCaptureMetadataOutput() aVCaptureMetadataOutput.setMetadataObjectsDelegate(self, queue: DispatchQueue.main) aVCaptureMetadataOutput.metadataObjectTypes = [AVMetadataObjectTypeEAN13Code, AVMetadataObjectTypeEAN8Code] aVCaptureSession!.addOutput(aVCaptureMetadataOutput)
何が問題かって言うと、「metadataObjectTypes」に値を設定するタイミング・・・
SessionにaddOutputした後、じゃないと駄目みたい。