taki のすべての投稿

【ラズパイ】スイッチを設置して使用できるようにする。

次は、スイッチを繋げてみます。

購入したのはスイッチが12個付いている簡易的なキットです。

この基板に部品を設置して、はんだ付けします。

ダイオード。

向きに注意。

向きを間違えると動きません。

黒い印が付いている方がカソードになります。

基板に向きがきちんと書かれているので、それに従って配置します。

抵抗。

で、これがスイッチ。

はんだ付け完了。

ブレッドボードに設置。

さらに配線も接続します。

もうこれ以上部品を設置するのは不可能ですね。

ちなみに、配線は以下の様になっています。

12SWとあるのが、今回追加したスイッチモジュールです。

スイッチが押されたかの確認は、

X=LOW、Y=HIGH、Z=HIGH

X=HIGH、Y=LOW、Z=HIGH

X=HIGH、Y=HIGH、Z=LOW

の状態を繰り返し、そのときのA,B,C,Dの出力状態(押されたときにLOWになる)を確認します。

XYZとABCDの組み合わせはこんな感じです。

回路はこんな感じ。

これを見たところ、おそらく、スイッチを押していないときは、▼から入ってきた入力がそのままA~Dに流れていく(HIGH)のでしょう。

そして、X~YがLOWの時にスイッチを押すと、▼の入力がスイッチの方へ流れていくので、その結果、A~DがLOWとなるのでは、と思います。

まぁ、この回路を流用すれば、自分で部品を調達してスイッチ回路を組むことも可能でしょう。

次回はこれを動かすためのプログラムコードを作成します。

給付金を使って函館の旅(2日目)

ほとんどドライブするだけの旅。

2日目は、1日目の問題点を踏まえまして、

長万部~豊浦間のルートを避けました。

また、黒松内までは高速料金そんなに高くなかったので、高速道路を使って一気に時間を稼ぐ作戦です。

なぜなら、この日の北海道、豪雨の予報だったので。

ということで、二日目は、蘭越~倶知安~小樽ルートです。

カーナビがはじき出しました。

朝8時前にホテルを出発。

そして、函館出る前にハセガワストアでやきとり弁当を購入して臨みました。

ただ、これでも問題点はありまして、

まず、大沼公園IC~八雲PAまで休憩できない。

これは、高速を使う以上仕方が無い。

そして、

この区間も休憩無し。

しかも、道の駅あかいがわを素通りしたため、実際は倶知安からノンストップでした。

なんだよ、このぐねぐねした道(毛無峠だよ)。

函館~札幌間、どういうルートが正解なんですかね?

誰か教えて。

でも、なんとか、事故も無く、午後4時までに札幌に到着し、レンタカーも時間内に返却できました。

次行く時は特急とかバスとか使うわ。

ニセコの道の駅で購入したおつまみで乾杯。

お疲れ様でした。

給付金を使って函館の旅(1日目)

もう当分は長距離ドライブしないと思う。

7月1日~2日と函館に行って参りました。

給付金を使って。

たぶん給付金を使うのはこれで最後だと思う。

明日からは節約生活です。

ただ、このご時世、守らなければならないことがありまして、

  • 外出時は基本マスク着用
  • マスク外すときは、野外で周りに人がいないことを確認
  • お店ではお店のルールに従う

で、お金節約のために、高速道路(有料)は使わずに、一般道路中心のルートを選びました。

有名なルートは、中山峠~洞爺湖~長万部ルート(上の地図)。

ただ、このルートの問題点は、豊浦~長万部間

この間、ほとんど山とトンネルで休憩ポイントが無い。

ここ以外は、道の駅とか、コンビニとかあるので、休憩できるのですが。

しかも、この区間、ちょうどお昼の時間。

食べる所が無かったので、結局八雲町の山岡家でした。

走り続けるのしんどかった・・・。

結局、午前9時に札幌を出発して、函館に到着したのは午後3時でした。

