備忘録と日記

備忘録・日記としていろいろ残していきます

自作キーボードデビュー【KBD67, TOFU65】

 

はじめて自作キーボードを作ったので、備忘録として残しておきます!

全てKBDfansで揃えました。

f:id:mo-ri-24:20210215021820j:plain

 

参考記事

salicylic-acid3.hatenablog.com

salicylic-acid3.hatenablog.com 

構成

TOFU65 Custom mechanical keyboard DIY KIT - Grey / Aluminum

ケース:TOFU65 Case

PCB:KBD67 rev2.0 PCB (RGB underglow, soldered version)

プレート:Aluminum plate

スタビライザー:Cherry screw-in stabilizers

 

スイッチ:Input Club Hako Violet
                      タイプ:タクタイル
                      押下圧:約39gf
                      動作圧:約28gf
                      ストローク:3.6mm
                      接点:1.88mm
                      プレートマウント(3ピン)

キーキャップ :PBT OEM DYE-SUB KEYCAPS SET

 

キー配列の書き換え

QMK Configurator 

config.qmk.fm

 

f:id:mo-ri-24:20210213203834p:plain

トップ画面

 

 

  1. pcbとレイアウトを選択(KEYBOARDとLAYOUT)
  2. 配列を変更

    f:id:mo-ri-24:20210213204351p:plain

    編集画面

    *MO(n)は押している間、n番レイヤに変更(Quantumタブ)

  3. コンパイル(右上のCOMPILEボタン)

    f:id:mo-ri-24:20210213203728p:plain

    コンパイル
  4. ファームウェア(Hexファイル)のダウンロード(右下のFIRMWAREボタン)

 

QMK Toolboxのインストール

github.com

 

macなのでQMK.Toolbox.app.zipをダウンロードしてインストール。

起動する時エラーがある場合は、ドライバーのインストールも。

$ brew tap homebrew/cask-drivers

 

f:id:mo-ri-24:20210213210531p:plain

起動画面

 

  1. 書き込むキーボードを接続
  2. ダウンロードしたHexファイルをセット(Openボタン)
  3. 「Auto-flash」にチェックを入れる
  4. 「Auto-flash enabled」を確認
  5. PCBのリセットボタンを押す
  6. 「avrdude.exe done. Thank you.」が出れば書き込み完了

 

テスト

サイトでテストしました。

「keybord test」で検索するとたくさん見つかると思います。

 

en.key-test.ru

 

完成

f:id:mo-ri-24:20210215021855j:plain

f:id:mo-ri-24:20210215021905j:plain

 

【TechStudyGroup #3】ハッカソンで調べたことの備忘録(PHP)

5月30日に開催された、

オンラインでハッカソン! - TechStudyGroup #3

に参加してきました。

備忘録として、そこで調べたことをまとめたいと思います。

 

感想やまとめについてはリーダーが記事を上げてから私の方でも書きたいと思います。

↓ リーダーのブログです。

kn46itblog.com

頼もしくて自慢の後輩です。

 

ちなみに初ハッカソンでしたw

 

PHPを触るのが久しぶりで忘れ方が酷かったです...。

間違いがありましたらコメントお願いします

APIについてはバックエンド担当が作ってくれたので感謝感激です。

 

文字列の表示

文字列の囲み方

<?php
$str = 'Hello world.';
echo $str;  // ①クォーテーションなし
echo "$str";  // ②ダブルクォーテーション
echo '$str';  // ③シングルクォーテーション
?>

  実行結果  

① Hello world.
② Hello world.
③ $str

変数のみであれば①のようにクォーテーションなしでok

変数も文字列として表示するのであれば②のようにダブルクォーテーションで囲む。

③は文字列として$strを出力した。

 

 

文字列の連結

<?php
$a = 'Hello ';
$b = 'world';
echo "test: {$a}{$b}";  // ①
echo 'test: '.$a . $b;  // ②
echo 'test: ',$a , $b;  // ③
?>

  実行結果  

