トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

モノづくりへの若年者誘導

モノづくりへの若年者誘導

 ポータブルな開発環境(とりぱい)

インストーラ

プロキシが必要ない場合はコマンドプロンプトで、

curl -OR http://t.wiki.coh.jp/tripi/install.cmd

インターネット設定でプロキシが設定されている場合は、

powershell wget http://t.wiki.coh.jp/tripi/install.cmd -outfile install.cmd

 電子工作(電子部品)

トランジスタ

NAND

雑誌

 コーダー道場

北海道

宮城県

岩手県

プログラミング教室(宮城県)

文科系・理科系

 プログラミング的思考

  • 抽象化
  • 分解
  • 組み合わせ
  • 分析・評価(シミュレーション)
  • 一般化

 著作権

AGPL

 DTMF

 スイッチインターフェースの製作

ATOMS3

ATOMS3 Lite

スイッチインターフェース

ATOMS3 Liteによるスイッチインターフェースの実装

次のライブラリを使えばAtomS3でBLE接続のキーボードを作ることができました。本体中央のボタンを押すと'a'が入力できます。

NimBLEのインストール
Arduino IDEのライブラリマネージャでNimBLEを検索してインストールします

NimBLEでESP32(M5StickC)にBLEデバイスを接続する(複数デバイス対応) - Qiita

#include <BleKeyboard.h>

BleKeyboard bleKeyboard;
const int buttonPin = 41;         // input pin for pushbutton
int previousButtonState = HIGH;   // for checking the state of a pushButton

void setup() {
  // make the pushButton pin an input:
  pinMode(buttonPin, INPUT_PULLUP);
  // initialize control over the keyboard:
  bleKeyboard.begin();
}

void loop() {
  if(bleKeyboard.isConnected()) {
    // read the pushbutton:
    int buttonState = digitalRead(buttonPin); 

    if (buttonState != previousButtonState) {
      if (buttonState == LOW) {
        bleKeyboard.press('a');
      } else {
        bleKeyboard.release('a');
      }
    }
    // save the current button state for comparison next time:
    previousButtonState = buttonState;
    delay(10);
  }
}

BLE接続キーボードとUSB接続キーボードの共存

BLE接続キーボードとUSB接続キーボードを共存させました。使い方は上と同じですがペアリングして接続状態ならBLEキーボード、BLE接続されていないときはUSBキーボードになります。BLEの時は青色のランプが点灯し、USBの時は緑色のランプが点灯します。フルカラーLEDの制御にはFastLEDライブラリを使っています。

USB_BLE_KB.zip(38)

USBとBLEとでは同じ機能を実現するものですから当然ヘッダ内で衝突が起こります。「BleKeyboard.h」の方に細工をして回避するようにしました。「C:\Users\user\Documents\Arduino\libraries\ESP32-NimBLE-Keyboard\BleKeyboard.h」(「user」は自分のユーザー名)を次のファイルで置き換えてください。

BleKeyboard.h(19)

同じようなことをされている方がおられます。

USB接続の優先

USB接続を優先するようにしました。コンパイルの方法は「USB_BLE_KB.zip(38)」と同じです。

USB_BLE_KB2.zip(21)

  • USBポートに接続したときにはUSB HIDキーボードとして認識される(緑色のランプが点灯)
  • モバイルバッテリー等に接続してBLE接続したときBLEキーボードとして認識される(青色のランプが点灯)
  • モバイルバッテリー等に接続してBLE接続していないときは何もしない(赤色のランプが点灯)

現在、一度BLE接続をするとマイコン側からBLEをオフにできない問題があります。リセットボタンを押すか電源を入れ直してください。とりあえず、BLEがオンの時にUSBキーボードが有効になるとソフトリセットをするコードを入れましたが動作確認は出来ていません。状況によってリセットを繰り返すようなので止めました。

USBキーボードとして認識されたときにはbtStop()でBLEを止めました。しかし、btStart()での再開がうまくいかずBLEの再接続ができません。

次の記事がヒントになるかもしれません。

portMAX_DELAYは永久に待つことを示すようです。

参考リンク

 関数型言語の設計

研究・論文

システム開発論文

記事・書籍

 魔方陣

 LabVIEW like

 World of Module Kit

 Tiny:bit

 TabbyBot

 SSH

 ルーティング

 フォント

 ビジュアル型プログラミング言語

 Scratch

Scratch 1.4

Scratch 2.0

Scratch 3.0




 ConEmu

 WezTerm

 Tera Term

 Arduino

 MicroPython

 Python

 Miniconda

 Portable Python

PyOpenGL

 GUI

 Java

 Tcl/Tk

 Google Chrome Portable

 Atomエディタ

 ansicon

 ConsoleZ

 Git

 AWK

 Deno

 node.js

 JavaScript

 Lua

 Ruby

 Go

 Rust

 C/C++

MinGW

 Scala

 Inkscape

 ベクタライズ

 Visual Studio Code Portable

 コマンドプロンプト

 PowerShell

powershell -ExecutionPolicy Unrestricted .\repover.ps1

 VBScript

 JScript

 BusyBox

 Wget

 cURL

 lftp

 7-Zip

 ZIP

 bsdtar

 Minecraft

git clone https://github.com/fogleman/Craft.git
cd Craft
cmake -G "MinGW Makefiles"
mingw32-make
craft

 拡張子.dll、Python 2のコードであることに気を付ける。

gcc -std=c99 -O3 -fPIC -shared -o world.dll -I src -I deps/noise deps/noise/noise.c src/world.c
python server.py [HOST [PORT]]

 Python 3でも起動できました。

ツールを使ってPython 2 のコードを Python 3 のコードに自動変換する。

2to3 -w server.py

自動で変換できない部分を手で書き換える。

F:\Craft>fc /n server.py server2.py
ファイル server.py と SERVER2.PY を比較しています
***** server.py
  116:                      break
  117:                  buf.extend(data.replace('\r\n', '\n'))
  118:                  while '\n' in buf:
***** SERVER2.PY
  116:                      break
  117:                  buf.extend(data.replace('\r\n'.encode('utf-8'), '\n'.encode('utf-8')))
  118:                  while '\n' in buf:
*****

***** server.py
  158:                  data = ''.join(buf)
  159:                  self.request.sendall(data)
  160:              except Exception:
***** SERVER2.PY
  158:                  data = ''.join(buf)
  159:                  self.request.sendall(data.encode('utf-8'))
  160:              except Exception:
*****


F:\Craft>

 Dark Moon

 Music Blocks

  Microsoft Build Tools

 グラフ

 チューリングマシン

 マインクラフトでプログラミング

 Makeblock

Codey Rocky

mBot 2

mBot

sudo -E yarn global add nodebots-interchange --prefix /usr/local 

HaloCode

Neuron

 BBC micro:bit

ファームウェア

Bluetooth通信

Bluetooth MIDI

WAVESHARE Mini Piano Module for micro:bit

:KLEF Piano

CALLIOPE mini

C言語

 Sony MESH

 プログラミング

 BASIC

 LAPLAS

 Windows 10

 道民の森

 電子オルゴール

 440Hz

 LED点滅

 MIDI

 シーケンサー

 テキスト音楽サクラ

 ストトン表記

 楽譜

 メモ


BK-888 TAKACHI

TS03DTX 野村エンジニアリング

  • =インスタコード==
  • Codey Rocky
  • RasPi3A+
  • RasPi3B+
  • Microbit 1.5
  • airblock
  • pi-top
  • CutiePi