高専入っての雑感ー

お久しぶりですー
いまは高専入ってすぐのイベント、妙高合宿に行くバスに乗ってます

いま、高専のなかでは施設の
リニューアルが進んでます。
たとえばHRなら
黒板がホワイトボードに変わって
ペンが使える短焦点プロジェクターがつきました。

英語の授業とかは、手書きより
プロジェクターで授業する方が長かったり
一応電子黒板だけど使ってません
なんてことはないですw
基礎数学とかは数式多いので、いまのとこ手書きが多いかなと。
ぼくのクラスは国際化推進みたいなやつなので、
だいたいの場合日本語と英語のダブル表記です。
まだ受けた授業が基礎数学Ⅰ 、英語ⅠA & B 、基礎情報処理、化学だけなので
どんな面白い授業かはまた紹介すると思います。
ちなみに1年生は6号館の2階がHRになります

あと90分授業結構心配してる人多いと思うのですが
疲れないです。いろんな教科をちょこちょこ
切り替えて勉強するより自然な感じ?
先生方の話を聞いてたり、周りの人と
相談しながら授業受けてれば、すぐですよー

総合じ情報処理センターのPCも新しくなりました。
今までWin7だったらしいのですが10になりました。
UNIXのサーバにユーザーデータがまとめて管理されてるので
外からそのサーバにSSHで接続すれば、授業とかで作った
ファイルを見たり編集したりもできます。
プライベートのディレクトリと、オープンなの権限操作で
どっちも作れるので、ファイル共有にも使ってる人いるみたいです

最初の学科別授業で、情報処理センターのPCの
パスワード決めて
それとは別に高専統合認証システム
っていうのの登録をして
そのシステムを使うことで、
それで校内LAN、UNIXサーバへのログイン、
校内メールへのアクセス
なんかが全部ひとつのIDパスワードで行えます。
定期的にパスワードは変更しなくてはなりません。
同じ時にoffice365のライセンスももらえるので、
ただでWordやExcelが使えます!!(めちゃありがたい)

あと中学校と時間割関係で違うのは
高専は朝読書みたいなのは無くて、月曜の朝にSHR、ショートホームルームが10分くらいあります。
そのまま、授業になっていく感じ。
朝会みたいなのはどうなんでしょ、
まだ今のところないです。
個人的にすごい面白かったのは、
始業式で教頭先生や学生会長が
登壇するとき、拍手で、歌舞伎みたいにやること。

じゃん、じゃん、じゃん、じゃん、
じゃじゃじゃじゃじゃじゃー
みたいになります。すごく盛り上がった。
すごいのは、そういうノリを
みんな楽しんでいることで
誰かが面白いことを言ったりすると、
会場が湧くし、校長先生はじめ
先生方もニッコニッコニーです

次はたぶん寮はこんな感じだよ、
というのを書くと思います。
\\\\٩( ‘ω’ )و ////さらばー

入学手続きあれやこれや

※平成三十一年度入試の情報です

推薦入試受かると、(一般でも同じだと思うけど)
一般の合格発表の日くらいにでかい封筒に入って手続きの申請書類が届く

公立入試の日あたりが入学手続きになってて
書いた申請書類を持って、手続きしに行く。

10時から12時までの好きな時間に来てね、みたいな感じだけど
10時前にはもう行列だから注意。

最初に入学金振り込まれてるか確認して、
必要な書類を提出し、
入寮届けを出して、
健康診断キットをもらって、
内履、外履を買って、
体操着を試着し注文して(入学式の日届くらしい)
学科によっては関数電卓とか白衣とか買って、
教科書を買って、
おしまい。みたいな感じだった

教科書はこのくらいの量ある、学科によって違うけど。
総重量15kg、あと靴とかあるから、すごい重たい
ビニール袋もらえるけど、相当きついので、
スーツケース持っていくことを強くお勧めする
オックスフォード大学が作ったらしい
全部英語のビジネス英語の教科書とか、

