Amazonでマイクロスイッチ用に3ピンコネクター付きケーブルを購入。
そもそもはRainbow LEDやLEDテープみたいなもの用のケーブルらしい。
もっと細いケーブルが良かったけど、しょうがない。


買ったのはコレ↓
Amazonでマイクロスイッチ用に3ピンコネクター付きケーブルを購入。
そもそもはRainbow LEDやLEDテープみたいなもの用のケーブルらしい。
もっと細いケーブルが良かったけど、しょうがない。


買ったのはコレ↓
Amazonでチルトスイッチを探していて見つけたので2つ購入。

買ったのはコレ↓
Amazonでマイクロスイッチ(35個セット)を買ったけど、型番とかデータシートが見つからないので、端子を調べた。

マイクロスイッチには3端子あるので、それの接続を調べました。
写真の向きで左から1, 2, 3とすると、開放で1-3が接続。スイッチを押すと1-2が接続でした。
買ったのはこれ↓
Lモーターとカラーセンサーを使って、MicroPythonで赤色検知器を作った。
起動するとカラーセンサーが180°回転し、赤色を検出するとビープが鳴って回転が止まる。
回転が止まった状態でカラーセンサーに緑色を見せるとカラーセンサーは元の位置に戻って待機状態(回転しない状態)になる。待機状態から再度赤色検出モードにするには青色を見せるとカラーセンサーが再度回転を始める。


#!/usr/bin/env pybricks-micropython
from pybricks.hubs import EV3Brick
from pybricks.ev3devices import (Motor, TouchSensor, ColorSensor,
InfraredSensor, UltrasonicSensor, GyroSensor)
from pybricks.parameters import Port, Stop, Direction, Button, Color
from pybricks.tools import wait, StopWatch, DataLog
from pybricks.robotics import DriveBase
from pybricks.media.ev3dev import SoundFile, ImageFile
# This program requires LEGO EV3 MicroPython v2.0 or higher.
# Click "Open user guide" on the EV3 extension tab for more information.
# Create your objects here.
ev3 = EV3Brick()
# Write your program here.
deg = 0
delta = 1
motor_d = Motor(Port.D, Direction.CLOCKWISE)
color_s = ColorSensor(Port.S3)
while True:
while True:
if color_s.color() == Color.RED:
break
motor_d.run_target(15, deg)
deg += delta
if deg >= 180:
delta = -delta
elif deg <= 0:
delta = -delta
ev3.speaker.beep()
while True:
if color_s.color() == Color.GREEN:
break
ev3.speaker.beep()
deg = 0
delta = 1
motor_d.run_target(90, deg)
while True:
if color_s.color() == Color.BLUE:
break
ev3.speaker.beep()
以前からEV3のスタンドを作りたいと試行錯誤してきたけど、EV3 MicroPythonのドキュメントを見ていていいのを見つけたので、それを参考に作ってみた。
参考にした文書(1〜12ステップまで)





本当はリニアアクチュエータ(小)でMindstormのカラーセンサーを移動させたいと思っていて、しかしリニアアクチュエータ(小)の移動量が3コマなので、できれば3倍くらい動かしたいと思って、マジックハンドみたいなモノで移動量を増やせないかとマジックハンドを試作。


かなり伸びるけど、3コマの変位だとどうだろうか?
手で動かしたところ。
リニアアクチュエータ(小)を組み込んでみた。本当は1つだけで動かそうと思ったけど、まずは両側に2つ付けてみた。

いざ、組み込んでみるとガバガバでちょっとこの方法はダメかなと。
LEGOテクニックのリニアアクチュエータ(小)を入手したので紹介します。
リニアアクチュエータ(小)は次のような形をしています。
オレンジ色の軸を回転させると、反対側の濃いグレー部分が伸縮します。

長さの変化を見ると、最短の状態で7コマ。最長の状態で10コマ。と3コマ伸縮します。



リニアアクチュエータの動きを見るために次のようなクレーン的なモノを作って、モーターを組み込みました。





リニアアクチュエータの長さによって角度が変わっているのがわかると思います。
このように角度が変わるような使い方をする場合、モーターと接続する際には角度が変わる事に対応できるようにしないといけません。今回は次のような対応をしています。

WordPress 5.5にアップデートしたら画像がストレッチされるようになった。
「wordpress 5.5 image」でググったらすぐにわかった。
https://core.trac.wordpress.org/ticket/50909#comment:14
テーマのカスタマイズで、追加CSSに下記の4行を追加したら直った。
img {
max-width: 100%;
height: auto;
}
昔、作ったAndroidアプリを最近のSDKで単純にビルドしたら動かなかったので、調べ直している。
電話の着信とSMSの着信をする機能。
通話アプリを作成する
Androidの開発者向けドキュメント「通話アプリを作成する」を参考にしたら、「着信に応答する」の手順の1.に「アプリが通常のメカニズムを使用して新しい着信を受け取ります。」ここがわからない…
アプリが通常のメカニズムを使用して新しい着信を受け取ります。
通常のメカニズムがそもそもわからない。昔は着信用のBroadcastReceiverをManifestに書いておくと処理が飛んできたと思うんだけど…
調べたら、PhoneStateListenerをTelephoneManagerにlistenさせると、電話の状態が変わるたびにonCallStateChangedがコールされる。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 中略
phoneStateListener = new PhoneStateListener() {
@Override
public void onCallStateChanged(int state, String phoneNumber) {
super.onCallStateChanged(state, phoneNumber);
switch (state) {
case TelephonyManager.CALL_STATE_RINGING:
tvResult.setText("RINGING from "+phoneNumber);
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
tvResult.setText("OFFHOOK from "+phoneNumber);
break;
case TelephonyManager.CALL_STATE_IDLE:
tvResult.setText("IDLE from "+phoneNumber);
break;
}
}
};
TelephonyManager telephonyManager = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
telephonyManager.listen(phoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
}