こんにちは、なりなりです(^ ^)
修正内容は
iOS 11.0.2にはiPhoneまたはiPadの以下のバグの修正および改善が含まれます:
- ごく一部のiPhone 8および8 Plusのデバイスで通話中にパチパチという雑音が入る問題を修正
- 一部の写真が非表示になってしまう問題に対応
- S/MIMEで暗号化されたメールメッセージの添付ファイルが開けない問題を修正
こんにちは、なりなりです(^ ^)
【PSoC入門】プロジェクト生成からLチカまで - なりなり日記
PSoCによるプログラミング勉強の続きです。
今回は、USBポートを経由してWindows PCとPSoCを通信させます。
PSoCにはUSBUARTというUSBポートを使ってUART通信するコンポーネントが有ることは、本にも書いてあります。
CypressのサイトでUSBUARTの情報を調べてみると
http://www.cypress.com/file/53431/downloadhttp://www.cypress.com/file/53431/download
こちらが見つかって、サンプルプログラムが載っているため試してみようとすると、ビルド以前に、エディタ上で幾つかのワーニングが出て来てしまいます。そんな関数無いよ的な。どうやら、この資料のコンポーネントは古いようです。
Support: Live Chat Online, Tech Support & FAQ - Infineon Technologies
使っているのは、こちらのPSoC1などのUSBUARTと同じコンポーネントっぽいです。
ということで、更に自力...
実は、Create Project -> Code exampleでUSBFS_UARTというサンプルコードが生成出来ることに、後から気付きました…
まず、USBUART(CDC Interface)を回路図に置きます。USBポートは固定であるため、ピンアサインをする必要はありません。CDCって何かというと、
USBの通信規格には, CDC (Communication Device Class)というデバイス・クラスが定義されており、USB経由でUARTのように簡単にシリアル通信(送受信)することができます。CDCはWindowsパソコンで標準的にサポートされており、USB上でCDCに準拠したデバイスが認識されると、仮想的にCOMポートが生成され、一般的な通信ターミナル・ソフトウェア(TeraTermなど)で通信できるようになります。
なのだそうです。
僕自身、パソコンの細かいところには疎いので知らなかったのですが、こういったところは共通規格として定義されているんですね。プログラミングをやってみると、こういった勉強にもなります。
逆に、プログラミングをしない場合は、こういったことを知っていても仕方ないから知ろうとしないのですが。
PSoC Creatorの回路図上のブロックをダブルクリックするとプロパティ画面が開き、更にDatasheetボタンを押すとPDFが開きます。開くのはUSBFSのデータシートなので、更に、USBUART(CDC)のリンクをクリックします。詳細を理解したい場合はじっくり読む必要が有りますが、まずは軽く進みます。
Full Speed USB (USBFS) - Infineon Technologies
USBFSについては、こちらにも資料有り。
USBを使うとクロックレートに制限が生じるので注意ですが、PSoC Creatorが許してくれないので、間違った設定にはしようが有りません。
もっと言えば、勝手に設定してくれればと思いますけど(^◇^;)
USBUARTのサンプルプログラムの関数をひとつひとつ置き換えてmain.cを編集してみます。
変更前 | 変更後 |
---|---|
USBUART_1_bGetConfiguration | USBUART_1_GetConfiguration |
USBUART_1_bGetRxCount() | USBUART_1_GetCount() |
USBUART_1_ReadAll(Buffer) | USBUART_1_GetAll(Buffer) |
USBUART_1_Write(Buffer, Count) | USBUART_1_PutData(Buffer, Count) |
USBUART_1_bTxIsReady() | USBUART_1_CDCIIsReady() |
関数がことごとく変更されている...
※対応表はUSB FSのデータシートに記載されていました。
UDBで自由に出来る分、主要コンポーネントの作りも結構変わるのかもしれませんね。めんどくさい気もしますが、技術の変化に適応しやすいとも言えます。
結局、main.cは以下の様にしました。
#include "project.h" //#include <device.h> uint8 Count; uint8 Buffer[128]; uint8 Hello[20] = 'Hello , I'm PSoc!"; uint8 Count2 = 17; int main(void) { CyGlobalIntEnable; /* Enable global interrupts. */ USBUART_1_Start(0, USBUART_1_3V_OPERATION); while(!USBUART_1_GetConfiguration()); USBUART_1_CDC_Init(); /* Place your initialization/startup code here (e.g. MyInst_Start()) */ for(;;) { /* Place your application code here. */ Count = USBUART_1_GetCount(); // the number of bytes from PC if(Count != 0) /* Check for input data from PC */ { USBUART_1_GetAll(Buffer); // Input data from PC if(Buffer[0] == '?') // Echo data back to PC USBUART_1_PutData(Hello, Count2); else USBUART_1_PutData(Buffer, Count);// Echo data back to PC while(!USBUART_1_CDCIIsReady()){} // Wait for Tx to finish } } }
USBUART_1_Start()の第1引数(Device Number)はUSBUART_1コンポーネントのDevice Descriptionで確認出来ます。
PSoCを5Vで使っているなら、第2引数をUSBUART_1_5V_OPERATIONに変更します。
基本はPSoCが受信したテキストをそのまま返信するだけですが、「?」を受信すると「Hello , I'm PSoc!」と返します。
Programming後にPCのUSBケーブルを基板の右側のポートに挿し直すとデバイスとして認識されますが、実際にUART通信させるには専用ドライバのインストールが必要となります。
ドライバはPSoC Creatorが用意していてくれるので、作成したPSoCのプロジェクトが入っているディレクトリを指定してやれば、後は検索してインストールしてくれます。
マイクロソフトはCypressのドライバを知らないため警告が出ますが、無視してインストールします。すると「デバイスは正常に動作しています」と表示されるはずです。
これで、デバイスマネージャの「ポート(COMとLPT)」に「Cypress USB UART(COM6)」と表示されるはずです。うまく認識しない場合は、一度、抜き差ししてみます。COMナンバーは環境によって違うかもしれません。
動作検証にはTera Termなどを使っても良いのですが、せっかくなのでPythonを使います。
Pythonでシリアル通信するにはPyserialモジュールを使います。
Short introduction — pySerial 3.0 documentation
PyserialのOPEN/CLOSEの仕方などはこちらを参考に。
大したことはしないので、インタラクティブモードでコマンドを打ち込みます。
Pyserialモジュールですが、インポートするのはserialです。
importでエラーが出たら、モジュールがインストールされていないということなので、
コマンドラインで「pip install pyserial」としてインストールしてください。
>>> import serial >>> ser = serial.Serial(port = 'COM6', baudrate = 19200, timeout = 1) >>> ser Serial<id=0x1ec5bb0, open=True>(port='COM6', baudrate=19200, bytesize=8, parity='N', stopbits=1, timeout=1, xonxoff=False, rtscts=False, dsrdtr=False) >>> ser.open() >>> ser.write(b'?') 1 >>> ser.readline() b"Hello , I'm PSoc!" >>> ser.write(b'abc') 3 >>> ser.readline() b'abc'
ばっちり動きました。やっぱ、Pythonは便利ですね!
次は、割り込みの勉強する予定です。
実用的なプログラムを組むには、通常はmainのforループで回しておいて、タイマー割り込みやUART割り込みが入ったら何か別の処置をするとい処理が必要ですから。
また、大抵の場合、forループは常にフルスピードで回しておく必要は無いので、waitをかけて休ませたりもしますよね。これには、CyDelay(100)(100ms休ませる)を1行追加すると良さそう。
こんにちは、なりなりです(^ ^)
いやいや、すっかり忘れてました…
劇場版と同時公開されてたんですね!Tunesはシリーズ物の新作がリリースされたら教えてくれる機能が欲しいな。
予告編はこちら。
- YouTube
ガンダム THE ORIGINって何?って方はこちら。
3分でわかる『機動戦士ガンダム THE ORIGIN』 - YouTube
1話から4話のおさらいはこちら。
次の第6話の情報も出て来ています。
STORY|機動戦士ガンダム THE ORIGIN 公式サイト
第6話
「誕生 赤い彗星」宇宙世紀0079年1月23日、戦場はルウムにうつり、ジオン、地球連邦の両軍の戦いの幕が切って落とされた。
ジオン軍の若きエースパイロット、シャア・アズナブルは、自ら駆る赤いモビルスーツ「ザク」による目覚ましい活躍で名声を上げ、「赤い彗星」の異名をとるようになった。
そして激戦の末、和平交渉のテーブルにジオン、地球連邦がそろったとき、ある声明が世界中に発信される。
一方、地球連邦軍は反撃すべく「V作戦」を計画する。
そのころ、サイド7の平穏な日常のなか、少年アムロ・レイは自ら行動し、新兵器「ガンダム」の秘密を探りつつあった…。
こんにちは、なりなりです(^ ^)
iOS11について書くことが意外と見つからない…
ですが、やっぱ撮り直しの効かない写真とビデオは大切なので、新たに導入されて、かつ、今のところ iOS11でしか使えないHEIF/HEVCではなく、従来の JPEG/H.264に戻した方が無難です。
お節介なAppleが勝手にHEIF/HEVCにしてくれちゃってますから。
やり方は簡単。
設定→カメラ→フォーマットで、互換性優先に変更します。
更に、
設定→写真を見るとHEIF/HEVCフォーマットを自動的にJPEG/H.264に変換して転送してくれるようですが、どうも疑わしい。
こういうの、バグが含まれていて、転送出来ないとか、転送失敗するとか有りそうです。
後から気付いて後悔しないように、当面は
としておいた方が良いでしょう。
こんにちは、なりなりです(^ ^)
CYPRESS(サイプレス)のワンチップマイコンPSoC(ピーソック)始めました! - なりなり日記
こちらに書いたように
トラ技増刊号、基板付き体験編 ARM PSoCで作るMyスペシャル・マイコンに従って、PSoCの勉強をしましょう!
GPIOを使うためのCN1,2へのコネクタ取り付けは省略できますが、本文にも書いてある通り、JP1へのジャンパ取り付けは省略できません。
今時ジャンパと言われても、量産品にジャンパなど搭載しないため、開発の実験室には置いてないのですが…
僕は、仕方なくジュンフロン線を半田付けしてストラップしました。
まずは
PSoC™ Creator - Infineon Technologies
CypressのサイトからPSoC Creatorをダウンロードします。本に書かれている通り、TipycalインストールでOK。
作業ディレクトリが決まっているなら、Tools -> Options -> Project Managementで、自分の作業ディレクトリを指定しましょう。
第9章 Lチカチカあれこれを始める前にやるべきことが有ります。
本に載っているのはPSoC Creator 3.0ですが、今日現在公開されている最新バージョンは4.1 Update 1です。
この最新バージョンにバグがあるので注意です!
File -> New -> Projectで新規プロジェクトを生成します。Launch Device Selecterを選んで
CY8C5868AXI-LP035を選択します。
プロジェクトが生成されたら、そのままビルドします。
ビルドの途中から、Generated_Sourceというディレクトリが生成されて、様々な.cや.hなどが自動生成されるのが分かります。
これをしないで設計を続けて、本に従ってビルドすると
GCC(GNUのCコンパイラ)が見つからないよというメッセージが出てきて止まってしまい、どうにもならなくなります。
これは、明らかなバグです。
サイプレスの代理店にも問い合わせましたが認識していませんでした。
この作業がソフトのインストール直後だけ必要なのか、プロジェクト生成の度に必要なのかは、次のプロジェクト生成時に確認しますが、面倒なのでいきなりビルドを習慣付けた方が良さそうです(^◇^;)
PSoC Createrを一度終了させて再起動、ビルドせずに保存したPSoC5LP_LED2をビルドしたところ、問題無く出来ました。
さて、第9章に戻りましょう!
本のバージョン3.0と4.2では多少の違いが有りますが、想像の付く範囲内なので問題無いでしょう。
PSoC Createrが、回路図とCソースをシームレスに扱える、とても優れたIDE(Integrated Development Envilronment、統合開発環境)であることが分かると思います。
ソフトでLチカをさせるPSoC5LP_LED1は特に問題無く動きます。
LEDで定義されている関数は、Generated_Source の下のLED.cやLED.hに自動生成されているので、これを覗いてみるとPSoCの理解が一層深まると思います。
ただ、正直、この本の説明だけでは割り込みハンドラについて理解出来ませんでした。
僕のような初めてのマイコン利用者には理解出来ないと思います。
割り込み処理は必須なので、別途勉強する予定です。
ハードで実現するPSoC5LP_LED2は、僕のようなハードウェア技術者には非常に簡単な内容ですが、何か引っかかったらご報告します。
僕自身がリアルタイムOS(RTOS)、Free RTOSを使う予定が無いため、PSoC5LP_ RTOSはスキップします。悪しからず。
こんにちは、なりなりです(^ ^)
リリースされたiOS11の気になるポイントを、何度かに分けてご紹介していきます。
まず、目玉の一つである、コントロールセンターのカスタマイズです。
画面を下から上にスワイプするとコントロールセンターが現れるのは同じですが、見た目が大きく変わっていて、ミュージックコントロールも同じメニュー内に出てきます。
ミュージックコントロールがそうですが、3Dタッチで巨大化するものが有ります。
これらをカスタマイズするには
設定→コントロールセンター→コントロールをカスタマイズを開き
不要なものを削除したり、必要なものを追加したり出来ますが、残念ながら任意のアプリを起動することは出来ないようです…
もしかしたら、アプリ側の対応で、コントロールセンターに追加出来るのかもしれませんが。
それより、気になったのが「画面収録」です。
これをコントロールセンターに追加して起動すると、画面が動画で記録されるんです!
インスタやYouTubeへの投稿は簡単ですし、友達にアプリの使い方を聞かれてLINEで教えるのも楽ですね!
ブログでも、アプリなどの使い方の説明には何枚もの画像が必要だったし、動画で説明しようにもら画面をビデオで撮るのって意外と面倒だったので助かります(^-^)
こんにちは、なりなりです(^ ^)
昨日、iOS11が来てたんですねー!
最近はアップデートでハマることも無いので、早速、やってみました。
Wi-Fiで20分ほどで無事完了!
変更内容の抜粋は以下です。
Siri
- より自然で表現力が豊かになった新しいSiriの声
- Safari、News、メール、メッセージの使用状況に基づいてSiriから提案をする機能
カメラ
- ポートレートモードに、光学手ぶれ補正、HDR、True Toneフラッシュの対応を追加
- 新しいHEIFおよびHEVCフォーマットにより、写真とビデオのファイルサイズをほぼ半分に削減
- より自然な肌のトーンになるように再設計された新しい9つのフィルタ
- QRコードを自動的に認識してスキャンすることが可能
マップ
- 主要な空港およびショッピングセンターの屋内地図に対応
- ターンバイターン経路で、車線案内および制限速度情報に対応
- ダブルタップおよびスワイプにより、片手でズームが可能
- デバイスを動かしてFlyoverを操作することが可能
運転中の通知を停止
- 運転中であることを認識して自動的に通知を停止し、iPhoneの画面を暗くして音が鳴らないようにする機能を追加
- 運転中であることを、知らせたい連絡先にのみ自動的にiMessageで伝えることができる機能を追加
その他の機能および改善
- コントロールセンターのデザインが変わり、すべてのコントロールを1つのページに収めることが可能
- アクセシビリティ、アクセスガイド、拡大鏡、テキストサイズ、画面収録、Walletを含む、コントロールセンター用のカスタムコントロール
- 緊急SOS機能により、現在地の位置情報に基づいて救急サービスに通話し、また、緊急連絡先へ自動的に通知を送信、現在地の位置情報を共有、およびメディカルIDを表示することが可能
- Safariで辞書引き、単位換算、計算に対応
アクセシビリティ
- VoiceOverがイメージの説明に対応
- VoiceOverがPDFの表とリストに対応
- “Siriにタイプ入力”が基本的な検索クエリーに対応
- ビデオの音声および点字キャプションに対応
- Dynamic Type機能により、テキストおよびAppのUIの文字サイズを大きくすることが可能
実際の使い勝手については、別途レポートします(^-^)
こんにちは、なりなりです(^ ^)
マクセル(maxell)のEMSトレーニングギア「もてケア4極タイプ」でトレーニング開始! - なりなり日記
もてケア4極でトレーニング効果確認前ですが、2極タイプも購入してしまいました。
粘着シートの貼り方など、極数が異なるだけで、4極タイプと同じですから、詳細は上の4極タイプのレビューをご参考に。
実は、先月末に出場したテニストーナメント予選の初戦は0-8で完敗(⌒-⌒; )
対戦相手はテニスコーチとのことでしたが、1ゲームもキープ出来なかった悔しさから、今更ながらテニス部に入部すると共に、更に体を鍛えることにしたのです。
2017.8.25と本日、9.15時点の僕の体のデータを整理しておき、今後も追加していきたいと思います。
うちの体組成計はオムロンの体スキャンですが、20年近く前の物ですし測定値は絶対的なものではないですけど、相対的に大きな変化が有るか否かの参考にはなるでしょう。
測定時間は、会社から帰宅後の夕飯前とします。
ウェスト、太腿周り、腕周りはメジャーでの測定結果ですから、多少の誤差があるでしょうが、ホクロの位置を目安にしているので、それほど大きくは無いと思います。
測定日 | 2017.8.25 | 9.15 | |
---|---|---|---|
体全体 | 身長 | 169cm | ← |
体重 | 58.6kg | 59.4kg | |
体脂肪率 | 18.3% | 17.9% | |
皮下脂肪率 | 12.4% | 12.3% | |
骨格筋率 | 32.6% | 32.8% | |
体幹 | 胸囲 | - | 89.0cm |
胴囲 | 75.5cm | 75.0cm | |
体幹皮下脂肪率 | 10.7% | 10.6% | |
骨格筋率 | 27.0% | 27.2% | |
脚部 | 右太腿周り | 48.5cm | 50.0cm |
右脹脛周り | - | 35cm | |
皮下脂肪率 | 16.8% | 16.4% | |
骨格筋率 | 49.9% | 50.0% | |
腕部 | 右上腕周り | 26.0cm | 26.5cm |
右前腕周り | - | 26.0cm | |
皮下脂肪率 | 17.3% | 17.0% | |
骨格筋率 | 38.6% | 38.8% |
全般に骨格筋率が上がって脂肪率が下がっていますが、コンマ数%なので誤差ですかね。
太腿は、足を組んだ時に太くなった気がしているのですが、1.5cm増は大き過ぎる気もします。
腹筋と違って、脚は階段上りで鍛えているから、相乗効果かもしれませんが。
トレーニング開始前の各部の写真です。写真は、見た目に変化があれば最新のものを掲載することにします。
マラソンも7年やりましたし、トレラン、サイクリング、テニスと何れも脚が重要なスポーツをしていますから、太腿はまあまあ鍛え上げられています。
もてケア使用状態(設定レベル、max 15)
設定日 | 2017.8.25 | 9.15 | |
---|---|---|---|
4極タイプ | 腹筋 | 7 | 8 |
背筋 | 15 | 15 | |
太腿 | 10 | 12 | |
2極タイプ | 上腕 | - | 10 |
前腕 | - | 8 | |
脹脛 | - | 8 |
使用箇所によって電気刺激の受け方が大きく違うことが分かりました。
僕の場合、背筋は特に感じにくいですね。
前も書いたように毎朝職場の24Fまで階段上り(パワーアンクルは壊れてしまいました)、毎晩お風呂に入る前に腕立て伏せ(もてギア使用開始時50回)をしていますし、トレラン、サイクリング、テニスと運動も十分しています。
しかし、昔から割と体は鍛えてきていますが、恐らく今が一番体格がいいくらいなので、今より明らかにガッシリしてきたとしたら、もてケア効果なのだと思います。
もてケアは、注意書きを守って、週に2日ほどは休養日を設けて使っていきます。続けている腕立て伏せなども、そうしていますし。
次回は、また一月後、その後は二ヵ月毎くらいのペースで報告していく予定ですが、装着感やゲルパッドの耐久性については別途報告します(^-^)
こんにちは、なりなりです(^ ^)
最近、天候不順が続いていたり、スポーツはテニスに力を入れているためあまり書くことがなく、プログラミングの話題が多くなっていますが、今日はマイコンの話です。
新型iPhoneに関しては、僕が言及するまでもありませんし。マスコミは騒ぎますが、もはや、毎年スマホを買い換える人なんて皆無ですよね。
最短でも、2年経って支払いが終わったから買っても良いかな?とか、iPhoneはOSのアップデート対象外になるまで使うよ、とか。
僕は通信機器のハードウェアエンジニアで、今までガチガチのハードだった構成に柔軟性を持たせくて、マイコン、PSoCを少し前に導入しました。
コーディングなどは若い人に任せていたのですが、自分でも設計できた方がいいと思って勉強を始めたんです。
PSoCはC言語で設計するのですが、製品適用前に基礎検討する時には、PCで制御したり通信させたりすると都合が良いのです。
プログラミングするの久しぶりだなぁ、今は、何を使うのが良いの?と調べてみると、Pythonが目に付いて、Pythonを使い始めたという流れです。
新世代のBASIC⁉︎ プログラミング言語Python始めました! - なりなり日記
Pythonについては、こちらにも書きまして、以降、Pythonネタが増えています。
この先、Connect IQプログラミング再開しました!、ラズパイ買ってみました!なんて展開もある予定です。
個人でハードウェアを組むって大変なことですけど、ソフトを使うと幅が広がりますねぇ。
PSoCも電子工作に使われているようですが、ラズパイはボードとしての認知度が高いので、もっと面白そう(^-^)
話を戻して、今回は、そもそもプログラミングを再開するきっかけとなったPSoCの話となります。
http://japan.cypress.com/products/microcontrollers-mcus#tab1Microcontroller - Infineon Technologies
PSoCはサイプレス(Cypress)社のARMコア搭載マイコンの名称で、Programmable System on Chipの略です。
PSoCが普通のマイコンと違うところは
ことでしょう。
そもそもPSoCを使ってみようかなと思ったのは、元々必要な電源監視ICプラスα程度のコストだったからです。
この程度のコストなら、例え大したことに使えなかったとしても、DAC やADC、PLLなどのICのSPI制御をさせるだけでも元は取れるかなと。
などは、他社のマイコンでも対応していますが、I2C、SPI、UARTなどのディジタル回路は、UDB(Universal Digital Block)と呼ぶFPGA部を使ってプログラマブルに実装出来ます。
ディジタル回路は自分でもHDLや回路図で組めますし、サイプレスが標準マクロとして提供もしています。
例えば、未使用のフラッシュメモリ領域をEEPROM代わりに使えたり。
購入数量にも寄りますが、PSoC 4あたりなら、電源監視IC + EEPROMだけと考えてもコスト的にはペイします。
このPSoCのUDBやADCなどのアナログ回路は、かなり自由にGPIOと接続出来ますが、一般的なマイコンは、ADCなどに繋がるポート、UARTに繋がるポートなどと決まっていることが多いようです。
つまり、PSoCは自由度が非常に高いマイコンということです。
また、PSoC 4の一部のチップではBLE(Bluetooth Low Eneargy)に対応していて、PWB上にアンテナパターンを引いて、マッチング用のコイルとコンデンサを経由してPSoCに繋ぐだけでBluetooth通信が可能になります。
アナログ回路部を省略したPRoC(Programmable Radio on Chip) BLEもリリースされています。
これも製品に適用出来ないかと考えているので、そのうち評価してみるつもりです。
サイプレスのサイトを見れば、PSoCの統合開発環境PSoC Creatorのインストールからスタートアップ、サンプルプロジェクトなど沢山あるのですが、説明が大雑把なのと、プロジェクトとして生成されるファイルが何を意味するのかなど、細かいことも理解したいし、実機を動かしてみたいということも合わせて、こちら、
トラ技増刊号、基板付き体験編 ARM PSoCで作るMyスペシャル・マイコンを購入しました。
http://shop.cqpub.co.jp/hanbai/books/MTR/MTRZ201312/MTRZ201312.pdfhttp://shop.cqpub.co.jp/hanbai/books/MTR/MTRZ201312/MTRZ201312.pdf
こちらが雑誌のサンプルPDFです。
購入者は全文をPDFで入手出来る様にして貰えないですかねぇ、老眼が進むと、本読むのキツイんですよ。老眼鏡をかけると目が疲れるし…
結局、自分でスキャンしましたけど。
こちらが実物。PSoC 5LP搭載基板と本に掲載のサンプルプロジェクトが収められたCDが付いています。
本の厚みの半分弱は基板とCDの梱包用厚紙です。
mini USB端子が2つ付いていて、それぞれ、デバッグ・プログラミング用とPSoCとPCの通信用です。
電源はUSBから供給されますから、これ一枚で、
などが出来ます。
PCとの通信はPythonでプログラムを組んで実現する予定です。
GPIOはスルーホールに引き出されているので、ここに何かを接続してコントロールすることも出来ます。
さて、これから、じっくり勉強していきます(^-^)