shigeの備忘録

日々の生活の備忘録です

SunFounder 10.1 inch IPS LCD Monitor for Raspberry Pi +ラズパイ4Bで画面のちらつきが頻発した件

amazonにて購入したラズパイを組み込める液晶。

12Vの入力で内部基板より5V3Aをラズパイに供給する仕様だ。

値段も手ごろで、ラズパイを組み込めるので、見た目がスッキリするのが良い。

 

 

セットアップも楽で、HDMI(TypeD)と電源(USB TypeC)を接続するだけ。

 

のはずだったが、頻繁で接続が切れて暗転する現象が発生した。

ラズパイ側の設定を変更することで収まったので、備忘録として残す。

 

boot/config.txt を編集

以下の通り、コメントにされている4行をアンコメント。

 

再起動で、改善を確認。

 

以上

 

 

 

HC-05設定 Aliexpressで偽物をつかまされた話

HC-05の備忘録。

「AT」と送信して、「ERROER:(0)」が返る人はあきらめた方が良いのかもしれないという結論。

 

Aliexpressは安いので、たまに利用する。

同じような販売形態のamazonと比較して、偽物や故障率が高い。

amazonも故障率が高いが、さらに高いイメージ。

 

今回はBluetoothモジュールHC-05をAliexpressで4個購入した。単価は300円程度。

Amazonでの単価は1200円くらいだったので、4個買っても同じ値段。

安物買いの銭失いだったわけだが。

 

購入して、早速ATコマンドで設定変更しようとした。

「AT」を送信。

ERROER:(0)と返信されるのみ。他の参考サイトを見ても「AT」を送信

した場合、「OK」以外返ってくる例が無いので、困惑した。

 

今回は4つ購入したが、すべて同じ結果。。。

ロジックアナライザ(KKHMF 24MHz 8ch)で確認しても、UARTの送信文字は正しい。

信号レベルがまずいのかとわざわざVCCを5V、ロジックを3.3Vにしてみても同じ。

 

途方に暮れて下記の記事を読む。

https://eggelectricunicycle.bitbucket.io/Flash_and_Debug_STM32--Flash_firmware_using_Bluetooth--ZS-040_Bluetooth_module.html

 

ここでわかったことが、私が購入したものは「ZS-040」と記載のあるHC-05の

コピー品。そして、衝撃的なことにいくつかバージョンがあり、対応するATコマンドの

種類が違うこと。まったく対応していないものもあるとのこと。

 

。。。つまり、ATコマンド未対応のバージョンもある?

確かに実装のチップが他サイトで見た他のどの基板とも違う。。

 

ということでAmazonで再度購入した結果、普通にATコマンドが使用できた。

ATコマンドは以下のように設定。

 

 

結論として、

HC-05模造品には、ATコマンド未対応のものがある。

最小命令の「AT」を送信して、「ERROER:(0)」が返るものはATコマンド未対応

の可能性がある。

 

ちなみにモジュール名やボーレートが変えられないのは致命的だが、初期値で良いなら普通に使えている。

 

同じ症状の人は、買い替えた方がいいという話。

モダンC言語プログラミング 花井志生 著 第一章の備忘録

モダンC言語プログラミング

花井志生 著

 

第一章 概要

C言語の需要は増えている・・・

低スペックマイコン等の需要が増える中で、リソースとしてC++等が使えない環境でもCは動くため、まだまだ組み込み用途ではCの需要がある。

 

Cとデザインパターン・・・

GoFデザインパターンを指すが、これはオブジェクト指向言語をベースにしているが、C言語でも活用可能。

 

Cとエクストリーム・プログラミングより、CとTDD(テスト駆動開発)・・・

実装を行う前にまず作成したい機能を検証する単体テストを作成し、そのテストをパスするように最小限の実装を繰り返していくのがTDDの考え方。一見手間が増えると思うが、常にテスト可能であることで品質が向上する。

TDDを導入するには以下の支援ツールを活用すべき。

 ①単体テストツール

  テスト対象に入力を与え、その結果を検証する枠組みを提供し、テスト結果をレポートする。

 ②カバレッジ測定ツール

  単体テストが想定通りに本体のコードをテストしているか検証するため、コードの中から実行されたテストカバー率を算出する。

 ③モック化ツール

  テストのハードウェアに依存している個所に対し、相互作用相手にモックと呼ばれるニセモノを用意して、相互作用させる。

 

Cとエクストリーム・プログラミングより、Cとリファクタリング・・・

リファクタリングはプログラムの体質を改善する作業を指すが、最もよく使われている解釈は、「プログラムの外部インターフェースを変更せずに内部を改善する」というもの。

リファクタリングを実行するのに大切なのはTDD。つまり先に単体テストを作成する点にある。

 

まとめ・・・

Cによる開発には以下のような特徴がある。

・テストが困難

・ターゲット機器でアプリケーションが使用できるリソースが限られている

・大量にばらまかれ、保守が困難

・OSがない環境も多い

プログラマが注意、管理しなければならない決まりが多い