ぶっちゃけ、函館の観光地という観光地は行ったことがありまして、

というか、一時期住んでいたので、

アニメ聖地巡礼。

函館アリーナから出発して、

ベイエリアを周り、

元町を巡り、

五稜郭で飲みました。

※居酒屋の予約時間まで2時間しか無かったので、駆け足で回りました。

正直なところ、もう1日滞在してゆっくり回りたかったです。

※ちなみに、上の写真、何のアニメのどのシーンか、わかります?

二日目も朝早いので早々に寝ました。

と言うわけで二日目に続く。

【ぼっち】【函館】三代目網元 魚鮮水産

旅行先で食べると、さらに美味しく感じる現実。

せっかく函館に来たので、美味しい海鮮が食べたい。

そして、ビールも飲みたいだけ飲みたい。

函館って、ビール飲み放題のお店、ほとんどがチェーン店なんですよ。

函館まで行ってチェーン店で飲むって、あり得ないでしょ。

札幌でも行けるし。

調べたらここのお店が飲み放題できるということなので(しかもお一人様OK)、予約して行ってきました。

こんな感じで、名前は隠していますが、メッセージを添えてくれるのは嬉しいですね。

やっぱり港町に来たら食べたいのが海鮮。

奮発して刺し盛りを注文。

大丈夫、給付金だから。

お刺身も美味しいけど、わさびとのマッチも👍

お通しのイカ塩からも美味い。

お刺身は「本日のオススメ」だったのですが、

こちらも美味しそうだったので、

お塩で食べる揚げたて天ぷらは美味い。

このウナギ串も美味しくて二本頼んじゃいました。

こんなお店が札幌にあったら通っちゃうなー。

いやー満足でした。

マイナポイントの予約完了。

こちらの記事でもちらっと書きましたが(ちらっと認識誤りがあったので修正しています。)

マイナポイントの予約が7月1日から開始されました。

この予約、というのは、マイナポイントと連携するキャッシュレス決済サービスを設定する、と言う段階です。

実際にマイナポイントが付与対象となるのは9月以降なのでお気を付けて。

オイラは、PayPayのチャージに対してマイナポイントと連携しました。

設定自体はそんなに難しくなく、スマホ決済の場合はスマホアプリからマイナポイント設定の項目が増えているはずなので、そこから簡単に設定できます。※ただし、マイキーID発行済みであることが前提です。

スマホ決済以外のキャッシュレス決済サービスの場合は、キャッシュレス決済サービスのホームページなどで詳細な説明があるはずなので、確認しておいた方が良いですよ。

【ワイヤレスイヤホン】SONY WF-SP800Nで実際に走ってみた!

今日の札幌は、昼間久しぶりの晴れだったので、WF-SP800Nを装着して走ってみました。

WF-SP800NはスマホとペアリングしていてAmazon Music HDで音楽を再生しながら(&DQW起動しながら)走ってみました。

まず、上の開封記事でも書いたのですが、イヤーピースが耳の窪みにフィットして外れないという話。

これはね、マジで外れない。

走っている最中であってもポジション設定にイヤホンを触ることは無かった。

それだけ耳に完全にフィットして、走っていても外れません。

それともう一つ試したかったのがノイズキャンセリング。

気になったのは、風の音ぐらい。

風がイヤホンのマイクに当たって、ちょっと強めに聞こえるような感じがした。

でも気になったのはそれぐらいで、あとは車の音とかかな、それ以外のノイズはほとんど聞こえなかった。

すれ違った人達の会話もほとんど気にならなかったし。

それだけスマホで再生した音楽がきれいに聞こえます。

※これは余談ですが、Amazon Music HDってダウンロードしたらflac形式のファイルなんですよ。

WF-SP800Nはハイレゾ対応なので、ハイレゾ品質の音楽が聴けるのですよ。

お金+1000円かかるけどね。

これだけの物を買ってしまったらもうしばらくワイヤレスイヤホンは買わなくて良いね。

