自作キーボードデビュー【KBD67, TOFU65】
はじめて自作キーボードを作ったので、備忘録として残しておきます!
全てKBDfansで揃えました。
参考記事
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
- pcbとレイアウトを選択(KEYBOARDとLAYOUT)
- 配列を変更
*MO(n)は押している間、n番レイヤに変更(Quantumタブ)
- コンパイル(右上のCOMPILEボタン)
- ファームウェア(Hexファイル)のダウンロード(右下のFIRMWAREボタン)
QMK Toolboxのインストール
macなのでQMK.Toolbox.app.zipをダウンロードしてインストール。
起動する時エラーがある場合は、ドライバーのインストールも。
$ brew tap homebrew/cask-drivers
- 書き込むキーボードを接続
- ダウンロードしたHexファイルをセット(Openボタン)
- 「Auto-flash」にチェックを入れる
- 「Auto-flash enabled」を確認
- PCBのリセットボタンを押す
- 「avrdude.exe done. Thank you.」が出れば書き込み完了
テスト
サイトでテストしました。
「keybord test」で検索するとたくさん見つかると思います。
完成
【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
仮想環境の再構築
conda create -n py37 python=3.7 anaconda
conda install numpy
conda install matplotlib
conda install -c conda-forge dlib
Pytorchのインストール
で自分に合った環境を選択
tensorflowのインストール
詳しいインストール方法はtensorflow公式サイトへ
pipのアップデートも忘れないように
conda update pip
cpu版をインストール
gpuはpythonのバージョン問題がありそうなので今後対応
はじめまして。
ブログはじめました
興味の赴くままに、
気になったことを、
自分が忘れないためにも
たくさん記事を残していきたいと思います。
よろしくお願いします!