普通の学校じゃなさそうな教科書もちょこちょこ入ってる

 

推薦入試あれやこれや

調査書の記録が優良であり、「理科」「数学」「英語」の2年・3年の成績が
5段階絶対評価で3教科合計24以上になる者、は、推薦入試出せる

ちなみに私の場合は

2年前期 数5 理5 英4
2年後期 数4 理5 英5
3年前期 数4 理5 英5
3年後期 数4 理5 英4

前期後期でまた再計算して2年・3年で15+15で30点満点
出すが、うちの中学はそれ教えてもらえなかったので
4、5、4、4、5、4で26くらいしか取れてなかったかも知れないし
5、5、5、4、5、5で29くらい取ってたかも知んないし、
参考にならなすぎる数字ですが参考に。

推薦入試、新潟会場は例年朱鷺メッセ。
平成三十一年度入試では新潟会場選んだのは32人だった
中会議室が控え室。本読んでる人も、勉強してる人もいた
呼ばれると、前側の出口から出て、小会議室とかいうところに案内される
廊下に面していくつか並んでて、三箇所使ってた
学校で面接練習とかしていると思うけど
一番ビックリするのは、荷物を持って入室してください、って言われたこと
結構慌てた。

※今年はこうだった、というだけの話
面接の内容は結構普通で、
受験番号、氏名?
高専に入りたかった理由は?
高専の何が特別だと思うか?
卒業後の進路はどう考えているか?
オープンキャンパスとかは来た?来た場合は個人で?学校経由?
いつ高専に入ろうと思った?
どんなことが得意なのか?
グローバル化でコミニュケーションが大事になってくるが考えを教えろ
国際交流には参加したことあるか?
みたいなもん。前に面接官三人いて、結構フレンドリーな感じだった

受かると、
ホームページでの合格発表の後、二日くらいで、三つ折りサイズの封筒に入って
合格通知書が届く。封筒に入学確約書が入っているので、送り返す。

おしまい。

ESP-IDF 環境構築

ESP32をArduinoIDEよりも深く?
使えるESP-IDFの環境構築方法のメモ

環境:Windows10 Home

ここから toolchain と MSYS のzipもらってくる
http://esp-idf.readthedocs.io/en/latest/windows-setup.html
Cドライブ直下に解凍、/c/msys32 という名前のフォルダができる

Cortanaの検索窓にでもC:\msys32\mingw32.exeと入れて実行

bashが使えるようになったらコマンドを順番に打ってく
$ cd /bin
$ ./rebaseall
$ cd /c
$ git clone --recursive https://github.com/espressif/esp-idf.git
$ exit

/c/msys32/etc/profile.dの下にadd_IDF_PATH.shというファイルを新規作成
内容はexport IDF_PATH=”/c/esp-idf”としておく

/c/Users/ユーザー名/Documents/esp32/とか適当にフォルダ作る
プロジェクトの格納先。

C:\msys32\mingw32.exeもう一回実行

$ cd /c/Users/ユーザー名/Documents/esp32/
gitからLチカのサンプルもらってくる
$ git clone https://github.com/espressif/esp-idf-template.git
$ cd /c/Users/ユーザー名/Documents/esp32/esp-idf-template

シリアルポート設定する
$ make menuconfig
Serial flasher config>Default serial port
COMなんたらに変更
Exit。

ビルドする。
$ make

ちなみにサンプルのLチカのIOは4なので4にLEDでもつないどく

書き込み。dev.kitなので特にボタン押さなくてOKだった
$ make flash
終了。

NNCT.DAYS!を新設しました

遅ればせながら、管理人は長岡工業高等専門学校
電子制御工学科への進学が決まりました。
応援してくださった皆様に、改めて御礼を申し上げます。

さて!長岡高専に入りたいと思っている皆さん!(まだ私も入学してないけど)
面接ではどんなことを聞かれるのか、とか
合格した人はどのくらいの成績だったんだろうか、とか
寮の間取りはどんな感じなのか?
とか気になりませんか?

