Vol.843 22.Apr.2022

高齢者の運転免許更新時の実車試験 テラタームでUSB接続PIC制御 「R」言語

L 高齢者の運転免許更新時の実車試験

by fjk

 高齢者による死亡事故件数が増えていることに対し、2022年5月13日から、75才以上の高齢者が運転免許の更新時に実車試験が義務化される。現状でも70才以上の運転免許更新持には高齢者講習を受ける必要があるが、これは「講習」で「試験」ではない。そして、この実車試験に不合格になると免許証の更新ができなくなる。指定されたコースでの実車試験中に信号無視等をした場合は一発アウト。合格点は100点満点で70点以上(2種免許の場合は80点以上)。検査手数料は3,550円。
 ただし、試験は全ての高齢者が対象ではなく、過去3年間に以下の11種の違反をした人が対象となる。

  1. 信号無視
  2. 逆走
  3. 追い越し車線での長時間走行
  4. 速度超過
  5. 禁止場所での横断や転回
  6. 遮断踏切立ち入り
  7. 交差点での右左折時のルール違反
  8. 交差点で他の車両の進行を妨害
  9. 横断歩行者の妨害
  10. 踏み間違いや安全不確認
  11. 携帯電話使用


P テラタームでUSB接続PIC制御

by fjk

 前報(abc842)まではVB2019で作成したターミナルソフトでUSB接続していたが、汎用性を考えて無料ターミナルソフトであるテラタームを使ってUSB接続を行えるように、PICソフト(I2Cマスター、PIC16F1459)を変更した。
 テラタームではキーボードの1文字を入力するたびにUSBでPICに送信するので、改行までの文字列をまとめて受信するVBソフト用のPICプログラムでは対応できない。そこで、「改行」が入力されるまではPIC内のバッファーに文字を追加し、改行が入力されたら、指定された機能を実行する仕様とした。
 なお、ハードウェア、環境設定は前報(abc842)と同じで、USB、LCDライブラリも必要だが(プロジェクトのコピーを使うと便利)、ADC、タイマー2及びスイッチ入力は使用していない。

テラターム画面
main.c (master)

/** USB & I2Cmaster for PIC16F1459   **/
void main(void)
{
    SYSTEM_Initialize();	
    INTERRUPT_GlobalInterruptEnable();	
    INTERRUPT_PeripheralInterruptEnable();

    uint8_t swFlg = 0; 
    uint8_t adFlg = 0; 
    uint8_t num, i;
	uint8_t iDx = 0;
	uint8_t CrRd = 0;

    LCD_init();
    char msg[] = "Hello!";
    LCD_str(msg);
    while(USBGetDeviceState() < CONFIGURED_STATE);
    SendUSB_str(msg);
    SendUSB_str(NEWLINE);
    SendUSB_str("PIC> ");				//プロンプト送信

    while (1) {
        num = RecvUSB(rBuf, BFSIZE);
        if(num > 0) {
            for(i=0; i < num; i++){
                switch (rBuf[i]){
                    case 0x0A:
                    case 0x0D:
                    	wBuf[iDx] = 0x00;
                        CrRd = 1;			//改行を受信した
                        SendUSB_str(NEWLINE);
                    	break;
                    default:
			if(iDx == 0)LCD_clr();
                   	wBuf[iDx++] = rBuf[i];
			wBuf[iDx] = 0;
			LCD_str(wBuf); 
			SendUSB_str(wBuf);
                   	break;
                }
            }
	    num = 0;
	}
	if((CrRd > 0) && (iDx > 0)){			//受信文字が有、かつ、改行を受信した
            switch (wBuf[0]){				//受信第1文字をコマンドとして実行
		case 'L':  case 'l':
	            LED_SetLow();
		    I2C_Write1ByteRegister(SV1, 0, 'L');	
		    break;
           	case 'H':  case 'h':
            	    LED_SetHigh();
		    I2C_Write1ByteRegister(SV1, 0, 'H');
		    break;
		case 'A':  case 'a':
		    I2C_ReadNBytes(SV1, &aVal, 2);	
       		    sprintf(wBuf,"ADC:%4d",aVal);
		    LCD_cursor(0,1);
		    LCD_str(wBuf);
		    SendUSB_str(wBuf);
		    SendUSB_str(NEWLINE);
                    break;
	    }
	    SendUSB_str("PIC> ");			//プロンプト送信
	    iDx = 0;
	    CrRd = 0;
        }
    } 
}


R 「R」言語 〜統計計算とグラフィック用フリーソフト

by fjk

 山乞食さんがよく使っているという「R」(「R言語」とも呼ばれる)を使ってみた。
 R言語とは「統計解析、データ分析、グラフィック分野を得意とするプログラミング言語」で、使用料が無料のフリーソフトです。R言語は簡単な数値計算を電卓のように使ったり、プログラムやシミュレーション、複雑なグラフィックまで行うことができ、統計の専門家のみを対象にしているソフトではない。
 R言語は単に統計解析だけでなく、画像処理、機械学習にも利用され、注目されている言語で、簡単なコードで複雑な統計計算を実施できる「パッケージ」の種類も豊富(1.万件以上)に提供されており、より使いやすくなっている(ただし、パッケージの使用にはそれなりの知識が必要)。
 R言語はPythonと比較されることがあり、R言語は統計解析に特化した言語であり、Pythonは統計解析もできる汎用言語で覚えることも多い。R言語は用途が限定されるが、ビッグデータの解析など使われる分野が拡大している。さらに、ggplot2パッケージなどを使うと、高度のグラフの作成も容易である。
 R言語およびRStudioをWindows10にインストールし、使って見た感想は、確かにデータ解析には便利だが、プレゼン用に高度なグラフィックを使いこなすにはもっと勉強しなくては・・

R ディスクトップ画面
RStudio画面例(エディッタ、グラフィック表示画面など)

〜〜〜〜<参考>〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

★R言語の入門
統計用言語Rの使い方
R言語を理解する
★インストール(公式)
CRAN
統計数理研究所(ミラー)
RStudio
★R言語をもっと詳しく・・
R-Tips
★EZR (Easy R、GUIでRが使えるソフト)
自治医科大学
★参考書の例
データ解析環境Rの基本技・グラフィックスの活用集」(オーム社、舟尾暢男氏)


高齢者の運転免許更新時の実車試験 テラタームでUSB接続PIC制御 「R」言語