Pixelmatorで文字を縁取りする方法

文字の縁取りをしたくて調べたらあったのでBookmark。
【Pixelmatorの使い方】文字を縁取りして、目立たせる方法。

カテゴリー: Bookmark | タグ: , | コメントする

3ピンコネクター付きケーブル

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

パッケージ
パッケージ
中身(オスとメスがある)
中身(オスとメスがある)

買ったのはコレ↓

カテゴリー: 部品 | タグ: , , | コメントする

水銀式チルトスイッチ(10×2個)

Amazonでチルトスイッチを探していて見つけたので2つ購入。

水銀式チルトスイッチ(10個入りを2個)
水銀式チルトスイッチ(10個入りを2個)

買ったのはコレ↓

カテゴリー: 部品 | タグ: | コメントする

マイクロスイッチ(35個セット)

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

マイクロスイッチ(35個セット)。
ここには34個しか写っていませんが、既に1つはブレッドボードに挿してあります。
マイクロスイッチ(35個セット)

マイクロスイッチには3端子あるので、それの接続を調べました。

写真の向きで左から1, 2, 3とすると、開放で1-3が接続。スイッチを押すと1-2が接続でした。

マイクロスイッチの端子を調べた

買ったのはこれ↓

カテゴリー: 部品 | タグ: | コメントする

EV3 MicroPython 赤色検知器

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()

動作確認

動作の動画

カテゴリー: LEGO, 作ったモノ | タグ: , , | コメントする

EV3のスタンド作成

以前からEV3のスタンドを作りたいと試行錯誤してきたけど、EV3 MicroPythonのドキュメントを見ていていいのを見つけたので、それを参考に作ってみた。
参考にした文書(1〜12ステップまで)

EV3スタンド(前から)
EV3スタンド(前から)
EV3スタンド(斜めから)
EV3スタンド(斜めから)
EV3スタンド(右側から)
EV3スタンド(右側から)
EV3スタンド(左側から)
EV3スタンド(左側から)
EV3スタンド(前から)
EV3スタンド(前から)
カテゴリー: LEGO, 作ったモノ | タグ: | コメントする

LEGOでマジックハンド(試作)

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

マジックハンド(短い状態)
マジックハンド(短い状態)
マジックハンド(長い状態)
マジックハンド(長い状態)

かなり伸びるけど、3コマの変位だとどうだろうか?

手で動かしたところ。

リニアアクチュエータ(小)を組み込んでみた

リニアアクチュエータ(小)を組み込んでみた。本当は1つだけで動かそうと思ったけど、まずは両側に2つ付けてみた。

リニアアクチュエータ(小)を組み込んでみた(仮組)
リニアアクチュエータ(小)を組み込んでみた(仮組)

いざ、組み込んでみるとガバガバでちょっとこの方法はダメかなと。

LEGOで作ったマジックハンドをリニアアクチュエータで動かそうとしたけど…
カテゴリー: LEGO | タグ: , , | コメントする

リニアアクチュエータ(小)

LEGOテクニックのリニアアクチュエータ(小)を入手したので紹介します。

リニアアクチュエータ(小)は次のような形をしています。
オレンジ色の軸を回転させると、反対側の濃いグレー部分が伸縮します。

リニアアクチュエータ(小)
リニアアクチュエータ(小)

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

リニアアクチュエータ(小)の最短の状態
リニアアクチュエータ(小)の最短の状態
リニアアクチュエータ(小)の最長の状態
リニアアクチュエータ(小)の最長の状態
リニアアクチュエータ(小)の長さの確認
リニアアクチュエータ(小)の長さの確認

モーターを組み込む

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

モーターを組み込んだリニアアクチュエータ(小)
モーターを組み込んだリニアアクチュエータ(小)
リニアアクチュエータが最短の時の状態(横から)
リニアアクチュエータが最短の時の状態(横から)
リニアアクチュエータが最短の時の状態(前から)
リニアアクチュエータが最短の時の状態(前から)
リニアアクチュエータが最長の時の状態(横から)
リニアアクチュエータが最長の時の状態(横から)
リニアアクチュエータが最長の時の状態(前から)
リニアアクチュエータが最長の時の状態(前から)

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

リニアアクチュエータとモーターの接続部分
リニアアクチュエータとモーターの接続部分

動画

LEGO リニアアクチュエータ(小)

カテゴリー: LEGO, 部品 | タグ: , | コメントする

WordPress 5.5にアップデートしたら画像がストレッチされた

WordPress 5.5にアップデートしたら画像がストレッチされるようになった。
「wordpress 5.5 image」でググったらすぐにわかった。
https://core.trac.wordpress.org/ticket/50909#comment:14
テーマのカスタマイズで、追加CSSに下記の4行を追加したら直った。

img {
  max-width: 100%;
  height: auto;
}
カテゴリー: WordPress | タグ: , | コメントする

Androidアプリで電話の着信を受ける

昔、作った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);
    }

カテゴリー: Android | コメントする