まあ、中の下くらいの成績しか取れないような人間なので、
推薦基準の理数英の24点どんくらい取ってたーとか
恥ずかしがらずバンバン出していきたいと思います

NNCT.DAYS!は、自分がちょっと前まで気になってたことを中心に
結構情報が少ない長岡高専の日常とか、そういうのを
平成32年度入学希望者をターゲットにして綴ってみるコーナーです
とりあえず思いつきで作ってみました。

今日は、長岡高専へ入学手続きで教科書とか買いに行く日です。
帰ってきて時間が空いてる時とかに更新して情報増やしていきたいと思いまーす

PHP5からPHP7.2へアップデートしました

ブログ作ってすぐの時PHP7入れようとして何か失敗したのがトラウマで

PHP5を入れて使っていたのですが(このVPSに)

危ないからやめろ、と警告が出たので、おそるおそるあげてみました

あのときと同じことにならないように、一応、バックとった。

れっつチャレンジ

~$ sudo apt-get install software-properties-common
~$ sudo add-apt-repository ppa:ondrej/php
~$ sudo apt install php7.2 php7.2-common php7.2-cli php7.2-fpm php7.2-mysql libapache2-mod-php7.2
~$ sudo service apache2 stop
~$ sudo a2dismod php5
~$ sudo a2enmod php7.0
~$ sudo service apache2 start

終わり、上手くいったd( ̄  ̄)

それにしてもPrismの拡張、Markupじゃないから無印にしたいなあ…

仮想環境上mitakaとの接続方法

仮想環境製作用クライアントインストール

https://www.vmware.com/jp/products/workstation-player/workstation-player-evaluation.html

ここからVMware WorkStation Player 15を落とす

非商用の時だけタダ

Windows(評価版)インストール

https://www.microsoft.com/ja-jp/evalcenter/evaluate-windows-10-enterprise

Windowsのプロダクトキーなしで90日使えるやつを落とす

仮想マシン設定方法

1,VMWareを起動

2,”新規仮想マシンの作成”を選択

3,後でOSをインストールを選択、次へ

4,ゲストOS、MS Windowsを選択、次へ

5,仮想マシン名、適当に、次へ

6,ディスクサイズ60GB、仮想ディスクを単一のファイルにを選択、次へ

7,完了、クリック

8,作ったWindowsの設定編集画面を開く

9,CD/DVD(SATA)の設定画面、デバイスのステータス、起動時に接続

10,ISOイメージファイルを使用で、落としたWinのファイルを参照

11,ネットワークアダプタの設定画面、接続方法、ブリッジに変更

12,物理ネットワーク接続の状態を複製を、OFF

13,設定保存、仮想マシン起動、Winインストール

14,仮想マシンにMitakaをホストマシンからコピー

15,Mitakaのマニュアルに従ってホストOSのmitakaとTCP/IPで接続

「報告」GR-LYCHEE DESIGN CONTEST 7位とコア賞を頂きました

http://gadget.renesas.com/ja/contest/2018/

テーマ: 
「カメラやIoTで課題を解決」 
高齢化社会や生産年齢人口の減少といった社会的課題に対し、人間の目の役割を果たすカメラ、インターネットによる付加価 値の向上に焦点を当てます。このため、カメラと無線通信を標 準搭載し、OpenCVやe-AI(組込み人工知能)も使用可能な「GR- LYCHEE」をアイテムとします。

ルネサスエレクトロニクス社のGR-LYCHEE DESIGN CONTESTにファイナリストとして参加しました。豊洲での最終選考に参加したので報告します

結果は7位でした。株式会社コアさんからスポンサー賞をいただきW受賞、新潟からはもう1チーム出場して、5位とテーマ賞をW受賞したので、県勢で4つの賞を取ることができました。

試作