高いお金出して買った価値がある。非常に満足です。

これからも大事に使っていきたいと思います。

【北海道大戦】マップと都市をリンクする

前回までの状況はこちら。

最新ソースはこちら(gitHub)

https://github.com/takishita2nd/HokkaidoWar

前回はマップ同士のリンクを作成しました。

ここ、もうちょっと改良します。

すぐ終わります。

マップのプロパティにUp、Down、Left、Rightを追加してそこから隣接するマップを取得させましょう。

    class Map
    {
        public Map Up { 
            get {
                var field = Singleton.GetFieldMap();
                return field.GetMap(_x, _y - 1);
            }
        }

        public Map Down
        {
            get
            {
                var field = Singleton.GetFieldMap();
                return field.GetMap(_x, _y + 1);
            }
        }

        public Map Left
        {
            get
            {
                var field = Singleton.GetFieldMap();
                return field.GetMap(_x - 1, _y);
            }
        }

        public Map Right
        {
            get
            {
                var field = Singleton.GetFieldMap();
                return field.GetMap(_x + 1, _y);
            }
        }
    class FieldMap
    {
        public Map GetMap(int x, int y)
        {
            if(x < 0 || x >= MaxX || y < 0 || y >= MaxY)
            {
                return null;
            }
            else
            {
                return _map[x, y];
            }
        }

これでだいぶ扱いやすくなったはず。

動作結果は前回と同じ。

で、ここからが今回の本題。

マップと都市のリンクを作成します。

マップから所属する都市を取得できるようにします。

まぁ、やっていることは簡単ですが。

    class Map
    {
        public void SetCity(City city)
        {
            _city = city;
        }

        public City GetCity()
        {
            return _city;
        }
    class City
    {
        public City(string name, Point[] points, int population)
        {
            _name = name;
            _population = population;
            _maps = new List<Map>();
            var r = Singleton.GetRandom();
            _color = new asd.Color((byte)r.Next(0, 255), (byte)r.Next(0, 255), (byte)r.Next(0, 255));

            var fieldMap = Singleton.GetFieldMap();

            foreach (var p in points)
            {
                Map m = new Map(p.x, p.y, _color);
                m.SetCity(this);
                _maps.Add(m);
                fieldMap.SetMap(m);
            }
        }

マップに都市を設定する所を追加、マップの生成と一緒に自分自身のオブジェクトを設定する、というようにしました。

で、これを検証するために、選択した都市と隣接する都市の色を変えようと思います。

        private List<City> GetLinkedCities()
        {
            List<City> cities = new List<City>();
            foreach (var m in _maps)
            {
                if (m.Up != null)
                {
                    var c = m.Up.GetCity();
                    if (cities.Contains(c) == false && c != this)
                    {
                        cities.Add(c);
                    }
                }
                if (m.Down != null)
                {
                    var c = m.Down.GetCity();
                    if (cities.Contains(c) == false && c != this)
                    {
                        cities.Add(c);
                    }
                }
                if (m.Left != null)
                {
                    var c = m.Left.GetCity();
                    if (cities.Contains(c) == false && c != this)
                    {
                        cities.Add(c);
                    }
                }
                if (m.Right != null)
                {
                    var c = m.Right.GetCity();
                    if (cities.Contains(c) == false && c != this)
                    {
                        cities.Add(c);
                    }
                }
            }
            return cities;
        }
        public void OnMouse(asd.Vector2DF pos)
        {
            foreach (var m in _maps)
            {
                if(m.IsOnMouse(pos))
                {
                    var info = Singleton.GetInfomationWindow();
                    info.ShowText(pos, _name + "\r\n" + _population.ToString());
                    // test
                    var cities = GetLinkedCities();
                    foreach (var c in cities)
                    {
                        c.linkedCity();
                    }
                }
            }
        }
        //test
        private void linkedCity()
        {
            foreach(var m in _maps)
            {
                m.linkedMap();
            }
        }
    class HokkaidoWar
    {
        public void Run()
        {
            while (asd.Engine.DoEvents())
            {
                FieldMap fieldMap = Singleton.GetFieldMap();
                fieldMap.unlinkMap();

List.Contains(Obj)を使用すると、Listの中にObjと同じ物があるかを確認できます。

自分の都市の隣接する都市なので、自分自身は含めていません。

実行結果はこうなりました。

お前ら、マイナポイント(9月~)の準備はできたか?

今年の9月からマイナポイントが始まります。

利用するためにはマイナンバーカードの他にもアプリの設定が必要なのです。

ストアアプリからマイナポイントで検索するとヒットしますので、アプリをインストールしてください。

アプリをダウンロードした後は、マイキーIDの発行が必要になります。

アプリからマイナポイントの予約(マイキーIDの発行)を選択します。

画面の指示に従って、マイナンバーカードをスマホの読取り部にタッチしてください。

※読み取ったらブルって振動しますが、まだマイナンバーカードとの通信がありますので、マイナンバーカードはそのまま動かさないでください。

暗証番号4桁の入力が求められますので、マイナンバーカード発行時に登録した4桁の暗証番号を入力してください。

マイキーIDが発行されれば準備OKです。

事業開始までお待ちください。

ちなみに、マイナポイントをどうやって使用するかというと、

キャッシュレス決済サービス1つと連携し、チャージまたは決済を行った場合にポイントが付与されます。※記載を修正しました。

プレミアム分のボーナスは25%。

つまり、10000円分購入すれば2500ポイント、20000円分購入すれば5000ポイント、ボーナスでもらえます。

これはかなり大きくないですか?

使用方法等詳しいことは今後の情報を待ちましょう。

【Laravel】【ダイエット支援】グラフをもっと簡潔に【完成】

前回までの状況はこちら。

最新ソースはこちら(gitHub)

https://github.com/takishita2nd/diet-mng

このプログラムはこちらのリンク先で運用中です。

https://taki-lab.site:8443

前回からあれこれ考えたのですが、

3つのデータを1つのグラフに表示させようというのがよろしくないという結論になりました。

リンクのクリックでグラフを体重、体脂肪率、BMIで切り替えるようにしました。

たいした修正では無いので、ソースは書きませんが、gitHubのソースコードを参照してもらえればと思います。

ついでに軸の設定も変えました。(最大値と最小値)

かなりスッキリして見やすくなったかな。

やっぱりグラフは多くて2つまでかな、と思います。

さて、体重記録機能はほぼ完了しました。

次は・・・食事記録かな・・・。

【ラズパイ】【GLCD】倉田ましろを書いてみる。

こちらのネームクリップの絵がシンプルなデザインなので、この絵を表示させてみたいと思いました。

https://bang-dream.com/goods/1883

InkScapeで画像からトレースして線を書いて、

ドット絵ナニカのサイトで64×64ドットの画像に変換してExcelで出力。

http://dot-e-nanika.com

これを8×8に区分けして、16進数のドットパターンデータに変換(手作業)。

Array = [
    [
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
        0x40, 0x40, 0x20, 0x20, 0x10, 0x10, 0x20, 0x20,
        0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
    ],
    [
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40,
        0x20, 0x10, 0x08, 0x04, 0x02, 0x82, 0x81, 0x40,
        0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x03, 0x00,
        0x80, 0x41, 0x3B, 0x20, 0x20, 0x20, 0x20, 0x40,
        0x40, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    ],
    [
def drowMashiro():
    for page in range(8):
        for addr in range(64):
            if addr < 32:
                SelectIC(1)
                SetPage(page)
                SetAddress(addr + 32)
            else:
                SelectIC(2)
                SetPage(page)
                SetAddress(addr - 32)
            WriteData(mashiro.Array[page][addr])

で、表示できました。

なかなか良い感じに映っております。