・ターゲット機器のハードウェアバグ(エラッタ)も多く、たいていソフトウェアでカバーしなければならない

 

Cのモダンな開発スタイルは

IDEを活用する

デザインパターンを活用する

テスト駆動開発を活用する

リファクタリングを行う

継続的インテグレーションを用いる

 

モダンな開発スタイルを用いることで、以下の効果が得られる。

デバッグが容易になり品質、生産性が向上する

単体テストにより品質、生産性が向上する

リファクタリングによりコードの構造の改善が可能になる

・フィードバックがすぐに得られる

・ソフトウェアが常に動く状態で保存される

・正式なビルドが規定される

・レポート機能により状況、履歴をいつでも確認できる

 

参考文献

エンタープライズ アプリケーションアーキテクチャパターン Martin fowler著

https://www.amazon.co.jp/%E3%83%A2%E3%83%80%E3%83%B3C%E8%A8%80%E8%AA%9E%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-%E8%8A%B1%E4%BA%95%E5%BF%97%E7%94%9F/dp/4048913093/ref=asc_df_4048913093/?tag=jpgo-22&linkCode=df0&hvadid=295706574430&hvpos=1o1&hvnetw=g&hvrand=7736302605854881899&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=1009497&hvtargid=pla-523780179336&psc=1&th=1&psc=1

 

 

 

【Kicad】 ライブラリの追加方法

  

  1.  ライブラリ登録は意外と面倒                             kicadの話題第一弾。漠然と作る基板の発想を膨らませている今日この頃です。コストが安く、入手性が良い、またなるべく汎用性が効く構成というこで...arduino nano + xBee のIoTボードで、外部コネクタに各種センサを接続し、クラウドセンシングする...ような汎用ボードを作ることにした。まずは回路図を作成していたが、初めに当たった壁としてKiCADにデフォルトで収録されているライブラリに使用予定のXbee_S2B_PROが無かった。ライブラリの登録は避けては通れないということで、ネットで情報を集めつつ、ライブラリの登録まで完了したため、書き記す。                                                                             
  2.  便利なライブラリの登録方法 コンポーネントビルダー                 ライブラリを登録するにはKicadのホームの「シンボルライブラリーエディター」より作成すれば良いのだが、CAD上で作成するのは中々に...面倒。使ってみればわかるが、全てのピンの名前をひとつずつクリックして入力する必要がある。今回作成したXbee_S2B_PROは20pinだが、100pinを超えるチップを登録すると考えると、ぞっとする。そんな問題を解決するwebアプリがある。それがコンポーネントビルダーだ。

    KICAD quick library generator                              今回はこのアプリを使用して、Xbee_S2B_PROのライブラリを登録してみる。                                        

  3. Xbee_S2B_PROのライブラリを作成する                         赤枠の名前とピン数、レイアウトのみを選択し、「assin pins」を選択する。                         f:id:monohon1116:20181117190720p:plain                                                                                                                                                                                                             次のページではピンアサインの入力。※情報はこのサイトより拝借しました。http://nanoappli.com/blog/archives/4191                            

    f:id:monohon1116:20181117185939p:plain


    入力が完了したらプレビューにて確認する。問題なければ「build library component」を押すと.lib形式のライブラリファイルがダウンロードできる。

    f:id:monohon1116:20181117195049p:plain

    最後にライブラリを追加すれば完成非常に簡単に出来ました。今日はここまで。

 

 

Arduinoの開発環境構築まで

 

Arduino - Software

から最新版ver.1.8.7をダウンロード(2018年10月18日現在)

今回はwindows10版をダウンロード。

 

f:id:monohon1116:20181018210424p:plain

 

 自ページで募金を求められるが、ここはダウンロードのみ(Just Download)を選択。

 

 

f:id:monohon1116:20181018211313p:plain

 

Microsftのページに飛ばされ、「入手」にてダウンロード兼インストール開始。

f:id:monohon1116:20181018211659p:plain

 

                                                                          -以上-

SDカードをフォーマットできる便利なソフト

            前回の記事でRaspberryが起動しなくなった経緯を書いたが、そのSDカード

   の復旧に便利なフリーソフトが役に立ったため、その詳細を書き記す。

 

   1.SDカードフォーマッターに出会ったきっかけ

    症状として、PCの機能(ドライブ一覧のSDカードアイコンで右クリック)

    でフォーマット機能があるが、実行した際に容量が4Gbyte程度に減少した。

    元は32Gbyteのため、おかしいな?とは思ったが、デバイスとドライブを

    確認しても、容量が少なく表示され、抜き差し等しても戻らなかった。

 

    その後に新しいraspbianOSを入れようと、Win32Disk imagerを使ったが、

    もちろん容量エラーで弾かれる事態に...。

 

    そんな時に出会ったのが、SDカードフォーマッター(SD card formatter)だ。

              フリーソフトで且つ、使い方も簡単。認識されたSDに対し、「フォーマット」

              で完了。容量も29Gbyteに戻り、その後問題なくOSの書き込みも完了した。

 

f:id:monohon1116:20181010220804p:plain