工場の中や避難所などで運搬してくれる道具を作りました。似たようなものはもう市場にたくさんありますが、安く作れるかチャレンジしました。

初めの試作品は中華製ロボット掃除機を改造して構成しましたArduinoのIRremoteライブラリを使って掃除機の赤外線リモコン信号をハック、QRコードを認識して進行方向を決めるものです。Blynkサーバーを通してSiriからの制御ができ、Apple Watchから指示が出せるのがウリでした。

改良版

元の制御の流用なので方向のバリエーションを増やすため、いちから筐体を作りました。初CAD、学生は無償で使えるFusion360を使いました。

改造版で、このUbuntuサーバーと通信して、ネットワーク経由でデータをリアルタイムで送れる仕組みも作りました。

python3系と2系を同時に使うことも今回初めてやってみました

たくさん新しいことにチャレンジしたので複雑になりましたが最後はこんな感じで仕上がり、ファイナルに臨みました

#私の
#新潟県勢反省会 #もう1チームは巨大なものを作っていました!(ここには写ってない)

受験生としてのやりたいことも多いので、当日の発表スライドを載せその他どんな機能をつけたかは割愛します

周りの皆さんは実際に仕事で組み込みをやっている方々で、そんな中でファイナリストとして豊洲まで行かせてもらったことは本当に良い経験でした。筑波大学の方と実際にお話できたり、関東方面の光線について聞くことができたのも大きかったです。話力に後悔があるので、これから場数をもっと踏んでいければと思います。

コア賞でいただいたロボットアームは、主権が終わったあとVRとの組み合わせに挑戦したいと思っています

NDS 長岡IT開発者勉強会 参加してきました

NDS 長岡IT開発者勉強会 のまとめです

はじめに

先日新潟市内で開催された” Code for Japan Summit 2018 “の際に
NDS主催の@civicさんからお誘いをいただき
初参加・発表してきました

NDSは知る人ぞ知る新潟県内の有名なコミニュティで
長岡市で技術系勉強会を開催しています

参加者は発表スライドを公開して
ブログを書いてまとめると
NDSが終わりになるようです( ・∇・)

感想や発表したことについてまとめます

http://nagaoka.techtalk.jp/no57

NDS57テーマ「学習・教育」
機械の学習でも、ディープな学習でも、人間の学習や教育でも
なんでも学習・教育に関係することならばOK!

 

印象が強かったセッション

新入社員研修の作り方~完全版~ @masaru_b_cl さん

IT企業の新入社員研修についてのセッションでした
3ヶ月でC#を学ぶそうです。ぼくはUnityでC#初めて触ったのですが
C#ができるとJavaとかだいたい書けるからC#なんだそうです
リーダブルコード研修で受けたい!

 

Google Colabで試す、Kerasを使った画像認識 @kasacchiful さん

Jupyter Notebookっぽい感じでGPUが無料で使えてGPGPUできる
Google Colaboratoryというクラウドサービス上で
Tensorflow+Kerasで教師あり学習をさせて
Kerasで推論させよう
ということだったようです(難しかった!)

学習データは
①柿の種
②笹団子
③イタリアン(「フレンド」「みかづき」は区別しない)
④万代シティバスセンターのカレー
の4種類

実際に行って食べて写真撮ってきたらしいです( ・∇・)

機械学習勉強中なうなうなので
すごく新鮮でした
今日の時点だと
ゼロから作るDeepLearning
と言う本の勾配法のあたりまで読み進めていて
習っていない微分に苦戦しています
高校生になったらGPGPUとかCUDAとかで本格的にできるようになりたい

 

はじめてのOSSライブラリ開発記 @yuw27b さん

https://drive.google.com/file/d/1_W_8rHkCCawWD4EJHcf_IX5iMsaRPkE6/view

サーバーにHTTPで数百GBのデータをアップロードするためのOSS作っている
細胞一個検査すると1GBくらいのデータになって
平均するために100人からデータ取ると100GB
それをHTTPでサーバーに送信して実験データを閲覧できるようにする
ということだそうです