① test: Hello world
② test: Hello world
③ test: Hello world

①は文字列testと変数$aと$bを文字列のまとまりとして表示

②は文字列testと変数$a, $bを連結(.)して表示

③は「,」で区切られており、testと$a, $bの3つをそれぞれechoして表示

 

 


繰り返し

<?php

$prefectures = array("Fukuoka","Kumamoto","Kagoshima");

foreach($prefectures as $prefecture){  // ①
    echo $prefecture;
    echo "<br>";
}

for($i = 0 ; $i < count($prefectures); $i++){  // ②
    echo $prefectures[$i];
    echo "<br>";
}
?>

  実行結果  

Fukuoka
Kumamoto
Kagoshima
Fukuoka
Kumamoto
Kagoshima

②は普通のfor文。①はPythonでいう for prefectures in prefecture: みたいな感じかな。

 

 


ポインタの扱い

<?php

// さっきとは別の配列の作り方
$arr = array( 
    'north' => 'Fukuoka',
    'middle' => 'Kumamoto',
    'south' => 'Kagoshima',
);

next($arr);  // 内部ポインタを動かす

$a = $arr;  // 動かした結果を別の配列へ

echo current($a) . ;
echo current($arr) . ;

?>

  実行結果  

Kumamoto Kumamoto

特にポインタの移動では変化ないみたいですね。

 

 


データを次の画面へ引き継ぐ

セッション変数

色々やり方はあると思いますが、今回はセッション変数を使いました。

page1.phpを開いたあとpage2.phpに遷移して、page1.phpで設定したセッション変数を表示します。

  page1.php  

<?php

// セッションデータを初期化
// セッションIDの新規発行、又は、既存のセッションを読み込む
// $_SESSIONを読み込む
session_start();

// 有効期限30分
session_cache_expire(10);

$_SESSION["id"] = 'hoge';  // idの設定
$_SESSION["name"] = 'Kagoshima';  // nemeの設定

header("Location:./page2.php");  // page2.phpへ遷移

?>

  page2.php  

<?php
//既存のセッションの読み込み
session_start();
echo 'id: '.$_SESSION["id"].'<br>';  //idの表示
echo 'name: '.$_SESSION["name"].'<br>';  // nameの表示
echo 'session_id: '.$_COOKIE["PHPSESSID"].'<br>';  //セッションIDの表示

// すべてのセッション変数の削除
$_SESSION = array();

// クッキーの削除
if (isset($_COOKIE["PHPSESSID"])) {
    setcookie("PHPSESSID", '', time() - 1800, '/');
}

// セッションに登録されたデータの削除
session_destroy();

?>

  実行結果  

id: hoge
name: Kagoshima
session_id: 4td12a5e18egf8jqc60qkdjqap

ページ遷移しても変数が保持されていることを確認できました。

 

 

まとめ

セッション変数についてはセキュリティの面で様々な検討ができると思うので調べてみたいと思いました。

ハッカソン中はPHPマニュアルを詳しく読んでいる暇もなかったので、時間がある時にでも眺めてみたいです。

 

以上、備忘録ですがありがとうございました。

ではまた!

(随時更新)【学習環境の構築】numpy, opencv, tensorflowのエラー

OpenCVのインストール

conda install -c conda-forge opencv

qiita.com

qiita.com

仮想環境の再構築

conda create -n py37 python=3.7 anaconda

 

conda install numpy

conda install matplotlib

 

conda install -c conda-forge dlib

 

Pytorchのインストール

https://pytorch.org/

で自分に合った環境を選択

f:id:mo-ri-24:20191224123857p:plain

選択画面

 

tensorflowのインストール

qiita.com

 

詳しいインストール方法はtensorflow公式サイト

pipのアップデートも忘れないように

conda update pip

cpu版をインストール

gpupythonのバージョン問題がありそうなので今後対応