エンジニア風味 (Engineer-taste)

電子系エンジニアのメモ帳

BNO055基板が動かない

BNO055のモジュール基板(GY-BNO055)を密林で購入しました。https://blog.hatena.ne.jp/engineer-paju/engineer-taste.hatenablog.com/edit?entry=17680117127179534683#textarea で、Arduinoに接続し、I2Cで動かそうとしたら、全然動かないのです。BNO055…

Nanoは燃えているか?

ノートルダム大聖堂も燃えてしまいましたし。で、ちょっと前にAmazonで買った純正でないNano(3ケ入りお買い得パック)にArduino IDEで書き込みしようとしたら、なぜか書き込みができない、という問題に遭遇しました。USBポートデバイスがCH340であることは…

ESP-WROOM-02で無線LANチャイムをつくる(Server編)

ということで、先週に引き続き、ESP-WROOM-02で無線LANチャイムをつくる、を書きます。 まず、チャイム本体は朝日無線(ELPA)の「お知らせチャイムCDS-100」 というのものを使いました。 (お約束ですが、改造したことにより、メーカー保証は受けられなくな…

ESP-WROOM-02で無線LANチャイムをつくる

今まで315MHz帯の無線チャイムを使っていたのですが、意外に電波が届かなくて、鳴ったり鳴らなかったりという状況で、無線LAN経由でチャイムを鳴らすガジェットを作りました。 今回は送信器編です。回路については、Expansiffのユーザマニュアルにある回路を…

Simulinkで書き込んだArduinoをスタンドアロンで動作させる

今回は、温度センサtmp275をI2C接続したArduinoにSimulinkからプログラミングし、Simulinkなしで、Arduinoをスタンドアロンで動かす、というのをやってみます。前回のとおりに、SimulinkのArduino用Add-onはインストール済みだとしますwww.engineer-taste.co…

Simulinkからarduinoにアクセスする

MATLABでコードを書いてArduinoに転送して、Arduinoにつながっているセンサなどを動かすほかに、Simulinkで記述して、Arduinoに転送して動かす方法もあります。SimulinkでArduinoを動かす場合は、一度コードを転送すると、Arduinoがスタンドアロンで動いてく…

気圧センサSCP1000-D01にMATLABからArduino経由でアクセスする(SPI通信)

前に気圧センサMPL112A2をArduino経由でMATLABのアドオンからアクセスする記事を書きました。 あれは、インターフェースがI2Cでの通信でしたが、今回のSCP1000-D01はSPIでの通信です。 UnoとSCP1000の接続は下記のようにしました。SCP1000-D01は秋月電子のモ…

FTDIデバイスを複数使う

複数のFTDIデバイスを1台のPCに接続すると、制御がややこしくなります。また、FT2232Dのように複数のチャンネルを持つデバイスもあります。 制御のコツについて、まとめてみました。1.デバイスを把握する FTDIが配布するプログラムFT_Progを起動します…

外国人との遭遇

仕事の打ち合わせとか、学会参加とかで、たまーに新幹線に乗るのですが、東海道新幹線の最寄駅に『のぞみ』の止まらないので、時間が合えば『ひかり』に乗ります。 オリンピックも近いせいか、外国人観光客が増えたなという印象があるのですが、外国人用のJ…

【回路図】つながっているのか?

最近は、手書きで回路図を書くことも少なくなってきました。 CADで書いてしまえば、ネットリストやパーツリストが自動で生成されます。 なので、使う機会があるか不明ですが、自戒を込めて書きます。図1例えば、図1のような回路があったとします(エミッタ…

特許文献に著作権はないのか?

いろいろ調べたらあるそうですね。以前、勤務先で競合先の出願特許のウォッチングをしていたら、同僚が「自分の特許の図面が、よその特許文献に使われている」のを発見しました。 特許の明細書は、 1)従来の技術の説明 2)従来の技術の問題点 3)自分が…

ESP8266がコンパイルできない

超特急Web接続!ESPマイコン・プログラム全集超特急Web接続!ESPマイコン・プログラム全集[CD-ROM付き] を買ったので、手元のESP-WROOM-02開発ボードを使って、Arduinoでサンプルスケッチをコンパイルしようとしました。コンパイルエラーなぜか、コンパイルエ…

気圧センサMPL115A2にMATLABからArduino経由でアクセスする

MATLABのArduino用Add-onを用いてArduinoを制御し、Arduinoに接続されたセンサの情報を取ります。 気圧センサにはFreescale社(現NXP)のMPL115A2を使いました。 MPL115にはI2C接続(A2)と、SPI接続(A1)があり、今回用いたのはI2C接続のMPL115A2です。 前に秋…

特許は自分で書くもんじゃないの?

まず、お約束で書いておきますが、以下の内容は私個人の意見であり、所属する機関とは関係ないものです。Chem-Stationを見ていたら、論文と特許の比較についての記事がありました。 www.chem-station.com概ね、そのとおりだと思ったのですが、 「論文は自分…

Data loss issue in FTDI FT232H and FT2232H Sync 245 FIFO Mode (Clock Control)

I analyzed the Sync FIFO Mode data loss that FT device was going well but data loss caused. As below figure, the couter or FIFO is controled by FT device and data transpose to PC.FT232H & Counter(FIFO)When #TXE is Low, data intake to FT de…

FT232HのSYNC 245 FIFOモード(クロック制御編)