そのために某大学に100TBのストレージを持つサーバーを用意しました

とのことで会場が「・・・」となっていました
コードの可読性を検査することできるソフトとか
OSSでなくても使えそうなものたくさん紹介していて
使ってみたいと思いました

 

そのほかにも
SIerの社内教育のセッション
ITマスターについて
オンライン英会話のセッションや
レガシーWebシステム
リアルタイムでコード記述実演するセッション
(コードスニペットでコードを丸々辞書登録するの良かった)
学校教育とICTの関わり方についてのセッションや
LTも4本あったり(サーバーセキュリティのお話、ちゃんと勉強したい)

NDSテーマに沿ってたくさんお話が聞けて面白かったです

実は発表してたぼくのセッション

今までちょこちょこやってたサーバー立てとか
UnityとかWebSocketとかは
無関係に遊んでたところもありますが
MEIというプロダクト名の機械学習系のものになる予定です

第6回IoTLTNiigataでのスマートスピーカー漫才で
スマートスピーカーは五感のうち聴覚のみ
それもトリガーワード認識後という制約が
あることに改めて気づきました
消費電力の関係???

そこで、情報量の差がなくなっていけば
より深く会話を楽しめるので
その足りない五感をカメラ、マイク、触覚フィードバック等で
補って、スマホの画面に人型モデルを持つ人工知能を
AR(拡張現実)を組み合わせて現実世界の空間に描いて
会話していて楽しい人工知能を作ろうと考えました
そのためにUnity等を組み合わせて実験中です

iPhoneX以降のiPhoneに搭載されているTrueDepthカメラと
iOS12のARKit2のAPIを組み合わせることができれば
拡張現実側から現実の視線を読んだりもできるかも
みたいな発表をしました

長岡技科大や長岡高専などで視線認識げ研究されていることを
教えていただきました

終わりに

改めてNDSに招待していただいた@civicさんありがとうございました
貴重な経験になりました

良い発表ではなかったかと思いますが
場数を踏んでいきたいと思っています
ありがとうございました

スペースキーじゃなくてInputFieldで

Unityで入力した文字列をサーバーに送信できるようにする

 

WebSocket Unityとサーバーの双方向通信 Unity編

この記事で書いたものをレベルアップ
リンク先のものは、スペースキーの入力を通知していますが
今回はUIで入力された文字列をサーバーに送信するようにする

用語整理

Unity
統合開発環境を内蔵したゲームエンジン
2Dはもちろん、3DやVR用アプリケーションも作ることができる
Web,iOS,Androidなど様々な機器向けにデータをエクスポートできる

WebSocket
HTML5に定義されている技術規格
クライアントとサーバー間に「ソケット」と呼ばれる
持続的な接続を確立させることで
双方向からデータの送信を開始できるようになる(らしい)
基本的なHTTPだとクライアントからだけしか
データの送信を開始できない

( Unity ) websocket-sharpライブラリ
Unityで使用するC#用ライブラリ
WebSocketが簡単に作れるようになっている
ここからダウンロードできる

Visual Studio
MicrosoftのIDE
Unityをダウンロードすると一緒についてくる
Unity2018からのUnityで使うメインエディタ

InputField
Unityのオブジェクトの一つ文字列が入力できる
子要素にTextオブジェクト、Placeholderオブジェクトがある

実装

websocket-sharpライブラリインポート

websocket-sharpライブラリのビルドは
前回の記事に書いてあるので省略

テスト用Unityプロジェクトを作成( 2D )

Assetsに子ディレクトリPluginsを作成
Assets/Plugins内にビルドしたwebsocket-sharp.dllをコピー

websocket-sharpライブラリインポート終了

ここまでは前回と同じ

 

InputField配置

HierarchyにInputFieldを配置

Create > UI > InputField

追加された
Canvasが自動で生成されてその子になっている

 

スクリプト作成

新規スクリプトを作成

Assets > Create > C# Script

編集

https://docs.unity3d.com/ja/current/ScriptReference/UI.InputField.html
ここを参考にInputFieldの制御を書く

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class InputFieldController : MonoBehaviour
{
    public string inputValue;
    InputField inputField;

    void Start()
    {
        inputField = GetComponent<InputField>();
        InitInputField();
    }

    public void InputLogger()
    {
        inputValue = inputField.textComponent.text;
        Debug.Log(inputValue);
        InitInputField();
    }

    void InitInputField()
    {
        inputField.text = "";
        inputField.ActivateInputField();
    }
}

 

スクリプトとオブジェクトのリンク

ドラッグ&ドロップでInputFieldオブジェクトにスクリプトをアタッチ

InputFieldコンポーネント内、On End Editの ” + “をクリック
すぐ下にあるアタッチしたスクリプトをドラッグ&ドロップしてリンク

On End EditはInputFieldからフォーカスが外れた時実行
On Value Changedは入力値が変更されると実行

右側のプルダウンを選択

InputFieldController > InputLogger

入力テスト

これで入力できるようになった
Playボタンを押してテスト
文字列を入力して、Enterを押すとログに文字列が表示される

WebSocket通信

今入力された文字列をWebSocketでサーバーに送信できるようにする

新規スクリプトを作成

Assets > Create > C# Script

InputField.csの入力された文字列が格納される変数は
以下のようにpublicにして他のスクリプトで使用できるようになっている

public string inputValue;

作りこんでいくにつれて文字列の入力方法が
InputFieldから音声入力に変わる予定なので
WebSocketなど中心となるプログラムは別で作って
オブジェクト指向で入力方法だけ変えられるように作る

 

新規作成したmain.csを編集

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using WebSocketSharp;
using WebSocketSharp.Net;

public class main : MonoBehaviour
{
    GameObject InputField;
    InputFieldController script;

    WebSocket ws;

    string new_inputvalue;
    string old_inputvalue;

    void Start()
    {
        InputField = GameObject.Find("InputField");
        script = InputField.GetComponent<InputFieldController>();
        Debug.Log("InputField Conected");

        ws = new WebSocket("ws://27.120.98.26:9001/");
        ws.OnOpen += (sender, e) =>
        {
            Debug.Log("WebSocket Open");
        };
        ws.OnMessage += (sender, e) =>
        {
            Debug.Log("WebSocket Receive Message Data: " + e.Data);
        };
        ws.OnError += (sender, e) =>
        {
            Debug.Log("WebSocket Error Message: " + e.Message);
        };
        ws.OnClose += (sender, e) =>
        {
            Debug.Log("WebSocket Close");
        };
        ws.Connect();
    }

    void Update()
    {
        new_inputvalue = script.inputValue;

        if (new_inputvalue == old_inputvalue)
        {
        }
        else
        {
            string send_message = new_inputvalue;
            old_inputvalue = new_inputvalue;
            Debug.Log("InputField Update");
            Debug.Log("WebSocket Send Message Data: " + send_message);
            ws.Send(send_message);
        }
    }

    void OnDestroy()
    {
        ws.Close();
        ws = null;
    }
}

スクリプトをHierarchyのCanvasでへドラッグ&ドロップでアタッチ

入力テスト②

動作するかだけ確認
Playボタンを押してテスト

回線が開いてないからエラーが出ているけど
送信しようとしているのでOK
完成!

サーバー側との通信

サーバーでPythonファイルを実行する

python3 /home/ユーザー名/python3_project/mei/version_1/arp.py

こんな感じのメッセージが出たら準備OK

INFO:websocket_server.websocket_server:Listening on port 9001 for clients..

Unity側Playボタンを押してプロジェクトを実行
コンソールに接続完了メッセージが出ると同時に
サーバー側でも接続完了メッセージ

以降文字列を入力してEnterを押すと送受信される