FT232HのSync245Modeで、FT232H自体はちゃんと動いているはずなのに、データをロスするという状況を解析してみました。下図のように、Sync Clockによりカウンタもしくは外付けのFIFOメモリなどからデータをPCに転送するとします。FT232Hと外部FIFO#TXEがLow…

Arduinoのアナログ・リファレンスが使いにくい

Arduinoからアナログ入力して、A/D変換するというプログラムは、 void loop() { int X; X = analogRead(A0);とか書いてしまえば、A/D変換したデータが取り込めてしまうので、便利でいいなあと思っていたところ、 デフォルトでは、0~5V(3.3V電源の場合は0~…

特許は技術文書じゃないのか?

1/24の日経新聞電子版の記事www.nikkei.com を見ました。 有料記事で途中で切れているけど、かいつまんで書くと、こんな感じ。A社が持つ特許が、B社が勝手に自社の製品に使っているじゃないの?と思っても、証拠を見つけるのが難しい。最近はプログラムで…

MATLABでFTDIのBitBangを行なう

MathworksのFileExchangeにサンプルプログラムが投稿されています。 jp.mathworks.com 基本構成はVC++などのサンプルプログラムと一緒で、DLLを指定し、 f = NET.addAssembly('C:\FTD2XX_NET.dll');FTDIをオープンし、 fo=FTD2XX_NET.FTDI; pause( 1);%準備…

Arduinoとセンサの接続インターフェース

Arduinoの動く環境はATMEL社(今はMicrochip社)8bitマイコンであり、AVRシリーズが開発されたのが 1996年なので、かなり古いと言えます。 電源電圧は1.8Vから5Vまで対応可能になっていますが、電源電圧が低くなるにつれて動作可能な最大周波数が 低くなり、…

Data loss issue in FTDI FT232H and FT2232H Sync 245 FIFO Mode (Part3)

coutinuation of PART2 I examined various signal of FT232H. And I found TXE# status signal go to Low level without timing of FT_READ. For example TXE# go to Low when is in FT_OPEN or FT_Purge.TXE# waveform in FT_OPENTXE# waveform in FT_PURG…

Data loss issue in FTDI FT232H and FT2232H Sync 245 FIFO Mode (Part2)

Continuation of Part1I searched and found several same data-loss case. This trouble can see since early 2010's, and even now. The data-loss causes every 500 data (my case is every 510). And remaining data is correct. Such as device like FT…

Data loss issue in FTDI FT232H and FT2232H Sync 245 FIFO Mode (Part1)

FT232H (FT2232H) has SYNC 245 FIFO mode, and this mode works several score times as BitBang mode. To work FT232H(2232H) in SYNC 245 FIFO mode, it needs to rewrite EEPROM. In this page, I omit how to rewrite.In SYNC 245 FIFO mode, FT232H ge…

FT232HのSYNC 245 FIFOモード(その3)

(その2)の続きです。しょうがないので、いろいろ信号をオシロで見てみました。 わかったことは、TXE#の信号がFT_READ以外のタイミングでもLowになることです。FT_OPENのときFT_PURGEのときFT_READのときのTXE#波形FT_OPENとかFT_PURGEのときは、FTDIデバ…

FT232HのSYNC 245 FIFOモード(その2)

(その1)の続きです。データロスに関しては、ググッてみますと結構起こっているようです。 私が調べたところだと、2012年からわりと最近まで報告がありました。 頻度はだいたい500回に1回程度で、データ化けが発生する、それ以外のデータは 問題ない、と…

FT232HのSYNC 245 FIFOモード(その1)

FT232H(もしくはFT2232H)はSYNC 245 FIFOモードというのがあり、BitBangモードの数十倍程度の転送レートがあることが知られています。 SYNC245FIFOモードで動かすためには、EEPROMの書き換えが必要で、その辺は、こことか、ここに書いてあるので省略します…

MATLABのArduinoアドオンを用いてセンサ情報を取得する(6)

(5)の続きです。データが取れたら、変換します。 tmp275によると、データはMSBから送られてきて、先頭から8ビットが温度の整数部になります。 例えば先頭8ビットが'0001 1001'だったら25℃で、以下のビットが温度の小数部です。 なので、MATLABでは、 te…

MATLABのArduinoアドオンを用いてセンサ情報を取得する(5)

(4)の続きです。同じように、 write(tmp275,0,'uint8'); は、「tmp275に」、「0を]、「書きなさい」となり(レジスタ指定がないことに注意)、 pause(0.5); data=read(tmp275,2,'uint8'); は、「tmp275」から「2バイト分の」、「データを読みなさい」と…

MATLABのArduinoアドオンを用いてセンサ情報を取得する(4)

(3)の続きです。 writeRegister(tmp275,1,hex2dec('E0'),'uint8'); とか、 write(tmp275,0,'uint8'); とか、 data=read(tmp275,2,'uint8'); で、Arduinoとセンサがやり取りしているのですが、実際にシーケンスを取っているのかを観察してみました。 write…

MATLABのArduinoアドオンを用いてセンサ情報を取得する(3)

(2)の続きです。 MATLABのアドオンを使って、センサ情報を取得する場合にはArduinoに直接プログラミングはしません。 なので、Arduino IDEなどは触らなくてよいことになります。ここでやろうとしている温度センサtmp275からI2Cで情報を取り出そうとする場…