<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[icchi's blog | 都内で働く高専出身エンジニアのブログ]]></title><description><![CDATA[都内で働く高専出身エンジニアのブログ]]></description><link>https://blog.icchi.me</link><generator>GatsbyJS</generator><lastBuildDate>Sat, 06 Feb 2021 15:23:46 GMT</lastBuildDate><item><title><![CDATA[Vue製サイトのCI/CD環境をCircleCIからGitHub Actionsに移行してみた]]></title><description><![CDATA[はじめに 最近仕事で GitHub Actions を使い始めました。料金体系は従量課金制で、CircleCI を意識してか基本的に GitHub Actions のほうが安くなるような価格設定です。 プロフィールサイトを改修する機会があったので、ついでに CI/CD…]]></description><link>https://blog.icchi.me/migrate-circleci-to-github-actions-for-vue</link><guid isPermaLink="false">https://blog.icchi.me/migrate-circleci-to-github-actions-for-vue</guid><pubDate>Sun, 26 Jan 2020 19:28:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 56.49999999999999%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAAAAECBAX/xAAUAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAHo67SgD//EABgQAAIDAAAAAAAAAAAAAAAAABARAQID/9oACAEBAAEFAlOdmEf/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAVEQEBAAAAAAAAAAAAAAAAAAAQEf/aAAgBAgEBPwGn/8QAGRAAAQUAAAAAAAAAAAAAAAAAEQABICFh/9oACAEBAAY/AmA1VH//xAAZEAEAAwEBAAAAAAAAAAAAAAABABEhURD/2gAIAQEAAT8hNTdxdCIOSnD3/9oADAMBAAIAAwAAABB0z//EABYRAQEBAAAAAAAAAAAAAAAAAAEREP/aAAgBAwEBPxAIQz//xAAWEQEBAQAAAAAAAAAAAAAAAAABEBH/2gAIAQIBAT8QUus//8QAGxABAQADAQEBAAAAAAAAAAAAAREAITFRYXH/2gAIAQEAAT8QM9liSBdltNfN5IBHfenzKB4+XFet+mQgQ1kPM//Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;thumbnail&quot;
        title=&quot;thumbnail&quot;
        src=&quot;/static/8889ec0e8571ca0c3a5537bce8eca132/4b190/thumbnail.jpg&quot;
        srcset=&quot;/static/8889ec0e8571ca0c3a5537bce8eca132/e07e9/thumbnail.jpg 200w,
/static/8889ec0e8571ca0c3a5537bce8eca132/066f9/thumbnail.jpg 400w,
/static/8889ec0e8571ca0c3a5537bce8eca132/4b190/thumbnail.jpg 800w,
/static/8889ec0e8571ca0c3a5537bce8eca132/e5166/thumbnail.jpg 1200w,
/static/8889ec0e8571ca0c3a5537bce8eca132/b17f8/thumbnail.jpg 1600w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;h2 id=&quot;はじめに&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB&quot; aria-label=&quot;はじめに permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;はじめに&lt;/h2&gt;
&lt;p&gt;最近仕事で GitHub Actions を使い始めました。料金体系は従量課金制で、CircleCI を意識してか基本的に GitHub Actions のほうが安くなるような価格設定です。&lt;/p&gt;
&lt;p&gt;プロフィールサイトを改修する機会があったので、ついでに CI/CD を CircleCI から GitHub Actions に移行してみました。&lt;/p&gt;
&lt;h2 id=&quot;モチベーション&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%83%A2%E3%83%81%E3%83%99%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3&quot; aria-label=&quot;モチベーション permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;モチベーション&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;GitHub Actions を個人プロジェクト(無料枠)でも試してみたかった&lt;/li&gt;
&lt;li&gt;無料枠での実行時間が CircleCI よりも長い&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;コード管理、CI/CD、サイト配信を GitHub で一元化&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GitHub Actions → GitHub Pages&lt;/li&gt;
&lt;li&gt;GitHub Actions と Issue、Pull Request との連携&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;移行作業&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E7%A7%BB%E8%A1%8C%E4%BD%9C%E6%A5%AD&quot; aria-label=&quot;移行作業 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;移行作業&lt;/h2&gt;
&lt;p&gt;今回の移行作業を図でまとめるとこんな感じです。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 56.49999999999999%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAIDBf/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAHuTrKAv//EABgQAAMBAQAAAAAAAAAAAAAAAAABAhEx/9oACAEBAAEFAqbETwxMmVJ//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAHBAAAQMFAAAAAAAAAAAAAAAAAAERIQIQMUGR/9oACAEBAAY/AoQWp+6MvZiEP//EABkQAQEBAQEBAAAAAAAAAAAAAAERAEExof/aAAgBAQABPyEQ1U3RI8wr9eQSJckUUcPJHu//2gAMAwEAAgADAAAAEEwP/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPxA//8QAFhEBAQEAAAAAAAAAAAAAAAAAAAEh/9oACAECAQE/EMV//8QAHBABAAICAwEAAAAAAAAAAAAAAQARITFBcZHw/9oACAEBAAE/ELXcNNX91Lgxkuih3iFhNFKV5HQg8MJ2JEeYxMzYF3P/2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;architecture&quot;
        title=&quot;architecture&quot;
        src=&quot;/static/d570900029573e489c5f6da24338d774/4b190/architecture.jpg&quot;
        srcset=&quot;/static/d570900029573e489c5f6da24338d774/e07e9/architecture.jpg 200w,
/static/d570900029573e489c5f6da24338d774/066f9/architecture.jpg 400w,
/static/d570900029573e489c5f6da24338d774/4b190/architecture.jpg 800w,
/static/d570900029573e489c5f6da24338d774/e5166/architecture.jpg 1200w,
/static/d570900029573e489c5f6da24338d774/b17f8/architecture.jpg 1600w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;h3 id=&quot;サイト配信を-github-pages-に変更&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%82%B5%E3%82%A4%E3%83%88%E9%85%8D%E4%BF%A1%E3%82%92-github-pages-%E3%81%AB%E5%A4%89%E6%9B%B4&quot; aria-label=&quot;サイト配信を github pages に変更 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;サイト配信を GitHub Pages に変更&lt;/h3&gt;
&lt;p&gt;これまでサイトの配信はドメインの契約時に付随してきたサーバを利用してきました。CircleCI を利用して、Vue で静的サイトを生成(ビルド)した後、FTP でそのサーバに送信する流れです。&lt;/p&gt;
&lt;p&gt;今回 CI/CD を GitHub Actions に移行するにあたり、配信も GitHub Pages を用いることにしました。以下の GitHub Actions の公開アクションを使って簡単にサイトを GitHub Pages で公開可能です。&lt;/p&gt;
&lt;div class=&quot;iframely-embed&quot;&gt;&lt;div class=&quot;iframely-responsive&quot; style=&quot;height: 140px; padding-bottom: 0;&quot;&gt;&lt;a href=&quot;https://github.com/peaceiris/actions-gh-pages&quot; data-iframely-url=&quot;//cdn.iframe.ly/h8rfd8n?iframe=card-small&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;script async src=&quot;//cdn.iframe.ly/embed.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;&lt;br/&gt;
&lt;p&gt;また、これまで必要だった FTP の管理からも開放されるのもありがたいところ。一応 FTP を扱いたい場合も、&lt;a href=&quot;https://github.com/marketplace/actions/ftp-deploy&quot;&gt;FTP Deploy&lt;/a&gt;という公開アクションもあるので割と簡単にはできそうです。&lt;/p&gt;
&lt;h4 id=&quot;プロフィールサイトのリポジトリ名を変更&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%83%97%E3%83%AD%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%82%B5%E3%82%A4%E3%83%88%E3%81%AE%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E5%90%8D%E3%82%92%E5%A4%89%E6%9B%B4&quot; aria-label=&quot;プロフィールサイトのリポジトリ名を変更 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;プロフィールサイトのリポジトリ名を変更&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;GitHub Pages サイトには、3 つの種類があります。プロジェクト、ユーザ、そして Organization です。 プロジェクトサイトは、JavaScript ライブラリやレシピ集など、GitHub の特定のプロジェクトに関するものです。 ユーザおよび Organization サイトは、特定の GitHub に関するものです。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://help.github.com/ja/github/working-with-github-pages/about-github-pages&quot;&gt;https://help.github.com/ja/github/working-with-github-pages/about-github-pages&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;上のように、ユーザタイプの GitHub Pages を使うためにはリポジトリ名の制約があります。既存のプロフィールサイトリポジトリ名を&lt;code class=&quot;language-text&quot;&gt;profile-site&lt;/code&gt;から&lt;code class=&quot;language-text&quot;&gt;icchi-h.github.io&lt;/code&gt;に変更しました。&lt;/p&gt;
&lt;p&gt;必要に応じてローカルのリポジトリ内に含まれるリモート URL も変更。(&lt;code class=&quot;language-text&quot;&gt;&amp;lt;repositoty path&amp;gt;/.git/config&lt;/code&gt;)&lt;/p&gt;
&lt;h4 id=&quot;カスタムドメイン対応&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E5%AF%BE%E5%BF%9C&quot; aria-label=&quot;カスタムドメイン対応 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;カスタムドメイン対応&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://help.github.com/ja/github/working-with-github-pages/managing-a-custom-domain-for-your-github-pages-site#configuring-a-subdomain&quot;&gt;公式のドキュメント&lt;/a&gt;には A レコード指定方式、IP 指定方式について記載されています。&lt;/p&gt;
&lt;p&gt;今回は CNAME 方式を採用しました。&lt;code class=&quot;language-text&quot;&gt;icchi.me&lt;/code&gt;ドメインにアクセスがあった際に&lt;code class=&quot;language-text&quot;&gt;icchi-h.github.io&lt;/code&gt;ドメインを参照するようになります。&lt;/p&gt;
&lt;p&gt;あとリポジトリの設定画面から使用するドメイン情報を保存しておきます。Setting → Overview → GitHub Pages。&lt;code class=&quot;language-text&quot;&gt;icchi-h.github.io&lt;/code&gt;へのアクセスは&lt;code class=&quot;language-text&quot;&gt;icchi.me&lt;/code&gt;にリダイレクトしてくれます。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 84.5%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAARABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAEF/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhADEAAAAdyqlCwFB//EABQQAQAAAAAAAAAAAAAAAAAAADD/2gAIAQEAAQUCH//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQMBAT8BH//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQIBAT8BH//EABQQAQAAAAAAAAAAAAAAAAAAADD/2gAIAQEABj8CH//EABsQAAEFAQEAAAAAAAAAAAAAAAEAEBEhQVFh/9oACAEBAAE/IdMK+tptT64b/9oADAMBAAIAAwAAABBUzzz/xAAVEQEBAAAAAAAAAAAAAAAAAAARIP/aAAgBAwEBPxAj/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPxAf/8QAGxABAAICAwAAAAAAAAAAAAAAAQAhEBExQVH/2gAIAQEAAT8QK2NXeiAu0BO4OqBfkB4w8s5Y/9k=&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;demo&quot;
        title=&quot;demo&quot;
        src=&quot;/static/41ee0391ea139d0d220b2117d7923f74/4b190/github-pages-custom-domain.jpg&quot;
        srcset=&quot;/static/41ee0391ea139d0d220b2117d7923f74/e07e9/github-pages-custom-domain.jpg 200w,
/static/41ee0391ea139d0d220b2117d7923f74/066f9/github-pages-custom-domain.jpg 400w,
/static/41ee0391ea139d0d220b2117d7923f74/4b190/github-pages-custom-domain.jpg 800w,
/static/41ee0391ea139d0d220b2117d7923f74/e5166/github-pages-custom-domain.jpg 1200w,
/static/41ee0391ea139d0d220b2117d7923f74/fbd04/github-pages-custom-domain.jpg 1526w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;h3 id=&quot;ソースコードのプッシュブランチを変更&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E3%83%97%E3%83%83%E3%82%B7%E3%83%A5%E3%83%96%E3%83%A9%E3%83%B3%E3%83%81%E3%82%92%E5%A4%89%E6%9B%B4&quot; aria-label=&quot;ソースコードのプッシュブランチを変更 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;ソースコードのプッシュブランチを変更&lt;/h3&gt;
&lt;p&gt;GitHub Pages の仕様でユーザタイプのページは master ブランチから配信する必要があります (2020/01/26 時点)。プロジェクトタイプは自由に配信用ブランチを選択できるので、同様にしてほしかった。&lt;/p&gt;
&lt;p&gt;仕方ないのでサイトのソースコードを&lt;code class=&quot;language-text&quot;&gt;production&lt;/code&gt;、配信を&lt;code class=&quot;language-text&quot;&gt;master&lt;/code&gt;ブランチで管理することにしました。デフォルトブランチは、Code → branches → Change Default Branch から変更可能です。&lt;/p&gt;
&lt;h3 id=&quot;cicd-移行&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#cicd-%E7%A7%BB%E8%A1%8C&quot; aria-label=&quot;cicd 移行 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;CI/CD 移行&lt;/h3&gt;
&lt;h4 id=&quot;circleci-の停止&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#circleci-%E3%81%AE%E5%81%9C%E6%AD%A2&quot; aria-label=&quot;circleci の停止 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;CircleCI の停止&lt;/h4&gt;
&lt;h5 id=&quot;workflow-の停止&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#workflow-%E3%81%AE%E5%81%9C%E6%AD%A2&quot; aria-label=&quot;workflow の停止 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;WorkFlow の停止&lt;/h5&gt;
&lt;p&gt;CircleCI コンソール → WORKFLOWS → 今回の WorkFlow の設定 → OverView → Stop Building&lt;/p&gt;
&lt;h5 id=&quot;workflow-の設定ファイルを削除&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#workflow-%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E5%89%8A%E9%99%A4&quot; aria-label=&quot;workflow の設定ファイルを削除 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;WorkFlow の設定ファイルを削除&lt;/h5&gt;
&lt;p&gt;プロフィールサイトのリポジトリ内に含まれている CircleCI 用ディレクトリ&lt;code class=&quot;language-text&quot;&gt;.circleci&lt;/code&gt;を削除します。&lt;/p&gt;
&lt;h4 id=&quot;github-action-用-deploy-key-を作成&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#github-action-%E7%94%A8-deploy-key-%E3%82%92%E4%BD%9C%E6%88%90&quot; aria-label=&quot;github action 用 deploy key を作成 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;GitHub Action 用 Deploy Key を作成&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/peaceiris/actions-gh-pages#1-add-ssh-deploy-key&quot;&gt;https://github.com/peaceiris/actions-gh-pages#1-add-ssh-deploy-key&lt;/a&gt;&lt;/p&gt;
&lt;h4 id=&quot;github-actions-の設定ファイルを追加&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#github-actions-%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E8%BF%BD%E5%8A%A0&quot; aria-label=&quot;github actions の設定ファイルを追加 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;GitHub Actions の設定ファイルを追加&lt;/h4&gt;
&lt;p&gt;リポジトリのルートに&lt;code class=&quot;language-text&quot;&gt;.github/workflows/main.yml&lt;/code&gt;を作成しました。&lt;/p&gt;
&lt;div class=&quot;gatsby-code-title&quot;&gt;.github/workflows/main.yml&lt;/div&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;yaml&quot;&gt;&lt;pre style=&quot;counter-reset: linenumber NaN&quot; class=&quot;language-yaml line-numbers&quot;&gt;&lt;code class=&quot;language-yaml&quot;&gt;&lt;span class=&quot;token key atrule&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; CI/CD

&lt;span class=&quot;token key atrule&quot;&gt;on&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;push&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;branches&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; production

&lt;span class=&quot;token key atrule&quot;&gt;jobs&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;build-deploy&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;runs-on&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; ubuntu&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;18.04&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;steps&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;uses&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; actions/checkout@master

      &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; setup node
        &lt;span class=&quot;token key atrule&quot;&gt;uses&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; actions/setup&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;node@v1
        &lt;span class=&quot;token key atrule&quot;&gt;with&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
          &lt;span class=&quot;token key atrule&quot;&gt;node-version&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;12.x&apos;&lt;/span&gt;

      &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; Cache dependencies
        &lt;span class=&quot;token key atrule&quot;&gt;uses&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; actions/cache@v1
        &lt;span class=&quot;token key atrule&quot;&gt;with&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
          &lt;span class=&quot;token key atrule&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; ~/.npm
          &lt;span class=&quot;token key atrule&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; $&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; runner.os &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;node&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;$&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; hashFiles(&apos;&lt;span class=&quot;token important&quot;&gt;**/package-lock.json&apos;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
          &lt;span class=&quot;token key atrule&quot;&gt;restore-keys&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;token scalar string&quot;&gt;
            ${{ runner.os }}-node-
            ${{ runner.os }}-build-${{ env.cache-name }}-
            ${{ runner.os }}-build-
            ${{ runner.os }}-&lt;/span&gt;

      &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; install
        &lt;span class=&quot;token key atrule&quot;&gt;run&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; npm install

      &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; build
        &lt;span class=&quot;token key atrule&quot;&gt;run&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; npm run build

      &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; deploy
        &lt;span class=&quot;token key atrule&quot;&gt;uses&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; peaceiris/actions&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;gh&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;pages@v2
        &lt;span class=&quot;token key atrule&quot;&gt;env&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
          &lt;span class=&quot;token key atrule&quot;&gt;ACTIONS_DEPLOY_KEY&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; $&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; secrets.ACTIONS_DEPLOY_KEY &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
          &lt;span class=&quot;token key atrule&quot;&gt;PUBLISH_BRANCH&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; master
          &lt;span class=&quot;token key atrule&quot;&gt;PUBLISH_DIR&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; ./dist&lt;/code&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;white-space: normal; width: auto; left: 0;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;readmemd-内のバッジ更新&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#readmemd-%E5%86%85%E3%81%AE%E3%83%90%E3%83%83%E3%82%B8%E6%9B%B4%E6%96%B0&quot; aria-label=&quot;readmemd 内のバッジ更新 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;README.md 内のバッジ更新&lt;/h3&gt;
&lt;p&gt;&lt;code class=&quot;language-text&quot;&gt;README.md&lt;/code&gt;内に記載されている CI/CD のステータスバッジを CitcleCI から GitHub Actions のものに変更しました。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre style=&quot;counter-reset: linenumber NaN&quot; class=&quot;language-text line-numbers&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;&amp;lt;!-- CircleCI --&amp;gt;
[![CircleCI](https://circleci.com/gh/icchi-h/profile-site.svg?style=svg)](https://circleci.com/gh/icchi-h/profile-site)
↓
&amp;lt;!-- GitHub Actions --&amp;gt;
[![Actions Status](https://github.com/icchi-h/icchi-h.github.io/workflows/CI/CD/badge.svg)](https://github.com/icchi-h/icchi-h.github.io/actions)&lt;/code&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;white-space: normal; width: auto; left: 0;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&quot;デモ&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%83%87%E3%83%A2&quot; aria-label=&quot;デモ permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;デモ&lt;/h2&gt;
&lt;p&gt;GitHub リポジトリの Action タブから設定したアクションの状態が確認できます。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/df6714a3b3426049d02d13fcdc72a462/demo_github-actions.gif&quot; alt=&quot;demo&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;感想&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%84%9F%E6%83%B3&quot; aria-label=&quot;感想 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;感想&lt;/h2&gt;
&lt;h3 id=&quot;簡単&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E7%B0%A1%E5%8D%98&quot; aria-label=&quot;簡単 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;簡単&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;既存のリポジトリに&lt;code class=&quot;language-text&quot;&gt;.github/workflows/XXX.yml&lt;/code&gt;を作るだけで CI/CD 環境を構築&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://help.github.com/ja/actions/automating-your-workflow-with-github-actions&quot;&gt;日本語の公式ドキュメント&lt;/a&gt;も充実&lt;/li&gt;
&lt;li&gt;今回の移行規模であれば 1,2 時間で完了&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;便利&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E4%BE%BF%E5%88%A9&quot; aria-label=&quot;便利 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;便利&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;コード管理、CI/CD、サイト配信すべてを GitHub で完結&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;各サービス用のアカウント、決済、システム連携、などの複数管理から開放&lt;/li&gt;
&lt;li&gt;CI/CD の状態が issue や Pull Request 上に表示&lt;/li&gt;
&lt;li&gt;ブラウザのタブ間を行き来不要&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Lint を設定していれば PR 上のコードにインラインで結果を表示&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;機能は CircleCI にはなかったような...?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;公開されているアクションを利用可能&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;安い&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%AE%89%E3%81%84&quot; aria-label=&quot;安い permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;安い&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;無料枠においても 1 ヶ月あたりの実行時間が CircleCI よりも長くなった&lt;/li&gt;
&lt;li&gt;有料でも従量課金制+単位時間あたりの金額が CircleCI よりも安い&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;おわりに&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%81%8A%E3%82%8F%E3%82%8A%E3%81%AB&quot; aria-label=&quot;おわりに permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;おわりに&lt;/h2&gt;
&lt;p&gt;すでに GitHub をコード管理やサイト公開使っている開発者にはおすすめできるサービスだと感じました。CircleCI や Travis などにとっては頭が痛いそうだ。&lt;/p&gt;
&lt;h2 id=&quot;reference&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#reference&quot; aria-label=&quot;reference permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Reference&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://github.co.jp/features/actions&quot;&gt;GitHub Actions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://qiita.com/1915keke/items/8b18097d2981e88eca93&quot;&gt;Github Actions が使えるようになったので使ってみる&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://qiita.com/euxn23/items/8cec3a3b8de9e3213424&quot;&gt;GitHub Actions の Private リポジトリの料金概算&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://qiita.com/peaceiris/items/d401f2e5724fdcb0759d&quot;&gt;GitHub Actions による GitHub Pages への自動デプロイ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://help.github.com/ja/github/working-with-github-pages/about-github-pages&quot;&gt;GitHub Pages について&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://help.github.com/ja/actions/automating-your-workflow-with-github-actions/caching-dependencies-to-speed-up-workflows&quot;&gt;依存関係をキャッシュしてワークフローのスピードを上げる&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://help.github.com/ja/github/working-with-github-pages/about-custom-domains-and-github-pages&quot;&gt;カスタムドメインと GitHub Pages について&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://help.github.com/ja/github/working-with-github-pages/managing-a-custom-domain-for-your-github-pages-site#configuring-a-subdomain&quot;&gt;GitHub Pages サイトのカスタムドメインを管理する&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://help.github.com/ja/actions/automating-your-workflow-with-github-actions/configuring-a-workflow#adding-a-workflow-status-badge-to-your-repository&quot;&gt;ワークフローのステータスバッジをリポジトリに追加する&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</content:encoded></item><item><title><![CDATA[チーム向け通知システムを作ってみた]]></title><description><![CDATA[はじめに 「最近、XXX(私の名前)に会ってないから名前が出てこないわー」。 開発のきっかけは…]]></description><link>https://blog.icchi.me/team-notification-system</link><guid isPermaLink="false">https://blog.icchi.me/team-notification-system</guid><pubDate>Tue, 15 Oct 2019 02:55:00 GMT</pubDate><content:encoded>&lt;h2 id=&quot;はじめに&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB&quot; aria-label=&quot;はじめに permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;はじめに&lt;/h2&gt;
&lt;p&gt;「最近、XXX(私の名前)に会ってないから名前が出てこないわー」。&lt;/p&gt;
&lt;p&gt;開発のきっかけは 7 月の異動前に所属していたチームのリーダーからの一言でした。この煽り発言に対抗するためにはどうすればいいのか...考えました。考えた結果、&lt;strong&gt;定期的に(鬱陶しいぐらい)名前と顔写真を送ればいいのでは？&lt;/strong&gt;というソリューションが頭を過りました。ただし、それだけじゃただの迷惑行為。そのため&lt;strong&gt;日常生活に便利な情報を付随&lt;/strong&gt;すれば、相手も便利に感じてもらいながら本来のミッションをクリアできる(はず)という考えに至りました。&lt;/p&gt;
&lt;h2 id=&quot;毎朝？日常的に得たい情報とは&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%AF%8E%E6%9C%9D%EF%BC%9F%E6%97%A5%E5%B8%B8%E7%9A%84%E3%81%AB%E5%BE%97%E3%81%9F%E3%81%84%E6%83%85%E5%A0%B1%E3%81%A8%E3%81%AF&quot; aria-label=&quot;毎朝？日常的に得たい情報とは permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;毎朝？日常的に得たい情報とは&lt;/h2&gt;
&lt;p&gt;どんな情報を通知すればいいのか...個人差もあるかと思いますが、すぐに思い当たったのか以下の項目。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;天気予報&lt;/li&gt;
&lt;li&gt;ターゲット(チームリーダー)の当日スケジュール&lt;/li&gt;
&lt;li&gt;チーム用スケジュール&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;2 に関してはデータの取得がセキュリティ的に困難なのと、すでに確認作業がルーチン化されているため、あまり効果がないかもしれません。そこでひとまず 1,3 を実装することにしました。あと 1 の天気予報に関して、晴れ予想を通知しても恩恵があまりないので、雨天予報のときのみ通知する仕様にします。&lt;/p&gt;
&lt;h2 id=&quot;構成&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%A7%8B%E6%88%90&quot; aria-label=&quot;構成 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;構成&lt;/h2&gt;
&lt;p&gt;以下のような構成にしました。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/017253b80a3eca46a60f81de926f53ae/0f98f/architecture.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 56.49999999999999%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAgABBf/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAe6XoZR//8QAGhAAAgIDAAAAAAAAAAAAAAAAAAIBEBESIf/aAAgBAQABBQKcjTqL1b//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAYEAACAwAAAAAAAAAAAAAAAAAAAREgIf/aAAgBAQAGPwI1xX//xAAbEAEAAgIDAAAAAAAAAAAAAAABABEQQSExUf/aAAgBAQABPyHweWDRAXuKhsb2SixiD3j/2gAMAwEAAgADAAAAECPP/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPxA//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPxA//8QAHBABAQEAAQUAAAAAAAAAAAAAAREAITFBYXGB/9oACAEBAAE/EALITi1nzTPsKpeM6aBew+sow5LHAwCecAEOm//Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;architecture&quot;
        title=&quot;architecture&quot;
        src=&quot;/static/017253b80a3eca46a60f81de926f53ae/4b190/architecture.jpg&quot;
        srcset=&quot;/static/017253b80a3eca46a60f81de926f53ae/e07e9/architecture.jpg 200w,
/static/017253b80a3eca46a60f81de926f53ae/066f9/architecture.jpg 400w,
/static/017253b80a3eca46a60f81de926f53ae/4b190/architecture.jpg 800w,
/static/017253b80a3eca46a60f81de926f53ae/e5166/architecture.jpg 1200w,
/static/017253b80a3eca46a60f81de926f53ae/b17f8/architecture.jpg 1600w,
/static/017253b80a3eca46a60f81de926f53ae/0f98f/architecture.jpg 1920w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;h3 id=&quot;通知スクリプト&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E9%80%9A%E7%9F%A5%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88&quot; aria-label=&quot;通知スクリプト permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;通知スクリプト&lt;/h3&gt;
&lt;p&gt;毎度同じみ GAS を中心に構成。通知のための定期処理はマイトリガー機能で平日毎朝 9 時に通知関数が実行されるようにしている。&lt;/p&gt;
&lt;h3 id=&quot;カレンダー&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%82%AB%E3%83%AC%E3%83%B3%E3%83%80%E3%83%BC&quot; aria-label=&quot;カレンダー permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;カレンダー&lt;/h3&gt;
&lt;p&gt;今回のシステムのために、新たに 1 つ API を開発した。こちらもリクエストとメインの処理は GAS で担当。スケジュールの管理は皆で編集できるように Google SpreadSheet を利用した。&lt;/p&gt;
&lt;p&gt;(開発したあとで気付いたが、スケジュール管理なら SpreadSheet ではなく Google カレンダーで良かったのでは...笑)&lt;/p&gt;
&lt;h3 id=&quot;天気予報-api&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%A4%A9%E6%B0%97%E4%BA%88%E5%A0%B1-api&quot; aria-label=&quot;天気予報 api permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;天気予報 API&lt;/h3&gt;
&lt;p&gt;プログラムから天気予報を取得する問い合わせ先(無料)候補。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Open Weather Map&lt;/li&gt;
&lt;li&gt;YOLP (Yahoo Open Local Platform)&lt;/li&gt;
&lt;li&gt;livedoor Weather Hacks&lt;/li&gt;
&lt;li&gt;気象庁 (要スクレイピング)&lt;/li&gt;
&lt;li&gt;...などなど&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;それぞれ、取得できる期間や精度などに違いがあります。&lt;/p&gt;
&lt;p&gt;今回の目的は午後の天気が取得することで、その点 livedoor の天気予報 API は求めている情報を加工する必要なく返却してくたので、こちらを利用。&lt;/p&gt;
&lt;p&gt;(意外と YOLP に関する参考記事が少なかった)&lt;/p&gt;
&lt;h2 id=&quot;結果&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E7%B5%90%E6%9E%9C&quot; aria-label=&quot;結果 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;結果&lt;/h2&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/832cc93328d015bd6dd8de92d93bed40/66fdb/slack-notification.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 59.00000000000001%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAMABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAMF/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAABzZ1iAf/EABgQAAIDAAAAAAAAAAAAAAAAABATAQIx/9oACAEBAAEFAtqGSsf/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAXEAEAAwAAAAAAAAAAAAAAAAAQERJB/9oACAEBAAY/ApaY/wD/xAAbEAACAQUAAAAAAAAAAAAAAAABEBEAITGBkf/aAAgBAQABPyGDYbiuIBxN/9oADAMBAAIAAwAAABBrL//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8QP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8QP//EABwQAQACAgMBAAAAAAAAAAAAAAERMQAhEEGB8f/aAAgBAQABPxCVaQ01ntYr8mN9Yog5sKbJ3fP/2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;slack notification&quot;
        title=&quot;slack notification&quot;
        src=&quot;/static/832cc93328d015bd6dd8de92d93bed40/4b190/slack-notification.jpg&quot;
        srcset=&quot;/static/832cc93328d015bd6dd8de92d93bed40/e07e9/slack-notification.jpg 200w,
/static/832cc93328d015bd6dd8de92d93bed40/066f9/slack-notification.jpg 400w,
/static/832cc93328d015bd6dd8de92d93bed40/4b190/slack-notification.jpg 800w,
/static/832cc93328d015bd6dd8de92d93bed40/e5166/slack-notification.jpg 1200w,
/static/832cc93328d015bd6dd8de92d93bed40/66fdb/slack-notification.jpg 1250w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;h2 id=&quot;感想&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%84%9F%E6%83%B3&quot; aria-label=&quot;感想 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;感想&lt;/h2&gt;
&lt;p&gt;やっぱりこういったちょっとした開発案件には GAS は最適だと思う。特に Clasp と Typescript 対応で更に DX が改善されたように思う。これが無料で使えるんだから素晴らしい。&lt;/p&gt;
&lt;p&gt;ただし、自分の環境では doPost 関数実行時(POST リクエストを受け取った時)に、なぜか Stackdriver(ログサービス)が稼働しないようでログが残らない。そのため、実行ログやデバッグの際に少し手間取ることがあった。&lt;/p&gt;
&lt;p&gt;加えて、Clasp で push した後のコードはスクリプトファイル(&lt;code class=&quot;language-text&quot;&gt;.gs&lt;/code&gt;)が別でもスコープ共通化されている。各々のスクリプトファイルで同名の変数が定義されていても、エラーは起きず実行タイミングによって内容が上書きされてしまう。自分は変数名のルール化や不要なコードのコメント化で対応したが、このあたりが typescript→gs へのコンバート時に考慮してもらえると、より DX が向上すると思う。&lt;/p&gt;
&lt;p&gt;肝心の開発リーダーからの反応は今のところない。&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Gatsby、Netlify、IFTTTでCI、Qiita連携対応なブログを作ってみた]]></title><description><![CDATA[はじめに 以前から興味があった静的サイトジェネレーター「Gatsby.js」でお試し的にブログを作ってみました。 高品質な Gatsby…]]></description><link>https://blog.icchi.me/starting-gatsby-blog</link><guid isPermaLink="false">https://blog.icchi.me/starting-gatsby-blog</guid><pubDate>Wed, 02 Oct 2019 22:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 56.49999999999999%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAAAsTAAALEwEAmpwYAAABuklEQVQoz5WTXU/TUBjH+538MiZ665U3xjuvli3c4gQjCjgkGqJcTENiwgxmV4yNsCVtzWQra1nLpMNubRldady6n2sVWXREOMk/53k7T56X/xHCMOSqE/kijEaja0OIHvq+T7dr4/k9+sEZjuvgOE4ccJE0wnA4/Ef/2yb0+33y+TyiJJJ9leNNeoPd4h47xQL7X/e5yYkr7Fgd5KqEXnF5ce8z6dubZFNlTt0e5UqZXu8srjbqQG2omKaJrut4noemahiGMfZ1OffPGQwGCLZtUyqVyD0Xmb2zwcNbq6TvfuTLrkL9oEZhu8D80zler63ycmWZ9x+y5LY2+TTGUmaRpeVFUjNJEokEiqIgOLaD0qhxLPlsLVR5+6hIca1J4P9AlqW4lZbWRt5WaVbbfFMtVNGkVjaoV44wmx0acoudQomoOEHTNJKpJJmVDKkHT5i5/4z52QXSc49Zf7ceJ3RMD7VywvfmaSwf7LU5FC0OJYvjuoMud/7MUQiCgNZRiyixZZ/geja6oce667rxoMfjvnoRv31h+Gvbwv82d0mR8T28lCf1Sb4Kk4ZpuODiNBJPixNu8guug59t5jHEFcH9fgAAAABJRU5ErkJggg==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;thumbnail&quot;
        title=&quot;thumbnail&quot;
        src=&quot;/static/4739e6fe4a5acacb94ccca7b27c95850/5a190/thumbnail.png&quot;
        srcset=&quot;/static/4739e6fe4a5acacb94ccca7b27c95850/772e8/thumbnail.png 200w,
/static/4739e6fe4a5acacb94ccca7b27c95850/e17e5/thumbnail.png 400w,
/static/4739e6fe4a5acacb94ccca7b27c95850/5a190/thumbnail.png 800w,
/static/4739e6fe4a5acacb94ccca7b27c95850/c1b63/thumbnail.png 1200w,
/static/4739e6fe4a5acacb94ccca7b27c95850/29007/thumbnail.png 1600w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;h2 id=&quot;はじめに&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB&quot; aria-label=&quot;はじめに permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;はじめに&lt;/h2&gt;
&lt;p&gt;以前から興味があった静的サイトジェネレーター「&lt;a href=&quot;https://www.gatsbyjs.org/&quot;&gt;&lt;strong&gt;Gatsby.js&lt;/strong&gt;&lt;/a&gt;」でお試し的にブログを作ってみました。&lt;/p&gt;
&lt;div class=&quot;iframely-embed&quot;&gt;&lt;div class=&quot;iframely-responsive&quot; style=&quot;height: 140px; padding-bottom: 0;&quot;&gt;&lt;a href=&quot;https://blog.icchi.me&quot; data-iframely-url=&quot;//cdn.iframe.ly/kqjT36m?iframe=card-small&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;script async src=&quot;//cdn.iframe.ly/embed.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;&lt;br/&gt;
&lt;h2 id=&quot;高品質な-gatsby-製サイトとの出会い&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E9%AB%98%E5%93%81%E8%B3%AA%E3%81%AA-gatsby-%E8%A3%BD%E3%82%B5%E3%82%A4%E3%83%88%E3%81%A8%E3%81%AE%E5%87%BA%E4%BC%9A%E3%81%84&quot; aria-label=&quot;高品質な gatsby 製サイトとの出会い permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;高品質な Gatsby 製サイトとの出会い&lt;/h2&gt;
&lt;p&gt;これまでも巷で静的サイトジェネレータが話題になることがありました。その度に手を出してみようと思ったものの、すでに WordPress 製のブログがあることから実行には移りませんでした。ブログというアウトプット手段に時間をかけるなら、アウトプット自体に時間をかけたほうがいいのでは、という理屈です。&lt;/p&gt;
&lt;p&gt;少し前に非常に品質の高い Gatsby 製サイトと出会いました。
&lt;a href=&quot;https://twitter.com/inouetakumon&quot;&gt;takumon さん&lt;/a&gt;が開発されたものです。&lt;/p&gt;
&lt;div class=&quot;iframely-embed&quot;&gt;&lt;div class=&quot;iframely-responsive&quot; style=&quot;height: 140px; padding-bottom: 0;&quot;&gt;&lt;a href=&quot;https://github.com/Takumon/blog&quot; data-iframely-url=&quot;//cdn.iframe.ly/7durRcq?iframe=card-small&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;script async src=&quot;//cdn.iframe.ly/embed.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;&lt;br /&gt;
&lt;p&gt;まずサイトの品質に驚きました。
どうしても静的サイトジェネレーター製のサイトは使えるテーマの成熟度から WordPress 製と同等のレベルに持っていくのは大変かと思います。上のブログは全体的なデザインはもちろん SNS の共有機能、Qiita との連携など、見た目も機能も非常に高いレベルでした。&lt;/p&gt;
&lt;p&gt;加えて特に惹かれたのは、ブログの&lt;a href=&quot;https://github.com/Takumon/blog&quot;&gt;ソースコード&lt;/a&gt;が GitHub で&lt;strong&gt;MIT ライセンスで公開&lt;/strong&gt;されていることです。コードを自分用にカスタマイズして公開することが可能です。このレベルのコードを利用させてもらえるのは大変ありがたかったです。&lt;/p&gt;
&lt;p&gt;Takumon さんとのブログとの出会いに後押しされ、静的サイトジェネレーターでブログを作ってみました。&lt;/p&gt;
&lt;h2 id=&quot;構成&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%A7%8B%E6%88%90&quot; aria-label=&quot;構成 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;構成&lt;/h2&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 56.49999999999999%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAAAAECAwX/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAAB7LSAsj//xAAZEAEAAwEBAAAAAAAAAAAAAAABAAIREkH/2gAIAQEAAQUC6ntXRIVCBh//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAbEAACAQUAAAAAAAAAAAAAAAAAARECEBIhgf/aAAgBAQAGPwJ5aG1VPbuEQj//xAAaEAEBAQEBAQEAAAAAAAAAAAABEQAhUUGB/9oACAEBAAE/Ia4CLCY8F+es1GfjcCblAr3BIgb/2gAMAwEAAgADAAAAEHDv/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPxA//8QAGBEAAgMAAAAAAAAAAAAAAAAAAAEhMUH/2gAIAQIBAT8QwVSf/8QAHBABAAICAwEAAAAAAAAAAAAAAQARIUExUZHw/9oACAEBAAE/EM+Sxs34fXBlGQtgdHqdjO8exAJYpcrQDNNsOC4Qan//2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;architecture&quot;
        title=&quot;architecture&quot;
        src=&quot;/static/cc3bb9f30d0b163648565d41ab672618/4b190/architecture.jpg&quot;
        srcset=&quot;/static/cc3bb9f30d0b163648565d41ab672618/e07e9/architecture.jpg 200w,
/static/cc3bb9f30d0b163648565d41ab672618/066f9/architecture.jpg 400w,
/static/cc3bb9f30d0b163648565d41ab672618/4b190/architecture.jpg 800w,
/static/cc3bb9f30d0b163648565d41ab672618/e5166/architecture.jpg 1200w,
/static/cc3bb9f30d0b163648565d41ab672618/b17f8/architecture.jpg 1600w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;オリジナルから少し見た目とホスティングサービスを変更したことに加え、CI/CD を強化するためインフラ面も多少改良しました。&lt;/p&gt;
&lt;h3 id=&quot;qiita-との連携&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#qiita-%E3%81%A8%E3%81%AE%E9%80%A3%E6%90%BA&quot; aria-label=&quot;qiita との連携 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Qiita との連携&lt;/h3&gt;
&lt;p&gt;Qiita にも多少記事を投稿しているため、ブログと Qiita との連携機能は個人的にマストでした。一番気にしていた点でしたが、Takumon さんが開発している Gatsby プラグインを使えば簡単に実現できます。&lt;/p&gt;
&lt;div class=&quot;iframely-embed&quot;&gt;&lt;div class=&quot;iframely-responsive&quot; style=&quot;height: 140px; padding-bottom: 0;&quot;&gt;&lt;a href=&quot;https://github.com/Takumon/gatsby-source-qiita&quot; data-iframely-url=&quot;//cdn.iframe.ly/WMJvCpV&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;script async src=&quot;//cdn.iframe.ly/embed.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;&lt;br /&gt;
&lt;p&gt;公式ドキュメントや Takumon さんのブログのコードが参考になります。&lt;/p&gt;
&lt;h3 id=&quot;netlify-での公開&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#netlify-%E3%81%A7%E3%81%AE%E5%85%AC%E9%96%8B&quot; aria-label=&quot;netlify での公開 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Netlify での公開&lt;/h3&gt;
&lt;p&gt;ブログのホスティングサービスはオリジナルは GitHub Pages を利用しているようでした。こちらも手軽にデプロイできるいいサービスですが以下の点から Netlify を利用しました&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;読み込み速度 (&lt;a href=&quot;https://qiita.com/NaokiIshimura/items/0b6c4ff5da437081866b&quot;&gt;参考情報:比較記事&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.netlify.com/docs/webhooks/&quot;&gt;Build hooks&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;HTTP リクエストを投げると GitHub の最新コードでビルド&amp;#x26;デプロイが可能&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ビルド環境の統一&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;qiita-更新時の自動反映&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#qiita-%E6%9B%B4%E6%96%B0%E6%99%82%E3%81%AE%E8%87%AA%E5%8B%95%E5%8F%8D%E6%98%A0&quot; aria-label=&quot;qiita 更新時の自動反映 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Qiita 更新時の自動反映&lt;/h3&gt;
&lt;p&gt;Qiita と連携し Qiita 記事をブログで表示するのであれば、常に最新の記事を取得、反映したいというもの。そこで IFTTT を使い対応しました。IFTTT の Feed トリガーを用いて Qiita の RSS(Atom)を監視し、新しい投稿が検出された際には Netlify の Build Hooks にリクエストを投げる仕様です。&lt;/p&gt;
&lt;h2 id=&quot;感想&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%84%9F%E6%83%B3&quot; aria-label=&quot;感想 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;感想&lt;/h2&gt;
&lt;p&gt;実際に作ってみた感想をまとめます。
比較対象はこれまで運用していた WordPress です。&lt;/p&gt;
&lt;h3 id=&quot;パフォーマンス&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%83%91%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%B3%E3%82%B9&quot; aria-label=&quot;パフォーマンス permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;パフォーマンス&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;⭕: 読み込み速度&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Netlify はフリープランでの CDN から配信&lt;/li&gt;
&lt;li&gt;Gatsby による仮想 DOM、Prefetch&lt;/li&gt;
&lt;li&gt;静的配信によるサーバ側の計算コスト削減&lt;/li&gt;
&lt;li&gt;lighthouse スコアも向上&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 84%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAARABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAECBf/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAHkyaTClAA//8QAGhABAAEFAAAAAAAAAAAAAAAAAQACEBIgIf/aAAgBAQABBQLkxpiFnX//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAEDAQE/AR//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAECAQE/AR//xAAUEAEAAAAAAAAAAAAAAAAAAAAw/9oACAEBAAY/Ah//xAAdEAACAgEFAAAAAAAAAAAAAAABIQARECAxQVFx/9oACAEBAAE/IaIWd4grmW0Fhq860//aAAwDAQACAAMAAAAQd8A8/8QAFREBAQAAAAAAAAAAAAAAAAAAESD/2gAIAQMBAT8QI//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQIBAT8QH//EABsQAQACAwEBAAAAAAAAAAAAAAEAESExQSBx/9oACAEBAAE/EKrKnOeRBOQFPIBhfUBdEsCGqcef/9k=&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;lighthouse score&quot;
        title=&quot;lighthouse score&quot;
        src=&quot;/static/dd731c25f302aed01fcaec10e9dc70a9/4b190/lighthouse-score.jpg&quot;
        srcset=&quot;/static/dd731c25f302aed01fcaec10e9dc70a9/e07e9/lighthouse-score.jpg 200w,
/static/dd731c25f302aed01fcaec10e9dc70a9/066f9/lighthouse-score.jpg 400w,
/static/dd731c25f302aed01fcaec10e9dc70a9/4b190/lighthouse-score.jpg 800w,
/static/dd731c25f302aed01fcaec10e9dc70a9/dde82/lighthouse-score.jpg 910w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;h3 id=&quot;カスタマイズ性&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA%E6%80%A7&quot; aria-label=&quot;カスタマイズ性 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;カスタマイズ性&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;⭕: ブログ全体をコードレベルで把握できる&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;変更が容易&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;⭕: Node によるパッケージ導入の容易さ&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Material UI の導入もスムーズ&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;⭕: Gatsby のプラグインやテーマが豊富&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;導入後の調整作業は多少必要&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;❌: テーマの豊富さ、反映までの速度感では WordPress に軍配&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;機能面&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%A9%9F%E8%83%BD%E9%9D%A2&quot; aria-label=&quot;機能面 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;機能面&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;❌: プラグインの充実度では WordPress に軍配&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;❌: WordPress の方が PHP の動的処理で記事ランキングの実装が容易&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Gatsby でも実現はできなくないが、別途アクセス管理サービスが必要&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;❌: 簡単な修正をしたいときにスマホからは困難 (GitHub に push できない)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;開発環境&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83&quot; aria-label=&quot;開発環境 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;開発環境&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⭕: CI/CD&lt;/li&gt;
&lt;li&gt;⭕: GitHub によるコード管理&lt;/li&gt;
&lt;li&gt;⭕: ローカル環境でのコーディング、デバッグ&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;セキュリティ&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3&quot; aria-label=&quot;セキュリティ permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;セキュリティ&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;⭕: WordPress のような動的サイト故のセキュリティホールが無い&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;reference&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#reference&quot; aria-label=&quot;reference permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Reference&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://qiita.com/uehaj/items/1b7f0a86596353587466&quot;&gt;React ベース静的サイトジェネレータ Gatsby の真の力をお見せします&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://yoshinorin.net/2018/10/18/world-of-ssg2/&quot;&gt;静的サイトジェネレータの世界 (2) : 種類と解説&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.staticgen.com/&quot;&gt;StaticGen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://takumon.com/&quot;&gt;静的 G 製高品質サイト / Takumon Blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://photo-tea.com/&quot;&gt;静的 G 製高品質サイト / おちゃカメラ。&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title><![CDATA[GAS、SpreadSheet、DataPortalを使って仕事の見える化システムを作ってみた (ついでに週報作成や通知の自動化)]]></title><description><![CDATA[はじめに 入社して…]]></description><link>https://blog.icchi.me/make-work-visualization-system</link><guid isPermaLink="false">https://blog.icchi.me/make-work-visualization-system</guid><pubDate>Fri, 23 Aug 2019 12:58:00 GMT</pubDate><content:encoded>&lt;h2 id=&quot;はじめに&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB&quot; aria-label=&quot;はじめに permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;はじめに&lt;/h2&gt;
&lt;p&gt;入社して3年目になり、最近、初めての部署異動を経験しました。&lt;/p&gt;
&lt;p&gt;研究開発チームからビジネス系部門内の開発チームに異動し、周囲の人の雰囲気や職場の環境が大きく変わりました。正直、転職したのかなと、思ってしまうぐらいの変化で当初は戸惑いもありました。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;並列して担当するプロジェクト数&lt;/li&gt;
&lt;li&gt;打ち合わせの時間の増加&lt;/li&gt;
&lt;li&gt;週報など文化&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらの変化に対応するため、個人的に仕事見える化プロジェクトを開始しました。&lt;/p&gt;
&lt;h2 id=&quot;ミッション&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%83%9F%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3&quot; aria-label=&quot;ミッション permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;ミッション&lt;/h2&gt;
&lt;p&gt;本プロジェクトでは以下の項目をミッションとして定めました。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;仕事の可視化&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;各プロジェクトごとの消費時間の可視化全体の稼働時間のうちの打ち合わせの割合&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;リアルタイム性&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;随時最新のデータを可視化 (例: 先週の状況)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;一部タスクの抹殺&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;週報や現在取り組んでいる作業の報告などの作業を軽減or消す&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;システム構成&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E6%A7%8B%E6%88%90&quot; aria-label=&quot;システム構成 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;システム構成&lt;/h2&gt;
&lt;p&gt;上記ミッションを解決するために、悩んだ末、以下の構成にしました。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/97dbee30f259ad88bacd15c0a23e4280/644c5/system-structure.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 55.99999999999999%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAMEAgX/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIQAxAAAAHtKdojLg//xAAYEAEBAQEBAAAAAAAAAAAAAAACAQMxEP/aAAgBAQABBQKd0SIzetJ7J5//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAaEAABBQEAAAAAAAAAAAAAAAAAAQIRICJR/9oACAEBAAY/AlMNleGmRT//xAAbEAABBQEBAAAAAAAAAAAAAAABABEhMUEQUf/aAAgBAQABPyF+l+ohM3pXxiGQB0IFtPP/2gAMAwEAAgADAAAAEGDf/8QAFREBAQAAAAAAAAAAAAAAAAAAABH/2gAIAQMBAT8QV//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8QP//EABsQAQADAQADAAAAAAAAAAAAAAEAESExEGFx/9oACAEBAAE/EMpoaLGmc9Snx1tZpXcZ0KKIVSjewCAH5D2aJbTrvj//2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;system-structure&quot;
        title=&quot;system-structure&quot;
        src=&quot;/static/97dbee30f259ad88bacd15c0a23e4280/4b190/system-structure.jpg&quot;
        srcset=&quot;/static/97dbee30f259ad88bacd15c0a23e4280/e07e9/system-structure.jpg 200w,
/static/97dbee30f259ad88bacd15c0a23e4280/066f9/system-structure.jpg 400w,
/static/97dbee30f259ad88bacd15c0a23e4280/4b190/system-structure.jpg 800w,
/static/97dbee30f259ad88bacd15c0a23e4280/e5166/system-structure.jpg 1200w,
/static/97dbee30f259ad88bacd15c0a23e4280/644c5/system-structure.jpg 1440w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;肝となるBIツールにはGoogleデータポータルを採用。AWSでもQuicksightといった類似サービスはありますが、見た目のカスタマイズ性に優れる前者にしました。&lt;/p&gt;
&lt;p&gt;裏側の連携するDBにはSpreadSheetを使いましたが、これは特に理由はありません。 このDB部分に管理したいスケジュールデータを集中される構成です。ここのデータが更新されていけば、連携しているデータポータルでも随時最新のデータで可視化されます。&lt;/p&gt;
&lt;p&gt;SpreadSheetへのデータの取り出しや挿入のためにGASでAPI機能を実装しました。詳しくは述べませんが、GASの実装も昔に比べ非常にDXが改善されています。今ではClaspといったGoogle公式のCLIでローカル開発ができることに加えて、若干癖はあるもののTypeScriptまで対応しています。&lt;/p&gt;
&lt;p&gt;元データとして、最も手を加えずに情報を抱えている(プロジェクトや作業など)ExchangeサーバとGoogleカレンダーからデータを取得しています。Exchangeサーバからデータを取得するためにPythonでそれ用のスクリプトを別途実装しました。Exchange用のライブラリがあるので意外と簡単に実装できます。&lt;/p&gt;
&lt;p&gt;あと必要に応じてGASを中心にSlack等へ通知する仕組みも用意しました。&lt;/p&gt;
&lt;h2 id=&quot;成果物&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%88%90%E6%9E%9C%E7%89%A9&quot; aria-label=&quot;成果物 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;成果物&lt;/h2&gt;
&lt;p&gt;実際に作成したデータポータルのダッシュボードです。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/89c055230c5cb2c92b09ca3efedcecc7/644c5/dashboard.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 62.5%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAIEA//EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAZl1UoGD/8QAGRAAAgMBAAAAAAAAAAAAAAAAAAMBAhET/9oACAEBAAEFApcw7tFNvNZVpwFKyv8A/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAHRAAAgEEAwAAAAAAAAAAAAAAAAExAhEhoSMyM//aAAgBAQAGPwJcrPRjvW3knR20Sf/EABwQAQABBAMAAAAAAAAAAAAAAAEAEBEhUTGB8f/aAAgBAQABPyETY9zOeJ6c7oBEYpoF6N9T/9oADAMBAAIAAwAAABAPz//EABcRAAMBAAAAAAAAAAAAAAAAAAEQESH/2gAIAQMBAT8QMuL/xAAWEQADAAAAAAAAAAAAAAAAAAABEDH/2gAIAQIBAT8QEX//xAAcEAEBAAICAwAAAAAAAAAAAAABEQBBMWFRcfD/2gAIAQEAAT8QACgUcmTZtyyICK9DKVIBN4TzlaHz3iQjb10d5//Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;dashboard&quot;
        title=&quot;dashboard&quot;
        src=&quot;/static/89c055230c5cb2c92b09ca3efedcecc7/4b190/dashboard.jpg&quot;
        srcset=&quot;/static/89c055230c5cb2c92b09ca3efedcecc7/e07e9/dashboard.jpg 200w,
/static/89c055230c5cb2c92b09ca3efedcecc7/066f9/dashboard.jpg 400w,
/static/89c055230c5cb2c92b09ca3efedcecc7/4b190/dashboard.jpg 800w,
/static/89c055230c5cb2c92b09ca3efedcecc7/e5166/dashboard.jpg 1200w,
/static/89c055230c5cb2c92b09ca3efedcecc7/644c5/dashboard.jpg 1440w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;日付の範囲を指定して、手軽にデータ範囲を編集しながら勤務形態を可視化することができました。&lt;/p&gt;
&lt;h2 id=&quot;まとめ&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%81%BE%E3%81%A8%E3%82%81&quot; aria-label=&quot;まとめ permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;まとめ&lt;/h2&gt;
&lt;p&gt;ミッションクリア。
今回のシステムは実用的で意外と使えます。&lt;/p&gt;
&lt;p&gt;最初は自己満足的な気持ちが大きかったですが、具体的に全体の3割以上が打ち合わせに消費されている事実(1日7時間勤務として、1週間で35時間、そのうちの10時間以上)が数値で具体的に可視化されるとインパクトがあります。上司に打ち合わせ改善の打診をするときにも説得力は増します。&lt;/p&gt;
&lt;p&gt;また、今回の副産物としてありがたかったのは、定期タスクの軽減、効率化です。スケジュールに関する情報を一括で管理しているため、今週取り組んだタスクのプロジェクト別の一覧を金曜日に自動的にSlackに自分宛てに送り、週報の作成負担の軽減に繋がりました。また今取り組んでいるタスクをSlackの一部チャンネルに投稿するといった、タスク可視化のための運用ルールもあったのですが、これも本システムで消すことができました。&lt;/p&gt;
&lt;p&gt;意外と恩恵もあったし、そもそも可視化は楽しいので今後とも取り組んでいきたい。何なら可視化が仕事としてできるようになりたい。&lt;/p&gt;</content:encoded></item><item><title><![CDATA[文字画像ジェネレーターを作ってみた]]></title><description><![CDATA[…]]></description><link>https://blog.icchi.me/make-message-image-generator</link><guid isPermaLink="false">https://blog.icchi.me/make-message-image-generator</guid><pubDate>Tue, 07 May 2019 02:10:00 GMT</pubDate><content:encoded>&lt;h2 id=&quot;はじめに&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB&quot; aria-label=&quot;はじめに permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;はじめに&lt;/h2&gt;
&lt;p&gt;先日、勤め先の社内報にこのような画像が掲載されていました。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 133.5%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAGQAAAwEBAQAAAAAAAAAAAAAAAAEEAgMF/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAL/2gAMAwEAAhADEAAAAfRw45q0YRuHsUmA/8QAGxABAAIDAQEAAAAAAAAAAAAAAQARAhASITH/2gAIAQEAAQUCilHy5jjWU79WzpNGv//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQMBAT8BH//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQIBAT8BH//EABoQAAICAwAAAAAAAAAAAAAAAAARARASICH/2gAIAQEABj8CFbwVojj0/8QAGxABAAMBAAMAAAAAAAAAAAAAAQARITEQQXH/2gAIAQEAAT8h2PbeQYnN0/IrtDduWEbBGW69yoLINSW2RNd8f//aAAwDAQACAAMAAAAQyyPD/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPxAf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPxAf/8QAHBABAAIDAQEBAAAAAAAAAAAAAQARITFBUWFx/9oACAEBAAE/EFeLlqWhYbwkoC7oDXyUBYfBmVkXkvVvS/JUMxsGF4iXxBVZiqkJoL2dB1O43Db+z//Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;trigger&quot;
        title=&quot;trigger&quot;
        src=&quot;/static/48b9fa8f7347bdb74bd336555e88e375/4b190/trigger.jpg&quot;
        srcset=&quot;/static/48b9fa8f7347bdb74bd336555e88e375/e07e9/trigger.jpg 200w,
/static/48b9fa8f7347bdb74bd336555e88e375/066f9/trigger.jpg 400w,
/static/48b9fa8f7347bdb74bd336555e88e375/4b190/trigger.jpg 800w,
/static/48b9fa8f7347bdb74bd336555e88e375/47311/trigger.jpg 1080w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;同じチームのリスペクトして止まない先輩だったわけですが、これを見て思いました。&lt;/p&gt;
&lt;p&gt;これは素材として使える！...と。&lt;/p&gt;
&lt;p&gt;そんな経緯からこの画像を有効活用すべく、私の中で&lt;strong&gt;先輩画像ジェネレータープロジェクト&lt;/strong&gt;が始まりました。&lt;/p&gt;
&lt;h2 id=&quot;1-画像の切り出し修正&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#1-%E7%94%BB%E5%83%8F%E3%81%AE%E5%88%87%E3%82%8A%E5%87%BA%E3%81%97%E4%BF%AE%E6%AD%A3&quot; aria-label=&quot;1 画像の切り出し修正 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;1. 画像の切り出し&amp;#x26;修正&lt;/h2&gt;
&lt;p&gt;使ったツールは以下 2 つ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MAC 純正 プレビューアプリ&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.photopea.com/&quot;&gt;photopea&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ご存知の通り、MAC 純正のプレビューアプリは強力な編集機能を備えています。背景の切り抜き&amp;#x26;透明化程度なら 1 分無いうちにできてしまいます。&lt;/p&gt;
&lt;p&gt;photopea は無料 PhotoShop 風 Web アプリです。無料の割にかなり高度な画像編集が可能で、今回の画像に対しては特定エリアの切り出しなどもささっとできてしまいました。ただ、日本語には対応しているもののドキュメントが少ないのが惜しいです。&lt;/p&gt;
&lt;p&gt;最終的に出来上がったのがこちら&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 495px; &quot;
    &gt;
      &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 125.50000000000001%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAZCAYAAAAxFw7TAAAACXBIWXMAAAsSAAALEgHS3X78AAAFAUlEQVQ4y52Ue0zTVxTHL2Mu0W0+gm5LXBaWbMn+2D/G6BJ1AhMZKCIIPgIURgWkrUALLX3QB31AKbUUFAELzjkYjMGmogU2TQe+yBSRKQ9xqMT5/GOuFQuF/n6/s9/vtsXqzB6e5Oac373nfu733nPyQ3q1GjEmFovRRasV7VGK8HdtiTKA8ccPWRaaFaK6otzMEQmHPaAV8dXHDh9cwqyZi6SvMH5fsQrN2tmmJuz7mptRPw1kbL9OgT0AIK2A112cxwGNgAPZrO2wMyEGhBkpl4/WVyxkcsqkggD0vK0IC0O93d04rilVIw2fg082SPj55YVC6Py2YXrgtI0819lO7tWppvLZSaDJ50mZHBmXHdhWf/BZYH1dHdIbjTiuUEvxidZv6pby2cmO7ZuiIDuDTebzsqAgh0dlpCQR8RFhjMoe336dKPspbPzUqdm4qbER6SVCDOw50rwkaXP07beCgmDh/PnkogULKNpT8+bOJT/+4H0QsJMGbl679BqTqxXl/O3WqKulBXuzWo6BLZbq19VC/jWLyQAHK01kVamOqjXqqUP7Koi89C9AsDPlpG+vXiZ6CgKbDVE9HvVAv2O92TC7Vmss6W2oqoCqEg1hKioEo0IK+4rVM5UaJZTKCnQYJhW92lGl9wOOjiLo78fxXl0R8rRBES6KUS4JtZhK4XBVBVVvLqPK1QqiUqcCs1be+3WtcRGTU23UBASXfYlWrVyBPgwO9rTGR4vnIVOR3HNljTJAys2cw8SqHM4qCTcTDAoJZZBLKI0oj8hlp0Ium2Vj1nlpqYH6QnFgiawA76XzEKrUKlGZQhpYppQFVum1gT7lfZ1Hl0i4u66mbd0CPLqy3JQkKis5kdq2McqdmbgN9iikqf41KJaK0AutobpycYlUWKMW5j5MjY+FDaGfUsJMNtBwEKSzITYinIpauxqEu9LthkIRX8Hf/Qm9DQsx0+LQhbOnA1SC3dGKXG6WOj9HUyzOuyule47DSoTkuBgiMmQtkcVKJOhbzKjy+a64qAjX1o2RkznpbMKgkIFZpwZLubF+tOc7j6K8tMR3un/smLl9YwzGRobg+vAgeWvst8nfx8dd9+/eIR7cu+d++OC+2/7o0cxju33KYbdPOp88cU46na4nExNOt9s9PTTQD+Ks9HUYyEtMeHf8xtgEXRyKHm6v/z/mHrl6BbKSd3j+EKkxnweNDg85mRWCIEjaqBeNWfOL6XzmcOJy30XYFh15AgMlnPTdVy5dZHgY5qcQe99m/znfvDefvD4yDCkJsdcwsICb0dJoqYEpp3Pal/hf7ukFYiF9veeBtSXGoRPnBSMxL3NQLsiBPx/94X5JIGXrsk7HRXwGO3ck6FB2WvJ1nVwGU5OTxMsC21ub3ZvXh0F81PrLKD4yvPNsdzeuCd0C//huzwMpzxvC4EA/GRe5nowMWUOiDSFrznR1WL1FJvxB/6rWt+5yuchVy5dB6Mrlj1F0yGrWmZ9t+HG9bfCMQn/vN0/5VRkeOxzu6HWhEBseokTvvTHn7Qvnzzm8Et1MezG5LxiE/2DSvQN3h0mr2o/bJigALe09cxpeyigSJhx2uHPrJhwoN7IwcFnw0jdLVYr25sOHfmlrbuo/1tZ65cSRHwa7jrcP/9RhHTnV2TF0ssM6RH//eqy15cLRlqZzbY1f2Rot1d/XVZoqSgrFvLQtm0ISwtfOZ3h/AcQ9yfkBKPL2AAAAAElFTkSuQmCC&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;balloon template&quot;
        title=&quot;balloon template&quot;
        src=&quot;/static/dc75be4d17c0f10db49a4141ee2fe7d4/a4d88/balloon-template.png&quot;
        srcset=&quot;/static/dc75be4d17c0f10db49a4141ee2fe7d4/772e8/balloon-template.png 200w,
/static/dc75be4d17c0f10db49a4141ee2fe7d4/e17e5/balloon-template.png 400w,
/static/dc75be4d17c0f10db49a4141ee2fe7d4/a4d88/balloon-template.png 495w&quot;
        sizes=&quot;(max-width: 495px) 100vw, 495px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;いい感じに背景とスケッチブック内の描画を切り抜くことができました。&lt;/p&gt;
&lt;h2 id=&quot;2-画像ジェネレーターweb-アプリの実装&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#2-%E7%94%BB%E5%83%8F%E3%82%B8%E3%82%A7%E3%83%8D%E3%83%AC%E3%83%BC%E3%82%BF%E3%83%BCweb-%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AE%E5%AE%9F%E8%A3%85&quot; aria-label=&quot;2 画像ジェネレーターweb アプリの実装 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;2. 画像ジェネレーター(Web アプリ)の実装&lt;/h2&gt;
&lt;p&gt;よくある画像ジェネレーター Web アプリを用意しました。&lt;/p&gt;
&lt;p&gt;利用した主要技術(フレームワーク)は以下 3 つ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;canvas&lt;/li&gt;
&lt;li&gt;vue&lt;/li&gt;
&lt;li&gt;vuetify&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;実装方法などの詳細はこちらのページにまとめてあります。&lt;/p&gt;
&lt;div class=&quot;iframely-embed&quot;&gt;&lt;div class=&quot;iframely-responsive&quot; style=&quot;height: 140px; padding-bottom: 0;&quot;&gt;&lt;a href=&quot;https://qiita.com/icchi_h/items/f978f391367510392a8e&quot; data-iframely-url=&quot;//cdn.iframe.ly/iWCgYbl?iframe=card-small&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h2 id=&quot;実際の動き&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%AE%9F%E9%9A%9B%E3%81%AE%E5%8B%95%E3%81%8D&quot; aria-label=&quot;実際の動き permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;実際の動き&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/8a6568c3a118de1afff915767ba4fbc4/demo.gif&quot; alt=&quot;demo&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;おわりに&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%81%8A%E3%82%8F%E3%82%8A%E3%81%AB&quot; aria-label=&quot;おわりに permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;おわりに&lt;/h2&gt;
&lt;p&gt;画像ジェネレーターは案外簡単に作れた。&lt;/p&gt;
&lt;p&gt;Vue や React なんかの SPA フレームワークのおかげで、この手のリアルてタイム描画系(バインディング)の処理実装が本当に楽になったと感じます。&lt;/p&gt;</content:encoded></item><item><title><![CDATA[地震の震度分布地図画像を自動的に生成するシステムを作ってみた]]></title><description><![CDATA[はじめに ちょっとした要望から、地震の震度分布図を自動的に作れるようにしてみました。 地震情報から SVG…]]></description><link>https://blog.icchi.me/make-earthquake-intensity-distribution-map-system</link><guid isPermaLink="false">https://blog.icchi.me/make-earthquake-intensity-distribution-map-system</guid><pubDate>Mon, 21 Jan 2019 01:49:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 53.5%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAMEAQb/xAAVAQEBAAAAAAAAAAAAAAAAAAABAv/aAAwDAQACEAMQAAABbSq1nmzQr//EABwQAAIABwAAAAAAAAAAAAAAAAIDAAEREyIyNP/aAAgBAQABBQJCwJFgKlLJHNBb/wD/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAbEAACAgMBAAAAAAAAAAAAAAAAAQJxEBEygf/aAAgBAQAGPwLbimziI7PcOz//xAAbEAEAAgIDAAAAAAAAAAAAAAABACERMVFhof/aAAgBAQABPyG0eNsMsemoQYFKAwo2gA5A1xPan//aAAwDAQACAAMAAAAQ3M//xAAXEQADAQAAAAAAAAAAAAAAAAABEBEx/9oACAEDAQE/EDsX/8QAFhEAAwAAAAAAAAAAAAAAAAAAARAx/9oACAECAQE/EBF//8QAGxABAAMBAAMAAAAAAAAAAAAAAQARIVExYfD/2gAIAQEAAT8QBAgJl1cvrrtCAXBygABhrGOo+WvcO2TvHZ9TrP/Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;thumbnail&quot;
        title=&quot;thumbnail&quot;
        src=&quot;/static/ff8629b11c5beb753abe410ac9daf1e4/4b190/thumbnail.jpg&quot;
        srcset=&quot;/static/ff8629b11c5beb753abe410ac9daf1e4/e07e9/thumbnail.jpg 200w,
/static/ff8629b11c5beb753abe410ac9daf1e4/066f9/thumbnail.jpg 400w,
/static/ff8629b11c5beb753abe410ac9daf1e4/4b190/thumbnail.jpg 800w,
/static/ff8629b11c5beb753abe410ac9daf1e4/e5166/thumbnail.jpg 1200w,
/static/ff8629b11c5beb753abe410ac9daf1e4/644c5/thumbnail.jpg 1440w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;h2 id=&quot;はじめに&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB&quot; aria-label=&quot;はじめに permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;はじめに&lt;/h2&gt;
&lt;p&gt;ちょっとした要望から、地震の震度分布図を自動的に作れるようにしてみました。&lt;/p&gt;
&lt;p&gt;地震情報から SVG 画像を生成する部分は以下の記事にまとめてあります。&lt;/p&gt;
&lt;div class=&quot;iframely-embed&quot;&gt;&lt;div class=&quot;iframely-responsive&quot; style=&quot;height: 140px; padding-bottom: 0;&quot;&gt;&lt;a href=&quot;https://qiita.com/icchi_h/items/bbf563e1a7acec97a0e0&quot; data-iframely-url=&quot;//cdn.iframe.ly/45mFbfh?iframe=card-small&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;今回作ったシステムは上記の記事内容から、主に以下の要素が加わっています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;新規の地震情報の検知&lt;/li&gt;
&lt;li&gt;フロントページの作成&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;構成&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%A7%8B%E6%88%90&quot; aria-label=&quot;構成 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;構成&lt;/h2&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 56.49999999999999%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAECAwX/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIQAxAAAAHbi0ItD//EABkQAAIDAQAAAAAAAAAAAAAAAAEQAAIRMv/aAAgBAQABBQI7ORVBf//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABsQAAEEAwAAAAAAAAAAAAAAAAABESAhMTKB/9oACAEBAAY/Ah74LtmH/8QAGxABAQACAwEAAAAAAAAAAAAAAQAxcREhQWH/2gAIAQEAAT8h4HKy9AU0vpjzdnAX/9oADAMBAAIAAwAAABBAD//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8QP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8QP//EABwQAQADAAIDAAAAAAAAAAAAAAEAESExYUFR4f/aAAgBAQABPxCzETxob6j1FORDsqqp1KWFoOdfYlEq9mAzRQviAKAn/9k=&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;architecture&quot;
        title=&quot;architecture&quot;
        src=&quot;/static/a1121ec3bccf26f27a94d95619933ee7/4b190/architecture.jpg&quot;
        srcset=&quot;/static/a1121ec3bccf26f27a94d95619933ee7/e07e9/architecture.jpg 200w,
/static/a1121ec3bccf26f27a94d95619933ee7/066f9/architecture.jpg 400w,
/static/a1121ec3bccf26f27a94d95619933ee7/4b190/architecture.jpg 800w,
/static/a1121ec3bccf26f27a94d95619933ee7/e5166/architecture.jpg 1200w,
/static/a1121ec3bccf26f27a94d95619933ee7/644c5/architecture.jpg 1440w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;h3 id=&quot;キーワード&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%82%AD%E3%83%BC%E3%83%AF%E3%83%BC%E3%83%89&quot; aria-label=&quot;キーワード permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;キーワード&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;気象庁防災情報 XML フォーマット形式電文&lt;/li&gt;
&lt;li&gt;IFTTT&lt;/li&gt;
&lt;li&gt;震度観測地点位置 JSON&lt;/li&gt;
&lt;li&gt;GeoJson&lt;/li&gt;
&lt;li&gt;D3.js&lt;/li&gt;
&lt;li&gt;d3-geo&lt;/li&gt;
&lt;li&gt;jsdom&lt;/li&gt;
&lt;li&gt;convert-svg-to-png&lt;/li&gt;
&lt;li&gt;express&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;解説&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E8%A7%A3%E8%AA%AC&quot; aria-label=&quot;解説 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;解説&lt;/h2&gt;
&lt;h3 id=&quot;新規地震情報追加の検知&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%96%B0%E8%A6%8F%E5%9C%B0%E9%9C%87%E6%83%85%E5%A0%B1%E8%BF%BD%E5%8A%A0%E3%81%AE%E6%A4%9C%E7%9F%A5&quot; aria-label=&quot;新規地震情報追加の検知 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;新規地震情報追加の検知&lt;/h3&gt;
&lt;p&gt;気象庁からは、新規の地震情報を検知するために Pubsubhubbub の仕組みが提供されています。配信受信用の環境を作れば、リアルタイムに更新を検知することができます。ただ、環境構築以外にも利用申請が必要だったりと、多少利用ハードルがあります。&lt;/p&gt;
&lt;div class=&quot;iframely-embed&quot;&gt;&lt;div class=&quot;iframely-responsive&quot; style=&quot;height: 140px; padding-bottom: 0;&quot;&gt;&lt;a href=&quot;https://qiita.com/tamura_CD/items/f1609cd509d331b06e93&quot; data-iframely-url=&quot;//cdn.iframe.ly/CCOTy1l?iframe=card-small&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;今回は更新検知のリアルタイム性もあまり必要としていなかったこともあり、Atom フィードの更新を定期的に検知するやり方をとることに。&lt;/p&gt;
&lt;p&gt;IFTTT では RSS フィートの更新検知トリガーが利用できるため、そのトリガーが発火した際に画像生成サーバにリクエストを投げるようにレシピを作成しました。&lt;/p&gt;
&lt;h3 id=&quot;png-画像の用意&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#png-%E7%94%BB%E5%83%8F%E3%81%AE%E7%94%A8%E6%84%8F&quot; aria-label=&quot;png 画像の用意 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;png 画像の用意&lt;/h3&gt;
&lt;p&gt;生成される SVG 画像はベクター形式ということもあり、容量がひとつあたり数 MB もありますプロントページでリスト表示する際のサムネイル画像ようには少し大きすぎるため、png 画像を用意しておきました。&lt;/p&gt;
&lt;p&gt;変換には以下の node package を利用。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/neocotic/convert-svg/tree/master/packages/convert-svg-to-png&quot;&gt;https://github.com/neocotic/convert-svg/tree/master/packages/convert-svg-to-png&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;感想&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%84%9F%E6%83%B3&quot; aria-label=&quot;感想 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;感想&lt;/h2&gt;
&lt;h3 id=&quot;ifttt-のフィード更新検知が若干遅い&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#ifttt-%E3%81%AE%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E6%9B%B4%E6%96%B0%E6%A4%9C%E7%9F%A5%E3%81%8C%E8%8B%A5%E5%B9%B2%E9%81%85%E3%81%84&quot; aria-label=&quot;ifttt のフィード更新検知が若干遅い permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;IFTTT のフィード更新検知が若干遅い&lt;/h3&gt;
&lt;p&gt;IFTTT の RSS フィードトリガーを使ってみて、実際に地震が発生してから更新検知イベントが発火するまでの時間が把握できてきました。ばらつきがあるもののだいたい 5〜30 分。恐らく IFTTT サーバから定期的に 30 分周期？でチェックしているからだと思います。&lt;/p&gt;
&lt;p&gt;理想を言えば、Atom フィードの更新と同時にイベントが発火してほしいところです。気象庁の Pubsubhubbub 以外にも IIJ の Eq-Care サービス内に WebSocket API があります。それを使えば手間はかかるものの、現状より検知タイミングを早められるのでは期待しています。&lt;/p&gt;
&lt;p&gt;またタイミングがあれば手を加えてみようかな。&lt;/p&gt;
&lt;h3 id=&quot;svg→png-の変換がお手軽&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#svg%E2%86%92png-%E3%81%AE%E5%A4%89%E6%8F%9B%E3%81%8C%E3%81%8A%E6%89%8B%E8%BB%BD&quot; aria-label=&quot;svg→png の変換がお手軽 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;svg→png の変換がお手軽&lt;/h3&gt;
&lt;p&gt;svg→png の変換がひとつの Node package で完結できたのは非常に楽でした。&lt;/p&gt;
&lt;p&gt;これまで svg 変換の機能をサーバに持たせようとする場合、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;パッケージ内で利用するブラウザの関係で日本語が文字化け&lt;/li&gt;
&lt;li&gt;依存関係を満たすのに別途 make install する必要&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;などなど手間取ることがありました。&lt;/p&gt;
&lt;p&gt;その点今回利用している&lt;code class=&quot;language-text&quot;&gt;[convert-svg-to-png](https://github.com/neocotic/convert-svg/tree/master/packages/convert-svg-to-png)&lt;/code&gt;では headless chrome を使っているらしく、導入も&lt;code class=&quot;language-text&quot;&gt;npm install&lt;/code&gt;だけで済みました。headless chrome は各種ディストリビューションにおいても導入もパッケージマネージャからできることが多いため、手軽でありがたいです。&lt;/p&gt;</content:encoded></item><item><title><![CDATA[2018年のまとめと2019年の抱負]]></title><description><![CDATA[あけましておめでとうございます。 若干出遅れましたが、年末年始エントリーを書いていきます。 2018 年のまとめ 1 月: グラフ生成ツールの開発に没頭 (react, d3, plotly) 2 月: 上に同じ 3 月: 上に同じ 4 月 Web アプリ開発に没頭 (nuxt…]]></description><link>https://blog.icchi.me/sammary2018</link><guid isPermaLink="false">https://blog.icchi.me/sammary2018</guid><pubDate>Tue, 01 Jan 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/bf06252112c2fcd1cecc095b1471bc3d/644c5/kingashinnen.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 56.49999999999999%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAEDBf/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAHstkRVf//EABkQAQACAwAAAAAAAAAAAAAAAAEAAhESIP/aAAgBAQABBQJsk3tg4//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABgQAAIDAAAAAAAAAAAAAAAAAAABICEy/9oACAEBAAY/AnRiP//EABkQAAIDAQAAAAAAAAAAAAAAAAERACExIP/aAAgBAQABPyEtqpYLVCYxcf/aAAwDAQACAAMAAAAQv8//xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAwEBPxASf//EABURAQEAAAAAAAAAAAAAAAAAABAR/9oACAECAQE/EIf/xAAbEAEBAAMAAwAAAAAAAAAAAAABEQAhMSBRYf/aAAgBAQABPxAwH2JdlmQoYGDt5zX3Espenw//2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;kingashinnen&quot;
        title=&quot;kingashinnen&quot;
        src=&quot;/static/bf06252112c2fcd1cecc095b1471bc3d/4b190/kingashinnen.jpg&quot;
        srcset=&quot;/static/bf06252112c2fcd1cecc095b1471bc3d/e07e9/kingashinnen.jpg 200w,
/static/bf06252112c2fcd1cecc095b1471bc3d/066f9/kingashinnen.jpg 400w,
/static/bf06252112c2fcd1cecc095b1471bc3d/4b190/kingashinnen.jpg 800w,
/static/bf06252112c2fcd1cecc095b1471bc3d/e5166/kingashinnen.jpg 1200w,
/static/bf06252112c2fcd1cecc095b1471bc3d/644c5/kingashinnen.jpg 1440w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;あけましておめでとうございます。&lt;/p&gt;
&lt;p&gt;若干出遅れましたが、年末年始エントリーを書いていきます。&lt;/p&gt;
&lt;h2 id=&quot;2018-年のまとめ&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#2018-%E5%B9%B4%E3%81%AE%E3%81%BE%E3%81%A8%E3%82%81&quot; aria-label=&quot;2018 年のまとめ permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;2018 年のまとめ&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;1 月: グラフ生成ツールの開発に没頭 (react, d3, plotly)&lt;/li&gt;
&lt;li&gt;2 月: 上に同じ&lt;/li&gt;
&lt;li&gt;3 月: 上に同じ&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;4 月&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Web アプリ開発に没頭 (nuxt, kubernetes(+ docker), GCP, firebase(auth, RDB))&lt;/li&gt;
&lt;li&gt;SNS 系システム開発 4 月&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;5 月: 上の「2」の作業が自分の中で停滞&lt;/li&gt;
&lt;li&gt;6 月: 4 月「1」に同じ&lt;/li&gt;
&lt;li&gt;7 月: 余韻浸る&lt;/li&gt;
&lt;li&gt;8 月: 画像処理をかじる&lt;/li&gt;
&lt;li&gt;9 月: 特になし&lt;/li&gt;
&lt;li&gt;10 月: 地図分野の周辺技術 (geo/topo json, osm, raster/vector tile, mbtiles, d3)&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;11 月&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;4 月の Web アプリにおけるインフラとフロントの改修に没頭 (GCP)&lt;/li&gt;
&lt;li&gt;部活動で足首を剥離骨折&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;12 月: 足が治る&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;所感&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%89%80%E6%84%9F&quot; aria-label=&quot;所感 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;所感&lt;/h3&gt;
&lt;p&gt;インフラ・フロントの双方に主体的に関わることができたので、総合的に知見が広まったように思う。その過程で AWS や GCP などのクラウド系インフラも触る機会があり、システム開発の全体像が少しずつ見えてきたような気がして満足している。&lt;/p&gt;
&lt;p&gt;特に React や Vue(Nuxt)をがっつり触れたのは良かった。これまで簡単なデモを作る機会はあったが、深い部分まで理解はできていなかった。今年はシステム案件としてより深く SPA フレームワークを扱うことで、既存のシステムとの統合やライフサイクルの扱いなど、細かいところも経験したことでそれなりに慣れてきた。自信や感覚を掴めた気がしている。&lt;/p&gt;
&lt;p&gt;AWS や GCP を自由に触れたことも良かった。取り扱うシステムを Docker ベースで構築したり、勉強会で良さげだと思った技術をすぐにテストして扱っているシステムに反映できたことは非常に楽しかったし、勉強になった。来年はビルド&amp;#x26;デプロイ系をのタスクをクラウドサービス側で自動的に実行するなど、サービス側が提供している機能フルに活用していきたい。&lt;/p&gt;
&lt;p&gt;あと地図系の技術を調べる機会があった。この分野に関してはまったくの素人で、当初は普段利用している Google マップを始めとする地図サービスがどのように動いているのかわかっていなかった。勉強の過程で地図系技術の進化を知っていくと感心することも多かった。mapnik を利用したラスター形式の地図画像から、geo/topo json のベクター形式、より軽量化した mbtiles 形式など。mbtiles が protocol buffer を利用したように、最適な技術が思い浮かび利用できるようになりたい。&lt;/p&gt;
&lt;p&gt;4 月「2」に関しては心残りになっている。もとは友人が企画、取りまとめていた開発プロジェクト。最初は時間が取れていたものの、忙しい時期と被ったあたりから参加できなくなっていった。企画内容自体は非常に面白いので形にしてみたかった。pending 案件。&lt;/p&gt;
&lt;h3 id=&quot;剥離骨折&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%89%A5%E9%9B%A2%E9%AA%A8%E6%8A%98&quot; aria-label=&quot;剥離骨折 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;剥離骨折&lt;/h3&gt;
&lt;p&gt;11 月末に足首の靭帯損傷と剥離骨折をしてしまった。冬場の試合中で体が温まりきっていないときに無理に動こうとしたら捻ってしまった。&lt;/p&gt;
&lt;p&gt;で、そのあとがまた辛かった。松葉杖での出社は恥ずかしすぎたし、通勤とか打ち合わせへの移動とか面倒だった。たった 20m 先の打ち合わせコーナーに行くだけで一苦労。昼ごはんは Uber Eats や蘭州で出前を自席まで届けてもらった。(Uber Eats は初めて使ったけど支払いも楽だし、商品も多くていい感じだった) 忘年会のときは、他の人よりも 30 分早めに会社に出て、夜の銀座を松葉杖で歩いた。いろいろシュールだったと思う。&lt;/p&gt;
&lt;p&gt;社会人になってから大きめの怪我をすると辛い、当たり前の話だが良い教訓になった。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 720px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/22afec08f0d130cf2621d9c70c306efb/80e3c/tsue.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 177.99999999999997%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAkABQDASIAAhEBAxEB/8QAGQABAQEBAQEAAAAAAAAAAAAAAAMCBAEF/8QAFgEBAQEAAAAAAAAAAAAAAAAAAgMB/9oADAMBAAIQAxAAAAHhbSthMh9Pn8jN0aZscDNwF//EABsQAAMAAgMAAAAAAAAAAAAAAAABAhIhEBEy/9oACAEBAAEFAhervYtDWT6kYpHTMhFk8f/EABcRAAMBAAAAAAAAAAAAAAAAAAEQIEH/2gAIAQMBAT8BMav/xAAYEQADAQEAAAAAAAAAAAAAAAAAARAhQf/aAAgBAgEBPwFGCU5P/8QAFxABAAMAAAAAAAAAAAAAAAAAAQAgMP/aAAgBAQAGPwKFFy//xAAbEAEBAAMBAQEAAAAAAAAAAAABABEhMVFhQf/aAAgBAQABPyFLPVYKls58LwThfAsMoEDwxAfyXnktS0tu78jl/9oADAMBAAIAAwAAABCzwH133//EABgRAQEBAQEAAAAAAAAAAAAAAAEAERAh/9oACAEDAQE/ED5Yylk8f//EABcRAQEBAQAAAAAAAAAAAAAAAAEAEBH/2gAIAQIBAT8QWEusZ//EAB8QAQACAgEFAQAAAAAAAAAAAAEAESExUUFhgZGxwf/aAAgBAQABPxDusJ32274lcDWP2Bwx2olfYsCo28ARrYMkgug+wJaC6JQnWEWD0czFiXtmYLHK1HhP/9k=&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;tsue&quot;
        title=&quot;tsue&quot;
        src=&quot;/static/22afec08f0d130cf2621d9c70c306efb/80e3c/tsue.jpg&quot;
        srcset=&quot;/static/22afec08f0d130cf2621d9c70c306efb/e07e9/tsue.jpg 200w,
/static/22afec08f0d130cf2621d9c70c306efb/066f9/tsue.jpg 400w,
/static/22afec08f0d130cf2621d9c70c306efb/80e3c/tsue.jpg 720w&quot;
        sizes=&quot;(max-width: 720px) 100vw, 720px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;h3 id=&quot;反省&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%8F%8D%E7%9C%81&quot; aria-label=&quot;反省 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;反省&lt;/h3&gt;
&lt;p&gt;アウトプットが少ない。これに尽きる。&lt;/p&gt;
&lt;p&gt;業務やプライベート問わず、テック的にいい経験やノウハウが獲得できたにも関わらず、全然外にその情報を出せていなかった。エンジニアにとってアウトプットが大切だということは言わずもがな。ここでは述べないでおこう。&lt;/p&gt;
&lt;p&gt;Qiita やブログなど場所はあるので、積極的にアウトプットして記憶の整理や記録を蓄積していきたい。&lt;/p&gt;
&lt;h3 id=&quot;2018-年目標のファクトチェック&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#2018-%E5%B9%B4%E7%9B%AE%E6%A8%99%E3%81%AE%E3%83%95%E3%82%A1%E3%82%AF%E3%83%88%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF&quot; aria-label=&quot;2018 年目標のファクトチェック permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;2018 年目標のファクトチェック&lt;/h3&gt;
&lt;p&gt;あと年始に定めた目標のファクトチェック。&lt;/p&gt;
&lt;p&gt;昨年の目標と結果は以下の通り。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;体調を崩さない体づくり = △&lt;/li&gt;
&lt;li&gt;サウナに月 1 程度通う = ☓&lt;/li&gt;
&lt;li&gt;勉強会に月 1 程度参加 = ☓&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.icchi.me/sammary2017&quot;&gt;https://blog.icchi.me/sammary2017&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1 番の体作り以外全然達成できていなかった。反省反省。&lt;/p&gt;
&lt;p&gt;趣味のランニングやジムで体を動かすことはサボらずできていた。おかげて 1 年通して、体の健康状態は良好だったと思う。健康診断で 1 年目のはじめに肝臓で要受診をくらったが、今年はすべて問題なしだった。&lt;/p&gt;
&lt;p&gt;ただ、昨年の 5 月に 1 週間ほどなぞの熱で寝込むことがあった。定期的(半年ごと？)に同じ病状で倒れるので、11 月は意識して過ごしていた。結果、11 月以降は寝込むことはなかった。5 月に倒れてしまったので、ここはマイナス点。&lt;/p&gt;
&lt;p&gt;2,3 の目標は月 1 実行はできず。社会人をやっていると忙しい時期はできてしまう。ただその時期が終わったあとに習慣化できておらず結局行かないことが多々あった。良いとわかっていても、「まぁいっか」とうの気持ちでノーアクションだった。&lt;/p&gt;
&lt;h2 id=&quot;2019-年の抱負&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#2019-%E5%B9%B4%E3%81%AE%E6%8A%B1%E8%B2%A0&quot; aria-label=&quot;2019 年の抱負 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;2019 年の抱負&lt;/h2&gt;
&lt;p&gt;これらを踏まえて、今年の目標は以下の 3 つにした。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;月 1 でアウトプット (ブログ等)&lt;/li&gt;
&lt;li&gt;月 1 で勉強会に行く&lt;/li&gt;
&lt;li&gt;個人開発のツール等を 3 つ&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;1,2 は去年の引き継ぎと昨年度の反省から。3 はプライベートの時間も確保する(メリハリをつける)意味で。会社の業務に熱中することもいいが、ちゃんとそれ以外の内容も吸収したり、何か開発して形にしたい。&lt;/p&gt;
&lt;p&gt;以上、長くなりましたが、今年も楽しく健康な 1 年になりますように。&lt;/p&gt;</content:encoded></item><item><title><![CDATA[SNSのスクショ画像からタグやURLなどを取り出すWebアプリを作ってみた]]></title><description><![CDATA[はじめに 「SNS のスクショ画像に映っている SNS のアカウント名やハッシュタグ、短縮リンクなどを手軽に取り出せれば...」知人の要望をきっかけに簡単に Web アプリを作ってみました。 システムの構成  フロントは React…]]></description><link>https://blog.icchi.me/extract-meta-ino-from-sns</link><guid isPermaLink="false">https://blog.icchi.me/extract-meta-ino-from-sns</guid><pubDate>Wed, 03 Jan 2018 19:19:00 GMT</pubDate><content:encoded>&lt;h2 id=&quot;はじめに&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB&quot; aria-label=&quot;はじめに permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;はじめに&lt;/h2&gt;
&lt;p&gt;「SNS のスクショ画像に映っている SNS のアカウント名やハッシュタグ、短縮リンクなどを手軽に取り出せれば...」知人の要望をきっかけに簡単に Web アプリを作ってみました。&lt;/p&gt;
&lt;h2 id=&quot;システムの構成&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%AE%E6%A7%8B%E6%88%90&quot; aria-label=&quot;システムの構成 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;システムの構成&lt;/h2&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 60%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAMABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAIDBf/EABUBAQEAAAAAAAAAAAAAAAAAAAEA/9oADAMBAAIQAxAAAAHfmlgQoN//xAAaEAACAgMAAAAAAAAAAAAAAAAAEQECEBIh/9oACAEBAAEFAju0WYs//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFREBAQAAAAAAAAAAAAAAAAAAARD/2gAIAQIBAT8BGf/EABcQAAMBAAAAAAAAAAAAAAAAAAEQIDH/2gAIAQEABj8CWGP/xAAbEAEAAgIDAAAAAAAAAAAAAAABABEhMRBBUf/aAAgBAQABPyFaZsba8g26GtRzcsDj/9oADAMBAAIAAwAAABBT/wD/xAAXEQADAQAAAAAAAAAAAAAAAAAAAREh/9oACAEDAQE/EE6af//EABcRAAMBAAAAAAAAAAAAAAAAAAABEVH/2gAIAQIBAT8QoVYf/8QAGhABAAMBAQEAAAAAAAAAAAAAAQARMSFBUf/aAAgBAQABPxAQKcvhA0mFUKGKGm7rVQ1vddgb2UfJ/9k=&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;architecture&quot;
        title=&quot;architecture&quot;
        src=&quot;/static/8a712d33b6fc409cbad3db9e7e436011/4b190/architecture.jpg&quot;
        srcset=&quot;/static/8a712d33b6fc409cbad3db9e7e436011/e07e9/architecture.jpg 200w,
/static/8a712d33b6fc409cbad3db9e7e436011/066f9/architecture.jpg 400w,
/static/8a712d33b6fc409cbad3db9e7e436011/4b190/architecture.jpg 800w,
/static/8a712d33b6fc409cbad3db9e7e436011/e5166/architecture.jpg 1200w,
/static/8a712d33b6fc409cbad3db9e7e436011/644c5/architecture.jpg 1440w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;フロントは React で実装。アップロードされたスクショ画像を OCR にかけて、結果であるテキストから必要な要素を正規表現で検出&amp;#x26;表示する流れになっています。&lt;/p&gt;
&lt;h3 id=&quot;react-と-ocr-について&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#react-%E3%81%A8-ocr-%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6&quot; aria-label=&quot;react と ocr について permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;React と OCR について&lt;/h3&gt;
&lt;p&gt;最近は仕事でフロントエンドを触ることが多いので、React を始め Angular や vue.js を簡単に触ったりもしました。個人的には React が好みです。やはり人気どころの UI フレームワークなので、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;多種多様な Component が用意されている&lt;/li&gt;
&lt;li&gt;関連するライブラリの開発が速い&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;などのメリットがいいですね。&lt;/p&gt;
&lt;p&gt;あと、OCR は &lt;a href=&quot;https://cloud.google.com/vision/?hl=ja&quot;&gt;Cloud Vision API&lt;/a&gt; を利用。他にも無料枠がある &lt;a href=&quot;https://ocr.space/&quot;&gt;Free OCR API&lt;/a&gt; なるものもあったりします。割りと使える印象ですが、さすが Google と比べると精度が落ちる印象。&lt;/p&gt;
&lt;h2 id=&quot;文字列からメタ要素を取り出し&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%96%87%E5%AD%97%E5%88%97%E3%81%8B%E3%82%89%E3%83%A1%E3%82%BF%E8%A6%81%E7%B4%A0%E3%82%92%E5%8F%96%E3%82%8A%E5%87%BA%E3%81%97&quot; aria-label=&quot;文字列からメタ要素を取り出し permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;文字列からメタ要素を取り出し&lt;/h2&gt;
&lt;p&gt;正規表現を使って、文字列から要素を取り出します。そのことについては次の記事にまとめました。&lt;/p&gt;
&lt;div class=&quot;iframely-embed&quot;&gt;&lt;div class=&quot;iframely-responsive&quot; style=&quot;height: 140px; padding-bottom: 0;&quot;&gt;&lt;a href=&quot;https://qiita.com/icchi_h/items/a438f2f33aaf15e74059&quot; data-iframely-url=&quot;//cdn.iframe.ly/dLRrmBC?iframe=card-small&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h2 id=&quot;demo&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#demo&quot; aria-label=&quot;demo permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;DEMO&lt;/h2&gt;
&lt;p&gt;公開はしていないので動作動画だけ。はたして一般的に需要があるかどうか...&lt;/p&gt;
&lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;ja&quot; dir=&quot;ltr&quot;&gt;スクリーンショットに表示されているアカウント・タグ・リンクを検出するWebアプリを作ってみた。フォームからリアルタイムで修正&amp;amp;再検出可能。 &lt;a href=&quot;https://t.co/t4s795zoHK&quot;&gt;pic.twitter.com/t4s795zoHK&lt;/a&gt;&lt;/p&gt;&amp;mdash; i̲c̲c̲h̲i̲ (@icchi_h) &lt;a href=&quot;https://twitter.com/icchi_h/status/948287269193961472?ref_src=twsrc%5Etfw&quot;&gt;January 2, 2018&lt;/a&gt;&lt;/blockquote&gt; &lt;script async src=&quot;https://platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;p&gt;せっかく React を使っているので、OCR の結果を編集してリアルタイムで要素の再検出ができるようにしてあります。&lt;/p&gt;</content:encoded></item><item><title><![CDATA[2017年のまとめと2018年の抱負]]></title><description><![CDATA[あけましておめでとうございます。 今年は実家に帰省していないため、少し寂しい年末年始を過ごしています。 今年もあっという間に終わってしまいました。2017 年は特にバタバタした年だったように思います。せっかくの年末年始なので少しまとめてみます。 2017 年のまとめ…]]></description><link>https://blog.icchi.me/sammary2017</link><guid isPermaLink="false">https://blog.icchi.me/sammary2017</guid><pubDate>Mon, 01 Jan 2018 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/bf06252112c2fcd1cecc095b1471bc3d/644c5/kingashinnen.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 56.49999999999999%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAEDBf/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAHstkRVf//EABkQAQACAwAAAAAAAAAAAAAAAAEAAhESIP/aAAgBAQABBQJsk3tg4//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABgQAAIDAAAAAAAAAAAAAAAAAAABICEy/9oACAEBAAY/AnRiP//EABkQAAIDAQAAAAAAAAAAAAAAAAERACExIP/aAAgBAQABPyEtqpYLVCYxcf/aAAwDAQACAAMAAAAQv8//xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAwEBPxASf//EABURAQEAAAAAAAAAAAAAAAAAABAR/9oACAECAQE/EIf/xAAbEAEBAAMAAwAAAAAAAAAAAAABEQAhMSBRYf/aAAgBAQABPxAwH2JdlmQoYGDt5zX3Espenw//2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;kingashinnen&quot;
        title=&quot;kingashinnen&quot;
        src=&quot;/static/bf06252112c2fcd1cecc095b1471bc3d/4b190/kingashinnen.jpg&quot;
        srcset=&quot;/static/bf06252112c2fcd1cecc095b1471bc3d/e07e9/kingashinnen.jpg 200w,
/static/bf06252112c2fcd1cecc095b1471bc3d/066f9/kingashinnen.jpg 400w,
/static/bf06252112c2fcd1cecc095b1471bc3d/4b190/kingashinnen.jpg 800w,
/static/bf06252112c2fcd1cecc095b1471bc3d/e5166/kingashinnen.jpg 1200w,
/static/bf06252112c2fcd1cecc095b1471bc3d/644c5/kingashinnen.jpg 1440w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;あけましておめでとうございます。&lt;/p&gt;
&lt;p&gt;今年は実家に帰省していないため、少し寂しい年末年始を過ごしています。&lt;/p&gt;
&lt;p&gt;今年もあっという間に終わってしまいました。2017 年は特にバタバタした年だったように思います。せっかくの年末年始なので少しまとめてみます。&lt;/p&gt;
&lt;h2 id=&quot;2017-年のまとめ&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#2017-%E5%B9%B4%E3%81%AE%E3%81%BE%E3%81%A8%E3%82%81&quot; aria-label=&quot;2017 年のまとめ permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;2017 年のまとめ&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;1 月: 修論に命を費やす&lt;/li&gt;
&lt;li&gt;2 月: 修論発表 (反動から発表終了後 3 分で MacBook Pro を購入)&lt;/li&gt;
&lt;li&gt;3 月: 大学院卒業&amp;#x26;引越し&lt;/li&gt;
&lt;li&gt;4 月: 入社 (引越し先が未完成だったためしばらくホテル暮らし)&lt;/li&gt;
&lt;li&gt;5 月: 研修&lt;/li&gt;
&lt;li&gt;6 月: 研修&lt;/li&gt;
&lt;li&gt;7 月: 研修終了。研究開発チームに配属&lt;/li&gt;
&lt;li&gt;8 月: 深層学習で顔認識に従事&lt;/li&gt;
&lt;li&gt;9 月: 上と同じ&lt;/li&gt;
&lt;li&gt;10 月: 主に Web 系フロントの開発に従事 (React、Angular)&lt;/li&gt;
&lt;li&gt;11 月: なぞの発熱で 1 週間寝込む&lt;/li&gt;
&lt;li&gt;12 月: 色々&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;2017 年の最も大きな出来事は、やはり長年の学生生活が終わり、社会人生活が始まったこと。社会人生活については去年の 5 月にまとめたものがあります。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://wp.blog.icchi.me/post-2053/&quot;&gt;http://wp.blog.icchi.me/post-2053/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;当時は社会人結構良いという感想でした。入社後 8 カ月、研修後 5 が月ほどたった今も変わりありません。社会人生活、割といいです。仕事も上司が私が興味のある内容を降ってくれるお陰で楽しみながらやれています。&lt;/p&gt;
&lt;h2 id=&quot;今年の抱負&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E4%BB%8A%E5%B9%B4%E3%81%AE%E6%8A%B1%E8%B2%A0&quot; aria-label=&quot;今年の抱負 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;今年の抱負&lt;/h2&gt;
&lt;p&gt;今年の主な抱負は以下の 3 つ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;体調を崩さない体づくり&lt;/li&gt;
&lt;li&gt;サウナに月 1 程度通う&lt;/li&gt;
&lt;li&gt;勉強会に月 1 程度参加&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;まず 1 つめについて。社会人になってからは割りと時間も確保していたので、大きく体調を崩すことはないと調子に乗っていました。しかし、11 月に謎の体調不良もあって、もっと危機感を持ったほうが良いと思ったわけです。これまでも「健全な精神は健全な肉体に宿る」を心がけて、運動は定期的にしていました。ただ、忙しくなるとなかなか時間もとれなかったり。そのあたりを改善して、もっと有酸素運動を取り入れようかと思っています。12 月から、今月に会社で参加する大阪実業団マラソンに向けて、会社まで走って行っているんですが、これが割りと気持ちいい。朝からスッキリするし、慣れれば昼過ぎに睡魔に襲われることもなくなりました。通勤で走っていれば、マラソン対策と言わず、定期的に生活に取り入れても良いかと。あと、自分はかなり体が硬いので、怪我対策も含めもう少し体を柔らかくしたい。&lt;/p&gt;
&lt;p&gt;次に 2 つ目。これは 1 つ目と似たような理由です。あと、昨年、仕事の関係でよっぴーさんにお会いした際にサウナの良さについて教えていただけました。大きな変化があったそうなので、自分もトライしてみようかと思います。サウナの効果については色々記事が出ているとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://travel.spot-app.jp/tokyo_sento_yoppy/&quot;&gt;https://travel.spot-app.jp/tokyo_sento_yoppy/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://withnews.jp/article/f0180101002qq000000000000000W03j10101qq000016523A&quot;&gt;https://withnews.jp/article/f0180101002qq000000000000000W03j10101qq000016523A&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;家でも時々簡易的な交互浴をするときがありますが、たしかにスーッと精神が研ぎ澄まれれる瞬間があります。家でもやりつつ、もっと広い銭湯に行く習慣を生活に取り入れたい。&lt;/p&gt;
&lt;p&gt;最後に 3 つ目。仕事が楽しかったり捗ったりすると、ついつい会社に篭りがちになる時があります。健康上も良くないし、何より生活における変化が少なくなってしまいます。その改善のために、せめて月 1 位でも勉強会に参加しようかと 。昨年も気になる言語やライブラリの勉強会に何回か参加しました。他の会社の方とも繋がりができたり、技術的に気になる話を聞けたり。非常に良かったという思いしかなかったので、これも時間を確保して習慣化したい。&lt;/p&gt;
&lt;p&gt;ぐだぐだと書いてしまいましたが、今年もどうぞよろしくお願いします。&lt;/p&gt;</content:encoded></item><item><title><![CDATA[盛大に体調を崩しました]]></title><description><![CDATA[先週末からずっと体調を崩し、最近ようやく調子が戻ってきました。4…]]></description><link>https://blog.icchi.me/grandly-sick-2017q4</link><guid isPermaLink="false">https://blog.icchi.me/grandly-sick-2017q4</guid><pubDate>Wed, 15 Nov 2017 00:28:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 400px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/aa698592a2737bf632434e315e4bf1b3/e17e5/sick_byouketsu_man.png&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 100%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsSAAALEgHS3X78AAAEVklEQVQ4y61Sa0yTZxT+oOiMQEs72tHRgk5NnINEDYEYNLAlSJwOtuzXsqvZTbYly5KNBRdkXqCwAWMGhpGhYDRK2dxwFFEuBQptqVxaSlqgd7C0ULSlUHr7+p593ycSF8Ffe5KT57w5533ec95zMOwJxCfwMHp0NOUzGPQt2AZISUsNI5kZE4NtiHg+H9ufsg9j0BlUcgwjZich/lEsm13LS0yoIvwv2BxOKX9b4qtPPsig07FnIio6MpxkVizzcNTWrcBiseBFXjxER0UB5wUOxHLYsHnTpgoWk8ml8iMjwzaskMONe3yMTdq7T8tP3Aa7dr/s252UHGQyWUEuj+87kJ4Ob+bmeogcSpDNYW8kyMMOZWY+PmacEQhct9ra4ZqwGV1tEqKKX6pQi0iEPs/LC6ampQGdGXOcTOTy4mlY7rfrt6sUt6z5GlmH7HZzA4z2tuIa+V3U3FADamkH+vL4O8GIMAwSX9r+DZkXx42LWL/CBD6m6WmlfPmQMtrQftXS9OuPYJC3hmYGW6Cx7DtQXilD588Vou0ph2DvK7uyydw9yUnhN5suPi3I5rIx69+Xqf+w1Z/boeu76zOap8HpWkQOxwJSDclhsasJfVhUjW959zTseD+fqvDg1yURX1Vdw0Td0v8K/tHWjblu11MTnv+9INWpG4cVHMC1uITcSx7whgCUfT3o4InCwIDoEujvXPiezIW5jvCA308zWKwRnf33wlbFxJhWZ8ZmbpZiAIARb9EsE2pFMIjD8vIS7nIvIUABKBF2wqdFp4MwKwSnQnjr7J9je05+8vZzT7UrUagoFstGqQrzCivpKq2+V6q1gUpnxbVGK9KY7JDfKEbHfqiFvtYb6OwNBZjtLpgymIbVE4aaMa2+uE0s3YmJugYosX86+ymxDwqqnp+fs2vaJ5YhvagLP1raA2+UiSFb0AtHSyXo8E8KlFksgayfh5F+zgMoFAIcAYXxScMFqsW66y0UkzBPz4g8xCHnvDKQXa6ALMEAyiqToSPlcjhSMQSvlw+ijDO9kCFQIPV9D3I5nbjXH/CSgrJh9WeUyKTRQu3SoGoinww09FsDGcVSlFMhQ29Vj6GcSjkcqxqC1wQywuRwUqiB3zpNYF9wIducI0Tesc0vOE5VXGRj3dIhSqyy7nry+JQRd7vdUCDUhvafkkCd8A6a18pAb7GC2miHbqUZrnRPwojGCDbbLHpIrBShFXzUrrF2bSgl1Y3sCb1ZFcCpx/wSnSt04tIo7uyrx0FRg4NnjlggWLNAIIA7Hrpwq92BB4lV8Hh9QMzgACVWUFbLME5bp2A9rNgB3GZ4FnxBBFqdSULtJDkH4iPf8/r8JuJwL4SQkuBRgkdJJvpRrjERQ6SP0AhhylAoNEzeWV7xmoiF/pgUlI2M0zDHA9dmIhD+wLlII5gwRPMHEc1gW6ThY3/RQFpLQ37PoxhCNLRq5B3LfdvqHQhbq/D/wvTsHMX/AqVvA6/87A6QAAAAAElFTkSuQmCC&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;sick byouketsu man&quot;
        title=&quot;sick byouketsu man&quot;
        src=&quot;/static/aa698592a2737bf632434e315e4bf1b3/e17e5/sick_byouketsu_man.png&quot;
        srcset=&quot;/static/aa698592a2737bf632434e315e4bf1b3/772e8/sick_byouketsu_man.png 200w,
/static/aa698592a2737bf632434e315e4bf1b3/e17e5/sick_byouketsu_man.png 400w&quot;
        sizes=&quot;(max-width: 400px) 100vw, 400px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;先週末からずっと体調を崩し、最近ようやく調子が戻ってきました。40℃ 近い高熱と特に頭痛がキツかった。こんなにも長く体調が悪くなったのはほんとに久々です。&lt;/p&gt;
&lt;h2 id=&quot;地獄のような夜行バス&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%9C%B0%E7%8D%84%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E5%A4%9C%E8%A1%8C%E3%83%90%E3%82%B9&quot; aria-label=&quot;地獄のような夜行バス permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;地獄のような夜行バス&lt;/h2&gt;
&lt;p&gt;ことの始まりは先週の土曜日。この日、社内バレー部の活動で大阪へ。確かにいつもに比べ調子は悪かったものの、普通にプレーできるほどでした。懇親会が終わり、夜行バスに乗ったころから体調が急変。寒気と吐き気で気分は最悪です。この日ほど、夜行バスにしたことを後悔したことはありません。(大変申し訳無いことですが、人生で初めて、運転手の方に予定よりも早く SA に寄ってもらうようお願いしてしまいました。) その後も寝れないは、吐き気は止まらないはで地獄のような一晩でした。次の日の朝、東京に着いたももの、まっすぐ歩けない。明らかに頭も重たい。いつの間にかカバンがやけに重たく感じる。何とか電車に乗って、家まで死ぬ気で歩きました。家までの 1km がハーフマラソン並に遠く感じました。&lt;/p&gt;
&lt;h2 id=&quot;インフルエンザ？&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%82%A4%E3%83%B3%E3%83%95%E3%83%AB%E3%82%A8%E3%83%B3%E3%82%B6%EF%BC%9F&quot; aria-label=&quot;インフルエンザ？ permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;インフルエンザ？&lt;/h2&gt;
&lt;p&gt;帰宅後、熱を測ると 39℃。昨晩寝れてないこともあってすぐに寝ました。お昼過ぎになって起きると、体温は 39.6℃。ただ、喉、鼻はまったく炎症を起こしてなく、あるのは発熱と関節痛ぐらい。ググってみると、完全にインフルエンザの症状。この日は日曜で病院が休みだったため、翌日検査を受けに行くことに。とりあえず、総合風邪薬を飲むと少し熱は下がり 38 度後半に。&lt;/p&gt;
&lt;p&gt;次の日、会社を休んで病院へ。病状を説明すると医者の先生も「インフルエンザでしょう」と検査を受けました。あの鼻の奥まで綿棒を突っ込む痛い奴です。10 分ほど待つと、結果はなんんと陰性。先生も不思議がっていましたが、恐らく風邪だろうとのこと。検査も完全ではないらしく、一応インフルに効く漢方と解熱剤をいただきました。&lt;/p&gt;
&lt;p&gt;インフルエンザでなくて安心すると同時に、発熱の原因が気になりました。これまで、喉を痛めて、扁桃腺の炎症から高熱がでることはありましたが、今回は喉の炎症は全くありません。ただの風邪なら熱が出てもせいぜい 38℃ 弱程度です。先生によると、ウイルス性で腎臓が炎症を起こすとインフルエンザのような症状が出る場合があるとのことでしたが、今回は腎臓は特に痛くありません。先生は疲労だろうといっていましたが、正直、ここ最近は特に疲労を感じていませんでした。一体何が原因なのか…&lt;/p&gt;
&lt;p&gt;ただ、熱はあるけど、歩いて病院まで行けるし、何よりご飯は普通に食べれたので、わりとすぐに治るだろうと思っていました。早く治すためご飯以外はほとんど寝ている生活が続きました。&lt;/p&gt;
&lt;h2 id=&quot;熱が下がらず、頭痛が始まる&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E7%86%B1%E3%81%8C%E4%B8%8B%E3%81%8C%E3%82%89%E3%81%9A%E3%80%81%E9%A0%AD%E7%97%9B%E3%81%8C%E5%A7%8B%E3%81%BE%E3%82%8B&quot; aria-label=&quot;熱が下がらず、頭痛が始まる permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;熱が下がらず、頭痛が始まる&lt;/h2&gt;
&lt;p&gt;それから 2 日経過して水曜日。発熱し始めてから 4 日目。薬を飲んでも 37℃ 後半、薬が切れると 38° 半ば。ずっとこんな体温が続いていました。ご飯は食べれているのに、熱が下がりません。インフルエンザでもっと衰弱していた時も、2,3 日で熱は引いていたので、今回は長過ぎます。そして、水曜日あたりからひどい頭痛に悩まされました。目の奥がズキズキする感覚で、テレビやスマホを少し見るだけでも痛みが走ります。きっとそんなことは無いと思いますが、眼圧がすごく高くなっている感じでした。食後にスマホ見たり、テレビ見たりもできません。&lt;/p&gt;
&lt;p&gt;明らかに、体調がおかしいので、もう一度病院へ。ただし、初回の病院が休みだったので別のところへ行きました。診察してもらうと、先生からは「風邪です」の一言。いろいろ症状を説明しましたが、全て風邪と一致するそうです。これまで、風邪で同じ症状が出たことはないので、スッキリはしませんでしたが…どちらにせよ療養するしか無いとのこと。&lt;/p&gt;
&lt;h2 id=&quot;回復の兆し&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%9B%9E%E5%BE%A9%E3%81%AE%E5%85%86%E3%81%97&quot; aria-label=&quot;回復の兆し permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;回復の兆し&lt;/h2&gt;
&lt;p&gt;そんなこんなで、PC もスマホもほとんと触れず、ひたすら横に。頭痛がやけに酷いのであまり眠れなかったのがキツかった。その後、金曜日から頭痛が引き始め、それと一緒に熱も薬無しで 36℃ 台に。発熱から 6 日目にしてやっと体が元に戻り始めました。&lt;/p&gt;
&lt;h2 id=&quot;今は&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E4%BB%8A%E3%81%AF&quot; aria-label=&quot;今は permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;今は&lt;/h2&gt;
&lt;p&gt;今もまだ、少し頭が重かったり、目の奥に疲れが溜まっている感じがありますが、だいぶ良くなりました。ただ、結局のところ病気の原因がわからなかったのでスッキリしません。次に同じことが起きないように対策できないのが辛いところ。風邪だとするなら、体調を崩さないよう気をつけます。今回も別に弱っていたわけではないんですが。何にせよあの視神経にズキズキくる感じの頭痛は二度と経験したくないな。&lt;/p&gt;</content:encoded></item><item><title><![CDATA[特定キーワードにヒットした新着ニュースを通知するシステムを作ってみた]]></title><description><![CDATA[はじめに 最近、特定の記者の方々が書いた記事をニュースサイトから読むようになりました。検索対象が少なければ手動で検索しても問題ないのですが、多くなると結構な手間になります。それに、検索しても新規の記事が出稿されているとは限りません。 ニュースサイトが何かしらの機能や API…]]></description><link>https://blog.icchi.me/make-news-notification-by-specified-keyword</link><guid isPermaLink="false">https://blog.icchi.me/make-news-notification-by-specified-keyword</guid><pubDate>Sun, 14 May 2017 09:00:00 GMT</pubDate><content:encoded>&lt;h2 id=&quot;はじめに&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB&quot; aria-label=&quot;はじめに permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;はじめに&lt;/h2&gt;
&lt;p&gt;最近、特定の記者の方々が書いた記事をニュースサイトから読むようになりました。検索対象が少なければ手動で検索しても問題ないのですが、多くなると結構な手間になります。それに、検索しても新規の記事が出稿されているとは限りません。&lt;/p&gt;
&lt;p&gt;ニュースサイトが何かしらの機能や API を提供してれればいいのですが、今のところそのようなものはありません。&lt;/p&gt;
&lt;p&gt;そこで、Google Apps Script(GAS)を使い、特定の検索キーワードにヒットした新着記事をメールで通知してくれるシステムを作ってみました。&lt;/p&gt;
&lt;h2 id=&quot;システム構成&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E6%A7%8B%E6%88%90&quot; aria-label=&quot;システム構成 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;システム構成&lt;/h2&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/cc9601cd2d086ea6eba4c0c015da8596/644c5/architecture.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 57.00000000000001%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAIDBf/EABUBAQEAAAAAAAAAAAAAAAAAAAEA/9oADAMBAAIQAxAAAAHYW4iFAv/EABwQAAEDBQAAAAAAAAAAAAAAABEAAQMSEyExMv/aAAgBAQABBQJ6rkhEfIy7FaX/xAAVEQEBAAAAAAAAAAAAAAAAAAAQEf/aAAgBAwEBPwGH/8QAFREBAQAAAAAAAAAAAAAAAAAAEBH/2gAIAQIBAT8Bp//EABsQAAEEAwAAAAAAAAAAAAAAAAARITFhAhAi/9oACAEBAAY/Ap5GzSyVsUfX/8QAGxAAAwEBAAMAAAAAAAAAAAAAAAERIUExUWH/2gAIAQEAAT8hWDTKN0zpz/FKmu/t0iOhHgokkiw//9oADAMBAAIAAwAAABCzP//EABYRAQEBAAAAAAAAAAAAAAAAAAABIf/aAAgBAwEBPxC4R//EABYRAQEBAAAAAAAAAAAAAAAAAAABQf/aAAgBAgEBPxDCv//EABsQAQEAAgMBAAAAAAAAAAAAAAERACExQVFh/9oACAEBAAE/EF6YA7aeCc2buSdFsbfmJThpAFe4owYINyPCPcmEHhn/2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;architecture&quot;
        title=&quot;architecture&quot;
        src=&quot;/static/cc9601cd2d086ea6eba4c0c015da8596/4b190/architecture.jpg&quot;
        srcset=&quot;/static/cc9601cd2d086ea6eba4c0c015da8596/e07e9/architecture.jpg 200w,
/static/cc9601cd2d086ea6eba4c0c015da8596/066f9/architecture.jpg 400w,
/static/cc9601cd2d086ea6eba4c0c015da8596/4b190/architecture.jpg 800w,
/static/cc9601cd2d086ea6eba4c0c015da8596/e5166/architecture.jpg 1200w,
/static/cc9601cd2d086ea6eba4c0c015da8596/644c5/architecture.jpg 1440w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;検索結果は JavaScript によって取得&amp;#x26;表示されますが、GAS に準備されている通常の HTML 取得関数では JavaScript 実行後の HTML を取得できません。そのため、PhantomJs Cloud というスクレイピングサービスを用いることにしました。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://qiita.com/icchi_h/items/4d560d9b451fc483a25e&quot;&gt;http://qiita.com/icchi_h/items/4d560d9b451fc483a25e&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;HTML ソースが取得できれば、適当にパースして必要な記事情報を取り出します。記事情報の中には日付も含まれているため、それを元に新着記事の判定を行います。&lt;/p&gt;
&lt;p&gt;あとは、この流れをすべての検索キーワードで行い、1 つ以上、新着判定された記事があれば、その結果をまとめてメールで送信する仕様にしました。サーバへの負荷対策としてループ毎に Sleep 関数を呼び出しています。GAS だと Gmail との連携も簡単にできますし、HTML 形式で本文に装飾を加えることもできます。&lt;/p&gt;
&lt;h2 id=&quot;実際の動作&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%AE%9F%E9%9A%9B%E3%81%AE%E5%8B%95%E4%BD%9C&quot; aria-label=&quot;実際の動作 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;実際の動作&lt;/h2&gt;
&lt;p&gt;実装した GAS スクリプトを定期的に実行するように設定しています。実際の通知はこんな感じ。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/af41301c6bc6261b9fb1dedf78980201/644c5/demo.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 28.500000000000004%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAGABQDASIAAhEBAxEB/8QAFwABAAMAAAAAAAAAAAAAAAAAAAECBf/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAd2wQD//xAAUEAEAAAAAAAAAAAAAAAAAAAAQ/9oACAEBAAEFAn//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAUEAEAAAAAAAAAAAAAAAAAAAAQ/9oACAEBAAY/An//xAAWEAEBAQAAAAAAAAAAAAAAAAAAARH/2gAIAQEAAT8hlrWv/9oADAMBAAIAAwAAABCAD//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8QP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8QP//EABkQAQEAAwEAAAAAAAAAAAAAAAEAETFBcf/aAAgBAQABPxADvJeZBy//2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;demo&quot;
        title=&quot;demo&quot;
        src=&quot;/static/af41301c6bc6261b9fb1dedf78980201/4b190/demo.jpg&quot;
        srcset=&quot;/static/af41301c6bc6261b9fb1dedf78980201/e07e9/demo.jpg 200w,
/static/af41301c6bc6261b9fb1dedf78980201/066f9/demo.jpg 400w,
/static/af41301c6bc6261b9fb1dedf78980201/4b190/demo.jpg 800w,
/static/af41301c6bc6261b9fb1dedf78980201/e5166/demo.jpg 1200w,
/static/af41301c6bc6261b9fb1dedf78980201/644c5/demo.jpg 1440w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;</content:encoded></item><item><title><![CDATA[東京で社会人はじめました]]></title><description><![CDATA[久々の更新になります。 先月 4 月、長い長い 18 年間のモラトリアム学生生活を終え、ついに社会人…]]></description><link>https://blog.icchi.me/start-work-in-tokyo</link><guid isPermaLink="false">https://blog.icchi.me/start-work-in-tokyo</guid><pubDate>Sat, 13 May 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;久々の更新になります。&lt;/p&gt;
&lt;p&gt;先月 4 月、長い長い 18 年間のモラトリアム学生生活を終え、ついに社会人 1 年生になりました。今は生活も落ち着き、毎日満員電車に揺られながら社会人生活を送っています。&lt;/p&gt;
&lt;p&gt;社会人生活はとても忙しいものかと思いきや、意外とそうでもないです(いまのところ)。毎日 6 時に仕事が終わり、何もする必要がなくなります。研究室での日々と比べるとあまりにも早い帰宅時間。帰宅後に自由な時間がある感覚にまだあまり慣れません。それに加え、資料作りも報告会もありません。もちろんミーティングで炎上することも。なんなら土日なんて完全にフリーで、何したらいいの状態です。それでいて、毎月お給料がもらえます。学生時代は年に 50 万払っていたというのに。これでいいのだろうかと若干背徳感を覚えるレベルです。&lt;/p&gt;
&lt;p&gt;社会人、悪くないです。&lt;/p&gt;
&lt;p&gt;あと東京ならではの嬉しいこともあります。
会社帰りに秋葉原に寄ってぶらついたり  もできるし、IT 系コミュニティがたくさんあったり。&lt;/p&gt;
&lt;p&gt;少し話はそれますが、5 月末に開かれる Android Bazzar and Conrefence 2017 Spring にスタッフとして参加してきます。こういったコミュニティやイベントがあるのは東京が多いのですぐに行ける距離感はありがたいです。&lt;/p&gt;
&lt;div class=&quot;iframely-embed&quot;&gt;&lt;div class=&quot;iframely-responsive&quot; style=&quot;height: 140px; padding-bottom: 0;&quot;&gt;&lt;a href=&quot;https://abc.android-group.jp/2017s/&quot; data-iframely-url=&quot;//cdn.iframe.ly/OBhUtrs?iframe=card-small&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;こんな生活が送れるのも研修期間の今だけってのはあるとおもますが、東京でも楽しくやれたらなと思います。&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Slackの絵文字をLINEのスタンプみたいに大きく使えるようにしてみた]]></title><description><![CDATA[追記 こちらの記事内で利用している API Token は旧式(Legacy Token)であり非常に強力な権限を持つものです。現在は新しいタイプの Token…]]></description><link>https://blog.icchi.me/make-large-stamp-posting-system-for-slack</link><guid isPermaLink="false">https://blog.icchi.me/make-large-stamp-posting-system-for-slack</guid><pubDate>Wed, 21 Dec 2016 07:16:00 GMT</pubDate><content:encoded>&lt;div style=&quot;border: 1px solid #999; border-radius: 4px; padding: 8px 16px; margin: 56px 0;&quot;&gt;
&lt;p&gt;&lt;strong&gt;追記&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;こちらの記事内で利用している API Token は旧式(Legacy Token)であり非常に強力な権限を持つものです。現在は新しいタイプの Token の利用が推奨されています。&lt;/p&gt;
&lt;p&gt;セキュリティが甘い部分もあり、本記事の内容はあくまで参考として読んでいただけると幸いです。&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;この記事は&lt;a href=&quot;https://qiita.com/advent-calendar/2016/slack&quot;&gt;『Slack Advent Calendar 2016』&lt;/a&gt;21 日目の記事です。&lt;/p&gt;
&lt;p&gt;この記事は Advent Calendar 用に、以前実装した&lt;strong&gt;Slack 上でスタンプを表示するシステム&lt;/strong&gt;を改良したものです。変更点についてはこちら。&lt;/p&gt;
&lt;h2 id=&quot;background&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#background&quot; aria-label=&quot;background permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Background&lt;/h2&gt;
&lt;p&gt;少し前から面白い記事に触発されてプライベートでも Slack を使い始めました。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://kuma-no-kara-age.hatenablog.com/entry/2016/01/10/212347&quot;&gt;Slack がカップル専用アプリだった件&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.8arrow.org/entry/2016/01/13/183349&quot;&gt;割と本気で家庭用 Slack を作ってみた&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;確かに外部サービスとの連携が便利ですが、1 ヶ月ほど使っているとやはり LINE のようなスタンプが使えればと思ってしまいます。&lt;/p&gt;
&lt;p&gt;一応 Slack にも絵文字機能があり自分で作れたりも出来るのですが、何せ小さい。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://twitter.com/BenJamski&quot;&gt;@BenJamski&lt;/a&gt; &lt;a href=&quot;https://twitter.com/technancy&quot;&gt;@technancy&lt;/a&gt; We have jumbomoji already、if you post a message with only emoji。Check they&apos;re enabled in your preferences&lt;/p&gt;
&lt;p&gt;— Slack (@SlackHQ) &lt;a href=&quot;https://twitter.com/SlackHQ/status/761379811705126914&quot;&gt;2016 年 8 月 5 日&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;公式曰く&lt;strong&gt;Jumbomoji&lt;/strong&gt;という機能によって絵文字単体で投稿すると通常よりも大きくなるそうですが...&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/d992c1ca3eaa8886bb6e7aae8a8840f8/f55e8/junbomoji.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 30.5%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAGABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAIF/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAAB3aAD/8QAFhAAAwAAAAAAAAAAAAAAAAAAARAh/9oACAEBAAEFAhH/AP/EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABQQAQAAAAAAAAAAAAAAAAAAABD/2gAIAQEABj8Cf//EABYQAQEBAAAAAAAAAAAAAAAAAAEQMf/aAAgBAQABPyEGC//aAAwDAQACAAMAAAAQA8//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/ED//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/ED//xAAaEAEAAQUAAAAAAAAAAAAAAAARAAEhMUHB/9oACAEBAAE/EF7TVy7exjP/2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;jumbo-moji&quot;
        title=&quot;jumbo-moji&quot;
        src=&quot;/static/d992c1ca3eaa8886bb6e7aae8a8840f8/4b190/junbomoji.jpg&quot;
        srcset=&quot;/static/d992c1ca3eaa8886bb6e7aae8a8840f8/e07e9/junbomoji.jpg 200w,
/static/d992c1ca3eaa8886bb6e7aae8a8840f8/066f9/junbomoji.jpg 400w,
/static/d992c1ca3eaa8886bb6e7aae8a8840f8/4b190/junbomoji.jpg 800w,
/static/d992c1ca3eaa8886bb6e7aae8a8840f8/f55e8/junbomoji.jpg 918w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ジャンボ&lt;/strong&gt;にしては小さい...&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 196px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/b20c78a2ad0cec718fbeb5a0ffd8fdbd/2350c/dagakotowaru.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 167.85714285714286%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAiABQDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAAAAIDBAX/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIQAxAAAAHpZpTL1IsSvOa1DXmCYP/EAB4QAAIBBAMBAAAAAAAAAAAAAAECEgADETIEECEi/9oACAEBAAEFAuR7SIYgPV3JcGBkTSL9NaIEMUqxJxjbq9pa1//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQMBAT8BX//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQIBAT8BX//EACAQAAICAQMFAAAAAAAAAAAAAAABESESAhAyIDFxgdH/2gAIAQEABj8CSmDVjOUj+lHJeTk/RLuR40UntfYno//EAB0QAQACAgMBAQAAAAAAAAAAAAEAESFBMVFxYRD/2gAIAQEAAT8h2mmcMPrBEdTkr5xcOkBvfRKCvY4nLFO4E+Y8lhDpWJYhW77lS1jd8kSTwy3cfHX4QwnJ7P/aAAwDAQACAAMAAAAQY8ow8A//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAEDAQE/EF//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAECAQE/EF//xAAjEAEAAQQBAwUBAAAAAAAAAAABEQAhMVFBYYGxEHGRocHh/9oACAEBAAE/EDYZEwPX6811m6abgnpmplyTlBJxTRRJkxB+c2oRXwSTjgpc4Wgge1MmAUjdGX5ayv06Gn2oYZC6ct3eaisyIhhNzh1StEEzOf5Q9zmwHZ6MEAreDNqJLt+Cv//Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;dagakotowaru&quot;
        title=&quot;dagakotowaru&quot;
        src=&quot;/static/b20c78a2ad0cec718fbeb5a0ffd8fdbd/2350c/dagakotowaru.jpg&quot;
        srcset=&quot;/static/b20c78a2ad0cec718fbeb5a0ffd8fdbd/2350c/dagakotowaru.jpg 196w&quot;
        sizes=&quot;(max-width: 196px) 100vw, 196px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;例えばこのような元画像が 400px 程度のスタンプ用画像をカスタム絵文字にしようもんなら、ほぼほぼ見えません。&lt;/p&gt;
&lt;p&gt;やはり LINE で慣れてしまうともう少し大きいサイズがしっくりきます。皆同じことを思うようで Twitter 上では「もっとサイズを大きく出来ないの?」との質問が多数。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://twitter.com/SlackHQ&quot;&gt;@SlackHQ&lt;/a&gt; we have to go bigger。Can it be a setting? Max emoji size? We want full 128px if possible。:) &lt;a href=&quot;https://t.co/6q6FIn9iW7&quot;&gt;pic.twitter.com/6q6FIn9iW7&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;— Alex3 (@Alex3omg) &lt;a href=&quot;https://twitter.com/Alex3omg/status/722104950054989824&quot;&gt;2016 年 4 月 18 日&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://twitter.com/Alex3omg&quot;&gt;@Alex3omg&lt;/a&gt; No plans to go any bigger just yet、but thanks for the feedback!&lt;/p&gt;
&lt;p&gt;— Slack (@SlackHQ) &lt;a href=&quot;https://twitter.com/SlackHQ/status/722163156622176256&quot;&gt;2016 年 4 月 18 日&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;それに対して公式の回答は&lt;strong&gt;「絵文字サイズを大きくする予定はない」&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;なぜなんだ Slack!&lt;/p&gt;
&lt;p&gt;公式がこう言っている以上自分たちで解決するしか無い。&lt;/p&gt;
&lt;p&gt;調べてみるといくつか方法があるようでした。こちらの記事ではブラウザ拡張機能を使ったり Slack のデスクトップアプリを拡張して絵文字を拡大表示させています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://qiita.com/kyusyukeigo/items/f4192f6cf210cf6c5e33&quot;&gt;Slack で LINE みたいにスタンプを使いたいと言われたので&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;しかし、これらのやり方だと&lt;strong&gt;設定した以外の端末からは大きくなりません&lt;/strong&gt;. やはり Slack が使える全ての端末から、PC やスマホ関係なく同じようにスタンプを送信・表示できることが望ましい。&lt;/p&gt;
&lt;h2 id=&quot;slack-で-line-みたいにスタンプを表示させるために&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#slack-%E3%81%A7-line-%E3%81%BF%E3%81%9F%E3%81%84%E3%81%AB%E3%82%B9%E3%82%BF%E3%83%B3%E3%83%97%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%95%E3%81%9B%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB&quot; aria-label=&quot;slack で line みたいにスタンプを表示させるために permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Slack で LINE みたいにスタンプを表示させるために&lt;/h2&gt;
&lt;p&gt;Slack では画像のリンクが投稿されると、その画像を展開して表示してくれます。今回はその機能を利用してスタンプを表示できるようにします。&lt;/p&gt;
&lt;p&gt;そこで、こんなシステムを考えてみました。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/a88fb5ea5f6d691ebdc64504c53ed7b4/1c661/structure.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 63.5%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAIDAQX/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIQAxAAAAHuzdShgf/EABgQAQEAAwAAAAAAAAAAAAAAAAExEBFB/9oACAEBAAEFAl1gjeE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAGRAAAwADAAAAAAAAAAAAAAAAARARADGh/9oACAEBAAY/AtXLxkr/xAAaEAADAQEBAQAAAAAAAAAAAAAAAREhMUFR/9oACAEBAAE/IWtjht3Ds9HDIZQ7dGO5vw//2gAMAwEAAgADAAAAEEPP/8QAFhEBAQEAAAAAAAAAAAAAAAAAAAEx/9oACAEDAQE/ELiP/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPxA//8QAHBABAQEAAgMBAAAAAAAAAAAAAREAITFBYbHx/9oACAEBAAE/EJTjrRD65qnLPyzVlJCi2ZEAc+siQhGTrrIVCorJ43//2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;structure&quot;
        title=&quot;structure&quot;
        src=&quot;/static/a88fb5ea5f6d691ebdc64504c53ed7b4/4b190/structure.jpg&quot;
        srcset=&quot;/static/a88fb5ea5f6d691ebdc64504c53ed7b4/e07e9/structure.jpg 200w,
/static/a88fb5ea5f6d691ebdc64504c53ed7b4/066f9/structure.jpg 400w,
/static/a88fb5ea5f6d691ebdc64504c53ed7b4/4b190/structure.jpg 800w,
/static/a88fb5ea5f6d691ebdc64504c53ed7b4/1c661/structure.jpg 917w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;具体的には, Outgoing WegHooks でカスタム絵文字の投稿を検出し、それに対応するスタンプの画像 URL があるならそれを投稿する処理を GAS で実装しました。&lt;/p&gt;
&lt;p&gt;GAS を使って外部から処理しているため、&lt;strong&gt;プラットフォームに関係なく Slack が利用できる全ての端末でシステムを利用&lt;/strong&gt;することが出来ます。&lt;/p&gt;
&lt;p&gt;またカスタム絵文字とそれに対応する画像 URL(直接リンク)の管理は Google スプレッドシートで行います。そのためス&lt;strong&gt;プレッドシートを共有すればチームみんなでスタンプを増やすことが可能。&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&quot;実際の動作&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%AE%9F%E9%9A%9B%E3%81%AE%E5%8B%95%E4%BD%9C&quot; aria-label=&quot;実際の動作 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;実際の動作&lt;/h3&gt;
&lt;p&gt;このシステムを使ってスタンプを表示するとこんな感じになります。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/247a580d95c030961cc4025a57514217/stamp_on_slack_demo.gif&quot; alt=&quot;demo&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;スタンプシステムの構築方法&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%82%B9%E3%82%BF%E3%83%B3%E3%83%97%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%AE%E6%A7%8B%E7%AF%89%E6%96%B9%E6%B3%95&quot; aria-label=&quot;スタンプシステムの構築方法 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;スタンプシステムの構築方法&lt;/h2&gt;
&lt;p&gt;これからシステムの作り方を説明します。&lt;/p&gt;
&lt;h3 id=&quot;1-スタンプの準備と画像-url-の取得&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#1-%E3%82%B9%E3%82%BF%E3%83%B3%E3%83%97%E3%81%AE%E6%BA%96%E5%82%99%E3%81%A8%E7%94%BB%E5%83%8F-url-%E3%81%AE%E5%8F%96%E5%BE%97&quot; aria-label=&quot;1 スタンプの準備と画像 url の取得 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;1. スタンプの準備と画像 URL の取得&lt;/h3&gt;
&lt;p&gt;まずスタンプとして使いたい画像を用意する。&lt;/p&gt;
&lt;p&gt;サイズが大きすぎると Slack の容量を圧迫したりスタンプが大きく表示されすぎてしまうため、240~320px 程度にリサイズすることをオススメします.&lt;/p&gt;
&lt;p&gt;無料のオンラインストレージを利用すると手軽に画像の直接リンクを取得できます。Dropbox だとファイルの右クリックから.Google Drive を利用する場合は以下のサイトが参考になります.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://ameblo.jp/wantan-52/entry-12120519832.html&quot;&gt;https://ameblo.jp/wantan-52/entry-12120519832.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;2-slack-側の準備&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#2-slack-%E5%81%B4%E3%81%AE%E6%BA%96%E5%82%99&quot; aria-label=&quot;2 slack 側の準備 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;2. Slack 側の準備&lt;/h3&gt;
&lt;p&gt;Slack 側ではカスタム絵文字の登録と GAS にスタンプの通知を知らせる WebHook の設定を行う.&lt;/p&gt;
&lt;h4 id=&quot;21-カスタム絵文字の登録&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#21-%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E7%B5%B5%E6%96%87%E5%AD%97%E3%81%AE%E7%99%BB%E9%8C%B2&quot; aria-label=&quot;21 カスタム絵文字の登録 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;2.1. カスタム絵文字の登録&lt;/h4&gt;
&lt;p&gt;カスタム絵文字の登録せずともシステムは動作しますが、スタンプ投稿時に小さいながら確認できるので便利です。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 710px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/2e05db9d297018f775f8c447b523be5b/67e9d/emoji.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 112.5%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAXABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAECBf/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAHuLI0KAA//xAAWEAEBAQAAAAAAAAAAAAAAAAARITD/2gAIAQEAAQUCa4f/xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAEDAQE/AR//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAECAQE/AR//xAAZEAABBQAAAAAAAAAAAAAAAAAAARAgITH/2gAIAQEABj8CfCkj/8QAGhABAAIDAQAAAAAAAAAAAAAAAQAREDFRYf/aAAgBAQABPyHYLArQrCKjpL4Yp7K9x//aAAwDAQACAAMAAAAQH8AA/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPxAf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPxAf/8QAIBAAAgIBAwUAAAAAAAAAAAAAAREAMSFBUWFxwdHh8P/aAAgBAQABPxAgw2gj9vGWGqLV+IyN3rCCh2/UCHIJvK7TriEhvCXCBhhPmf/Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;emoji&quot;
        title=&quot;emoji&quot;
        src=&quot;/static/2e05db9d297018f775f8c447b523be5b/67e9d/emoji.jpg&quot;
        srcset=&quot;/static/2e05db9d297018f775f8c447b523be5b/e07e9/emoji.jpg 200w,
/static/2e05db9d297018f775f8c447b523be5b/066f9/emoji.jpg 400w,
/static/2e05db9d297018f775f8c447b523be5b/67e9d/emoji.jpg 710w&quot;
        sizes=&quot;(max-width: 710px) 100vw, 710px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;1.1 で用意した画像をカスタム絵文字として登録する場合は手順が本家のサイトに載っています.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://get.slack.help/hc/en-us/articles/206870177-Creating-custom-emoji&quot;&gt;https://get.slack.help/hc/en-us/articles/206870177-Creating-custom-emoji&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;絵文字として登録するには画像を 128px 以下にする必要あるので(2016/12/21 時点) 以下のようなサービスを利用して画像を縮小します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://labo.i-section.net/shukusen-air&quot;&gt;https://labo.i-section.net/shukusen-air&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://resizer.myct.jp&quot;&gt;https://resizer.myct.jp&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;22-outgoing-webhooks-の設定&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#22-outgoing-webhooks-%E3%81%AE%E8%A8%AD%E5%AE%9A&quot; aria-label=&quot;22 outgoing webhooks の設定 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;2.2. Outgoing WebHooks の設定&lt;/h4&gt;
&lt;p&gt;カスタム絵文字を投稿した際のトリガーとなる Outgoing WebHooks とあなたの Slack チームを統合。まだ統合していない方は以下のサイトがわかりやすいです。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://qiita.com/chike0905/items/58222a99be460f325ab8&quot;&gt;Slack の Outgoing Webhooks を使って投稿&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;統合したら以下のように設定。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/fd66fd8e5cd045ffceeb40e137b58c9f/eea4a/integration-setting.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAEF/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAAB3qAH/8QAFBABAAAAAAAAAAAAAAAAAAAAIP/aAAgBAQABBQJf/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAFBABAAAAAAAAAAAAAAAAAAAAIP/aAAgBAQAGPwJf/8QAFhABAQEAAAAAAAAAAAAAAAAAEAGB/9oACAEBAAE/IY4//9oADAMBAAIAAwAAABCQD//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8QP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8QP//EABsQAAIDAAMAAAAAAAAAAAAAAAERABAhMWHw/9oACAEBAAE/EATOx+VAnjHdGf/Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;integration-setting&quot;
        title=&quot;integration-setting&quot;
        src=&quot;/static/fd66fd8e5cd045ffceeb40e137b58c9f/4b190/integration-setting.jpg&quot;
        srcset=&quot;/static/fd66fd8e5cd045ffceeb40e137b58c9f/e07e9/integration-setting.jpg 200w,
/static/fd66fd8e5cd045ffceeb40e137b58c9f/066f9/integration-setting.jpg 400w,
/static/fd66fd8e5cd045ffceeb40e137b58c9f/4b190/integration-setting.jpg 800w,
/static/fd66fd8e5cd045ffceeb40e137b58c9f/e5166/integration-setting.jpg 1200w,
/static/fd66fd8e5cd045ffceeb40e137b58c9f/eea4a/integration-setting.jpg 1280w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Channel: あなたがこのシステムを利用したいチャンネル（基本は Any で OK）&lt;/li&gt;
&lt;li&gt;Trigger Words: &lt;code class=&quot;language-text&quot;&gt;:&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;URL: &lt;strong&gt;3.2 で作成する GAS の公開アドレスを貼り付ける&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Token: デフォルトで値が入っているがこれは使わない&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;正確に言うと&lt;code class=&quot;language-text&quot;&gt;:&lt;/code&gt;コロンが含まれている投稿全てに対して POST を投げている。その文字列が絵文字がどうかの判定は GAS 側のプログラムで行ってます。&lt;/p&gt;
&lt;h3 id=&quot;3-gas-側の準備&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#3-gas-%E5%81%B4%E3%81%AE%E6%BA%96%E5%82%99&quot; aria-label=&quot;3 gas 側の準備 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;3. GAS 側の準備&lt;/h3&gt;
&lt;p&gt;Google Drive 上の好きな場所に適当なディレクトリを作成.&lt;/p&gt;
&lt;h4 id=&quot;31-google-スプレッドシートの用意&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#31-google-%E3%82%B9%E3%83%97%E3%83%AC%E3%83%83%E3%83%89%E3%82%B7%E3%83%BC%E3%83%88%E3%81%AE%E7%94%A8%E6%84%8F&quot; aria-label=&quot;31 google スプレッドシートの用意 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;3.1. Google スプレッドシートの用意&lt;/h4&gt;
&lt;p&gt;先ほどのディレクトリ内にスプレッドシートを作成。ファイル名は何でも OK。&lt;/p&gt;
&lt;p&gt;シート 1 に対して以下のように入力。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A 列: 2.1 で登録した Emoji 名&lt;/li&gt;
&lt;li&gt;B 列: カスタム絵文字に対応する 1.2 で取得したスタンプ画像の URL(直接リンク)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/6a89e0161724ee15d404d87d211d1033/644c5/stamp-url1.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 23%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAFABQDASIAAhEBAxEB/8QAFwABAAMAAAAAAAAAAAAAAAAAAAIDBf/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAHZiJeF/8QAFxAAAwEAAAAAAAAAAAAAAAAAARAREv/aAAgBAQABBQKwbX//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAUEAEAAAAAAAAAAAAAAAAAAAAQ/9oACAEBAAY/An//xAAaEAACAgMAAAAAAAAAAAAAAAAAAREhUXGh/9oACAEBAAE/IXBeTTorR//aAAwDAQACAAMAAAAQ/A//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/ED//xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAgEBPxAJ/8QAFxABAQEBAAAAAAAAAAAAAAAAARExAP/aAAgBAQABPxBNmss5d3wINSl3v//Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;stamp-url1&quot;
        title=&quot;stamp-url1&quot;
        src=&quot;/static/6a89e0161724ee15d404d87d211d1033/4b190/stamp-url1.jpg&quot;
        srcset=&quot;/static/6a89e0161724ee15d404d87d211d1033/e07e9/stamp-url1.jpg 200w,
/static/6a89e0161724ee15d404d87d211d1033/066f9/stamp-url1.jpg 400w,
/static/6a89e0161724ee15d404d87d211d1033/4b190/stamp-url1.jpg 800w,
/static/6a89e0161724ee15d404d87d211d1033/e5166/stamp-url1.jpg 1200w,
/static/6a89e0161724ee15d404d87d211d1033/644c5/stamp-url1.jpg 1440w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;次に、シート 2 を作成し以下のように入力.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A 列: システムを利用するスラックユーザー名&lt;/li&gt;
&lt;li&gt;B 列: ユーザの token&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/d6619c116d4e482d101a9949cca0fb66/c44b8/stamp-url2.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 35.50000000000001%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAHABQDASIAAhEBAxEB/8QAFwABAAMAAAAAAAAAAAAAAAAAAAECBf/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAdiQuD//xAAXEAADAQAAAAAAAAAAAAAAAAAAECEi/9oACAEBAAEFAqaX/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAFxABAQEBAAAAAAAAAAAAAAAAASEAEP/aAAgBAQAGPwKJqnP/xAAZEAEAAwEBAAAAAAAAAAAAAAABABHRQWH/2gAIAQEAAT8hoFF8RhljssOz/9oADAMBAAIAAwAAABAAD//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8QP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8QP//EABoQAQADAAMAAAAAAAAAAAAAAAEAESExQVH/2gAIAQEAAT8QrqRhRB5jDZw9RDG6daHmf//Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;stamp-url2&quot;
        title=&quot;stamp-url2&quot;
        src=&quot;/static/d6619c116d4e482d101a9949cca0fb66/4b190/stamp-url2.jpg&quot;
        srcset=&quot;/static/d6619c116d4e482d101a9949cca0fb66/e07e9/stamp-url2.jpg 200w,
/static/d6619c116d4e482d101a9949cca0fb66/066f9/stamp-url2.jpg 400w,
/static/d6619c116d4e482d101a9949cca0fb66/4b190/stamp-url2.jpg 800w,
/static/d6619c116d4e482d101a9949cca0fb66/e5166/stamp-url2.jpg 1200w,
/static/d6619c116d4e482d101a9949cca0fb66/c44b8/stamp-url2.jpg 1360w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;token は slack にログインした状態で以下の URL にアクセスすると生成可能。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://api.slack.com/web&quot;&gt;https://api.slack.com/web&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;次にこのスプレッドシートを公開する。公開した URL は GAS のプログラム内で使うためコピーしておく。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/24ded634faf890569a56d46c793a103f/4b190/gas-deploy.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 73.00000000000001%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAQACBf/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAe6mgiP/xAAVEAEBAAAAAAAAAAAAAAAAAAAgIf/aAAgBAQABBQKr/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAFBABAAAAAAAAAAAAAAAAAAAAIP/aAAgBAQAGPwJf/8QAGhAAAgIDAAAAAAAAAAAAAAAAARARUQAhMf/aAAgBAQABPyE0GbpA9kQ//9oADAMBAAIAAwAAABAgz//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8QP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8QP//EABwQAQEAAgIDAAAAAAAAAAAAAAERACExUUGBkf/aAAgBAQABPxCC7Oq4q8/uBAt9txloF023FJzmgDeu25//2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;gas-deploy-setting&quot;
        title=&quot;gas-deploy-setting&quot;
        src=&quot;/static/24ded634faf890569a56d46c793a103f/4b190/gas-deploy.jpg&quot;
        srcset=&quot;/static/24ded634faf890569a56d46c793a103f/e07e9/gas-deploy.jpg 200w,
/static/24ded634faf890569a56d46c793a103f/066f9/gas-deploy.jpg 400w,
/static/24ded634faf890569a56d46c793a103f/4b190/gas-deploy.jpg 800w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;h4 id=&quot;32-gas-の用意&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#32-gas-%E3%81%AE%E7%94%A8%E6%84%8F&quot; aria-label=&quot;32 gas の用意 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;3.2. GAS の用意&lt;/h4&gt;
&lt;p&gt;先ほどのディレクトリ内に GAS ファイルを作成。これもファイル名は何でも OK。&lt;/p&gt;
&lt;p&gt;以下のサイトに従って、GAS への Slack ライブラリの導入。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://qiita.com/soundTricker/items/43267609a870fc9c7453&quot;&gt;https://qiita.com/soundTricker/items/43267609a870fc9c7453&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;以下のリポジトリのコードを GAS ファイルに貼り付け。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/icchi-h/Stamp_on_Slack/blob/master/main.js&quot;&gt;https://github.com/icchi-h/Stamp_on_Slack/blob/master/main.js&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;コード内の token と sheet_url に先ほど取得して値をいれる. こんな感じになっているはず。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/b3cb793770766780e124805ed7aed208/eea4a/gas.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 47%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAJABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAIDBf/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAe1Ng1H/xAAaEAACAgMAAAAAAAAAAAAAAAAAEAECEiMx/9oACAEBAAEFAuGwjNVX/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAGBAAAgMAAAAAAAAAAAAAAAAAABEgIUL/2gAIAQEABj8CMlqH/8QAGxAAAQUBAQAAAAAAAAAAAAAAIQABEBExYUH/2gAIAQEAAT8hZqALQDtoHryNPH//2gAMAwEAAgADAAAAELAP/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPxA//8QAFREBAQAAAAAAAAAAAAAAAAAAEBH/2gAIAQIBAT8Qp//EAB4QAQACAgEFAAAAAAAAAAAAAAEAESExEFFxobHB/9oACAEBAAE/EDAKAqjpN18mNs+gGvUdPaeZx//Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;gas&quot;
        title=&quot;gas&quot;
        src=&quot;/static/b3cb793770766780e124805ed7aed208/4b190/gas.jpg&quot;
        srcset=&quot;/static/b3cb793770766780e124805ed7aed208/e07e9/gas.jpg 200w,
/static/b3cb793770766780e124805ed7aed208/066f9/gas.jpg 400w,
/static/b3cb793770766780e124805ed7aed208/4b190/gas.jpg 800w,
/static/b3cb793770766780e124805ed7aed208/e5166/gas.jpg 1200w,
/static/b3cb793770766780e124805ed7aed208/eea4a/gas.jpg 1280w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;最後に、GAS で POST を受け取るためのリンクを取得して、2.2 で設定した Outgoing WebHools の URL にセット。&lt;/p&gt;
&lt;p&gt;その流れは以下のサイトで詳しく解説されています。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://qiita.com/kyo_nanba/items/83b646357d592eb9a87b#gas%E3%81%A7post%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88%E3%82%92%E5%8F%97%E3%81%91%E5%8F%96%E3%82%8B&quot;&gt;https://qiita.com/kyo_nanba/items/83b646357d592eb9a87b#gas%E3%81%A7post%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88%E3%82%92%E5%8F%97%E3%81%91%E5%8F%96%E3%82%8B&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;lets-try&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#lets-try&quot; aria-label=&quot;lets try permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Let&apos;s try&lt;/h2&gt;
&lt;p&gt;あとは Slack でスタンプを楽しむ!&lt;/p&gt;
&lt;h2 id=&quot;システム構築後にスタンプを追加していくには&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E6%A7%8B%E7%AF%89%E5%BE%8C%E3%81%AB%E3%82%B9%E3%82%BF%E3%83%B3%E3%83%97%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%97%E3%81%A6%E3%81%84%E3%81%8F%E3%81%AB%E3%81%AF&quot; aria-label=&quot;システム構築後にスタンプを追加していくには permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;システム構築後にスタンプを追加していくには&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;1。(カスタム絵文字の登録と画像の直接リンクの取得)&lt;/li&gt;
&lt;li&gt;3.1 で作成したスプレッドシートの追記&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これの繰り返し。&lt;/p&gt;
&lt;h2 id=&quot;付録-同じ画像リンクは連続で使えない問題への対処&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E4%BB%98%E9%8C%B2-%E5%90%8C%E3%81%98%E7%94%BB%E5%83%8F%E3%83%AA%E3%83%B3%E3%82%AF%E3%81%AF%E9%80%A3%E7%B6%9A%E3%81%A7%E4%BD%BF%E3%81%88%E3%81%AA%E3%81%84%E5%95%8F%E9%A1%8C%E3%81%B8%E3%81%AE%E5%AF%BE%E5%87%A6&quot; aria-label=&quot;付録 同じ画像リンクは連続で使えない問題への対処 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;付録. 同じ画像リンクは連続で使えない問題への対処&lt;/h2&gt;
&lt;p&gt;Slack の仕様上、1 時間以内に同じ画像 URL を連続で投稿しても 1 回目以降は展開して表示されない。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/ad69c480a2bdb63c8785aaf6126d028b/eea4a/url-probrem1.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 42%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAIABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAMF/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAAB2LgB/8QAFxABAAMAAAAAAAAAAAAAAAAAAQIQEf/aAAgBAQABBQIwlX//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAVEAEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAQAGPwJv/8QAFxABAQEBAAAAAAAAAAAAAAAAEQExEP/aAAgBAQABPyFgNtczv//aAAwDAQACAAMAAAAQc8//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/ED//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/ED//xAAXEAEBAQEAAAAAAAAAAAAAAAARAQDw/9oACAEBAAE/EIuKKDXGlYlzv//Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;probrem1&quot;
        title=&quot;probrem1&quot;
        src=&quot;/static/ad69c480a2bdb63c8785aaf6126d028b/4b190/url-probrem1.jpg&quot;
        srcset=&quot;/static/ad69c480a2bdb63c8785aaf6126d028b/e07e9/url-probrem1.jpg 200w,
/static/ad69c480a2bdb63c8785aaf6126d028b/066f9/url-probrem1.jpg 400w,
/static/ad69c480a2bdb63c8785aaf6126d028b/4b190/url-probrem1.jpg 800w,
/static/ad69c480a2bdb63c8785aaf6126d028b/e5166/url-probrem1.jpg 1200w,
/static/ad69c480a2bdb63c8785aaf6126d028b/eea4a/url-probrem1.jpg 1280w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;スタンプの使い方を考えるとこれはまずい。&lt;/p&gt;
&lt;p&gt;そこで、画像 URL に UnixTime を GET のパラメータとして追記して対処しました。こうすることで一応は異なる URL として認識している。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/5bf75975fd038366d896f280b22f1942/eea4a/url-probrem2.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 61%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAMABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAECAwX/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIQAxAAAAHYuUhDD//EABgQAAMBAQAAAAAAAAAAAAAAAAEQEQIS/9oACAEBAAEFAszpAR//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAVEAEBAAAAAAAAAAAAAAAAAAABIP/aAAgBAQAGPwJr/8QAGRABAAMBAQAAAAAAAAAAAAAAARARUTFB/9oACAEBAAE/ITpbzkkmvZ//2gAMAwEAAgADAAAAEFPP/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPxA//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPxA//8QAHBABAAIBBQAAAAAAAAAAAAAAAQARURAxQWGR/9oACAEBAAE/ENhvNvSxfkpxKcRbAKt71//Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;probrem2&quot;
        title=&quot;probrem2&quot;
        src=&quot;/static/5bf75975fd038366d896f280b22f1942/4b190/url-probrem2.jpg&quot;
        srcset=&quot;/static/5bf75975fd038366d896f280b22f1942/e07e9/url-probrem2.jpg 200w,
/static/5bf75975fd038366d896f280b22f1942/066f9/url-probrem2.jpg 400w,
/static/5bf75975fd038366d896f280b22f1942/4b190/url-probrem2.jpg 800w,
/static/5bf75975fd038366d896f280b22f1942/e5166/url-probrem2.jpg 1200w,
/static/5bf75975fd038366d896f280b22f1942/eea4a/url-probrem2.jpg 1280w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;h2 id=&quot;追記-スタンプが-bot-ととして投稿される問題を改善br反映済み&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E8%BF%BD%E8%A8%98-%E3%82%B9%E3%82%BF%E3%83%B3%E3%83%97%E3%81%8C-bot-%E3%81%A8%E3%81%A8%E3%81%97%E3%81%A6%E6%8A%95%E7%A8%BF%E3%81%95%E3%82%8C%E3%82%8B%E5%95%8F%E9%A1%8C%E3%82%92%E6%94%B9%E5%96%84br%E5%8F%8D%E6%98%A0%E6%B8%88%E3%81%BF&quot; aria-label=&quot;追記 スタンプが bot ととして投稿される問題を改善br反映済み permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;追記. スタンプが BOT ととして投稿される問題を改善&lt;br&gt;(反映済み)&lt;/h2&gt;
&lt;p&gt;以前のものでは token を 1 つしか利用していなかったため、&lt;strong&gt;スタンプが BOT として投稿&lt;/strong&gt;されていました。そのため本システムによってスタンプが投稿されると、&lt;strong&gt;新規メッセージとして扱われ通知が煩わしい&lt;/strong&gt;問題がありました。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/3f68cdffa636b6711ee6f73410a1c10f/c44b8/before_improvement.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 57.00000000000001%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAEEBf/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAa9OK4Yg/8QAHBAAAAYDAAAAAAAAAAAAAAAAAAEDBBARFDE0/9oACAEBAAEFAkLxy0GnPH//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAXEAADAQAAAAAAAAAAAAAAAAABAhAR/9oACAEBAAY/Alyi/wD/xAAcEAACAAcAAAAAAAAAAAAAAAABEAARMUFxobH/2gAIAQEAAT8hEruZMU8LdPX/AP/aAAwDAQACAAMAAAAQBM//xAAWEQADAAAAAAAAAAAAAAAAAAABEDH/2gAIAQMBAT8QNX//xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAgEBPxBn/8QAGRABAQADAQAAAAAAAAAAAAAAAREAECGB/9oACAEBAAE/ECgvWRigvL7lKpFC6AilMwAQ4Gv/2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;begore-improvement&quot;
        title=&quot;begore-improvement&quot;
        src=&quot;/static/3f68cdffa636b6711ee6f73410a1c10f/4b190/before_improvement.jpg&quot;
        srcset=&quot;/static/3f68cdffa636b6711ee6f73410a1c10f/e07e9/before_improvement.jpg 200w,
/static/3f68cdffa636b6711ee6f73410a1c10f/066f9/before_improvement.jpg 400w,
/static/3f68cdffa636b6711ee6f73410a1c10f/4b190/before_improvement.jpg 800w,
/static/3f68cdffa636b6711ee6f73410a1c10f/e5166/before_improvement.jpg 1200w,
/static/3f68cdffa636b6711ee6f73410a1c10f/c44b8/before_improvement.jpg 1360w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;そこで、ユーザ毎の token もスプレッドシートで管理・利用することで、ユーザーの投稿になるようにしました。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/7bea1afc13580aca66c906aa831323b8/c44b8/after_improvement.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 57.00000000000001%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAEEBf/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAa9OK4Yg/8QAHBAAAAYDAAAAAAAAAAAAAAAAAAEDBBARFDE0/9oACAEBAAEFAkLxy0GnPH//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAXEAADAQAAAAAAAAAAAAAAAAABAhAR/9oACAEBAAY/Alyi/wD/xAAcEAABAwUAAAAAAAAAAAAAAAABABARMUFxobH/2gAIAQEAAT8hEruSTCp4bdPX/9oADAMBAAIAAwAAABAEz//EABYRAAMAAAAAAAAAAAAAAAAAAAEQMf/aAAgBAwEBPxA1f//EABURAQEAAAAAAAAAAAAAAAAAAAEQ/9oACAECAQE/EGf/xAAZEAEBAAMBAAAAAAAAAAAAAAABEQAQIYH/2gAIAQEAAT8QKLE4ooLy+5SqRQugIpTMAEOBr//Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;after-improvement&quot;
        title=&quot;after-improvement&quot;
        src=&quot;/static/7bea1afc13580aca66c906aa831323b8/4b190/after_improvement.jpg&quot;
        srcset=&quot;/static/7bea1afc13580aca66c906aa831323b8/e07e9/after_improvement.jpg 200w,
/static/7bea1afc13580aca66c906aa831323b8/066f9/after_improvement.jpg 400w,
/static/7bea1afc13580aca66c906aa831323b8/4b190/after_improvement.jpg 800w,
/static/7bea1afc13580aca66c906aa831323b8/e5166/after_improvement.jpg 1200w,
/static/7bea1afc13580aca66c906aa831323b8/c44b8/after_improvement.jpg 1360w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;</content:encoded></item><item><title><![CDATA[csgjs-cppを使って3次元ブーリアン演算をやってみた]]></title><description><![CDATA[csg.js の c++版である csgjs-cpp を使って 3 次元ブーリアン演算をやってみました. はじめに 最近, アルバイトの関係でCSG(空間領域構成法)を扱っています. 空間領域構成法（英: Constructive Solid Geometry, CSG…]]></description><link>https://blog.icchi.me/boolean-operation-with-csgjs-cpp</link><guid isPermaLink="false">https://blog.icchi.me/boolean-operation-with-csgjs-cpp</guid><pubDate>Thu, 17 Nov 2016 20:09:00 GMT</pubDate><content:encoded>&lt;p&gt;csg.js の c++版である csgjs-cpp を使って 3 次元ブーリアン演算をやってみました.&lt;/p&gt;
&lt;h2 id=&quot;はじめに&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB&quot; aria-label=&quot;はじめに permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;はじめに&lt;/h2&gt;
&lt;p&gt;最近, アルバイトの関係で&lt;strong&gt;CSG(空間領域構成法)&lt;/strong&gt;を扱っています.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;空間領域構成法&lt;/strong&gt;（&lt;a href=&quot;https://ja.wikipedia.org/wiki/%E8%8B%B1%E8%AA%9E&quot;&gt;英&lt;/a&gt;: &lt;strong&gt;Constructive Solid Geometry&lt;/strong&gt;, &lt;strong&gt;CSG&lt;/strong&gt;）は&lt;a href=&quot;https://ja.wikipedia.org/wiki/%E3%82%BD%E3%83%AA%E3%83%83%E3%83%89%E3%83%A2%E3%83%87%E3%83%AA%E3%83%B3%E3%82%B0&quot;&gt;ソリッドモデリング&lt;/a&gt;で使われる技法のひとつである。CSG は手続き的モデリング技法として&lt;a href=&quot;https://ja.wikipedia.org/wiki/3%E6%AC%A1%E5%85%83%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%82%B0%E3%83%A9%E3%83%95%E3%82%A3%E3%83%83%E3%82%AF%E3%82%B9&quot;&gt;3 次元コンピュータグラフィックス&lt;/a&gt;や&lt;a href=&quot;https://ja.wikipedia.org/wiki/CAD&quot;&gt;CAD&lt;/a&gt;でしばしば使われる。&lt;a href=&quot;https://ja.wikipedia.org/wiki/%E3%83%96%E3%83%BC%E3%83%AA%E3%82%A2%E3%83%B3%E6%BC%94%E7%AE%97&quot;&gt;ブーリアン演算&lt;/a&gt;を使って複雑な表面やオブジェクトを生成することができる。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://ja.wikipedia.org/wiki/Constructive_Solid_Geometry&quot;&gt;wikipedia - Constructive Solid Geometry&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;調べてみると各言語でいろんなライブラリが提供されています.&lt;/p&gt;
&lt;p&gt;その中でも&lt;strong&gt;csg.js&lt;/strong&gt;が簡単で使いやすかったです.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/evanw/csg.js&quot;&gt;https://github.com/evanw/csg.js&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;仕事の都合上, c++で実装する必要が会ったのですが, なんと&lt;strong&gt;csg.js の c++版&lt;/strong&gt;が GitHub で公開されていました.&lt;/p&gt;
&lt;p&gt;しかも&lt;strong&gt;MIT ライセンス&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;ありがたや.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/dabroz/csgjs-cpp&quot;&gt;https://github.com/dabroz/csgjs-cpp&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;csgjs-cpp-の-example-を公開&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#csgjs-cpp-%E3%81%AE-example-%E3%82%92%E5%85%AC%E9%96%8B&quot; aria-label=&quot;csgjs cpp の example を公開 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;csgjs-cpp の Example を公開&lt;/h2&gt;
&lt;p&gt;この csgjs-cpp リポジトリには csgjs.cpp 本体しか入っていません.&lt;/p&gt;
&lt;p&gt;このままでは使いづらかったので, そのヘッダーファイルとサンプルコードを作りました.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/icchi-h/csgjs-cpp&quot;&gt;https://github.com/icchi-h/csgjs-cpp&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;csgjs-モデルの可視化&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#csgjs-%E3%83%A2%E3%83%87%E3%83%AB%E3%81%AE%E5%8F%AF%E8%A6%96%E5%8C%96&quot; aria-label=&quot;csgjs モデルの可視化 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;csgjs モデルの可視化&lt;/h2&gt;
&lt;p&gt;こんな簡単に 3 次元の CSG 処理が出来てしまって良いのかというほど手軽に扱える csgjs.&lt;/p&gt;
&lt;p&gt;演算結果を確認するため&lt;strong&gt;openFrameworks&lt;/strong&gt;を利用して, csgjs.cpp 内で定義されている csgjs_model を可視化するプログラムを用意しました.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/icchi-h/plot-csgjs-cpp-model%3E&quot;&gt;https://github.com/icchi-h/plot-csgjs-cpp-model&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/22d3882b4a6e8c85005a8a867ed49b4d/demo.gif&quot; alt=&quot;demo&quot;&gt;&lt;/p&gt;
&lt;p&gt;このサンプルでは, 2 つの正方形モデル(赤, 緑)とその積演算の結果(青)を描画しています.&lt;/p&gt;
&lt;p&gt;ただ, ここで一つ&lt;strong&gt;問題点&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;よく見ると分かるんですが, 演算結果の頂点座標が一つ足りません. 描画部分が間違っているなら正方形モデルにも同じ現象が起こるはず. しかし, 正方形モデルは問題なく描画されています.&lt;/p&gt;
&lt;p&gt;時間があるときにチェックしたほうが良さそうです.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[おうちハックがしたい]]></title><description><![CDATA[最近「おうちハック」という言葉を耳にした. おうちをより便利に使うために、ガジェットやサービスを組み合わせたり、工夫や努力を注ぎ込んだおうちハックすること 湯村さんという方が代表として活動しているらしい. https://yumulog.hatenablog.com/entry…]]></description><link>https://blog.icchi.me/ouchi-hack</link><guid isPermaLink="false">https://blog.icchi.me/ouchi-hack</guid><pubDate>Fri, 15 Jul 2016 12:24:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 373px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/87503cebc12fcfa5db94352f5155aafc/67a5d/ouchi-hack.png&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 53.5%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAAAsSAAALEgHS3X78AAACKUlEQVQoz22Sy2sTURTGp01rQkrDWEmbeU/uPDp5mmYiDSFVSmIMpakoKj6IuLUW0Z0rQdC/wKVbFyLoRkG33Ypr/x5/d3ILRRy4nHPPOfOd833naonv3GwIL61Xvd3FcfuxY/aIT7DzyDZnWFPj23btR4ln16TfEH6J+wn/6FnOs2fbrjXUKE61/3yRbYxCq3JK/gMgDRmjyTHnMUBxKxR54lcBGSvAQwkqAXcX3a1lZRsK8DbnB/mZvMeOtQbAYV14Q6wtY7WqG5MPpd8M/HVyfRnMANtxsETycuxabUD3AXvLhAF+Qrz5L4N2HC41Av/C+diw181prbDaz+h4NppYEzqtAPYK4FuK5mvoPZR+KxJFBqgknpOTd/QuEltTzNYzyt1avHPWoeY7JaZ5wbm+oGm+ofAXTXpKp4HUk1gKcF4uk/t0MZDjM8SEbXlS5OdMpSvtDLnJwNyaUvA9cswHatIiQGW14YtKQ8G/Vjat8HzykZziK1r8YTq5TV2NPwbgFA1fZk2c7NVoR9Nxbu9KtyCM8rKeX9WEsVWwNkqrik1eU847zhPo/MR+lHTwv2DfnxecCS6l9eTOThLdb4bVAQPMsHtQHVHPE3IOGOgoE1r+IIzNEIrfCP4G7LNb3tDVc8kWAItNao+xc0A71M2h/KwdiX2aJbIBsbtnj3hFbVrH/xRaxjV5h3Kuk0SaAqwAeIMFTdF9gnYj6p8iTTrodgr4J/j3/gKBoWsrSCy2aQAAAABJRU5ErkJggg==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;ouchi hack&quot;
        title=&quot;ouchi hack&quot;
        src=&quot;/static/87503cebc12fcfa5db94352f5155aafc/67a5d/ouchi-hack.png&quot;
        srcset=&quot;/static/87503cebc12fcfa5db94352f5155aafc/772e8/ouchi-hack.png 200w,
/static/87503cebc12fcfa5db94352f5155aafc/67a5d/ouchi-hack.png 373w&quot;
        sizes=&quot;(max-width: 373px) 100vw, 373px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;最近「&lt;a href=&quot;https://kadecot.net/ouch-hack/&quot;&gt;おうちハック&lt;/a&gt;」という言葉を耳にした.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;おうちをより便利に使うために、ガジェットやサービスを組み合わせたり、工夫や努力を注ぎ込んだおうちハックすること&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;湯村さんという方が代表として活動しているらしい.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://yumulog.hatenablog.com/entry/2016/05/28/222056&quot;&gt;https://yumulog.hatenablog.com/entry/2016/05/28/222056&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;ぼへみあさんの活動内容もすごい&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bohemia.hatenablog.com/entry/2015/12/01/163521&quot;&gt;https://bohemia.hatenablog.com/entry/2015/12/01/163521&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらの活動をみた瞬間, 電流が走りました.&lt;/p&gt;
&lt;p&gt;僕がこれまでやってきたことや, これからやってみたかったことそのものじゃん! と.&lt;/p&gt;
&lt;p&gt;(ちなみにスマートなロボットが作りたいと, こんなものを構想して作ってました)&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/d400c8eae63029ca16d3dde212b49801/768c6/smart-robot.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAUBAgP/xAAVAQEBAAAAAAAAAAAAAAAAAAABAv/aAAwDAQACEAMQAAABpg2USyAP/8QAGxAAAgIDAQAAAAAAAAAAAAAAAQIDEgAEFCL/2gAIAQEAAQUCYPSP0WVbEB421Wtz5//EABURAQEAAAAAAAAAAAAAAAAAAAAR/9oACAEDAQE/AYj/xAAXEQEAAwAAAAAAAAAAAAAAAAAAARES/9oACAECAQE/Abhp/8QAGhAAAgMBAQAAAAAAAAAAAAAAACEBAhEikf/aAAgBAQAGPwLbHM+kuBizB2P/xAAcEAACAwADAQAAAAAAAAAAAAABEQAhQVFhofD/2gAIAQEAAT8hHRapOGUJ5b5yoCu4kaJPsBJgxcBLToT/2gAMAwEAAgADAAAAEGAv/8QAFhEBAQEAAAAAAAAAAAAAAAAAARAx/9oACAEDAQE/EFaR/8QAGBEBAQADAAAAAAAAAAAAAAAAAQARIUH/2gAIAQIBAT8QNw2HG//EABsQAAMBAQADAAAAAAAAAAAAAAERIQBBMVGB/9oACAEBAAE/EF8BIAhBt1rDgkxGL8GWe3KQx9VjiE8NiJ3igejBv//Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;smart robot&quot;
        title=&quot;smart robot&quot;
        src=&quot;/static/d400c8eae63029ca16d3dde212b49801/4b190/smart-robot.jpg&quot;
        srcset=&quot;/static/d400c8eae63029ca16d3dde212b49801/e07e9/smart-robot.jpg 200w,
/static/d400c8eae63029ca16d3dde212b49801/066f9/smart-robot.jpg 400w,
/static/d400c8eae63029ca16d3dde212b49801/4b190/smart-robot.jpg 800w,
/static/d400c8eae63029ca16d3dde212b49801/e5166/smart-robot.jpg 1200w,
/static/d400c8eae63029ca16d3dde212b49801/b17f8/smart-robot.jpg 1600w,
/static/d400c8eae63029ca16d3dde212b49801/768c6/smart-robot.jpg 3264w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/8ef52b8590fc885d7eba85931cb76ea8/86a74/smart-robot-image.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 103%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAVABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAECBf/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAe8g0gzoKD//xAAWEAADAAAAAAAAAAAAAAAAAAAQESD/2gAIAQEAAQUCpH//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAEDAQE/AR//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAECAQE/AR//xAAUEAEAAAAAAAAAAAAAAAAAAAAw/9oACAEBAAY/Ah//xAAZEAACAwEAAAAAAAAAAAAAAAAAARARITH/2gAIAQEAAT8hYob2ith4OR//2gAMAwEAAgADAAAAECDPAP/EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQMBAT8QH//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQIBAT8QH//EABoQAQACAwEAAAAAAAAAAAAAAAEAERAxYSH/2gAIAQEAAT8Q4UgpwIIXRGg0QbJUvd87ABRj/9k=&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;smart robot image&quot;
        title=&quot;smart robot image&quot;
        src=&quot;/static/8ef52b8590fc885d7eba85931cb76ea8/4b190/smart-robot-image.jpg&quot;
        srcset=&quot;/static/8ef52b8590fc885d7eba85931cb76ea8/e07e9/smart-robot-image.jpg 200w,
/static/8ef52b8590fc885d7eba85931cb76ea8/066f9/smart-robot-image.jpg 400w,
/static/8ef52b8590fc885d7eba85931cb76ea8/4b190/smart-robot-image.jpg 800w,
/static/8ef52b8590fc885d7eba85931cb76ea8/86a74/smart-robot-image.jpg 1016w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/9e2106b20c091b6ba038577c6b6fbb29/65069/smart-robot-spec.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 101.49999999999999%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGAABAQADAAAAAAAAAAAAAAAAAAIBAwX/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIQAxAAAAHuTeCga6Cwf//EABkQAQADAQEAAAAAAAAAAAAAAAEAEBECMf/aAAgBAQABBQJg7TMp95dJ/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPwEf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPwEf/8QAFhAAAwAAAAAAAAAAAAAAAAAAADAx/9oACAEBAAY/AiI//8QAGxAAAwACAwAAAAAAAAAAAAAAAAERECExQVH/2gAIAQEAAT8hiMUnSeiET5gpYjWhlXj/2gAMAwEAAgADAAAAEBPHAP/EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQMBAT8QH//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQIBAT8QH//EAB0QAQADAAIDAQAAAAAAAAAAAAEAEUEhMRBRgaH/2gAIAQEAAT8QIerfTuxYHW/FzodfIVSG8ssE2CimNcrnGMJVWueP/9k=&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;smart robot spec&quot;
        title=&quot;smart robot spec&quot;
        src=&quot;/static/9e2106b20c091b6ba038577c6b6fbb29/4b190/smart-robot-spec.jpg&quot;
        srcset=&quot;/static/9e2106b20c091b6ba038577c6b6fbb29/e07e9/smart-robot-spec.jpg 200w,
/static/9e2106b20c091b6ba038577c6b6fbb29/066f9/smart-robot-spec.jpg 400w,
/static/9e2106b20c091b6ba038577c6b6fbb29/4b190/smart-robot-spec.jpg 800w,
/static/9e2106b20c091b6ba038577c6b6fbb29/65069/smart-robot-spec.jpg 892w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;これからおうちハック関連で何かものづくりできたならと考えています.&lt;/p&gt;
&lt;p&gt;今イメージしてるのは家の家電を一括で管理できるユニットです. 上のロボットでもその機能は実装してましたが, 作ってみて思ったのが動く必要ないし,デカくなるし,何より完成度が低かった...&lt;/p&gt;
&lt;p&gt;新デバイスの形状イメージは Amazon echo みたいな&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://zdnet4.cbsistatic.com/hub/i/r/2015/08/21/7a1efd2e-294c-43a9-a4f4-9ab429644791/resize/770xauto/c1b52235ffb9a5b844f2e72a59de2052/amazon-echo-683x405-d.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;今回, おうちハックを見ているうちに「&lt;a href=&quot;https://getirkit.com/&quot;&gt;IRKit&lt;/a&gt;」なる遠隔リモコン操作できる IoT デバイスの存在を知り, しかもこれがオープンソースになってる!&lt;/p&gt;
&lt;p&gt;こういったコード等の資産を利用しながらある程度使い続けられるようなものを作りたいですね.&lt;/p&gt;
&lt;p&gt;まぁ時間もガッツリとることは難しいかもですが, 少しづつ空いた時間にやっていきたいと思います.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[一段落]]></title><description><![CDATA[久々の更新. 3 月から就活・中間発表・国際学会の論文のタスクが立て続けにふってきたため, なかなか趣味に時間を割くことができなかった. ようやく何かから追われる生活から一段落. 自由って素晴らしい!! あと 1 ヶ月ほどで夏休みにも入るし, 何か作りたい.]]></description><link>https://blog.icchi.me/getting-done-with-2016q2</link><guid isPermaLink="false">https://blog.icchi.me/getting-done-with-2016q2</guid><pubDate>Fri, 15 Jul 2016 09:13:00 GMT</pubDate><content:encoded>&lt;p&gt;久々の更新.&lt;/p&gt;
&lt;p&gt;3 月から就活・中間発表・国際学会の論文のタスクが立て続けにふってきたため, なかなか趣味に時間を割くことができなかった.&lt;/p&gt;
&lt;p&gt;ようやく何かから追われる生活から一段落.&lt;/p&gt;
&lt;p&gt;自由って素晴らしい!!&lt;/p&gt;
&lt;p&gt;あと 1 ヶ月ほどで夏休みにも入るし, 何か作りたい.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[3軸加速度データを流れるように可視化するツールを作ってみた]]></title><description><![CDATA[久々の更新です. 年始からがっつりなAndroidアプリ開発の仕事に追われバタつく日々を送っておりました. それはさておき! 研究の一環で加速度を端末姿勢に合わせて補正する処理を開発していて, その処理後の波形を可視化する必要がありました. 今回はProcessing…]]></description><link>https://blog.icchi.me/visualize-3d-acc</link><guid isPermaLink="false">https://blog.icchi.me/visualize-3d-acc</guid><pubDate>Mon, 07 Mar 2016 19:00:00 GMT</pubDate><content:encoded>&lt;p&gt;久々の更新です.&lt;/p&gt;
&lt;p&gt;年始からがっつりなAndroidアプリ開発の仕事に追われバタつく日々を送っておりました.&lt;/p&gt;
&lt;p&gt;それはさておき!&lt;/p&gt;
&lt;p&gt;研究の一環で加速度を端末姿勢に合わせて補正する処理を開発していて, その処理後の波形を可視化する必要がありました.&lt;/p&gt;
&lt;p&gt;今回はProcessingを使い右から左に流れるようなアニメーションで可視化するものを作ってみました.&lt;/p&gt;
&lt;h2 id=&quot;github&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#github&quot; aria-label=&quot;github permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;GitHub&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/icchi-h/Visualization-ACC&quot;&gt;https://github.com/icchi-h/Visualization-ACC&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;実際の動作&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%AE%9F%E9%9A%9B%E3%81%AE%E5%8B%95%E4%BD%9C&quot; aria-label=&quot;実際の動作 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;実際の動作&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/786248ab988a134fce4188ea9d08e4c1/demo.gif&quot;&gt;&lt;/p&gt;</content:encoded></item><item><title><![CDATA[炊飯器(象印 NP-VC10)を初期化して修理してみた]]></title><description><![CDATA[はじめに 少し前の話ですが、朝起きたら炊飯器が壊れてました。 これまで問題なく使えていたので突然の出来事。 炊飯器の時計がストップウォッチのごとく高速で進んでいます。(動画を早送してるわけではありません笑) この状態で炊飯ボタンを押しても1…]]></description><link>https://blog.icchi.me/repair-suihanki</link><guid isPermaLink="false">https://blog.icchi.me/repair-suihanki</guid><pubDate>Fri, 05 Jun 2015 16:30:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/b231e3a931922f7519704921f07991cb/644c5/thumbnail.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 56.49999999999999%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAwAEBf/EABUBAQEAAAAAAAAAAAAAAAAAAAID/9oADAMBAAIQAxAAAAEkzkH2Iqa//8QAGhAAAgMBAQAAAAAAAAAAAAAAAgMAAREiMf/aAAgBAQABBQIhG2MLZsd4uu5//8QAFREBAQAAAAAAAAAAAAAAAAAAARD/2gAIAQMBAT8BSf/EABYRAAMAAAAAAAAAAAAAAAAAAAEQMf/aAAgBAgEBPwERf//EABgQAAIDAAAAAAAAAAAAAAAAAAEQACHR/9oACAEBAAY/Arg1hf/EABoQAQADAQEBAAAAAAAAAAAAAAEAESExQVH/2gAIAQEAAT8hBXoqANL4XonMA6+wOXIT/9oADAMBAAIAAwAAABBjL//EABURAQEAAAAAAAAAAAAAAAAAABAh/9oACAEDAQE/EKH/xAAWEQEBAQAAAAAAAAAAAAAAAAAAARH/2gAIAQIBAT8Qo1//xAAaEAEBAQEBAQEAAAAAAAAAAAABEQAxIUFx/9oACAEBAAE/EKDh4BlyQEOow+YaK7yKwTcu6T9yZv/Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;thumbnail_np-vc10&quot;
        title=&quot;thumbnail_np-vc10&quot;
        src=&quot;/static/b231e3a931922f7519704921f07991cb/4b190/thumbnail.jpg&quot;
        srcset=&quot;/static/b231e3a931922f7519704921f07991cb/e07e9/thumbnail.jpg 200w,
/static/b231e3a931922f7519704921f07991cb/066f9/thumbnail.jpg 400w,
/static/b231e3a931922f7519704921f07991cb/4b190/thumbnail.jpg 800w,
/static/b231e3a931922f7519704921f07991cb/e5166/thumbnail.jpg 1200w,
/static/b231e3a931922f7519704921f07991cb/644c5/thumbnail.jpg 1440w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;h2 id=&quot;はじめに&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB&quot; aria-label=&quot;はじめに permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;はじめに&lt;/h2&gt;
&lt;p&gt;少し前の話ですが、朝起きたら炊飯器が壊れてました。&lt;/p&gt;
&lt;p&gt;これまで問題なく使えていたので突然の出来事。&lt;/p&gt;
&lt;div class=&quot;gatsby-resp-iframe-wrapper&quot; style=&quot;padding-bottom: 56.25%; position: relative; height: 0; overflow: hidden; margin-bottom: 1.0725rem&quot; &gt; &lt;iframe src=&quot;https://www.youtube.com/embed/LK0PITtpJfw&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen style=&quot; position: absolute; top: 0; left: 0; width: 100%; height: 100%; &quot;&gt;&lt;/iframe&gt; &lt;/div&gt;
&lt;p&gt;炊飯器の時計がストップウォッチのごとく高速で進んでいます。(動画を早送してるわけではありません笑) この状態で炊飯ボタンを押しても10秒過ぎないうちに炊飯完了になってしまい、ご飯が炊けません。&lt;/p&gt;
&lt;p&gt;サポートに電話しようにも祝日だったため電話できず、自分で直すことに。&lt;/p&gt;
&lt;p&gt;とりあえず電源を完全に落としたいのですが、コンセントを抜いても内部電源があるのか電源が落ちません。調べた所象印のこの機種にはスイッチ等でのリセットは実装されていないようです。&lt;/p&gt;
&lt;p&gt;じゃあバラすしかない...&lt;/p&gt;
&lt;h2 id=&quot;分解&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%88%86%E8%A7%A3&quot; aria-label=&quot;分解 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;分解&lt;/h2&gt;
&lt;p&gt;バラします。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/5579f9d1952d615454292e5aed6620cd/4b190/repair-process1.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAQFAgP/xAAXAQADAQAAAAAAAAAAAAAAAAAAAQID/9oADAMBAAIQAxAAAAFiZ3WRRNGd/wD/xAAaEAACAwEBAAAAAAAAAAAAAAABAgADEgQj/9oACAEBAAEFAm6/Lb6K6l1YMrTRn//EABURAQEAAAAAAAAAAAAAAAAAAAAR/9oACAEDAQE/AYj/xAAWEQEBAQAAAAAAAAAAAAAAAAAAESH/2gAIAQIBAT8BxX//xAAeEAACAQMFAAAAAAAAAAAAAAAAEQECECESIjFxof/aAAgBAQAGPwKnG6rweuWOeexwZt//xAAaEAADAQEBAQAAAAAAAAAAAAAAAREhMUGx/9oACAEBAAE/IZNSSsD+2DKnhXSJPnkGW5QlnT//2gAMAwEAAgADAAAAENcv/8QAFhEBAQEAAAAAAAAAAAAAAAAAAQAR/9oACAEDAQE/EFLZv//EABYRAQEBAAAAAAAAAAAAAAAAAAEAEf/aAAgBAgEBPxAQbbv/xAAdEAEAAwACAwEAAAAAAAAAAAABABEhMVFBYXGB/9oACAEBAAE/EANnPLBxfuX5Dw7fkRGqyaK3BlQBBbhh1AoHUSwaPk//2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;repair-process1&quot;
        title=&quot;repair-process1&quot;
        src=&quot;/static/5579f9d1952d615454292e5aed6620cd/4b190/repair-process1.jpg&quot;
        srcset=&quot;/static/5579f9d1952d615454292e5aed6620cd/e07e9/repair-process1.jpg 200w,
/static/5579f9d1952d615454292e5aed6620cd/066f9/repair-process1.jpg 400w,
/static/5579f9d1952d615454292e5aed6620cd/4b190/repair-process1.jpg 800w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;ここで厄介なことに、底カバーを止めている4つのネジの内1つが星形。いい感じのサイズのマイナスドライバーでなんとか回せました。&lt;/p&gt;
&lt;p&gt;カバーを外すと釜を温める部分が見えてきます。目的の基板は少し奥の方に入ってます。なので手前の白いカバーを外していきます。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/3db47203fcb85e87e708aa5aad15aa2c/4b190/repair-process2.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGQAAAQUAAAAAAAAAAAAAAAAAAAECAwQF/8QAFQEBAQAAAAAAAAAAAAAAAAAAAQL/2gAMAwEAAhADEAAAARk+TFWhQf/EABkQAQEBAAMAAAAAAAAAAAAAAAIBAAMSIf/aAAgBAQABBQJA9nIdTLmYh6uSXf/EABYRAQEBAAAAAAAAAAAAAAAAAAABEf/aAAgBAwEBPwGtj//EABYRAQEBAAAAAAAAAAAAAAAAAAABEf/aAAgBAgEBPwGMr//EABsQAAEFAQEAAAAAAAAAAAAAAAEAAhFBUTEQ/9oACAEBAAY/Amu3LRPIK4g3FZFT5//EABwQAAMBAAIDAAAAAAAAAAAAAAABESExQWHB8P/aAAgBAQABPyHAG6s8BZI0Pn6G10RK3l5lhoTg7eCyP//aAAwDAQACAAMAAAAQ29//xAAXEQADAQAAAAAAAAAAAAAAAAAAAREx/9oACAEDAQE/ENVDD//EABcRAAMBAAAAAAAAAAAAAAAAAAABETH/2gAIAQIBAT8QxGIP/8QAHBABAQADAQADAAAAAAAAAAAAAREAIUExYXHB/9oACAEBAAE/EGD9iJZQfP7Jk7J9a0UAYNovUl1li+8ccQpaF4QeYrK+grHO4lzwZvP/2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;repair-process2&quot;
        title=&quot;repair-process2&quot;
        src=&quot;/static/3db47203fcb85e87e708aa5aad15aa2c/4b190/repair-process2.jpg&quot;
        srcset=&quot;/static/3db47203fcb85e87e708aa5aad15aa2c/e07e9/repair-process2.jpg 200w,
/static/3db47203fcb85e87e708aa5aad15aa2c/066f9/repair-process2.jpg 400w,
/static/3db47203fcb85e87e708aa5aad15aa2c/4b190/repair-process2.jpg 800w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;白いカバーごと基板を取り出します。この茶色の基板が主に電源を電源あたりを扱っていると思われます。その下に緑色の液晶を制御する基板がありますが、今回の修理には関係ありませんでした。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/452dba0dd35337453415633aa6852cc4/4b190/repair-process3.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAQCAwX/xAAUAQEAAAAAAAAAAAAAAAAAAAAC/9oADAMBAAIQAxAAAAFjMZqCiMgX/8QAGRABAQADAQAAAAAAAAAAAAAAAgEDERIA/9oACAEBAAEFAmTixKqxEbvW7F3qe//EABURAQEAAAAAAAAAAAAAAAAAAAAR/9oACAEDAQE/AUf/xAAVEQEBAAAAAAAAAAAAAAAAAAAAEf/aAAgBAgEBPwFX/8QAHRAAAgIBBQAAAAAAAAAAAAAAABEBAhAhIjFRgf/aAAgBAQAGPwKbDrG3tnKNLIT8jH//xAAbEAACAwEBAQAAAAAAAAAAAAABEQAhMUFhgf/aAAgBAQABPyEeBdmvYKoMGwkrlzUky8R0aD8iQlAtCEdyf//aAAwDAQACAAMAAAAQiD//xAAWEQEBAQAAAAAAAAAAAAAAAAABABH/2gAIAQMBAT8QTHGZ/8QAFhEBAQEAAAAAAAAAAAAAAAAAAQAR/9oACAECAQE/EB00if/EABsQAQADAAMBAAAAAAAAAAAAAAEAESExQVGB/9oACAEBAAE/EHJUspnTPPLIytLC6MSur4jLu04Mis5ix9SyOCXUCkpcO3IAtFz/2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;repair-process3&quot;
        title=&quot;repair-process3&quot;
        src=&quot;/static/452dba0dd35337453415633aa6852cc4/4b190/repair-process3.jpg&quot;
        srcset=&quot;/static/452dba0dd35337453415633aa6852cc4/e07e9/repair-process3.jpg 200w,
/static/452dba0dd35337453415633aa6852cc4/066f9/repair-process3.jpg 400w,
/static/452dba0dd35337453415633aa6852cc4/4b190/repair-process3.jpg 800w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;カバーを外します。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/21fd2f04062cc2af8d6a246bb4f7b9c5/4b190/repair-process4.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAIDBAX/xAAVAQEBAAAAAAAAAAAAAAAAAAABAv/aAAwDAQACEAMQAAABiq6SRTDg/wD/xAAaEAADAQADAAAAAAAAAAAAAAABAgMSACEx/9oACAEBAAEFAnekq54s9qRolel8/8QAFhEBAQEAAAAAAAAAAAAAAAAAAAEh/9oACAEDAQE/Aa1//8QAFxEBAAMAAAAAAAAAAAAAAAAAAAEhMf/aAAgBAgEBPwGMU//EABsQAAICAwEAAAAAAAAAAAAAAAABAhEQEjEh/9oACAEBAAY/ApacLpRE5eM4h4//xAAZEAEBAQEBAQAAAAAAAAAAAAABEQAhMVH/2gAIAQEAAT8hROm2PnmVbuZA5hgIdHRWz9c/SZTP/9oADAMBAAIAAwAAABBcL//EABURAQEAAAAAAAAAAAAAAAAAABEA/9oACAEDAQE/EAkT/8QAFxEBAQEBAAAAAAAAAAAAAAAAAQARIf/aAAgBAgEBPxBPRbf/xAAdEAEAAgICAwAAAAAAAAAAAAABABEhMUGBUXGh/9oACAEBAAE/ECCBKQ5UUvT68xNdEbwfsPKiLIj1D4ZdtR4ug6q9RBMd5n//2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;repair-process4&quot;
        title=&quot;repair-process4&quot;
        src=&quot;/static/21fd2f04062cc2af8d6a246bb4f7b9c5/4b190/repair-process4.jpg&quot;
        srcset=&quot;/static/21fd2f04062cc2af8d6a246bb4f7b9c5/e07e9/repair-process4.jpg 200w,
/static/21fd2f04062cc2af8d6a246bb4f7b9c5/066f9/repair-process4.jpg 400w,
/static/21fd2f04062cc2af8d6a246bb4f7b9c5/4b190/repair-process4.jpg 800w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;h2 id=&quot;回路の修復と初期化&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%9B%9E%E8%B7%AF%E3%81%AE%E4%BF%AE%E5%BE%A9%E3%81%A8%E5%88%9D%E6%9C%9F%E5%8C%96&quot; aria-label=&quot;回路の修復と初期化 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;回路の修復と初期化&lt;/h2&gt;
&lt;p&gt;電流が大きいのか放熱板もしっかりしています。&lt;/p&gt;
&lt;p&gt;この辺りで1本束から外れた線が見つかり、回路と干渉しているようでした。適当に直します。&lt;/p&gt;
&lt;p&gt;あとついにボタン電池が見えてきました。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/6555bfbe9e7cec912e546714e8fe5dcb/4b190/repair-process5.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAMBBP/EABUBAQEAAAAAAAAAAAAAAAAAAAID/9oADAMBAAIQAxAAAAGO0TfKqoP/xAAbEAEBAAIDAQAAAAAAAAAAAAACAQADBBITI//aAAgBAQABBQJ7rhmbGe1n0r8yOPEf/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAHhAAAgIABwAAAAAAAAAAAAAAAAECERIhMTJRYXH/2gAIAQEABj8CwxjmUr7dm2T8ZfJS1kW0f//EABwQAQACAgMBAAAAAAAAAAAAAAEAESFBMVGhYf/aAAgBAQABPyEiiD5Bq01nYYN5G2HGlniK5HYalArf2f/aAAwDAQACAAMAAAAQ8x//xAAXEQADAQAAAAAAAAAAAAAAAAAAAREh/9oACAEDAQE/EFJRrT//xAAWEQEBAQAAAAAAAAAAAAAAAAABABH/2gAIAQIBAT8QR2Fy/8QAHRABAQACAwADAAAAAAAAAAAAAREAMSFBsVFh0f/aAAgBAQABPxB2pRUpfuDT+Aqz3NQ6wiAAIos+PzH47pu49yJFTUj6wgidvDzP/9k=&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;repair-process5&quot;
        title=&quot;repair-process5&quot;
        src=&quot;/static/6555bfbe9e7cec912e546714e8fe5dcb/4b190/repair-process5.jpg&quot;
        srcset=&quot;/static/6555bfbe9e7cec912e546714e8fe5dcb/e07e9/repair-process5.jpg 200w,
/static/6555bfbe9e7cec912e546714e8fe5dcb/066f9/repair-process5.jpg 400w,
/static/6555bfbe9e7cec912e546714e8fe5dcb/4b190/repair-process5.jpg 800w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;しっかりくっついていますが、一度外します。&lt;/p&gt;
&lt;p&gt;数十秒放置したところでまた取り付け。&lt;/p&gt;
&lt;h2 id=&quot;修理後&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E4%BF%AE%E7%90%86%E5%BE%8C&quot; aria-label=&quot;修理後 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;修理後&lt;/h2&gt;
&lt;p&gt;すると...&lt;/p&gt;
&lt;div class=&quot;gatsby-resp-iframe-wrapper&quot; style=&quot;padding-bottom: 56.25%; position: relative; height: 0; overflow: hidden; margin-bottom: 1.0725rem&quot; &gt; &lt;iframe src=&quot;https://www.youtube.com/embed/KOEjn1c5-oQ&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen style=&quot; position: absolute; top: 0; left: 0; width: 100%; height: 100%; &quot;&gt;&lt;/iframe&gt; &lt;/div&gt;
&lt;p&gt;無事動作しました。&lt;/p&gt;
&lt;h2 id=&quot;終わりに&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E7%B5%82%E3%82%8F%E3%82%8A%E3%81%AB&quot; aria-label=&quot;終わりに permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;終わりに&lt;/h2&gt;
&lt;p&gt;余談ですが、調べてみると、修理した場合は送料込みで1万ほどかかるようです。今回の作業はだいたい1時間かかってないくらいなので、時給1万円と思えばかなりラッキーでした。&lt;/p&gt;
&lt;p&gt;あと今回はじめて炊飯器の中身を見ましたが意外と構造が図りやすく電源部分の回路はシンプル。なぜ突然壊れたのかは不明ですが...ともあれ象印さんにはぜひ本体スイッチでのリセットを実装して欲しいですね。&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Vimのテーマはatom-darkがいい感じ!]]></title><description><![CDATA[最近、GitHub 製エディタ、Atom のデフォルトテーマである atom-dark にハマっています。 Hybrid や jerrybeans では地味すぎるけど Molokai はメリハリが強すぎる、なんて方にはおすすめのテーマです。lucius…]]></description><link>https://blog.icchi.me/test-atom-dark-theme-with-vim</link><guid isPermaLink="false">https://blog.icchi.me/test-atom-dark-theme-with-vim</guid><pubDate>Sun, 22 Feb 2015 09:13:00 GMT</pubDate><content:encoded>&lt;p&gt;最近、GitHub 製エディタ、Atom のデフォルトテーマである atom-dark にハマっています。&lt;/p&gt;
&lt;p&gt;Hybrid や jerrybeans では地味すぎるけど Molokai はメリハリが強すぎる、なんて方にはおすすめのテーマです。lucius に似てるかな。&lt;/p&gt;
&lt;p&gt;探してみると Vim 用のテーマも公開されていました。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/gosukiwi/vim-atom-dark&quot;&gt;https://github.com/gosukiwi/vim-atom-dark&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;インストール&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB&quot; aria-label=&quot;インストール permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;インストール&lt;/h2&gt;
&lt;p&gt;vim ファイルをダウンロードして ~/.vim/colors に移動&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;bash&quot;&gt;&lt;pre style=&quot;counter-reset: linenumber NaN&quot; class=&quot;language-bash line-numbers&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;git&lt;/span&gt; clone https://github.com/gosukiwi/vim-atom-dark.git
&lt;span class=&quot;token function&quot;&gt;mv&lt;/span&gt; vim-atom-dark/colors/&lt;span class=&quot;token punctuation&quot;&gt;\&lt;/span&gt;*.vim ~/.vim/colors&lt;/code&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;white-space: normal; width: auto; left: 0;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;vimrc または.gvimrc にテーマ適用のコードを記述&lt;/p&gt;
&lt;div class=&quot;gatsby-code-title&quot;&gt;$HOME/.vimrc&lt;/div&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;bash&quot;&gt;&lt;pre style=&quot;counter-reset: linenumber NaN&quot; class=&quot;language-bash line-numbers&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;syntax &lt;span class=&quot;token builtin class-name&quot;&gt;enable&lt;/span&gt;
&lt;span class=&quot;token builtin class-name&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;token assign-left variable&quot;&gt;t_Co&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;256&lt;/span&gt;
colorscheme atom-dark-256&lt;/code&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;white-space: normal; width: auto; left: 0;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[Galaxy S2(SC-02)にカスタムROM(Android 4.4 KitKat)をインストールしてみた]]></title><description><![CDATA[最近 Android でしか使えないアプリと発見したため、急遽机の中から Galaxy S2(SC-02)を引っ張り出してきました。  しかし iPhone に乗り換えてから長い間使っていなかったため OS とかもえらく古い感じ。 せっかくの Android…]]></description><link>https://blog.icchi.me/install-cumtomrom-on-galaxys2</link><guid isPermaLink="false">https://blog.icchi.me/install-cumtomrom-on-galaxys2</guid><pubDate>Thu, 18 Sep 2014 17:08:00 GMT</pubDate><content:encoded>&lt;p&gt;最近 Android でしか使えないアプリと発見したため、急遽机の中から Galaxy S2(SC-02)を引っ張り出してきました。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/64a37dbd5149f1d7d6cffaccec6c068a/4b190/process3.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAIBAwT/xAAWAQEBAQAAAAAAAAAAAAAAAAADAAL/2gAMAwEAAhADEAAAAYTVQcgplP/EABoQAQADAAMAAAAAAAAAAAAAAAIAARESEyH/2gAIAQEAAQUCs+pZeRImKq59hn//xAAVEQEBAAAAAAAAAAAAAAAAAAAQQf/aAAgBAwEBPwGn/8QAFhEAAwAAAAAAAAAAAAAAAAAAEBFB/9oACAECAQE/AXR//8QAGhAAAQUBAAAAAAAAAAAAAAAAAQAQEiFBYf/aAAgBAQAGPwKlh4wkNpU3/8QAGxABAQACAwEAAAAAAAAAAAAAAREAIRAxQXH/2gAIAQEAAT8hZLpH3ElfiicNuFYR5nehm7MQe8//2gAMAwEAAgADAAAAEJ/P/8QAFxEBAAMAAAAAAAAAAAAAAAAAARARMf/aAAgBAwEBPxBEqZH/xAAXEQADAQAAAAAAAAAAAAAAAAAAAREh/9oACAECAQE/EKeiM//EAB8QAQACAgICAwAAAAAAAAAAAAEAESExYXFBgZHB0f/aAAgBAQABPxAJVAjh3jqJWe9nY5N+4pq9+ajNS6OV+SjATcUtdHx9RgWxwz//2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process3&quot;
        title=&quot;process3&quot;
        src=&quot;/static/64a37dbd5149f1d7d6cffaccec6c068a/4b190/process3.jpg&quot;
        srcset=&quot;/static/64a37dbd5149f1d7d6cffaccec6c068a/e07e9/process3.jpg 200w,
/static/64a37dbd5149f1d7d6cffaccec6c068a/066f9/process3.jpg 400w,
/static/64a37dbd5149f1d7d6cffaccec6c068a/4b190/process3.jpg 800w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;しかし iPhone に乗り換えてから長い間使っていなかったため OS とかもえらく古い感じ。 せっかくの Android! この機会に 2014.09.18 時点では最新の Android 4.4 KitKat を入れてみることにしました。&lt;/p&gt;
&lt;p&gt;うまくいかなかった部分もあったので導入の手順をまとめておこうと思います。&lt;/p&gt;
&lt;h2 id=&quot;1-下準備&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#1-%E4%B8%8B%E6%BA%96%E5%82%99&quot; aria-label=&quot;1 下準備 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;1. 下準備&lt;/h2&gt;
&lt;p&gt;まずインストールするカスタム ROM を選択します。
カスタム ROM にもいくつか種類がありますが有名所の&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;CyanogenMod&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;(Nightly→Snapshot→Stable の順でカスタム ROM の安定度が増します)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://download.cyanogenmod.org/?device=i9100&quot;&gt;https://download.cyanogenmod.org/?device=i9100&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;slimKat&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://slimroms.net/index.php/downloads/dlsearch/viewcategory/1058-i9100&quot;&gt;https://slimroms.net/index.php/downloads/dlsearch/viewcategory/1058-i9100&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;あたりでいいのではないかと思います。 どちらもいい感じですが slimkat は比較的シンプルで扱い易いといった印象。&lt;/p&gt;
&lt;p&gt;今回は個人的に好みな slimKat を選びました。
上のリンクから 2014.09.18 現在で最新版のをダウンロード。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://slimroms.net/index.php/downloads/dlsearch/viewdownload/1058-i9100/10774-slim-i9100-4-4-2-build-5-official-4068&quot;&gt;https://slimroms.net/index.php/downloads/dlsearch/viewdownload/1058-i9100/10774-slim-i9100-4-4-2-build-5-official-4068&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;カスタム ROM だけでは Google Play などの重要なアプリが入っていないためアプリのまとめたれたもの(GAPPS)を以下からダウンロードします。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://slimroms.net/index.php/downloads/dlsearch/viewcategory/1150-addons4-4&quot;&gt;https://slimroms.net/index.php/downloads/dlsearch/viewcategory/1150-addons4-4&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;状況に応じて mini、normal、full の中から選んでください。
今回はあまりアプリはいらないので以下の mini 版を選択。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://slimroms.net/index.php/downloads/dlsearch/viewdownload/1150-addons4-4/13394-slim-mini-gapps-4-4-4-build-7-x-187&quot;&gt;https://slimroms.net/index.php/downloads/dlsearch/viewdownload/1150-addons4-4/13394-slim-mini-gapps-4-4-4-build-7-x-187&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;またルート化したい場合は以下から SuperSU をダウンロード。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://download.chainfire.eu/372/SuperSU/UPDATE-SuperSU-v1.86.zip&quot;&gt;https://download.chainfire.eu/372/SuperSU/UPDATE-SuperSU-v1.86.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;これらの zip ファイルを microSD のルードでもフォルダ内でも適当な場所にコピーします。 あとは microSD を Galaxy S2 の中に入れておいてください。&lt;/p&gt;
&lt;p&gt;これで下準備は完了です。&lt;/p&gt;
&lt;h2 id=&quot;2-cwm-の書き込み&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#2-cwm-%E3%81%AE%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF&quot; aria-label=&quot;2 cwm の書き込み permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;2. CWM の書き込み&lt;/h2&gt;
&lt;p&gt;カスタム ROM をインストールするためには CWM(ClockworkMod)と呼ばれるリカバリーソフトを導入する必要があります。雰囲気でいうなら PC の BIOS みたいなものです。&lt;/p&gt;
&lt;p&gt;書き込むためのソフトは Odin を公式からダウンロード。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://odindownload.com&quot;&gt;https://odindownload.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;また CWM はいろいろありますが以下のものを利用。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://forum.xda-developers.com/galaxy-s2/orig-development/kernel-clockworkmod-recovery-6-0-2-9-t1118693&quot;&gt;https://forum.xda-developers.com/galaxy-s2/orig-development/kernel-clockworkmod-recovery-6-0-2-9-t1118693&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;公式サイトにも記載してあるように&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Odin を起動&lt;/li&gt;
&lt;li&gt;Galaxy S2 を[ボリュームダウン]、[ホーム]、[電源]ボダンを同時に押してダウンロードモードで起動&lt;/li&gt;
&lt;li&gt;Galaxy S2 を PC 接続&lt;/li&gt;
&lt;li&gt;Odin の画面で PDA の欄から先ほどダウンロードした GT-I9100&lt;em&gt;JB&lt;/em&gt;ClockworkMod-Recovery_6.0.2.9.tar を選択&lt;/li&gt;
&lt;li&gt;Odin の Start を押す&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;うまくいけばこんな感じに黄色から緑色に変化すると思います。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/1c95688c22940180299b41a63bd847be/4b190/process4.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 71.00000000000001%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAOABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAMBAgQF/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhADEAAAAehbTCIHh//EABkQAAMBAQEAAAAAAAAAAAAAAAABAwIQE//aAAgBAQABBQJQweExRwhLv//EABURAQEAAAAAAAAAAAAAAAAAABAR/9oACAEDAQE/AYf/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAbEAABBAMAAAAAAAAAAAAAAAAAAREyoSAhgf/aAAgBAQAGPwLaP0jZG8P/xAAaEAADAQADAAAAAAAAAAAAAAAAAREhYaHh/9oACAEBAAE/IZ7Y+Q2+wii7CC3RKDcP/9oADAMBAAIAAwAAABATP//EABYRAQEBAAAAAAAAAAAAAAAAAAEAEf/aAAgBAwEBPxAAZbf/xAAWEQEBAQAAAAAAAAAAAAAAAAAhARD/2gAIAQIBAT8QgZ//xAAeEAEBAAIABwAAAAAAAAAAAAABEQCRITFRYXGx0f/aAAgBAQABPxBaQhbGHTngxdPvlIg8vtxFUKU7ZFK7yycd5//Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process4&quot;
        title=&quot;process4&quot;
        src=&quot;/static/1c95688c22940180299b41a63bd847be/4b190/process4.jpg&quot;
        srcset=&quot;/static/1c95688c22940180299b41a63bd847be/e07e9/process4.jpg 200w,
/static/1c95688c22940180299b41a63bd847be/066f9/process4.jpg 400w,
/static/1c95688c22940180299b41a63bd847be/4b190/process4.jpg 800w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;あとは勝手に再起動が始まり CWM が起動します。&lt;/p&gt;
&lt;p&gt;今後電源が切れた状態で CWM を起動する際は
[ボリュームアップ]、[ホーム]、[電源]ボタンを同時に長押ししてください。&lt;/p&gt;
&lt;h2 id=&quot;3-カスタム-rom-のインストール&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#3-%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0-rom-%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB&quot; aria-label=&quot;3 カスタム rom のインストール permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;3. カスタム ROM のインストール&lt;/h2&gt;
&lt;p&gt;※スマホのバックアップが必要な方は以下のフォーマット作業に入る前にここで絶対にバックアップをとっておいてください。&lt;/p&gt;
&lt;p&gt;今回選んだ CWM ではボリュームボタンが上下、電源ボタンが決定に対応します。&lt;/p&gt;
&lt;p&gt;CWM が起動したら以下の順番でスマホの中身を消しておいてください。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;wipe data/factory reset&lt;/li&gt;
&lt;li&gt;wipe cache partition&lt;/li&gt;
&lt;li&gt;mount and strage → format /system&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;次に install zip → choose zip from external sdcard でカスタム ROM、GAPPS、SuperSU(ルート化が必要な方のみ)の順でインストールしてください。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;※ここで&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/7a625892258b4bdeff9c2c1cc963d4bb/4b190/process1.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAQCBQb/xAAWAQEBAQAAAAAAAAAAAAAAAAADAAL/2gAMAwEAAhADEAAAAWs9dKZmiAC//8QAHBAAAgICAwAAAAAAAAAAAAAAAQIAEQMEEhMU/9oACAEBAAEFAtlR0tQlxlOUeRieJSf/xAAWEQEBAQAAAAAAAAAAAAAAAAAAATH/2gAIAQMBAT8Buo//xAAXEQEAAwAAAAAAAAAAAAAAAAAAAQIx/9oACAECAQE/Aa4l/8QAGhAAAgIDAAAAAAAAAAAAAAAAABIBAhARIf/aAAgBAQAGPwI5hTTVFk//xAAbEAEAAgMBAQAAAAAAAAAAAAABABEhMVFBsf/aAAgBAQABPyH2TcLisjMgeyqk7mPxBKglobJ//9oADAMBAAIAAwAAABDv/wD/xAAWEQEBAQAAAAAAAAAAAAAAAAABABH/2gAIAQMBAT8QLFpf/8QAFhEBAQEAAAAAAAAAAAAAAAAAAQAR/9oACAECAQE/EEUYpf/EABoQAQADAQEBAAAAAAAAAAAAAAEAESExYXH/2gAIAQEAAT8QfYKx17LCpHOZCkuAZXkr4xIhD3AGSh4OT//Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process1&quot;
        title=&quot;process1&quot;
        src=&quot;/static/7a625892258b4bdeff9c2c1cc963d4bb/4b190/process1.jpg&quot;
        srcset=&quot;/static/7a625892258b4bdeff9c2c1cc963d4bb/e07e9/process1.jpg 200w,
/static/7a625892258b4bdeff9c2c1cc963d4bb/066f9/process1.jpg 400w,
/static/7a625892258b4bdeff9c2c1cc963d4bb/4b190/process1.jpg 800w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre style=&quot;counter-reset: linenumber NaN&quot; class=&quot;language-text line-numbers&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;set_metadata_recursive: some changes failed
E:Error in /...
(Status 7)
...&lt;/code&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;white-space: normal; width: auto; left: 0;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;なんかのエラーが出てしまった方は一度違うカスタム ROM をインストールして見てください。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;P.S.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CWM が KitKat に対応していなかったことが原因のようです。  詳しい対応策は最下部の追記を御覧ください&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;私の場合は候補にあった CyanogenMod をインストールした後フォーマットしたら slimkat のインストールが出来ました。&lt;/p&gt;
&lt;p&gt;以上でインストールに関する作業は終了です。&lt;/p&gt;
&lt;p&gt;reboot system now を押せば&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/ff83899a94cd43ca20c99d992484b227/4b190/process2.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 55.00000000000001%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAUCBAb/xAAWAQEBAQAAAAAAAAAAAAAAAAADAQL/2gAMAwEAAhADEAAAAbaN7mc1+QAX/8QAGxAAAgEFAAAAAAAAAAAAAAAAAAMEAiIjM0H/2gAIAQEAAQUClUYlWOJOrp//xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAwEBPwFn/8QAFhEAAwAAAAAAAAAAAAAAAAAAARAx/9oACAECAQE/ARF//8QAFxAAAwEAAAAAAAAAAAAAAAAAAAEQAv/aAAgBAQAGPwJimr//xAAaEAEAAgMBAAAAAAAAAAAAAAABABAhMWFx/9oACAEBAAE/IWTIsh3hpr5TRe1//9oADAMBAAIAAwAAABA3z//EABYRAQEBAAAAAAAAAAAAAAAAAAEQEf/aAAgBAwEBPxBOjP/EABYRAQEBAAAAAAAAAAAAAAAAAAEAEf/aAAgBAgEBPxAiiy//xAAcEAEAAgIDAQAAAAAAAAAAAAABABEhUTGBoeH/2gAIAQEAAT8QMq3D7GKGTm39jdy8WbROQI9xXc//2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process2&quot;
        title=&quot;process2&quot;
        src=&quot;/static/ff83899a94cd43ca20c99d992484b227/4b190/process2.jpg&quot;
        srcset=&quot;/static/ff83899a94cd43ca20c99d992484b227/e07e9/process2.jpg 200w,
/static/ff83899a94cd43ca20c99d992484b227/066f9/process2.jpg 400w,
/static/ff83899a94cd43ca20c99d992484b227/4b190/process2.jpg 800w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;こんなロゴが出て起動すると思います。&lt;/p&gt;
&lt;h2 id=&quot;終わりに&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E7%B5%82%E3%82%8F%E3%82%8A%E3%81%AB&quot; aria-label=&quot;終わりに permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;終わりに&lt;/h2&gt;
&lt;p&gt;今回インストールして思ったのがカスタム ROM の豊富さです。
さすがオープンソースなだけあって海外で非常に幅広く開発が進められています。&lt;/p&gt;
&lt;p&gt;こういった自由な開発ができるというのはエンジニアの端くれとして非常にありがたいですね。もちろん技術的な意味でも効果は大きいと思います。&lt;/p&gt;
&lt;p&gt;使ってみた感想ですが 3 年以上昔のデバイスである Galaxy S2 上で最新 OS がぬるぬる動いてくれました。ちょっとした感動です。&lt;/p&gt;
&lt;p&gt;Android が余っている。放置してあるという方は遊び半分で最近 OS を入れてみるのもいいかもしれません。OS が変わるだけで新しいデバイスも持ったような感覚になれて結構楽しいです w&lt;/p&gt;
&lt;h2 id=&quot;ps-20141228&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#ps-20141228&quot; aria-label=&quot;ps 20141228 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;P.S. (2014.12.28)&lt;/h2&gt;
&lt;p&gt;上で紹介したカスタム ROM インストール時に発生するエラーですが CWM が KitKat に対応していないことが原因のようです。
対応策として gadget geeks さんのコメントを引用します。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Odin 使って、GT-I9100&lt;em&gt;JB&lt;/em&gt;ClockworkMod-Recovery_6.0.2.9.tar を導入&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;上記で導入した CWM を使って、KitKat 対応の CWM を導入&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://forum.xda-developers.com/galaxy-s2/development-derivatives/cwm-clockworkmod-recovery-kit-kat-4-4-t2628412&quot;&gt;https://forum.xda-developers.com/galaxy-s2/development-derivatives/cwm-clockworkmod-recovery-kit-kat-4-4-t2628412&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;カスタム ROM 導入&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;gadget geeks さん、情報提供ありがとうございました。&lt;/p&gt;</content:encoded></item><item><title><![CDATA[SainSmart製 Arduino mega 2560 互換ボードでLチカしてみる]]></title><description><![CDATA[おうちはっくに向けてラズパイやら Arduino やらを適当に買い揃えています icchi です. SainSmart 製の Arduino mega の互換ボードを amazon で購入し, 動作チェックを兼ねて L チカしてみました. 使うにあたって IDE…]]></description><link>https://blog.icchi.me/try-led-chika-with-arduinomega2560</link><guid isPermaLink="false">https://blog.icchi.me/try-led-chika-with-arduinomega2560</guid><pubDate>Wed, 30 Jul 2014 09:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/72a61154c9d2752cee346a0ed1a99f9f/7b7b4/thumbnail.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 50%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAKABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAQFAv/EABUBAQEAAAAAAAAAAAAAAAAAAAMC/9oADAMBAAIQAxAAAAHarcgrcJwxf//EABwQAAEDBQAAAAAAAAAAAAAAAAEAAhESEyExMv/aAAgBAQABBQIy1X81iTp/S//EABYRAQEBAAAAAAAAAAAAAAAAAAABIf/aAAgBAwEBPwFZr//EABYRAQEBAAAAAAAAAAAAAAAAAAEAIf/aAAgBAgEBPwEhy//EABcQAAMBAAAAAAAAAAAAAAAAAAABISD/2gAIAQEABj8ChR4//8QAGxAAAgIDAQAAAAAAAAAAAAAAATEAERBBUXH/2gAIAQEAAT8hYsRylCkQ5b6RuDZn/9oADAMBAAIAAwAAABBc3//EABYRAQEBAAAAAAAAAAAAAAAAAAEAEf/aAAgBAwEBPxBUMG2Tf//EABYRAQEBAAAAAAAAAAAAAAAAAAEAEf/aAAgBAgEBPxBCYlkC/8QAHRABAAICAgMAAAAAAAAAAAAAAQARITFBUWGBwf/aAAgBAQABPxB0jSoyHl3GNjo1hPUUAlPwRJQ8TJLlvbFdnM//2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;thumbnail&quot;
        title=&quot;thumbnail&quot;
        src=&quot;/static/72a61154c9d2752cee346a0ed1a99f9f/4b190/thumbnail.jpg&quot;
        srcset=&quot;/static/72a61154c9d2752cee346a0ed1a99f9f/e07e9/thumbnail.jpg 200w,
/static/72a61154c9d2752cee346a0ed1a99f9f/066f9/thumbnail.jpg 400w,
/static/72a61154c9d2752cee346a0ed1a99f9f/4b190/thumbnail.jpg 800w,
/static/72a61154c9d2752cee346a0ed1a99f9f/e5166/thumbnail.jpg 1200w,
/static/72a61154c9d2752cee346a0ed1a99f9f/7b7b4/thumbnail.jpg 1439w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;おうちはっくに向けてラズパイやら Arduino やらを適当に買い揃えています icchi です.&lt;/p&gt;
&lt;p&gt;SainSmart 製の Arduino mega の互換ボードを amazon で購入し, 動作チェックを兼ねて L チカしてみました. 使うにあたって IDE 設定の変更もしたのでそれをメモしておきます.&lt;/p&gt;
&lt;h2 id=&quot;実際の動作&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%AE%9F%E9%9A%9B%E3%81%AE%E5%8B%95%E4%BD%9C&quot; aria-label=&quot;実際の動作 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;実際の動作&lt;/h2&gt;
&lt;div class=&quot;gatsby-resp-iframe-wrapper&quot; style=&quot;padding-bottom: 56.25%; position: relative; height: 0; overflow: hidden; margin-bottom: 1.0725rem&quot; &gt; &lt;iframe src=&quot;https://www.youtube.com/embed/0PRSH5ESbRo&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen style=&quot; position: absolute; top: 0; left: 0; width: 100%; height: 100%; &quot;&gt;&lt;/iframe&gt; &lt;/div&gt;
&lt;h2 id=&quot;準備&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%BA%96%E5%82%99&quot; aria-label=&quot;準備 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;準備&lt;/h2&gt;
&lt;p&gt;使ったものは以下の 2 つだけ&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.amazon.co.jp/%E3%82%B5%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%9E%E3%83%BC%E3%83%88%EF%BC%88SainSmart%EF%BC%89-101-52-102-MEGA2560-%E4%BA%92%E6%8F%9B%E3%83%9C%E3%83%BC%E3%83%89-R3/dp/B00CF2REXC%3Fpsc%3D1%26SubscriptionId%3DAKIAIRLTYCBPDAPE5LIQ%26tag%3Dharuyuki04-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB00CF2REXC&quot;&gt;サインスマート（SainSmart） MEGA2560 互換ボード R3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;赤色 LED 5mm&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;今回初めて, Arduino は純正品ではなく Amazon で売っている互換品のものを購入しました. 理由は単純に安いから. 純正品の Arduino mega 2560 R3 が約 6000 円なのに対して SainSmart 製の互換ボードはその半分ほどの値段で購入できます. 海外サイトならもっとやすく購入できるでしょう.&lt;/p&gt;
&lt;p&gt;こちらのサイトで紹介されている同製品は少しハンダ付けが荒いように感じますが, 今回届いたものは綺麗な製品でした. 運が良かったのか品質が改善されたのか...&lt;/p&gt;
&lt;p&gt;あと本体に加えて接続用の USB ケーブルも付いてきました.&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/bab29f01be2f5f60e2df6e19b426bd0d/4b190/process2.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 56.49999999999999%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAABAADBf/EABUBAQEAAAAAAAAAAAAAAAAAAAMC/9oADAMBAAIQAxAAAAHQ6eUVrizF/8QAGRABAAIDAAAAAAAAAAAAAAAAAQIyITFB/9oACAEBAAEFAmpPKC8laGv/xAAWEQEBAQAAAAAAAAAAAAAAAAAAATH/2gAIAQMBAT8BXX//xAAWEQEBAQAAAAAAAAAAAAAAAAAAATH/2gAIAQIBAT8BTH//xAAXEAADAQAAAAAAAAAAAAAAAAAAARAh/9oACAEBAAY/Aja5/8QAGRABAAMBAQAAAAAAAAAAAAAAAQARIRBx/9oACAEBAAE/ITWJexxM5HiJt7P/2gAMAwEAAgADAAAAEIzv/8QAGBEBAQADAAAAAAAAAAAAAAAAAQARMUH/2gAIAQMBAT8QRHPLdf/EABgRAQEAAwAAAAAAAAAAAAAAAAEAESEx/9oACAECAQE/EBEw9tRf/8QAGxABAAMBAAMAAAAAAAAAAAAAAQARITFBYXH/2gAIAQEAAT8QJBU8EahHoBgAD7u5SZbVpNpQU0snxb4ndPU//9k=&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process2&quot;
        title=&quot;process2&quot;
        src=&quot;/static/bab29f01be2f5f60e2df6e19b426bd0d/4b190/process2.jpg&quot;
        srcset=&quot;/static/bab29f01be2f5f60e2df6e19b426bd0d/e07e9/process2.jpg 200w,
/static/bab29f01be2f5f60e2df6e19b426bd0d/066f9/process2.jpg 400w,
/static/bab29f01be2f5f60e2df6e19b426bd0d/4b190/process2.jpg 800w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;h2 id=&quot;ide-の設定変更&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#ide-%E3%81%AE%E8%A8%AD%E5%AE%9A%E5%A4%89%E6%9B%B4&quot; aria-label=&quot;ide の設定変更 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;IDE の設定変更&lt;/h2&gt;
&lt;p&gt;コードの書き込みは公式の Arduino IDE を利用.&lt;/p&gt;
&lt;p&gt;メニューバーのツールから以下の項目を画像のように設定.&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/f8a0c3016de111501757e3ad714d9d16/644c5/process7.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 31.5%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAGABQDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAX/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAABiWxIYX//xAAYEAACAwAAAAAAAAAAAAAAAAAAAQQSE//aAAgBAQABBQKw4KzP/8QAFREBAQAAAAAAAAAAAAAAAAAAARD/2gAIAQMBAT8BZ//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABgQAAIDAAAAAAAAAAAAAAAAAAASEBFB/9oACAEBAAY/Ahmy4//EABoQAAICAwAAAAAAAAAAAAAAAAARASFBYbH/2gAIAQEAAT8hlMOjiJoZ/9oADAMBAAIAAwAAABD7z//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8QH//EABURAQEAAAAAAAAAAAAAAAAAAAEQ/9oACAECAQE/ECf/xAAaEAEAAwADAAAAAAAAAAAAAAABABEhMVFx/9oACAEBAAE/EANbI5cl0mhUZ3XcW14T/9k=&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process7&quot;
        title=&quot;process7&quot;
        src=&quot;/static/f8a0c3016de111501757e3ad714d9d16/4b190/process7.jpg&quot;
        srcset=&quot;/static/f8a0c3016de111501757e3ad714d9d16/e07e9/process7.jpg 200w,
/static/f8a0c3016de111501757e3ad714d9d16/066f9/process7.jpg 400w,
/static/f8a0c3016de111501757e3ad714d9d16/4b190/process7.jpg 800w,
/static/f8a0c3016de111501757e3ad714d9d16/e5166/process7.jpg 1200w,
/static/f8a0c3016de111501757e3ad714d9d16/644c5/process7.jpg 1440w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/d26d27be600291d2283a3229ad67945b/644c5/process8.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 37%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAHABQDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAX/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAABjURJ4X//xAAaEAABBQEAAAAAAAAAAAAAAAABAAIDBBIR/9oACAEBAAEFAuptXUBGT//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABcQAAMBAAAAAAAAAAAAAAAAAAABEQP/2gAIAQEABj8CFpVGiH//xAAYEAEAAwEAAAAAAAAAAAAAAAARAAEhQf/aAAgBAQABPyHBjkvJkEZpyf/aAAwDAQACAAMAAAAQd8//xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAwEBPxBJ/8QAFREBAQAAAAAAAAAAAAAAAAAAEBH/2gAIAQIBAT8Qp//EABcQAQEBAQAAAAAAAAAAAAAAAAERADH/2gAIAQEAAT8Qk0kxFwQqGWhZBxv1F3f/2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process8&quot;
        title=&quot;process8&quot;
        src=&quot;/static/d26d27be600291d2283a3229ad67945b/4b190/process8.jpg&quot;
        srcset=&quot;/static/d26d27be600291d2283a3229ad67945b/e07e9/process8.jpg 200w,
/static/d26d27be600291d2283a3229ad67945b/066f9/process8.jpg 400w,
/static/d26d27be600291d2283a3229ad67945b/4b190/process8.jpg 800w,
/static/d26d27be600291d2283a3229ad67945b/e5166/process8.jpg 1200w,
/static/d26d27be600291d2283a3229ad67945b/644c5/process8.jpg 1440w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/22ceb3e80f18624ab1ff1a3b9ebb662d/644c5/process9.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 30.5%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAGABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAUE/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAGNQGcIX//EABkQAQACAwAAAAAAAAAAAAAAAAMAAQQTMf/aAAgBAQABBQLkLFtDY9Sf/8QAFxEBAAMAAAAAAAAAAAAAAAAAAAECMf/aAAgBAwEBPwGyMf/EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABgQAQEAAwAAAAAAAAAAAAAAAAEAAhIh/9oACAEBAAY/AozE7a3/xAAYEAADAQEAAAAAAAAAAAAAAAABESEAQf/aAAgBAQABPyFoCbMDxHNmMd2g9//aAAwDAQACAAMAAAAQiD//xAAWEQEBAQAAAAAAAAAAAAAAAAABABH/2gAIAQMBAT8QSGktC3//xAAWEQEBAQAAAAAAAAAAAAAAAAAAATH/2gAIAQIBAT8Qi6//xAAaEAEBAAIDAAAAAAAAAAAAAAABEQAhMVHB/9oACAEBAAE/EJFPBLgtHdmoU8xl6yh7Ln//2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process9&quot;
        title=&quot;process9&quot;
        src=&quot;/static/22ceb3e80f18624ab1ff1a3b9ebb662d/4b190/process9.jpg&quot;
        srcset=&quot;/static/22ceb3e80f18624ab1ff1a3b9ebb662d/e07e9/process9.jpg 200w,
/static/22ceb3e80f18624ab1ff1a3b9ebb662d/066f9/process9.jpg 400w,
/static/22ceb3e80f18624ab1ff1a3b9ebb662d/4b190/process9.jpg 800w,
/static/22ceb3e80f18624ab1ff1a3b9ebb662d/e5166/process9.jpg 1200w,
/static/22ceb3e80f18624ab1ff1a3b9ebb662d/644c5/process9.jpg 1440w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;h2 id=&quot;回路&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%9B%9E%E8%B7%AF&quot; aria-label=&quot;回路 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;回路&lt;/h2&gt;
&lt;p&gt;面倒だったので赤色 LED を本体に直刺し. 13pin に LED の+を, GND に-をセット.&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/5699d99d94bedb16c85b6075ba7c4c4c/dc61a/circuit-figure.png&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 69.5%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAOCAYAAAAvxDzwAAAACXBIWXMAAAsSAAALEgHS3X78AAADxElEQVQ4y51RW0ybZRj+y7ILt/EDzs2ClLWUtpTRFjamskVdIiSgEg7lVChCC4Uix0Kh7cqhpRwmK9BSKLCeBk1lGcm4WKK4qFliTExMvNB4ivJnxV0YL4y3Kl8fP7iZiVf6JE/e5833vc/3fu/LMP/Az3V1SUfxSVNT1UFZWehIH1RW8g5KSpj/BIHNz2RYV3lrxqETR/nXWu0rX5aXu470ZHtPktJg48kM1mNKqc7qnTnWuZ02XrbOzLvmWOVV3LzNK+210gqj918PmH7/4cR4dKuA+T/45tNPeHk3fKeyLcusxBlhmeBXp6sn3Bmuubmys0ZXcmbPNJtr9bAKm4fNp1FiXmBF9G6eZYmVjS6y4mE3K7Mus+q979inXx7buJdu9f9avLDNVY44H8uqtQdXjP2/5DYYHks03XGhdiAurTfEJZSyxs64oMN+nMs1xrioqjVe7lrlKkenfpOXq0eYnQfvF9Z4ot8Xu99D+ogX12sbkN/ngHJuC+KxNWTa/KDzxQsWHzJGfZBN3kaWfR1yRwA54xvItvuhmIviZV0f5K+/ucl8sLeHRw/3EIrGDlOHPITtdxNqTC7NRki6zU9o54Q/FiDPT4TJubEgyXEESbE7RhTTYZLvCpEL9nUindn6s1BjQF51yyPm/u4ut3N/94/Z9TDY0bWEoEYPZacFL7pjODOwiGQz7a6xB5IyNS5Ut+E50yLKvHeRSbtUzUSQYvIkRM4IFDUtCXlLPxizc5aVWJe/OG/1gx32HT474Eba4CJShpeRNuRBsnUD8tIKXJUKobj6KrL1I8hr0GF4KQTTrTWcHPQi2xlJqNStkDX3JI6XQos/TzH7cHbIc5hqXkEa1WnUkI4ArGUNORVNuFRUBHnJWxD0uJDVaYfaHYF6PoTTJi+EjjA1fPupIX8q+tm19gFIu+yHSYM+nOxbwDODHqRS0+QhL9L6b4HtnoV41Iuu7YcwbH+Ey+9G8RJdpGo6DLHrTqKgro0a9iaY4suFKQKd5VtJcx8yu51/XZ/fJOXzEaJybJAzJg/hW1bJOcoU8woRTQTIGys7pNRzl8gcASKdDBC6daKaj5EidQuRNhoPGYVSWSQVCSHOTIe4uRe24DbcgTvQLkVw/sYGpFNh5M9sQuwIQjG7CdFkELWhB+DTM8F4gOYB5N2M4Ur3MCTv2MEUXJSn8qt0H5+q0B9UzId+FNpW93l6576wtmNfVa/fV2ja9mWtvZy4zcwp63ScoqGDK2jq4oTtVk5Z384pGzs4WZX2p9fGlp5otvY+/BtguNSorxbIRAAAAABJRU5ErkJggg==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;circuit figure&quot;
        title=&quot;circuit figure&quot;
        src=&quot;/static/5699d99d94bedb16c85b6075ba7c4c4c/5a190/circuit-figure.png&quot;
        srcset=&quot;/static/5699d99d94bedb16c85b6075ba7c4c4c/772e8/circuit-figure.png 200w,
/static/5699d99d94bedb16c85b6075ba7c4c4c/e17e5/circuit-figure.png 400w,
/static/5699d99d94bedb16c85b6075ba7c4c4c/5a190/circuit-figure.png 800w,
/static/5699d99d94bedb16c85b6075ba7c4c4c/dc61a/circuit-figure.png 1147w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;h2 id=&quot;プログラム&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0&quot; aria-label=&quot;プログラム permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;プログラム&lt;/h2&gt;
&lt;p&gt;以下の L チカするコードを書き込み.&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;c&quot;&gt;&lt;pre style=&quot;counter-reset: linenumber NaN&quot; class=&quot;language-c line-numbers&quot;&gt;&lt;code class=&quot;language-c&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;setup&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;pinMode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; OUTPUT&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;loop&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; HIGH&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;   &lt;span class=&quot;token comment&quot;&gt;// set the LED on&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;delay&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;              &lt;span class=&quot;token comment&quot;&gt;// wait for a second&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; LOW&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;    &lt;span class=&quot;token comment&quot;&gt;// set the LED off&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;delay&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;              &lt;span class=&quot;token comment&quot;&gt;// wait for a second&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;white-space: normal; width: auto; left: 0;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[飛行船の制御 その3 - 飛行船操縦システムを作ってみた]]></title><description><![CDATA[3個のモータを制御する 前回まででは1つのDCモーターをプロポからの信号でPWM制御するというものでしたが、今回は実際の飛行船の制御に使う3つのDCモーターの制御に入りたいと思います。 回路はこんな感じ。  前回の内容を…]]></description><link>https://blog.icchi.me/recieve-signal-from-propo-with-arduino-part3</link><guid isPermaLink="false">https://blog.icchi.me/recieve-signal-from-propo-with-arduino-part3</guid><pubDate>Sat, 21 Jun 2014 22:57:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/38578eefc2453ebe64de82e582a30811/85814/thumbnail.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 55.99999999999999%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAMEBf/EABYBAQEBAAAAAAAAAAAAAAAAAAABAv/aAAwDAQACEAMQAAABgoz2ZtIgP//EABoQAAIDAQEAAAAAAAAAAAAAAAECAAMxFEH/2gAIAQEAAQUCrRDKw6nlaeYFz//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABURAQEAAAAAAAAAAAAAAAAAAAAR/9oACAECAQE/AVf/xAAbEAACAQUAAAAAAAAAAAAAAAAAARECECEiQf/aAAgBAQAGPwLdwNUOTMit0//EABoQAQEBAQADAAAAAAAAAAAAAAERADEhgZH/2gAIAQEAAT8hMc4X95haivWFQebilFW6nyfrf//aAAwDAQACAAMAAAAQrD//xAAXEQADAQAAAAAAAAAAAAAAAAAAAREh/9oACAEDAQE/EMahD//EABYRAQEBAAAAAAAAAAAAAAAAAAEREP/aAAgBAgEBPxAo0x//xAAeEAACAgICAwAAAAAAAAAAAAABEQAxIVFBgbHB0f/aAAgBAQABPxDG3QNgsd8x0sKoZ0btR8Mi7D3CpNK7mStjATlV5mSKL3+z/9k=&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;thumbnail&quot;
        title=&quot;thumbnail&quot;
        src=&quot;/static/38578eefc2453ebe64de82e582a30811/4b190/thumbnail.jpg&quot;
        srcset=&quot;/static/38578eefc2453ebe64de82e582a30811/e07e9/thumbnail.jpg 200w,
/static/38578eefc2453ebe64de82e582a30811/066f9/thumbnail.jpg 400w,
/static/38578eefc2453ebe64de82e582a30811/4b190/thumbnail.jpg 800w,
/static/38578eefc2453ebe64de82e582a30811/e5166/thumbnail.jpg 1200w,
/static/38578eefc2453ebe64de82e582a30811/85814/thumbnail.jpg 1386w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;h2 id=&quot;3個のモータを制御する&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#3%E5%80%8B%E3%81%AE%E3%83%A2%E3%83%BC%E3%82%BF%E3%82%92%E5%88%B6%E5%BE%A1%E3%81%99%E3%82%8B&quot; aria-label=&quot;3個のモータを制御する permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;3個のモータを制御する&lt;/h2&gt;
&lt;p&gt;前回まででは1つのDCモーターをプロポからの信号でPWM制御するというものでしたが、今回は実際の飛行船の制御に使う3つのDCモーターの制御に入りたいと思います。&lt;/p&gt;
&lt;p&gt;回路はこんな感じ。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/b6fdbb634c57f222c953b412b9742637/644c5/circuit.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAQFAv/EABYBAQEBAAAAAAAAAAAAAAAAAAIAAf/aAAwDAQACEAMQAAABQpx3DYGzF//EABkQAQADAQEAAAAAAAAAAAAAAAIAAQMTEf/aAAgBAQABBQIm1KzNjooWhK19z4Kf/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAHRAAAQQCAwAAAAAAAAAAAAAAAAERIUECIjEykf/aAAgBAQAGPwJrLRUs59IG6sa5Qf/EABoQAAMBAQEBAAAAAAAAAAAAAAABETEhQWH/2gAIAQEAAT8hZq9D85mq5RseJi9F5T3aKTH2RTqKyo//2gAMAwEAAgADAAAAEC/v/8QAGBEAAgMAAAAAAAAAAAAAAAAAAAERQWH/2gAIAQMBAT8QTojT/8QAFREBAQAAAAAAAAAAAAAAAAAAARD/2gAIAQIBAT8QSf/EABsQAQEAAwEBAQAAAAAAAAAAAAERACFRMUFh/9oACAEBAAE/ELgGiOkPq8mJF/E1p6fmNIgVFEDNzNpHgGs5eObai6iXZ31xnbIUNz//2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;circuit&quot;
        title=&quot;circuit&quot;
        src=&quot;/static/b6fdbb634c57f222c953b412b9742637/4b190/circuit.jpg&quot;
        srcset=&quot;/static/b6fdbb634c57f222c953b412b9742637/e07e9/circuit.jpg 200w,
/static/b6fdbb634c57f222c953b412b9742637/066f9/circuit.jpg 400w,
/static/b6fdbb634c57f222c953b412b9742637/4b190/circuit.jpg 800w,
/static/b6fdbb634c57f222c953b412b9742637/e5166/circuit.jpg 1200w,
/static/b6fdbb634c57f222c953b412b9742637/644c5/circuit.jpg 1440w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;前回の内容を3つ分に増やしただけですね。 ソフトの方もそんな感じです。&lt;/p&gt;
&lt;h2 id=&quot;コード&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%82%B3%E3%83%BC%E3%83%89&quot; aria-label=&quot;コード permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;コード&lt;/h2&gt;
&lt;p&gt;実際に書き込んだコードがこちら&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;c&quot;&gt;&lt;pre style=&quot;counter-reset: linenumber NaN&quot; class=&quot;language-c line-numbers&quot;&gt;&lt;code class=&quot;language-c&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;/*
2014.06.03
Airship Control System (ACS)
ver1.00
Haru
*/&lt;/span&gt;


&lt;span class=&quot;token comment&quot;&gt;//set pin num (3ch)&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;//--------------------------------------------&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// to input&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; rcv1 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// up/down&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; rcv2 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// go/back&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; rcv3 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// left/right&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;// to output&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; outPin1_1 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; outPin1_2 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; outPin2_1 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; outPin2_2 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; outPin3_1 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; outPin3_2 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;//--------------------------------------------&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;// init&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;//--------------------------------------------&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; pulseNum1 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; pulseNum2 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; pulseNum3 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; speedVal1 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; speedVal2 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; speedVal3 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;//--------------------------------------------&lt;/span&gt;


&lt;span class=&quot;token keyword&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;setup&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;

	&lt;span class=&quot;token comment&quot;&gt;//setup pin mode&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;//--------------------------------------------&lt;/span&gt;
	&lt;span class=&quot;token function&quot;&gt;pinMode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;rcv1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; INPUT&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token function&quot;&gt;pinMode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;rcv2&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; INPUT&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token function&quot;&gt;pinMode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;rcv3&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; INPUT&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	&lt;span class=&quot;token function&quot;&gt;pinMode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin1_1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; OUTPUT&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// outPin1: back motor&lt;/span&gt;
	&lt;span class=&quot;token function&quot;&gt;pinMode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin1_2&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; OUTPUT&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token function&quot;&gt;pinMode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin2_1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; OUTPUT&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// outPin2: left motor&lt;/span&gt;
	&lt;span class=&quot;token function&quot;&gt;pinMode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin2_2&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; OUTPUT&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token function&quot;&gt;pinMode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin3_1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; OUTPUT&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// outPin3: right morot&lt;/span&gt;
	&lt;span class=&quot;token function&quot;&gt;pinMode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin3_2&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; OUTPUT&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;//--------------------------------------------&lt;/span&gt;

	&lt;span class=&quot;token comment&quot;&gt;// test pulse&lt;/span&gt;
	Serial&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;begin&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;9600&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;


&lt;span class=&quot;token keyword&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;loop&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;

	&lt;span class=&quot;token comment&quot;&gt;//recieve pulse&lt;/span&gt;
	pulseNum1 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;pulseIn&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;rcv1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; HIGH&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	pulseNum2 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;pulseIn&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;rcv2&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; HIGH&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	pulseNum3 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;pulseIn&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;rcv3&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; HIGH&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	&lt;span class=&quot;token comment&quot;&gt;// convert pulseNum(1100~1900) to speedVal(-255~255)&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; speedVal1 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;pulseNum1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2000&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// up/down&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; speedVal2 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;pulseNum2&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2000&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// go/back&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; speedVal3 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;pulseNum3&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2000&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// left/right&lt;/span&gt;

	&lt;span class=&quot;token comment&quot;&gt;// constrain speedVal&lt;/span&gt;
	speedVal1 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;constrain&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;speedVal1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	speedVal2 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;constrain&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;speedVal2&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	speedVal3 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;constrain&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;speedVal3&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;


	&lt;span class=&quot;token comment&quot;&gt;//control&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;//--------------------------------------------&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;// up/down&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;//--------------------------------------------&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt; speedVal1 &lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token function&quot;&gt;analogWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin1_1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; speedVal1&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token function&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin1_2&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; LOW&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

	&lt;span class=&quot;token keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt; speedVal1 &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token function&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin1_1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; LOW&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token function&quot;&gt;analogWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin1_2&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;speedVal1&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token function&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin1_1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; LOW&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token function&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin1_2&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; LOW&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;//--------------------------------------------&lt;/span&gt;

	&lt;span class=&quot;token comment&quot;&gt;// go/back&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;//--------------------------------------------&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;// go&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt; speedVal2 &lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token function&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin2_1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; LOW&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token function&quot;&gt;analogWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin2_2&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; speedVal2&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

		&lt;span class=&quot;token function&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin3_1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; LOW&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token function&quot;&gt;analogWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin3_2&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; speedVal2&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

			&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;// back&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt; speedVal2 &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token function&quot;&gt;analogWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin2_1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;speedVal2&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token function&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin2_2&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; LOW&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

		&lt;span class=&quot;token function&quot;&gt;analogWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin3_1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;speedVal2&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token function&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin3_2&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; LOW&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	&lt;span class=&quot;token comment&quot;&gt;// stop&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;//--------------------------------------------&lt;/span&gt;

	&lt;span class=&quot;token comment&quot;&gt;// left/right&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;//--------------------------------------------&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;// left&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt; speedVal3 &lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token function&quot;&gt;analogWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin2_1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; speedVal3&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token function&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin2_2&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; LOW&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

		&lt;span class=&quot;token function&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin3_1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; LOW&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token function&quot;&gt;analogWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin3_2&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; speedVal3&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

	&lt;span class=&quot;token comment&quot;&gt;// right&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt; speedVal3 &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token function&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin2_1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; LOW&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token function&quot;&gt;analogWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin2_2&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;speedVal3&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

		&lt;span class=&quot;token function&quot;&gt;analogWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin3_1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;speedVal3&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token function&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin3_2&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; LOW&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;// stop&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token function&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin2_1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; LOW&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token function&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin2_2&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; LOW&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

		&lt;span class=&quot;token function&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin3_1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; LOW&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token function&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin3_2&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; LOW&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

		&lt;span class=&quot;token function&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin2_1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; LOW&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token function&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin2_2&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; LOW&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

		&lt;span class=&quot;token function&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin3_1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; LOW&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token function&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin3_2&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; LOW&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;//--------------------------------------------&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;//--------------------------------------------&lt;/span&gt;


	&lt;span class=&quot;token comment&quot;&gt;// sirial monitor&lt;/span&gt;
	Serial&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;pulseNum1: &quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	Serial&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;pulseNum1&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	Serial&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;, pulseNum2: &quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	Serial&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;pulseNum2&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	Serial&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;, pulseNum3: &quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	Serial&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;pulseNum3&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	Serial&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot; | speedVal1: &quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	Serial&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;speedVal1&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	Serial&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;, speedVal2: &quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	Serial&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;speedVal2&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	Serial&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;, speedVal3: &quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	Serial&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;speedVal3&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;white-space: normal; width: auto; left: 0;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;これといって前回と大きな違いはありません。&lt;/p&gt;
&lt;p&gt;今回の部分で飛行船の制御システムはほぼ完成したので、
あとはこの回路を小型化して飛行船に下腹部に取り付ければひとまず完成といったところ。&lt;/p&gt;
&lt;p&gt;完成がイメージできるようになってきたので、
ますます飛行船を飛ばしてみたいという思いが強くなります。&lt;/p&gt;
&lt;h2 id=&quot;実際の動作&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%AE%9F%E9%9A%9B%E3%81%AE%E5%8B%95%E4%BD%9C&quot; aria-label=&quot;実際の動作 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;実際の動作&lt;/h2&gt;
&lt;p&gt;最後に実際に動いている動画を載せておきます。&lt;/p&gt;
&lt;div class=&quot;gatsby-resp-iframe-wrapper&quot; style=&quot;padding-bottom: 56.25%; position: relative; height: 0; overflow: hidden; margin-bottom: 1.0725rem&quot; &gt; &lt;iframe src=&quot;https://www.youtube.com/embed/Bn-2NPi-ZlY&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen style=&quot; position: absolute; top: 0; left: 0; width: 100%; height: 100%; &quot;&gt;&lt;/iframe&gt; &lt;/div&gt;
&lt;h2 id=&quot;reference&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#reference&quot; aria-label=&quot;reference permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Reference&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.amazon.co.jp/gp/product/B008GRTSV6/ref=as_li_tl?ie=UTF8&amp;camp=247&amp;creative=1211&amp;creativeASIN=B008GRTSV6&amp;linkCode=as2&amp;tag=haruyuki04-22&amp;linkId=826cb16dad367b86f5e2b4c8dfc912b9&quot;&gt;Arduino Uno Rev3 ATmega328 マイコンボード A000066&lt;/a&gt;&lt;img src=&quot;//ir-jp.amazon-adsystem.com/e/ir?t=haruyuki04-22&amp;l=am2&amp;o=9&amp;a=B008GRTSV6&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.amazon.co.jp/gp/product/B017BIX7CQ/ref=as_li_tl?ie=UTF8&amp;camp=247&amp;creative=1211&amp;creativeASIN=B017BIX7CQ&amp;linkCode=as2&amp;tag=haruyuki04-22&amp;linkId=e241532592592f1b9192963410a26b4b&quot;&gt;フタバ 10J (10ch-2.4GHz T-FHSS AIRモデル) ドローン用TRセット(フルスプリング仕様)&lt;/a&gt;&lt;img src=&quot;//ir-jp.amazon-adsystem.com/e/ir?t=haruyuki04-22&amp;l=am2&amp;o=9&amp;a=B017BIX7CQ&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title><![CDATA[飛行船の制御 その2 - プロポからArduinoを使ってDCモーターをPWM制御してみた]]></title><description><![CDATA[プロポ信号から PWM 制御 前回まではプロポからの信号を Arduino を使って読み取ることまでは行いましたが、
今回はその信号をもとにモータードライバを使って DC モーターの PWM 制御を行いました。 PWM…]]></description><link>https://blog.icchi.me/recieve-signal-from-propo-with-arduino-part2</link><guid isPermaLink="false">https://blog.icchi.me/recieve-signal-from-propo-with-arduino-part2</guid><pubDate>Sun, 15 Jun 2014 09:13:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/84b5d63304b3ae36a70370ea7292f602/644c5/demo.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAQBAgP/xAAVAQEBAAAAAAAAAAAAAAAAAAABAP/aAAwDAQACEAMQAAABQjFobDxH/8QAGhAAAwADAQAAAAAAAAAAAAAAAAECBBESA//aAAgBAQABBQLylXPDYsdtb0RwPKtH/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAHRAAAgEEAwAAAAAAAAAAAAAAAAERAiExQSIykf/aAAgBAQAGPwJ5tojB0bONhzVfQlNPh//EABoQAQADAQEBAAAAAAAAAAAAAAEAESExUZH/2gAIAQEAAT8htJ8xsatK9BNZcAXsb9Jcx7Cj4ZqB2GdtP//aAAwDAQACAAMAAAAQ8N//xAAWEQEBAQAAAAAAAAAAAAAAAAAAARH/2gAIAQMBAT8QrK//xAAWEQEBAQAAAAAAAAAAAAAAAAAAARH/2gAIAQIBAT8Qka//xAAfEAEBAAEDBQEAAAAAAAAAAAABEQAxQVEhYXGBobH/2gAIAQEAAT8QiG2DRLTvlEUGA9HODXjRUv5iodbFKLu4rGHf4lhbxNMogkKSvzP/2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;demo&quot;
        title=&quot;demo&quot;
        src=&quot;/static/84b5d63304b3ae36a70370ea7292f602/4b190/demo.jpg&quot;
        srcset=&quot;/static/84b5d63304b3ae36a70370ea7292f602/e07e9/demo.jpg 200w,
/static/84b5d63304b3ae36a70370ea7292f602/066f9/demo.jpg 400w,
/static/84b5d63304b3ae36a70370ea7292f602/4b190/demo.jpg 800w,
/static/84b5d63304b3ae36a70370ea7292f602/e5166/demo.jpg 1200w,
/static/84b5d63304b3ae36a70370ea7292f602/644c5/demo.jpg 1440w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;h2 id=&quot;プロポ信号から-pwm-制御&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%83%97%E3%83%AD%E3%83%9D%E4%BF%A1%E5%8F%B7%E3%81%8B%E3%82%89-pwm-%E5%88%B6%E5%BE%A1&quot; aria-label=&quot;プロポ信号から pwm 制御 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;プロポ信号から PWM 制御&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.icchi.me/recieve-signal-from-propo-with-arduino-part1&quot;&gt;前回まで&lt;/a&gt;はプロポからの信号を Arduino を使って読み取ることまでは行いましたが、
今回はその信号をもとにモータードライバを使って DC モーターの PWM 制御を行いました。&lt;/p&gt;
&lt;p&gt;PWM の出力にあたっては以下のサイトを参照しました。
ありがとうございます。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://monoist.atmarkit.co.jp/mn/articles/1401/07/news003_2.html&quot;&gt;https://monoist.atmarkit.co.jp/mn/articles/1401/07/news003_2.html&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&quot;コード&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%82%B3%E3%83%BC%E3%83%89&quot; aria-label=&quot;コード permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;コード&lt;/h3&gt;
&lt;p&gt;今回書いたコードは以下のとおり&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;c&quot;&gt;&lt;pre style=&quot;counter-reset: linenumber NaN&quot; class=&quot;language-c line-numbers&quot;&gt;&lt;code class=&quot;language-c&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;/*
controlDCmotorPWM.ino
2014.05.29
Control DC motor with PWM using propotional system and Arduino
ver1.00
Haru
*/&lt;/span&gt;


&lt;span class=&quot;token comment&quot;&gt;//set pin num&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;//--------------------------------------------&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// input&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; rcv &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// up/down&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;// output&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; outPin1_1 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; outPin1_2 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;//--------------------------------------------&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;// init&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;//--------------------------------------------&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; pulseNum &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; speedVal &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;//--------------------------------------------&lt;/span&gt;


&lt;span class=&quot;token keyword&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;setup&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;

    &lt;span class=&quot;token comment&quot;&gt;//setup pin mode&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;//--------------------------------------------&lt;/span&gt;
    &lt;span class=&quot;token function&quot;&gt;pinMode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;rcv&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; INPUT&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

    &lt;span class=&quot;token function&quot;&gt;pinMode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin1_1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; OUTPUT&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// outPin1: DC motor&lt;/span&gt;
    &lt;span class=&quot;token function&quot;&gt;pinMode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin1_2&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; OUTPUT&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;//--------------------------------------------&lt;/span&gt;

    &lt;span class=&quot;token comment&quot;&gt;// test pulse&lt;/span&gt;
    Serial&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;begin&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;9600&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;


&lt;span class=&quot;token keyword&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;loop&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;

    pulseNum &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;pulseIn&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;rcv&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; HIGH&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;//recieve pulse&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; speedVal &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;pulseNum&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2000&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;// convert pulseNum(1100~1900) to speedVal(-255~255&lt;/span&gt;
    speedVal &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;constrain&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;speedVal&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// constrain speedVal&lt;/span&gt;

    &lt;span class=&quot;token comment&quot;&gt;//control&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;//--------------------------------------------&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt; speedVal &lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token function&quot;&gt;analogWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin1_1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; speedVal&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token function&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin1_2&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; LOW&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

    &lt;span class=&quot;token keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt; speedVal &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token function&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin1_1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; LOW&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token function&quot;&gt;analogWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin1_2&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;speedVal&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token function&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin1_1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; LOW&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token function&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outPin1_2&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; LOW&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;//--------------------------------------------&lt;/span&gt;


    &lt;span class=&quot;token comment&quot;&gt;// sirial monitor&lt;/span&gt;
    Serial&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;pulseNum: &quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    Serial&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;pulseNum&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

    Serial&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot; | speedVal: &quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    Serial&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;speedVal&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;white-space: normal; width: auto; left: 0;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;処理の流れを簡単に説明すると&lt;/p&gt;
&lt;p&gt;プロポから受け取った 1100~1900 までの信号を PWM 出力できる-255~255 に map 関数を使って変換。&lt;/p&gt;
&lt;p&gt;※ただし、プロポからの信号に若干の誤差が含まれるためまれに-255~255 の範囲を超えた出力をしてしまう時があり、そうなると DC モーターにかかる電圧が急激に変動したりするので constrain 関数を使い最小値と最大値がそれぞれ範囲内に収まるように調節します。&lt;/p&gt;
&lt;p&gt;あとは出力に設定したピンで analogwrite 関数を使い PWM 出力をしてあげればプロポのレバーの強弱に合わせて DC モーターの強弱も強弱します。&lt;/p&gt;
&lt;p&gt;※ここでも、PWM が負の値の時に if 文の中身でマイナスを付けて打ち消さないと動作不良の原因になるので注意してください。&lt;/p&gt;
&lt;p&gt;今回の作業でだいぶ飛行船の制御に近づいたように感じます。
ただモーターが回るだけでもプロポから操作するだけで結構楽しいです(笑)&lt;/p&gt;
&lt;h2 id=&quot;実際の動作&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%AE%9F%E9%9A%9B%E3%81%AE%E5%8B%95%E4%BD%9C&quot; aria-label=&quot;実際の動作 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;実際の動作&lt;/h2&gt;
&lt;p&gt;最後に実際に動かしている動画を載せておきます。&lt;/p&gt;
&lt;div class=&quot;gatsby-resp-iframe-wrapper&quot; style=&quot;padding-bottom: 56.25%; position: relative; height: 0; overflow: hidden; margin-bottom: 1.0725rem&quot; &gt; &lt;iframe src=&quot;https://www.youtube.com/embed/3Zr3OdBh_T8&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen style=&quot; position: absolute; top: 0; left: 0; width: 100%; height: 100%; &quot;&gt;&lt;/iframe&gt; &lt;/div&gt;
&lt;h2 id=&quot;reference&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#reference&quot; aria-label=&quot;reference permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Reference&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.amazon.co.jp/gp/product/B008GRTSV6/ref=as_li_tl?ie=UTF8&amp;camp=247&amp;creative=1211&amp;creativeASIN=B008GRTSV6&amp;linkCode=as2&amp;tag=haruyuki04-22&amp;linkId=826cb16dad367b86f5e2b4c8dfc912b9&quot;&gt;Arduino Uno Rev3 ATmega328 マイコンボード A000066&lt;/a&gt;&lt;img src=&quot;//ir-jp.amazon-adsystem.com/e/ir?t=haruyuki04-22&amp;l=am2&amp;o=9&amp;a=B008GRTSV6&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.amazon.co.jp/gp/product/B017BIX7CQ/ref=as_li_tl?ie=UTF8&amp;camp=247&amp;creative=1211&amp;creativeASIN=B017BIX7CQ&amp;linkCode=as2&amp;tag=haruyuki04-22&amp;linkId=e241532592592f1b9192963410a26b4b&quot;&gt;フタバ 10J (10ch-2.4GHz T-FHSS AIR モデル) ドローン用 TR セット(フルスプリング仕様)&lt;/a&gt;&lt;img src=&quot;//ir-jp.amazon-adsystem.com/e/ir?t=haruyuki04-22&amp;l=am2&amp;o=9&amp;a=B017BIX7CQ&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title><![CDATA[Processingを使った遅延再生システムを作ってみた]]></title><description><![CDATA[はじめに 所属しているバレーボール部顧問の先生にバレーに使えるものを作って欲しいとお願いされていました。 以前チームが試合に負けて悔しかったのをきっかけに
Processingで映像を数秒遅らせて再生するプログラムを作ってみました。 実装 with Processing…]]></description><link>https://blog.icchi.me/make-delayed-playback-system-with-processing</link><guid isPermaLink="false">https://blog.icchi.me/make-delayed-playback-system-with-processing</guid><pubDate>Sat, 07 Jun 2014 09:32:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/fa6577efa026b331f712b5668b8b1a31/644c5/thumbnail.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 62.5%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAwABAv/EABYBAQEBAAAAAAAAAAAAAAAAAAMBAv/aAAwDAQACEAMQAAABIF4NCts3/8QAGhAAAgMBAQAAAAAAAAAAAAAAAAIBAxETIv/aAAgBAQABBQJvRCY2EXYPZDHQ/8QAFhEBAQEAAAAAAAAAAAAAAAAAARAR/9oACAEDAQE/AXGf/8QAGBEAAgMAAAAAAAAAAAAAAAAAAAECESH/2gAIAQIBAT8Bi6NP/8QAGxAAAgMAAwAAAAAAAAAAAAAAAAECETESIYH/2gAIAQEABj8CxLwqdIxFcTuJh//EABwQAQACAwADAAAAAAAAAAAAAAEAEUFRYSGR8P/aAAgBAQABPyEAqvlkG8xaNQ19U2gewjIdnzc//9oADAMBAAIAAwAAABB03//EABkRAAIDAQAAAAAAAAAAAAAAAAABESExUf/aAAgBAwEBPxBcHDK6f//EABgRAAIDAAAAAAAAAAAAAAAAAAABETFx/9oACAECAQE/EGWUowf/xAAdEAEAAgICAwAAAAAAAAAAAAABABEhMUHB0eHw/9oACAEBAAE/EKGdwAOe9QWqKpQL1UAuwXhpmOWjaH0gNFyC26lfjxP/2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;thumbnail&quot;
        title=&quot;thumbnail&quot;
        src=&quot;/static/fa6577efa026b331f712b5668b8b1a31/4b190/thumbnail.jpg&quot;
        srcset=&quot;/static/fa6577efa026b331f712b5668b8b1a31/e07e9/thumbnail.jpg 200w,
/static/fa6577efa026b331f712b5668b8b1a31/066f9/thumbnail.jpg 400w,
/static/fa6577efa026b331f712b5668b8b1a31/4b190/thumbnail.jpg 800w,
/static/fa6577efa026b331f712b5668b8b1a31/e5166/thumbnail.jpg 1200w,
/static/fa6577efa026b331f712b5668b8b1a31/644c5/thumbnail.jpg 1440w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;h2 id=&quot;はじめに&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB&quot; aria-label=&quot;はじめに permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;はじめに&lt;/h2&gt;
&lt;p&gt;所属しているバレーボール部顧問の先生にバレーに使えるものを作って欲しいとお願いされていました。&lt;/p&gt;
&lt;p&gt;以前チームが試合に負けて悔しかったのをきっかけに
Processingで映像を数秒遅らせて再生するプログラムを作ってみました。&lt;/p&gt;
&lt;h2 id=&quot;実装-with-processing&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%AE%9F%E8%A3%85-with-processing&quot; aria-label=&quot;実装 with processing permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;実装 with Processing&lt;/h2&gt;
&lt;p&gt;Processingだと異なるマルチプラットフォームでも簡単に動かすことができるので便利です。&lt;/p&gt;
&lt;p&gt;実装方法はいたって簡単。&lt;/p&gt;
&lt;p&gt;PCに付いているライブカメラをpicture型のオブジェクトに読み込み、カメラの画像データをPImage型の用意したブッファーに溜め混んで古いものから再生するだけです。&lt;/p&gt;
&lt;h3 id=&quot;コード&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%82%B3%E3%83%BC%E3%83%89&quot; aria-label=&quot;コード permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;コード&lt;/h3&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;c&quot;&gt;&lt;pre style=&quot;counter-reset: linenumber NaN&quot; class=&quot;language-c line-numbers&quot;&gt;&lt;code class=&quot;language-c&quot;&gt;import processing&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;video&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

final &lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; delaytime &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

Capture cam&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
PImage&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; buffer&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; nFrames &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;60&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt;delaytime&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; iWrite &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; iRead &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;setup&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1280&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;720&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  String&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; cameras &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; Capture&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;list&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;cameras&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token function&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;There are no cameras available for capture.&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token function&quot;&gt;exit&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token function&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Available cameras:&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; cameras&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i&lt;span class=&quot;token operator&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token function&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;cameras&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

  cam &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; new &lt;span class=&quot;token function&quot;&gt;Capture&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;this&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; cameras&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  cam&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;start&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  buffer &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; new PImage&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;nFrames&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;draw&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;cam&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;available&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    cam&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;read&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    buffer&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;iWrite&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; cam&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;buffer&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;iRead&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;!=&lt;/span&gt; null&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token function&quot;&gt;image&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;buffer&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;iRead&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    iWrite&lt;span class=&quot;token operator&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    iRead&lt;span class=&quot;token operator&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;iRead &lt;span class=&quot;token operator&quot;&gt;&gt;=&lt;/span&gt; nFrames&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      iRead &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;iWrite &lt;span class=&quot;token operator&quot;&gt;&gt;=&lt;/span&gt; nFrames&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      iWrite &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;white-space: normal; width: auto; left: 0;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&quot;実際の動作&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%AE%9F%E9%9A%9B%E3%81%AE%E5%8B%95%E4%BD%9C&quot; aria-label=&quot;実際の動作 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;実際の動作&lt;/h2&gt;
&lt;p&gt;実際に2秒程度遅延させている様子です。&lt;/p&gt;
&lt;div class=&quot;gatsby-resp-iframe-wrapper&quot; style=&quot;padding-bottom: 56.25%; position: relative; height: 0; overflow: hidden; margin-bottom: 1.0725rem&quot; &gt; &lt;iframe src=&quot;https://www.youtube.com/embed/vKEI9IJYoiI&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen style=&quot; position: absolute; top: 0; left: 0; width: 100%; height: 100%; &quot;&gt;&lt;/iframe&gt; &lt;/div&gt;
&lt;h2 id=&quot;終わりに&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E7%B5%82%E3%82%8F%E3%82%8A%E3%81%AB&quot; aria-label=&quot;終わりに permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;終わりに&lt;/h2&gt;
&lt;p&gt;MacBook Pro retina(外部グラフィックなし)で動作させてみましたが、10秒程度の遅延でも問題なくヌルヌル再生できました。フォームチェックなどバレー以外にも様々なスポーツで使う機会があるのでは無いかと思います。
ただこういった遅延システムの製品を買うと数万するらしいです…
ハード、ソフト、方法は様々ですがもう少し安くならないと予算の少ない部活などで手を出すには少々ハードルが高い気がします。&lt;/p&gt;</content:encoded></item><item><title><![CDATA[飛行船の制御 その1 – プロポからの信号をArduinoを使って読み取ってみた]]></title><description><![CDATA[はじめに 2 ヶ月ほど前に化学系の学科の先生から飛行船を作るからその制御をやってもらえないかと頼まれたことからこの飛行船プロジェクト?は始まりました。 これまで AR.Drone…]]></description><link>https://blog.icchi.me/recieve-signal-from-propo-with-arduino-part1</link><guid isPermaLink="false">https://blog.icchi.me/recieve-signal-from-propo-with-arduino-part1</guid><pubDate>Tue, 27 May 2014 22:57:00 GMT</pubDate><content:encoded>&lt;h2 id=&quot;はじめに&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB&quot; aria-label=&quot;はじめに permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;はじめに&lt;/h2&gt;
&lt;p&gt;2 ヶ月ほど前に化学系の学科の先生から飛行船を作るからその制御をやってもらえないかと頼まれたことからこの飛行船プロジェクト?は始まりました。&lt;/p&gt;
&lt;p&gt;これまで AR.Drone の制御に手を加えたりはしていましたが、ただ浮くだけの飛行船を一から制御なんて完全にはじめての経験。でも面白そうなのでとりあえず的当にやってみることに。&lt;/p&gt;
&lt;p&gt;飛行船となると航空力学?とかかなり頭のいる話になるのかと思いきや、調べてみると案外規模の小さい飛行船ではそこまで気にしなくてもいいともわかってきました。&lt;/p&gt;
&lt;p&gt;最近になって注文していた部品も届いたものの、本来の研究の方でなかなか時間も取れずにいましたが最近少し進展があったのでまとめることに。&lt;/p&gt;
&lt;p&gt;届いた部品一式。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/513e9528afe21bc47c33d69a1d07093a/5e3c2/parts.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAEEAgX/xAAWAQEBAQAAAAAAAAAAAAAAAAACAAH/2gAMAwEAAhADEAAAAZOhCjuhBv/EABkQAAIDAQAAAAAAAAAAAAAAAAECAAMSE//aAAgBAQABBQKsOxQIqazBbzhY2jBM/8QAFREBAQAAAAAAAAAAAAAAAAAAABH/2gAIAQMBAT8BV//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABkQAAMBAQEAAAAAAAAAAAAAAAABESFBYf/aAAgBAQAGPwJq4jZfSFSWl6bD/8QAGxAAAwEAAwEAAAAAAAAAAAAAAAERITFBYXH/2gAIAQEAAT8hsYGJtb0J8HnhO2z50yBX4ibs+s//2gAMAwEAAgADAAAAEDcf/8QAGBEAAgMAAAAAAAAAAAAAAAAAAAERIVH/2gAIAQMBAT8QtMlh/8QAFxEAAwEAAAAAAAAAAAAAAAAAAAERIf/aAAgBAgEBPxDIRH//xAAbEAEBAAMBAQEAAAAAAAAAAAABEQAhMXGBwf/aAAgBAQABPxAGo4NeWz5rGt4hGy67gWlVK0mRQ6SeFn3uQkvCPMDFSJv8M//Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;parts&quot;
        title=&quot;parts&quot;
        src=&quot;/static/513e9528afe21bc47c33d69a1d07093a/4b190/parts.jpg&quot;
        srcset=&quot;/static/513e9528afe21bc47c33d69a1d07093a/e07e9/parts.jpg 200w,
/static/513e9528afe21bc47c33d69a1d07093a/066f9/parts.jpg 400w,
/static/513e9528afe21bc47c33d69a1d07093a/4b190/parts.jpg 800w,
/static/513e9528afe21bc47c33d69a1d07093a/e5166/parts.jpg 1200w,
/static/513e9528afe21bc47c33d69a1d07093a/5e3c2/parts.jpg 1288w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;h2 id=&quot;プロポ-t6j&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%83%97%E3%83%AD%E3%83%9D-t6j&quot; aria-label=&quot;プロポ t6j permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;プロポ T6J&lt;/h2&gt;
&lt;p&gt;送信機は自前で作ろうかと思いましたが、競技に出るには正規のコントローラーを使う必要があるということでプロポを買ってもらいました。&lt;/p&gt;
&lt;p&gt;今回使った T6J は双葉さんから発売されている 6CH の優れもの。飛行船の制御にはハイスペックすぎる気もしますが(笑)。スペックが高すぎてはじめはずっとこれの説明書を読んでました。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/996fc770bef2d0417929186c3fa6d289/5e3c2/propo.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAEEBf/EABUBAQEAAAAAAAAAAAAAAAAAAAAC/9oADAMBAAIQAxAAAAGKMjuJf//EABkQAAMBAQEAAAAAAAAAAAAAAAECAwARE//aAAgBAQABBQKclbUjqxJdywWdR6cXf//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABsQAAICAwEAAAAAAAAAAAAAAAABEVECEiEi/9oACAEBAAY/ApUxUnhFCjlmqybTs6f/xAAcEAEAAwACAwAAAAAAAAAAAAABABEhMUFRYXH/2gAIAQEAAT8hQKG/pLKH8LsRNnSmGjpeoThPHoxDNvsn/9oADAMBAAIAAwAAABBg/wD/xAAWEQEBAQAAAAAAAAAAAAAAAAAAESH/2gAIAQMBAT8Qmo//xAAWEQEBAQAAAAAAAAAAAAAAAAAAESH/2gAIAQIBAT8QuK//xAAfEAEBAAEDBQEAAAAAAAAAAAABEQAhUWExQXGBsdH/2gAIAQEAAT8Q05CGlK+THUsFSO/PvCIMANJNuMqjXBiGn7hSWAo7nNfHXFyG9TP/2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;propo&quot;
        title=&quot;propo&quot;
        src=&quot;/static/996fc770bef2d0417929186c3fa6d289/4b190/propo.jpg&quot;
        srcset=&quot;/static/996fc770bef2d0417929186c3fa6d289/e07e9/propo.jpg 200w,
/static/996fc770bef2d0417929186c3fa6d289/066f9/propo.jpg 400w,
/static/996fc770bef2d0417929186c3fa6d289/4b190/propo.jpg 800w,
/static/996fc770bef2d0417929186c3fa6d289/e5166/propo.jpg 1200w,
/static/996fc770bef2d0417929186c3fa6d289/5e3c2/propo.jpg 1288w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;h2 id=&quot;プロポからの信号を受信&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%83%97%E3%83%AD%E3%83%9D%E3%81%8B%E3%82%89%E3%81%AE%E4%BF%A1%E5%8F%B7%E3%82%92%E5%8F%97%E4%BF%A1&quot; aria-label=&quot;プロポからの信号を受信 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;プロポからの信号を受信&lt;/h2&gt;
&lt;p&gt;前置きが長くなりましたが、今回は制御の第一歩。
リモコンからの信号の解析。&lt;/p&gt;
&lt;p&gt;プロポ T6J から送られる信号を受信機 R2006GS で受信し、
その受信機からの信号を Arduino で読み取ってみました。&lt;/p&gt;
&lt;p&gt;R2006GS の仕様書がネットで手に入らなかったので的当にテスターを使い端子を調べながら、下の写真のように接続。
受信機の 1~6 は CH、B が電源 (右から GND,VCC) です。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/d5dea366a3559e0deb61762c3814f892/5e3c2/reciever.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAMEAv/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAGHb5YYMF//xAAZEAEAAwEBAAAAAAAAAAAAAAABAAIRAyL/2gAIAQEAAQUCxUpDla47aOrTr5//xAAVEQEBAAAAAAAAAAAAAAAAAAAAEf/aAAgBAwEBPwFX/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAGBAAAwEBAAAAAAAAAAAAAAAAAAEQERL/2gAIAQEABj8CmnQ3P//EABoQAQEBAAMBAAAAAAAAAAAAAAEAESFBUXH/2gAIAQEAAT8hcsLB6PtgOwDACQQPHhMHL//aAAwDAQACAAMAAAAQi9//xAAWEQADAAAAAAAAAAAAAAAAAAAAARH/2gAIAQMBAT8QbhR//8QAFhEBAQEAAAAAAAAAAAAAAAAAARAR/9oACAECAQE/EA2f/8QAGRABAQEBAQEAAAAAAAAAAAAAAREAITGB/9oACAEBAAE/ELAV8MgDSLVOS4wKH5varKYkRSnIxo0Hu//Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;reciever&quot;
        title=&quot;reciever&quot;
        src=&quot;/static/d5dea366a3559e0deb61762c3814f892/4b190/reciever.jpg&quot;
        srcset=&quot;/static/d5dea366a3559e0deb61762c3814f892/e07e9/reciever.jpg 200w,
/static/d5dea366a3559e0deb61762c3814f892/066f9/reciever.jpg 400w,
/static/d5dea366a3559e0deb61762c3814f892/4b190/reciever.jpg 800w,
/static/d5dea366a3559e0deb61762c3814f892/e5166/reciever.jpg 1200w,
/static/d5dea366a3559e0deb61762c3814f892/5e3c2/reciever.jpg 1288w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;コントローラーとの対応は以下の表にまとめました。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./reciever-spec.jpg&quot;&gt;&lt;/p&gt;
&lt;p&gt;計測にあたっては Arduino の pulseIn 関数で PWM 信号を数値がするのが手軽そうでした。
計測のためのコードは以下のサイトを参照。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://robokosaku.blog115.fc2.com/blog-entry-1093.html&quot;&gt;https://robokosaku.blog115.fc2.com/blog-entry-1093.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ありがとうございます!&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/4d1caf56af6d3f1a7748bba7b22610c9/644c5/demo.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAIEBf/EABYBAQEBAAAAAAAAAAAAAAAAAAMAAf/aAAwDAQACEAMQAAABzqo7cmHCT//EABwQAAMAAQUAAAAAAAAAAAAAAAABAgMEEhMhIv/aAAgBAQABBQKPOTfdnIkNk9i00n//xAAVEQEBAAAAAAAAAAAAAAAAAAAAIf/aAAgBAwEBPwFX/8QAFREBAQAAAAAAAAAAAAAAAAAAACH/2gAIAQIBAT8BR//EAB0QAAICAQUAAAAAAAAAAAAAAAABESECEjFRYYH/2gAIAQEABj8CVT0yEl4RlTNjTir5Ls//xAAaEAEBAQEBAQEAAAAAAAAAAAABEQAxUSFx/9oACAEBAAE/IQtlX9cJhFsHNXwOjqRj5kGq/UdB0vbv/9oADAMBAAIAAwAAABAU3//EABYRAAMAAAAAAAAAAAAAAAAAABARIf/aAAgBAwEBPxBUP//EABYRAQEBAAAAAAAAAAAAAAAAAAEQEf/aAAgBAgEBPxBXJ//EABwQAAMBAQADAQAAAAAAAAAAAAERIQAxUXHR8P/aAAgBAQABPxAUQsEntiQmPLXwMwplR+GC8Jhx8yUgKbAI7IFPOUl/2L3/2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;demo&quot;
        title=&quot;demo&quot;
        src=&quot;/static/4d1caf56af6d3f1a7748bba7b22610c9/4b190/demo.jpg&quot;
        srcset=&quot;/static/4d1caf56af6d3f1a7748bba7b22610c9/e07e9/demo.jpg 200w,
/static/4d1caf56af6d3f1a7748bba7b22610c9/066f9/demo.jpg 400w,
/static/4d1caf56af6d3f1a7748bba7b22610c9/4b190/demo.jpg 800w,
/static/4d1caf56af6d3f1a7748bba7b22610c9/e5166/demo.jpg 1200w,
/static/4d1caf56af6d3f1a7748bba7b22610c9/644c5/demo.jpg 1440w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;h2 id=&quot;実際の動作&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%AE%9F%E9%9A%9B%E3%81%AE%E5%8B%95%E4%BD%9C&quot; aria-label=&quot;実際の動作 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;実際の動作&lt;/h2&gt;
&lt;p&gt;実際計測してみると各 CH から 1100~1900 のパルス数が出ています。リモコンからしっかりした値が計測できたので、今度は PWM を作ったモーター制御部分を実装すればシステム部分は大方出来てくるのではないでしょうか。&lt;/p&gt;
&lt;p&gt;最後に計測の動画を載せておきます。&lt;/p&gt;
&lt;div class=&quot;gatsby-resp-iframe-wrapper&quot; style=&quot;padding-bottom: 56.25%; position: relative; height: 0; overflow: hidden; margin-bottom: 1.0725rem&quot; &gt; &lt;iframe src=&quot;https://www.youtube.com/embed/hoIRlxp7KFw&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen style=&quot; position: absolute; top: 0; left: 0; width: 100%; height: 100%; &quot;&gt;&lt;/iframe&gt; &lt;/div&gt;
&lt;h2 id=&quot;reference&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#reference&quot; aria-label=&quot;reference permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Reference&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.amazon.co.jp/gp/product/B008GRTSV6/ref=as_li_tl?ie=UTF8&amp;camp=247&amp;creative=1211&amp;creativeASIN=B008GRTSV6&amp;linkCode=as2&amp;tag=haruyuki04-22&amp;linkId=826cb16dad367b86f5e2b4c8dfc912b9&quot;&gt;Arduino Uno Rev3 ATmega328 マイコンボード A000066&lt;/a&gt;&lt;img src=&quot;//ir-jp.amazon-adsystem.com/e/ir?t=haruyuki04-22&amp;l=am2&amp;o=9&amp;a=B008GRTSV6&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.amazon.co.jp/gp/product/B017BIX7CQ/ref=as_li_tl?ie=UTF8&amp;camp=247&amp;creative=1211&amp;creativeASIN=B017BIX7CQ&amp;linkCode=as2&amp;tag=haruyuki04-22&amp;linkId=e241532592592f1b9192963410a26b4b&quot;&gt;フタバ 10J (10ch-2.4GHz T-FHSS AIR モデル) ドローン用 TR セット(フルスプリング仕様)&lt;/a&gt;&lt;img src=&quot;//ir-jp.amazon-adsystem.com/e/ir?t=haruyuki04-22&amp;l=am2&amp;o=9&amp;a=B017BIX7CQ&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title><![CDATA[MacにLaTeXiT (+LaTeX) をインストール 日本語化して使ってみた]]></title><description><![CDATA[追記.
2016年12月に内容を更新しました これまでMacで数式を書くときはGrapherから画像を作っていたのですが、複数行の数式となるとさすがに面倒なので今回LaTeXiTを使ってみることに。 当然TeXなので数式を作成にも融通が利いて便利です。 1. TeX…]]></description><link>https://blog.icchi.me/install-latexit-with-japanese</link><guid isPermaLink="false">https://blog.icchi.me/install-latexit-with-japanese</guid><pubDate>Sat, 03 May 2014 12:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/dfe54e1839b050291c6bf58a42983b0d/5e3c2/thumbnail.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 49.5%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAKABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAIBAwX/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIQAxAAAAHZi8EHD//EABgQAQADAQAAAAAAAAAAAAAAAAEAAhIQ/9oACAEBAAEFAtOtWlVTv//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABcQAAMBAAAAAAAAAAAAAAAAAAABISD/2gAIAQEABj8CKi4//8QAGhAAAgIDAAAAAAAAAAAAAAAAESEAARAxQf/aAAgBAQABPyHRHYOqtMQAcDOf/9oADAMBAAIAAwAAABCTz//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8QP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8QP//EAB4QAAIBAwUAAAAAAAAAAAAAAAERMQAhQRBRcZHR/9oACAEBAAE/EMmVkiKtWkgQuPT1RgWIWkYNJAHutf/Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;thumbnail&quot;
        title=&quot;thumbnail&quot;
        src=&quot;/static/dfe54e1839b050291c6bf58a42983b0d/4b190/thumbnail.jpg&quot;
        srcset=&quot;/static/dfe54e1839b050291c6bf58a42983b0d/e07e9/thumbnail.jpg 200w,
/static/dfe54e1839b050291c6bf58a42983b0d/066f9/thumbnail.jpg 400w,
/static/dfe54e1839b050291c6bf58a42983b0d/4b190/thumbnail.jpg 800w,
/static/dfe54e1839b050291c6bf58a42983b0d/e5166/thumbnail.jpg 1200w,
/static/dfe54e1839b050291c6bf58a42983b0d/5e3c2/thumbnail.jpg 1288w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;追記.&lt;/strong&gt;&lt;br/&gt;
&lt;strong&gt;2016年12月に内容を更新しました&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;これまでMacで数式を書くときはGrapherから画像を作っていたのですが、複数行の数式となるとさすがに面倒なので今回LaTeXiTを使ってみることに。 当然TeXなので数式を作成にも融通が利いて便利です。&lt;/p&gt;
&lt;h2 id=&quot;1-tex環境の導入&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#1-tex%E7%92%B0%E5%A2%83%E3%81%AE%E5%B0%8E%E5%85%A5&quot; aria-label=&quot;1 tex環境の導入 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;1. TeX環境の導入&lt;/h2&gt;
&lt;p&gt;今回導入するMacにはまだTeXを入れていなかったので一からTeX環境を作ります。&lt;/p&gt;
&lt;h2 id=&quot;インストール環境&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E7%92%B0%E5%A2%83&quot; aria-label=&quot;インストール環境 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;インストール環境&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Mac OS 10.12- Sierra&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;参考ページが404になっていたので、適当にググってもらえればみみつかるはず。&lt;/p&gt;
&lt;h2 id=&quot;2-latexit最新版をダウンロード&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#2-latexit%E6%9C%80%E6%96%B0%E7%89%88%E3%82%92%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89&quot; aria-label=&quot;2 latexit最新版をダウンロード permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;2. LaTexiT最新版をダウンロード&lt;/h2&gt;
&lt;p&gt;MacTexに同封されているLaTeXiTは最新版でない可能性があります. そのため公式サイトからLaTexiTを入手してください。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://pierre.chachatelier.fr/latexit/latexit-downloads.php&quot;&gt;https://pierre.chachatelier.fr/latexit/latexit-downloads.php&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;3-latexitを日本語対応させる&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#3-latexit%E3%82%92%E6%97%A5%E6%9C%AC%E8%AA%9E%E5%AF%BE%E5%BF%9C%E3%81%95%E3%81%9B%E3%82%8B&quot; aria-label=&quot;3 latexitを日本語対応させる permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;3. LaTeXiTを日本語対応させる&lt;/h2&gt;
&lt;p&gt;この状態でも日本語が含まれていない数式では問題ありませんが、含まれているものの場合エラーが出てしまいます。 以下のようにLaTeXiTの設定を変更してください。&lt;/p&gt;
&lt;p&gt;LaTeX、dvipdfのパスは以下のように設定。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre style=&quot;counter-reset: linenumber NaN&quot; class=&quot;language-text line-numbers&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;LaTeX: /usr/local/texlive/2015basic/bin/×86_64-darwin/platex
dvipdf: /usr/local/texlive/2015basic/bin/×86_64-darwin//dvipdfmx&lt;/code&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;white-space: normal; width: auto; left: 0;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;上記パスの太字部分はインストールしたTexに合わせて変更してください。&lt;/p&gt;
&lt;p&gt;not two-byte family... エラーに対応するため, 日本語部分に2バイトに直すコマンドを使います。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre style=&quot;counter-reset: linenumber NaN&quot; class=&quot;language-text line-numbers&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;\textmc{入力したい日本語}
\text{入力したい日本語}　※\textmcは明朝フォント指定&lt;/code&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;white-space: normal; width: auto; left: 0;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;これで日本語が数式内にある状態でもコンパイルが通るようになりました。&lt;/p&gt;
&lt;p&gt;ただし、日本度を多用する場合は\textを使うのも面倒なので
環境設定からテンプレートでjsarticleクラスを使うほうが良いかもしれません。&lt;/p&gt;
&lt;h2 id=&quot;tips&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#tips&quot; aria-label=&quot;tips permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Tips&lt;/h2&gt;
&lt;p&gt;Grapherで数式を作った後に右クリックでTeXのコードをコピー出来ます。TeXのコード忘れた時に便利です。&lt;/p&gt;
&lt;h2 id=&quot;終わりに&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E7%B5%82%E3%82%8F%E3%82%8A%E3%81%AB&quot; aria-label=&quot;終わりに permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;終わりに&lt;/h2&gt;
&lt;p&gt;使ってみた感想ですが、やっぱりTeXに慣れていればGrapherを使うよりも圧倒的に早く記述できますね。これでPages、Keynoteにガンガン綺麗な数式を盛り込めます。&lt;/p&gt;
&lt;h2 id=&quot;ps&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#ps&quot; aria-label=&quot;ps permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;P.S.&lt;/h2&gt;
&lt;p&gt;Twitter上でご助言をいただき、数式のコードを修正しました。
場合分けを利用する時はcasesを使うとコードもだいぶスッキリします。&lt;/p&gt;
&lt;p&gt;TeXに関しては素人なのでこういった知らない部分を教えていただけると非常に助かりますね。エラーが出ないとついこれでいいやとなってしまうので(^_^;)&lt;/p&gt;</content:encoded></item><item><title><![CDATA[インプレッサ スポーツにフットランプを取り付けてみた]]></title><description><![CDATA[はじめに インプレッサ スポーツには標準でフットランプが装備されていますが、乗車後最大 3…]]></description><link>https://blog.icchi.me/install-footlamp-in-imprezasport</link><guid isPermaLink="false">https://blog.icchi.me/install-footlamp-in-imprezasport</guid><pubDate>Wed, 30 Apr 2014 16:08:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/542b17b7d3e28dcba67640bab4ff3d04/5e3c2/thumbnail.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 56.49999999999999%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAwACBf/EABUBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAHjbBaCkqP/xAAYEAADAQEAAAAAAAAAAAAAAAAAAQIQIf/aAAgBAQABBQKW5OseSUf/xAAVEQEBAAAAAAAAAAAAAAAAAAAAEf/aAAgBAwEBPwFX/8QAFxEAAwEAAAAAAAAAAAAAAAAAAAECEf/aAAgBAgEBPwGVrwcH/8QAFxAAAwEAAAAAAAAAAAAAAAAAACAhMf/aAAgBAQAGPwLSL//EABoQAQEAAwEBAAAAAAAAAAAAAAEAESExYXH/2gAIAQEAAT8h2AiXMnPpdbzFsXZ8v//aAAwDAQACAAMAAAAQO9//xAAWEQEBAQAAAAAAAAAAAAAAAAABABH/2gAIAQMBAT8QXCJ//8QAFhEBAQEAAAAAAAAAAAAAAAAAAQAR/9oACAECAQE/EDog5t//xAAaEAEBAAMBAQAAAAAAAAAAAAABIQARQTGh/9oACAEBAAE/EO530fO5tsJANQu0+4neD0fcotywaFMAs1dle1z/2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;thumbnail&quot;
        title=&quot;thumbnail&quot;
        src=&quot;/static/542b17b7d3e28dcba67640bab4ff3d04/4b190/thumbnail.jpg&quot;
        srcset=&quot;/static/542b17b7d3e28dcba67640bab4ff3d04/e07e9/thumbnail.jpg 200w,
/static/542b17b7d3e28dcba67640bab4ff3d04/066f9/thumbnail.jpg 400w,
/static/542b17b7d3e28dcba67640bab4ff3d04/4b190/thumbnail.jpg 800w,
/static/542b17b7d3e28dcba67640bab4ff3d04/e5166/thumbnail.jpg 1200w,
/static/542b17b7d3e28dcba67640bab4ff3d04/5e3c2/thumbnail.jpg 1288w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;h2 id=&quot;はじめに&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB&quot; aria-label=&quot;はじめに permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;はじめに&lt;/h2&gt;
&lt;p&gt;インプレッサ スポーツには標準でフットランプが装備されていますが、乗車後最大 30 秒までしか点灯できない仕様になっています。&lt;/p&gt;
&lt;p&gt;友達の車に乗った際に運転時に点灯しているフットランプの印象が思いの外よかったので今回インプレッサにも取り付けてみることに。 その工程を簡単にまとめてみました。&lt;/p&gt;
&lt;h2 id=&quot;準備物&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%BA%96%E5%82%99%E7%89%A9&quot; aria-label=&quot;準備物 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;準備物&lt;/h2&gt;
&lt;p&gt;amazon さんでいくつか必要なものを購入。これまで内装系をいじったことはなかったので、配線も含めて一から購入しました。&lt;/p&gt;
&lt;p&gt;購入した次の日に到着、さすがです!!&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/ef3510274b295d2330fedef0aebf3767/5e3c2/parts.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAIBAwQF/8QAFgEBAQEAAAAAAAAAAAAAAAAAAgED/9oADAMBAAIQAxAAAAFq9fPyUikX/8QAGxAAAgEFAAAAAAAAAAAAAAAAAQIAAxAREiH/2gAIAQEAAQUCZ7GY5UBaKNR//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFREBAQAAAAAAAAAAAAAAAAAAEBH/2gAIAQIBAT8Bh//EABoQAAMBAAMAAAAAAAAAAAAAAAABETEhQYH/2gAIAQEABj8CiXpNML0tOHLpD//EABsQAQADAQADAAAAAAAAAAAAAAEAESFBMVFx/9oACAEBAAE/IcBVrqMCGGmnfc8oDudFKrI4Gtb9n//aAAwDAQACAAMAAAAQHM//xAAWEQEBAQAAAAAAAAAAAAAAAAARARD/2gAIAQMBAT8QY5//xAAWEQADAAAAAAAAAAAAAAAAAAABECH/2gAIAQIBAT8QkL//xAAaEAEAAwEBAQAAAAAAAAAAAAABABEhMUFh/9oACAEBAAE/ENW6NB8TesHM/V6YPCiTglHgbBrt5TpmQg4G2tn/2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;parts&quot;
        title=&quot;parts&quot;
        src=&quot;/static/ef3510274b295d2330fedef0aebf3767/4b190/parts.jpg&quot;
        srcset=&quot;/static/ef3510274b295d2330fedef0aebf3767/e07e9/parts.jpg 200w,
/static/ef3510274b295d2330fedef0aebf3767/066f9/parts.jpg 400w,
/static/ef3510274b295d2330fedef0aebf3767/4b190/parts.jpg 800w,
/static/ef3510274b295d2330fedef0aebf3767/e5166/parts.jpg 1200w,
/static/ef3510274b295d2330fedef0aebf3767/5e3c2/parts.jpg 1288w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;今回購入したのは以下の 5 点&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.amazon.co.jp/gp/product/B00366IQOM/ref=as_li_tl?ie=UTF8&amp;camp=247&amp;creative=1211&amp;creativeASIN=B00366IQOM&amp;linkCode=as2&amp;tag=haruyuki04-22&amp;linkId=e8fce22b851ca710f61505aaa1e0f8e3&quot;&gt;エーモン フラット LED 青 1824&lt;/a&gt;&lt;img src=&quot;//ir-jp.amazon-adsystem.com/e/ir?t=haruyuki04-22&amp;l=am2&amp;o=9&amp;a=B00366IQOM&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.amazon.co.jp/gp/product/B0094B2COI/ref=as_li_tl?ie=UTF8&amp;camp=247&amp;creative=1211&amp;creativeASIN=B0094B2COI&amp;linkCode=as2&amp;tag=haruyuki04-22&amp;linkId=22ccf339dd9362917b000577aaf5d282&quot;&gt;エーモン 接続コネクター 4 セット(8 個入) 2824&lt;/a&gt;&lt;img src=&quot;//ir-jp.amazon-adsystem.com/e/ir?t=haruyuki04-22&amp;l=am2&amp;o=9&amp;a=B0094B2COI&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.amazon.co.jp/gp/product/B07PSL1H4J/ref=as_li_tl?ie=UTF8&amp;camp=247&amp;creative=1211&amp;creativeASIN=B07PSL1H4J&amp;linkCode=as2&amp;tag=haruyuki04-22&amp;linkId=e47b9c4e6f048bc2579b46fe1800dd66&quot;&gt;【Amazon.co.jp 限定】エーモン ダブルコード(赤/黒) 0.50sq 6m (M271)&lt;/a&gt;&lt;img src=&quot;//ir-jp.amazon-adsystem.com/e/ir?t=haruyuki04-22&amp;l=am2&amp;o=9&amp;a=B07PSL1H4J&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.amazon.co.jp/gp/product/B0049DRZZC/ref=as_li_tl?ie=UTF8&amp;camp=247&amp;creative=1211&amp;creativeASIN=B0049DRZZC&amp;linkCode=as2&amp;tag=haruyuki04-22&amp;linkId=fc0c7e6512155972107ef496f25031a6&quot;&gt;エーモン フリータイプヒューズ電源(ミニ平型) DC12V・60W/DC24V・120W 2835&lt;/a&gt;&lt;img src=&quot;//ir-jp.amazon-adsystem.com/e/ir?t=haruyuki04-22&amp;l=am2&amp;o=9&amp;a=B0049DRZZC&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.amazon.co.jp/gp/product/B07NWG2YY8/ref=as_li_tl?ie=UTF8&amp;camp=247&amp;creative=1211&amp;creativeASIN=B07NWG2YY8&amp;linkCode=as2&amp;tag=haruyuki04-22&amp;linkId=a00ba4da25ccab0d841f58dbd0f640bd&quot;&gt;【Amazon.co.jp 限定】エーモン プラス・マイナス分岐ターミナル ワンタッチ接続 (2831)&lt;/a&gt;&lt;img src=&quot;//ir-jp.amazon-adsystem.com/e/ir?t=haruyuki04-22&amp;l=am2&amp;o=9&amp;a=B07NWG2YY8&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;取り付け&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E5%8F%96%E3%82%8A%E4%BB%98%E3%81%91&quot; aria-label=&quot;取り付け permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;取り付け&lt;/h2&gt;
&lt;h3 id=&quot;電源の確保&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E9%9B%BB%E6%BA%90%E3%81%AE%E7%A2%BA%E4%BF%9D&quot; aria-label=&quot;電源の確保 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;電源の確保&lt;/h3&gt;
&lt;p&gt;インプレッサスポーツには運転席右下にコイントレーがついていますが、それを外すと、写真のようにヒューズ BOX が見えます。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/6415d34b928b4593a5fd67386e6bac17/5e3c2/fusebox.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAQCAwX/xAAVAQEBAAAAAAAAAAAAAAAAAAABAP/aAAwDAQACEAMQAAABzXEbiaIif//EABoQAAIDAQEAAAAAAAAAAAAAAAECAAMSBBH/2gAIAQEAAQUCBmirNZ5ArbSzU6Vzd//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABsQAAIBBQAAAAAAAAAAAAAAAAABIRAREkFR/9oACAEBAAY/Aiz3TElT0aP/xAAaEAACAwEBAAAAAAAAAAAAAAABEQAhQTGR/9oACAEBAAE/IddmlQYwH0OVpEgOYUjxowLoLyf/2gAMAwEAAgADAAAAEMQ//8QAFhEBAQEAAAAAAAAAAAAAAAAAARAR/9oACAEDAQE/EByf/8QAFhEBAQEAAAAAAAAAAAAAAAAAABEB/9oACAECAQE/EJqP/8QAHhABAQABAwUAAAAAAAAAAAAAAREAITFhQVGBocH/2gAIAQEAAT8QogsoEyFdGKdTnNLyOzvt6mFVatdoFxCySVUvHnAkQHwAHzP/2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;fusebox&quot;
        title=&quot;fusebox&quot;
        src=&quot;/static/6415d34b928b4593a5fd67386e6bac17/4b190/fusebox.jpg&quot;
        srcset=&quot;/static/6415d34b928b4593a5fd67386e6bac17/e07e9/fusebox.jpg 200w,
/static/6415d34b928b4593a5fd67386e6bac17/066f9/fusebox.jpg 400w,
/static/6415d34b928b4593a5fd67386e6bac17/4b190/fusebox.jpg 800w,
/static/6415d34b928b4593a5fd67386e6bac17/e5166/fusebox.jpg 1200w,
/static/6415d34b928b4593a5fd67386e6bac17/5e3c2/fusebox.jpg 1288w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;ヘッドライト点灯とフットランプを連動したかったのでヒューズは、以下の図のように No.14 リアコンビランプから取りました。意外と硬いので取り付けにはラジオペンチなど挟む工具があると捗ります。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/83a338f749a4a38c16e9ddc8ac1c4100/5e3c2/process10.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAMBAgQF/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhADEAAAAeRfTIoYJ//EABsQAAICAwEAAAAAAAAAAAAAAAECAAMEExQh/9oACAEBAAEFAvQdhE6WgQOXoleOzL//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAcEAACAAcAAAAAAAAAAAAAAAAAARARIjFBkaH/2gAIAQEABj8ChbonspczB//EAB0QAAICAgMBAAAAAAAAAAAAAAERACExQWGBodH/2gAIAQEAAT8haCEGn6YAD7wAnm3GoXNTqMCBFXP/2gAMAwEAAgADAAAAEFMf/8QAFxEBAAMAAAAAAAAAAAAAAAAAAAEhMf/aAAgBAwEBPxCMW//EABcRAQADAAAAAAAAAAAAAAAAAAABESH/2gAIAQIBAT8QqWP/xAAdEAEAAwACAwEAAAAAAAAAAAABABEhMXFBYcHR/9oACAEBAAE/EE7a+pX0U6vsrG+v1hCpso8LKETeKoEFfjnJs+RXts6n/9k=&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process10&quot;
        title=&quot;process10&quot;
        src=&quot;/static/83a338f749a4a38c16e9ddc8ac1c4100/4b190/process10.jpg&quot;
        srcset=&quot;/static/83a338f749a4a38c16e9ddc8ac1c4100/e07e9/process10.jpg 200w,
/static/83a338f749a4a38c16e9ddc8ac1c4100/066f9/process10.jpg 400w,
/static/83a338f749a4a38c16e9ddc8ac1c4100/4b190/process10.jpg 800w,
/static/83a338f749a4a38c16e9ddc8ac1c4100/e5166/process10.jpg 1200w,
/static/83a338f749a4a38c16e9ddc8ac1c4100/5e3c2/process10.jpg 1288w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;h3 id=&quot;配線&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E9%85%8D%E7%B7%9A&quot; aria-label=&quot;配線 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;配線&lt;/h3&gt;
&lt;p&gt;運転席側のランプはヒューズの位置が近いので問題無いですが、助手席側にはうまいこと電線を持ってくる必要があります。&lt;/p&gt;
&lt;p&gt;配線を通す専用工具も売っているのですが高いので、外に転がっていた虫網で的当に作りました。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 540px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/ac0ed85e44789b895bd1cc6b7f066515/09d21/process2.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 133.5%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAMCBAUB/8QAFgEBAQEAAAAAAAAAAAAAAAAAAgAB/9oADAMBAAIQAxAAAAHN7N4dYiU6xkCNgQWf/8QAGxAAAgIDAQAAAAAAAAAAAAAAAQIQEQADBBL/2gAIAQEAAQUCkC8fSyDFaju6PYsQY//EABYRAAMAAAAAAAAAAAAAAAAAAAAQEf/aAAgBAwEBPwF0/8QAFxEBAAMAAAAAAAAAAAAAAAAAABAREv/aAAgBAgEBPwGKZf/EABcQAAMBAAAAAAAAAAAAAAAAAAERIDD/2gAIAQEABj8ChnD/xAAZEAEBAQEBAQAAAAAAAAAAAAABEQAxEGH/2gAIAQEAAT8hmKa3uqmJjLnululjAN9sr3Jp5//aAAwDAQACAAMAAAAQ682P/8QAGBEAAwEBAAAAAAAAAAAAAAAAAAERECH/2gAIAQMBAT8QuN3pZ//EABgRAAIDAAAAAAAAAAAAAAAAAAARARAh/9oACAECAQE/EFUJgh//xAAZEAEBAQEBAQAAAAAAAAAAAAABEQAxIVH/2gAIAQEAAT8QgYGdU0euswAq5hI43hYqJRvuX5ZR65ZsYjC37kUcc3//2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process2&quot;
        title=&quot;process2&quot;
        src=&quot;/static/ac0ed85e44789b895bd1cc6b7f066515/09d21/process2.jpg&quot;
        srcset=&quot;/static/ac0ed85e44789b895bd1cc6b7f066515/e07e9/process2.jpg 200w,
/static/ac0ed85e44789b895bd1cc6b7f066515/066f9/process2.jpg 400w,
/static/ac0ed85e44789b895bd1cc6b7f066515/09d21/process2.jpg 540w&quot;
        sizes=&quot;(max-width: 540px) 100vw, 540px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 540px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/9c8ef548ee6024719a3ba3e05675f3f3/09d21/process3.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 133.5%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAIEAwX/xAAWAQEBAQAAAAAAAAAAAAAAAAAAAQP/2gAMAwEAAhADEAAAAVSmXLRzAL+dvLY5kJ//xAAaEAACAwEBAAAAAAAAAAAAAAAAAQIREhAh/9oACAEBAAEFAubaM2Pxinku2T7/AP/EABURAQEAAAAAAAAAAAAAAAAAABAR/9oACAEDAQE/ASH/xAAVEQEBAAAAAAAAAAAAAAAAAAAQEf/aAAgBAgEBPwEp/8QAGBAAAgMAAAAAAAAAAAAAAAAAESAAARD/2gAIAQEABj8CQYYbX//EABsQAQEAAwADAAAAAAAAAAAAAAEAESExQXGR/9oACAEBAAE/IWXEagwlgLcXSbBR2WquXzZ9fbiZ7f/aAAwDAQACAAMAAAAQ2OZP/8QAFhEBAQEAAAAAAAAAAAAAAAAAEQAB/9oACAEDAQE/EMGILO3/xAAXEQEBAQEAAAAAAAAAAAAAAAABEQAQ/9oACAECAQE/EEZwSTQ3/8QAGhABAQEBAQEBAAAAAAAAAAAAAQARIUExcf/aAAgBAQABPxAKLu58l42E0Bb6LeUJiMuyoNA5+zADar269UaM2Tc4L//Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process3&quot;
        title=&quot;process3&quot;
        src=&quot;/static/9c8ef548ee6024719a3ba3e05675f3f3/09d21/process3.jpg&quot;
        srcset=&quot;/static/9c8ef548ee6024719a3ba3e05675f3f3/e07e9/process3.jpg 200w,
/static/9c8ef548ee6024719a3ba3e05675f3f3/066f9/process3.jpg 400w,
/static/9c8ef548ee6024719a3ba3e05675f3f3/09d21/process3.jpg 540w&quot;
        sizes=&quot;(max-width: 540px) 100vw, 540px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 720px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/dab8ae8a3f1f52d9ce45679864a4a57d/80e3c/process4.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAMEAgX/xAAUAQEAAAAAAAAAAAAAAAAAAAAC/9oADAMBAAIQAxAAAAHl3RNKUbCv/8QAGBABAQEBAQAAAAAAAAAAAAAAAQADEUH/2gAIAQEAAQUCCcQy5F5f/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAFxABAAMAAAAAAAAAAAAAAAAAEgAggf/aAAgBAQAGPwKNZX//xAAXEAEBAQEAAAAAAAAAAAAAAAABEBEA/9oACAEBAAE/IQXj+CtGsf/aAAwDAQACAAMAAAAQdC//xAAXEQEBAQEAAAAAAAAAAAAAAAABABFB/9oACAEDAQE/EEeWX//EABYRAQEBAAAAAAAAAAAAAAAAAAABEf/aAAgBAgEBPxCVr//EABkQAQEBAQEBAAAAAAAAAAAAAAEAESExUf/aAAgBAQABPxAbw2NT7x7Ol5BEyXyrnzYQv//Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process4&quot;
        title=&quot;process4&quot;
        src=&quot;/static/dab8ae8a3f1f52d9ce45679864a4a57d/80e3c/process4.jpg&quot;
        srcset=&quot;/static/dab8ae8a3f1f52d9ce45679864a4a57d/e07e9/process4.jpg 200w,
/static/dab8ae8a3f1f52d9ce45679864a4a57d/066f9/process4.jpg 400w,
/static/dab8ae8a3f1f52d9ce45679864a4a57d/80e3c/process4.jpg 720w&quot;
        sizes=&quot;(max-width: 720px) 100vw, 720px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./process5.jpg&quot;&gt;&lt;/p&gt;
&lt;p&gt;こんなかんじで挟める細い棒であれば何でもいいです。&lt;/p&gt;
&lt;p&gt;↓&lt;/p&gt;
&lt;p&gt;あとはこれをペダル左側の穴に電線を挟んで通します。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 720px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/f84a59be956ca9a74cb6ef53c29c9f68/80e3c/process6.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAEDBf/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAHKdySQw//EABsQAAIDAAMAAAAAAAAAAAAAAAECAAMSERMi/9oACAEBAAEFArDps+dmPXzGSykdhn//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAZEAEAAgMAAAAAAAAAAAAAAAABACEQETH/2gAIAQEABj8CahWQdThP/8QAGhABAAIDAQAAAAAAAAAAAAAAAQARIUFRMf/aAAgBAQABPyG1YXGyW8124CAyhiFCBybneH//2gAMAwEAAgADAAAAEK/f/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPxA//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPxA//8QAGxABAQACAwEAAAAAAAAAAAAAAREAITFRgUH/2gAIAQEAAT8QQA6idYy1bB4dj5gMtCWYKLSbmEnPlNPM0AtPsTP/2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process6&quot;
        title=&quot;process6&quot;
        src=&quot;/static/f84a59be956ca9a74cb6ef53c29c9f68/80e3c/process6.jpg&quot;
        srcset=&quot;/static/f84a59be956ca9a74cb6ef53c29c9f68/e07e9/process6.jpg 200w,
/static/f84a59be956ca9a74cb6ef53c29c9f68/066f9/process6.jpg 400w,
/static/f84a59be956ca9a74cb6ef53c29c9f68/80e3c/process6.jpg 720w&quot;
        sizes=&quot;(max-width: 720px) 100vw, 720px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;うまいこと行けば助手席側から見えるはずです。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 720px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/219e0bf573abe9a341af77e405a7215b/80e3c/process7.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAMFAv/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAZ6Rxsoh/8QAGhAAAgMBAQAAAAAAAAAAAAAAAQIAAxESE//aAAgBAQABBQKzzE6itZg0SqvpgiCf/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAGxAAAQQDAAAAAAAAAAAAAAAAAQACEDITITH/2gAIAQEABj8CGN5MWjfFUL//xAAbEAEAAgMBAQAAAAAAAAAAAAABABFBYYEhMf/aAAgBAQABPyEmn9nwmx3MR4HZjV0iXSAqH//aAAwDAQACAAMAAAAQ4M//xAAVEQEBAAAAAAAAAAAAAAAAAAAAEf/aAAgBAwEBPxBH/8QAFxEBAAMAAAAAAAAAAAAAAAAAAAERIf/aAAgBAgEBPxCMW//EABsQAQEBAQADAQAAAAAAAAAAAAERADFRYXGB/9oACAEBAAE/EHRVKR/Tz6yFiU5EGswFh24EDYNAHGloWmO8X3f/2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process7&quot;
        title=&quot;process7&quot;
        src=&quot;/static/219e0bf573abe9a341af77e405a7215b/80e3c/process7.jpg&quot;
        srcset=&quot;/static/219e0bf573abe9a341af77e405a7215b/e07e9/process7.jpg 200w,
/static/219e0bf573abe9a341af77e405a7215b/066f9/process7.jpg 400w,
/static/219e0bf573abe9a341af77e405a7215b/80e3c/process7.jpg 720w&quot;
        sizes=&quot;(max-width: 720px) 100vw, 720px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;あとはこれに接続用のコネクタを使って LED と繋げます。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 540px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/2b72088daeb102e8d83610790ac2b214/09d21/process8.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 133.5%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAGgAAAQUBAAAAAAAAAAAAAAAAAAECAwQGBf/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAHlTMml1JkguUXokZWD/8QAHBAAAgICAwAAAAAAAAAAAAAAAQIAAwQTEjJB/9oACAEBAAEFApUpa1QFEDaici0ltev08TDLOk//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAEDAQE/AR//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAECAQE/AR//xAAeEAABAwQDAAAAAAAAAAAAAAABABARAjFBUSEiMv/aAAgBAQAGPwJUgbUBhULr2V1iRvK5VmnLf//EABwQAQACAwADAAAAAAAAAAAAAAEAESExcWGRsf/aAAgBAQABPyEJtSYFnQQIlERkGKGi3UNmLZfPE8LX2NLEdmk9xuOWf//aAAwDAQACAAMAAAAQqMXP/8QAFxEBAAMAAAAAAAAAAAAAAAAAAQAQEf/aAAgBAwEBPxAmF//EABYRAQEBAAAAAAAAAAAAAAAAAAARIf/aAAgBAgEBPxBqVH//xAAfEAEBAAIBBAMAAAAAAAAAAAABEQAhMUFRYXGRsdH/2gAIAQEAAT8QjjvQRex1fjBocYMrt0YITR0j37+sa9wxIVsPGRXJUNOwP3IRt6lpwzi7ti2OaB8uCpqw2a4lFa5//9k=&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process8&quot;
        title=&quot;process8&quot;
        src=&quot;/static/2b72088daeb102e8d83610790ac2b214/09d21/process8.jpg&quot;
        srcset=&quot;/static/2b72088daeb102e8d83610790ac2b214/e07e9/process8.jpg 200w,
/static/2b72088daeb102e8d83610790ac2b214/066f9/process8.jpg 400w,
/static/2b72088daeb102e8d83610790ac2b214/09d21/process8.jpg 540w&quot;
        sizes=&quot;(max-width: 540px) 100vw, 540px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;最後に適当な位置に LED を貼り付ければ完成です!!&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/14b60b4b5c5a6cae2d5616f1a07020ff/5e3c2/demo.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAIDBf/EABYBAQEBAAAAAAAAAAAAAAAAAAEAAv/aAAwDAQACEAMQAAABxniyIWNX/8QAGRAAAgMBAAAAAAAAAAAAAAAAAAECEBES/9oACAEBAAEFAotxNY6TM6P/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAXEQEBAQEAAAAAAAAAAAAAAAABAAIR/9oACAECAQE/ATizm//EABgQAAIDAAAAAAAAAAAAAAAAAAARICEx/9oACAEBAAY/AtKgz//EABoQAQACAwEAAAAAAAAAAAAAAAEAESExQcH/2gAIAQEAAT8hzAiK2m66TbsJTiPon//aAAwDAQACAAMAAAAQew//xAAXEQEBAQEAAAAAAAAAAAAAAAABADFh/9oACAEDAQE/EHIeX//EABcRAQEBAQAAAAAAAAAAAAAAAAERACH/2gAIAQIBAT8QMDzAMu//xAAaEAEAAgMBAAAAAAAAAAAAAAABABEhMUGh/9oACAEBAAE/EOt3Y67LPDgDWDNp7E3uj29wWZzGYizktbL0u2f/2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;demo&quot;
        title=&quot;demo&quot;
        src=&quot;/static/14b60b4b5c5a6cae2d5616f1a07020ff/4b190/demo.jpg&quot;
        srcset=&quot;/static/14b60b4b5c5a6cae2d5616f1a07020ff/e07e9/demo.jpg 200w,
/static/14b60b4b5c5a6cae2d5616f1a07020ff/066f9/demo.jpg 400w,
/static/14b60b4b5c5a6cae2d5616f1a07020ff/4b190/demo.jpg 800w,
/static/14b60b4b5c5a6cae2d5616f1a07020ff/e5166/demo.jpg 1200w,
/static/14b60b4b5c5a6cae2d5616f1a07020ff/5e3c2/demo.jpg 1288w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;ただ、LED1 個タイプの物を使ったのに予想以上に光量が多くやんちゃな感じになってしまいました(^_^;) また暇があれば可変抵抗でも挟んで調節できるようにしておこう。&lt;/p&gt;</content:encoded></item><item><title><![CDATA[インプレッサ スポーツにデイライトを取り付けてみた]]></title><description><![CDATA[郵便局の車に付いている青いライトに前々から興味があったので
インプレッサ スポーツに付けてみました。 事故率低下の効果もあるんだとか。 今回買ったのは amazno で評価も高く値段も比較的安かったこちら MIRAREED…]]></description><link>https://blog.icchi.me/install-daylight-in-imprezasport</link><guid isPermaLink="false">https://blog.icchi.me/install-daylight-in-imprezasport</guid><pubDate>Tue, 01 Apr 2014 09:16:00 GMT</pubDate><content:encoded>&lt;p&gt;郵便局の車に付いている青いライトに前々から興味があったので
インプレッサ スポーツに付けてみました。&lt;/p&gt;
&lt;p&gt;事故率低下の効果もあるんだとか。&lt;/p&gt;
&lt;p&gt;今回買ったのは amazno で評価も高く値段も比較的安かったこちら&lt;/p&gt;
&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.amazon.co.jp/gp/product/B0071W1PB8/ref=as_li_tl?ie=UTF8&amp;camp=247&amp;creative=1211&amp;creativeASIN=B0071W1PB8&amp;linkCode=as2&amp;tag=haruyuki04-22&amp;linkId=1c9397da7df1df015dd6945c0da056d2&quot;&gt;MIRAREED(ミラリード) ディマーカーライト パルス感知式 ブルー&lt;/a&gt;&lt;img src=&quot;//ir-jp.amazon-adsystem.com/e/ir?t=haruyuki04-22&amp;l=am2&amp;o=9&amp;a=B0071W1PB8&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/1f471fbea872c1534ca34fa7f3bf5379/5e3c2/daylight.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAMEAQL/xAAVAQEBAAAAAAAAAAAAAAAAAAADAv/aAAwDAQACEAMQAAAB42mU6aJDT//EABsQAAICAwEAAAAAAAAAAAAAAAABAxICERMx/9oACAEBAAEFApLIiWbQ/e+i5//EABYRAQEBAAAAAAAAAAAAAAAAABECEP/aAAgBAwEBPwGlz//EABYRAQEBAAAAAAAAAAAAAAAAABECEP/aAAgBAgEBPwGQz//EABwQAAEDBQAAAAAAAAAAAAAAAAABAhARISIxkf/aAAgBAQAGPwLEuhqKM6sf/8QAGhAAAwEBAQEAAAAAAAAAAAAAAAERIUFRgf/aAAgBAQABPyF5RfhT2XtG96EhaYW+HCWvT//aAAwDAQACAAMAAAAQTA//xAAWEQADAAAAAAAAAAAAAAAAAAAAASH/2gAIAQMBAT8QhaIf/8QAFhEBAQEAAAAAAAAAAAAAAAAAAQAR/9oACAECAQE/ENmNjf/EAB0QAQACAwADAQAAAAAAAAAAAAEAESExQVFhcYH/2gAIAQEAAT8Q2bN3skSJdy6a9fkNwA8tSqcZ3ZYHzsXc7u194QOvVla3P//Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;daylight&quot;
        title=&quot;daylight&quot;
        src=&quot;/static/1f471fbea872c1534ca34fa7f3bf5379/4b190/daylight.jpg&quot;
        srcset=&quot;/static/1f471fbea872c1534ca34fa7f3bf5379/e07e9/daylight.jpg 200w,
/static/1f471fbea872c1534ca34fa7f3bf5379/066f9/daylight.jpg 400w,
/static/1f471fbea872c1534ca34fa7f3bf5379/4b190/daylight.jpg 800w,
/static/1f471fbea872c1534ca34fa7f3bf5379/e5166/daylight.jpg 1200w,
/static/1f471fbea872c1534ca34fa7f3bf5379/5e3c2/daylight.jpg 1288w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;値段も約 3 千円弱とお手頃価格。
取り付けもドライバー 1 本で済み、非常に簡単!&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/e8dd37e58fe27622ca0d4382ad613aa4/5e3c2/parts.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAMCBAX/xAAWAQEBAQAAAAAAAAAAAAAAAAACAAH/2gAMAwEAAhADEAAAAWyUBXzCMv/EABoQAAIDAQEAAAAAAAAAAAAAAAECABESEyL/2gAIAQEAAQUC1R8qwNhHuMk64P8A/8QAFREBAQAAAAAAAAAAAAAAAAAAABH/2gAIAQMBAT8BV//EABURAQEAAAAAAAAAAAAAAAAAAAAS/9oACAECAQE/AUv/xAAbEAACAQUAAAAAAAAAAAAAAAABEQAQEiFxsf/aAAgBAQAGPwJHAlxWzVswhDk//8QAGhABAAIDAQAAAAAAAAAAAAAAAQAhETFBsf/aAAgBAQABPyGnYd3HrjUMAljNd3GXAnyNtsOzPif/2gAMAwEAAgADAAAAEOsv/8QAFxEBAAMAAAAAAAAAAAAAAAAAAAERIf/aAAgBAwEBPxCMUf/EABcRAAMBAAAAAAAAAAAAAAAAAAABIRH/2gAIAQIBAT8Qdho//8QAHBABAQACAwEBAAAAAAAAAAAAAREAIUFhcTGR/9oACAEBAAE/EBNwCANnivWGSE1awNee5ecFEbnzcnZw44CGiP47MJNeyEvimf/Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;parts&quot;
        title=&quot;parts&quot;
        src=&quot;/static/e8dd37e58fe27622ca0d4382ad613aa4/4b190/parts.jpg&quot;
        srcset=&quot;/static/e8dd37e58fe27622ca0d4382ad613aa4/e07e9/parts.jpg 200w,
/static/e8dd37e58fe27622ca0d4382ad613aa4/066f9/parts.jpg 400w,
/static/e8dd37e58fe27622ca0d4382ad613aa4/4b190/parts.jpg 800w,
/static/e8dd37e58fe27622ca0d4382ad613aa4/e5166/parts.jpg 1200w,
/static/e8dd37e58fe27622ca0d4382ad613aa4/5e3c2/parts.jpg 1288w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;パッケージの中身は&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;デイライト本体&lt;/li&gt;
&lt;li&gt;パルス感知センサー&lt;/li&gt;
&lt;li&gt;取り付けステー&lt;/li&gt;
&lt;li&gt;配線コード&lt;/li&gt;
&lt;li&gt;粘着シール等&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;実際に取りけていきます。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/d5148126f3d72c713288c861e72278dc/5e3c2/process1.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAQFAgP/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAABj7pcxcZI/8QAGBAAAwEBAAAAAAAAAAAAAAAAAAECERP/2gAIAQEAAQUCFNU+LOWLZHdM/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAGxAAAgIDAQAAAAAAAAAAAAAAAAExMhESIbH/2gAIAQEABj8CgSRbJt5wqmSf/8QAHBABAAICAwEAAAAAAAAAAAAAAQAhETFBYbFx/9oACAEBAAE/Ia4gyEVpZ0O45iDfO9Hk02DS37EM5Hxn/9oADAMBAAIAAwAAABBTP//EABURAQEAAAAAAAAAAAAAAAAAAAAR/9oACAEDAQE/EEf/xAAVEQEBAAAAAAAAAAAAAAAAAAAAEf/aAAgBAgEBPxCq/8QAHRABAQACAQUAAAAAAAAAAAAAAREAYYEhMUFRsf/aAAgBAQABPxCKKX2MzqDlDybWZYJF3QeEExxbNUk8JxVUqFSJtPwypayAZ//Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process1&quot;
        title=&quot;process1&quot;
        src=&quot;/static/d5148126f3d72c713288c861e72278dc/4b190/process1.jpg&quot;
        srcset=&quot;/static/d5148126f3d72c713288c861e72278dc/e07e9/process1.jpg 200w,
/static/d5148126f3d72c713288c861e72278dc/066f9/process1.jpg 400w,
/static/d5148126f3d72c713288c861e72278dc/4b190/process1.jpg 800w,
/static/d5148126f3d72c713288c861e72278dc/e5166/process1.jpg 1200w,
/static/d5148126f3d72c713288c861e72278dc/5e3c2/process1.jpg 1288w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;バンパー裏にある黒いカバーが邪魔なので固定しているピン?のようなものを取り外し&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/d1bff070b99b51cb554e08fc3b8c8657/5e3c2/process3.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABAAD/8QAFgEBAQEAAAAAAAAAAAAAAAAAAQAC/9oADAMBAAIQAxAAAAETw5i6xrX/xAAcEAEBAAEFAQAAAAAAAAAAAAABAgMABBMUIiP/2gAIAQEAAQUCm/rO58PWpTjxwSpOB1//xAAXEQEBAQEAAAAAAAAAAAAAAAABABES/9oACAEDAQE/AQ24b//EABURAQEAAAAAAAAAAAAAAAAAAAAR/9oACAECAQE/AVf/xAAcEAACAgIDAAAAAAAAAAAAAAAAAQIREjEhQXH/2gAIAQEABj8CyVrwWU6Lckcdjy0bkf/EABwQAAMBAAIDAAAAAAAAAAAAAAABESExUWFxgf/aAAgBAQABPyFOVk3t5LM9Q5oPo6GKgoLhVaKKf//aAAwDAQACAAMAAAAQCA//xAAXEQADAQAAAAAAAAAAAAAAAAAAARFh/9oACAEDAQE/ELIbI//EABYRAQEBAAAAAAAAAAAAAAAAAAABEf/aAAgBAgEBPxCsP//EAB4QAQACAgMAAwAAAAAAAAAAAAERMQAhQWFxUbHB/9oACAEBAAE/ECQTYwQA+HNTnLEoK+6MlDHcA/MYiblmUktefDR3ioJ6yEqa7+8lot0LBn//2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process3&quot;
        title=&quot;process3&quot;
        src=&quot;/static/d1bff070b99b51cb554e08fc3b8c8657/4b190/process3.jpg&quot;
        srcset=&quot;/static/d1bff070b99b51cb554e08fc3b8c8657/e07e9/process3.jpg 200w,
/static/d1bff070b99b51cb554e08fc3b8c8657/066f9/process3.jpg 400w,
/static/d1bff070b99b51cb554e08fc3b8c8657/4b190/process3.jpg 800w,
/static/d1bff070b99b51cb554e08fc3b8c8657/e5166/process3.jpg 1200w,
/static/d1bff070b99b51cb554e08fc3b8c8657/5e3c2/process3.jpg 1288w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;センサーをヒューズボックスの側面に貼り付け&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/2c6346088bc06f280de7064664d852b8/5e3c2/process4.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAIBBAb/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAv/aAAwDAQACEAMQAAABeVaKumaD/8QAGRABAQADAQAAAAAAAAAAAAAAAQIAERIh/9oACAEBAAEFAtkY0yTWwn2kI7rP/8QAFREBAQAAAAAAAAAAAAAAAAAAABH/2gAIAQMBAT8BV//EABURAQEAAAAAAAAAAAAAAAAAAAAR/9oACAECAQE/AUf/xAAZEAADAQEBAAAAAAAAAAAAAAAAARExEBL/2gAIAQEABj8CSSLOe7aNvDWf/8QAGxABAAMBAAMAAAAAAAAAAAAAAQARITFBUWH/2gAIAQEAAT8hpaTgE7gL2VqOPIOCoo+TgqJ6yPAM/9oADAMBAAIAAwAAABBI7//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8QH//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8QP//EAB0QAQADAAIDAQAAAAAAAAAAAAEAESExUUFhccH/2gAIAQEAAT8QCUXAKuuV+QE6FC+Ts/IFqaJ6jSY0s9ocKosOWZAbxEAn/9k=&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process4&quot;
        title=&quot;process4&quot;
        src=&quot;/static/2c6346088bc06f280de7064664d852b8/4b190/process4.jpg&quot;
        srcset=&quot;/static/2c6346088bc06f280de7064664d852b8/e07e9/process4.jpg 200w,
/static/2c6346088bc06f280de7064664d852b8/066f9/process4.jpg 400w,
/static/2c6346088bc06f280de7064664d852b8/4b190/process4.jpg 800w,
/static/2c6346088bc06f280de7064664d852b8/e5166/process4.jpg 1200w,
/static/2c6346088bc06f280de7064664d852b8/5e3c2/process4.jpg 1288w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;トレーをフロントの好きな位置に固定し、そこにライトを取り付けます。配線を簡単にまとめ&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/9e28ce59464b76d43fc4dea8a7dca175/5e3c2/process2.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAEDAgX/xAAWAQEBAQAAAAAAAAAAAAAAAAACAAH/2gAMAwEAAhADEAAAAc866KiMs//EABoQAAMAAwEAAAAAAAAAAAAAAAECAwAREiL/2gAIAQEAAQUC77LecSmgLErXS4kmcf/EABYRAQEBAAAAAAAAAAAAAAAAAAEAEf/aAAgBAwEBPwFbW//EABcRAQADAAAAAAAAAAAAAAAAAAABIWH/2gAIAQIBAT8BjVP/xAAeEAACAQMFAAAAAAAAAAAAAAABEQACEBIhIjFBkf/aAAgBAQAGPwIunaeoUbYrmLyMaT//xAAaEAEBAQADAQAAAAAAAAAAAAABEQAhMWFR/9oACAEBAAE/IQjn1v5uarz0yRC4Ei9VxqyrFTozN4u//9oADAMBAAIAAwAAABDDP//EABYRAQEBAAAAAAAAAAAAAAAAAAEAEf/aAAgBAwEBPxDYyAv/xAAXEQEBAQEAAAAAAAAAAAAAAAABABFx/9oACAECAQE/EC9Sav/EABsQAQEAAgMBAAAAAAAAAAAAAAERACExUWGB/9oACAEBAAE/EE11IYkaRPbct7DYjWyJ7MoiLcfPIp3zydOCzEwPg3VwQColz//Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process2&quot;
        title=&quot;process2&quot;
        src=&quot;/static/9e28ce59464b76d43fc4dea8a7dca175/4b190/process2.jpg&quot;
        srcset=&quot;/static/9e28ce59464b76d43fc4dea8a7dca175/e07e9/process2.jpg 200w,
/static/9e28ce59464b76d43fc4dea8a7dca175/066f9/process2.jpg 400w,
/static/9e28ce59464b76d43fc4dea8a7dca175/4b190/process2.jpg 800w,
/static/9e28ce59464b76d43fc4dea8a7dca175/e5166/process2.jpg 1200w,
/static/9e28ce59464b76d43fc4dea8a7dca175/5e3c2/process2.jpg 1288w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;このタイプはバッテリーから直接電源を取るタイプなのでそのまま取り付け。ただ直付けは若干暗電流が気になります。&lt;/p&gt;
&lt;p&gt;作業自体は 1 時間もかからない位で終了&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/2243b5967b2ff40467538db230d7a8cb/5e3c2/process5.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAIEBf/EABUBAQEAAAAAAAAAAAAAAAAAAAEA/9oADAMBAAIQAxAAAAHNVryrJwf/xAAaEAADAAMBAAAAAAAAAAAAAAAAAQIEEhMy/9oACAEBAAEFAqbo1SMWZ4+CZ2GuZ//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EAB8QAAIBAgcAAAAAAAAAAAAAAAABIRJhAhEiMUFRkf/aAAgBAQAGPwLjwlRYzb3cSOrDNjT0Un//xAAbEAEAAwEAAwAAAAAAAAAAAAABABEhMUFR4f/aAAgBAQABPyEDShAi2fK03gCIeCNIILionPGjy/kRYqvU/9oADAMBAAIAAwAAABBf7//EABURAQEAAAAAAAAAAAAAAAAAAAAB/9oACAEDAQE/EEf/xAAXEQEBAQEAAAAAAAAAAAAAAAABABEx/9oACAECAQE/EHSe3//EAB0QAQABBQADAAAAAAAAAAAAAAERACExQXFRgcH/2gAIAQEAAT8QNjyCAHLhRgQZUEGIKQLnBkthje/dC9BA4ejPykglFKKXgmDoN7pSQsxYe7r/2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process5&quot;
        title=&quot;process5&quot;
        src=&quot;/static/2243b5967b2ff40467538db230d7a8cb/4b190/process5.jpg&quot;
        srcset=&quot;/static/2243b5967b2ff40467538db230d7a8cb/e07e9/process5.jpg 200w,
/static/2243b5967b2ff40467538db230d7a8cb/066f9/process5.jpg 400w,
/static/2243b5967b2ff40467538db230d7a8cb/4b190/process5.jpg 800w,
/static/2243b5967b2ff40467538db230d7a8cb/e5166/process5.jpg 1200w,
/static/2243b5967b2ff40467538db230d7a8cb/5e3c2/process5.jpg 1288w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;こんな的当な配線でいいのだろうかと心配になります(汗)&lt;/p&gt;
&lt;p&gt;実際に点灯している時の画像がこちら&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/b8746a7ffffc4db805b67cdf804062f7/5e3c2/process6.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABAAC/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhADEAAAAc4GkBOo/8QAGhAAAgMBAQAAAAAAAAAAAAAAAQIAAxESE//aAAgBAQABBQJQCOA0sXl63yej5P/EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EACAQAAEDAgcAAAAAAAAAAAAAAAEAAhEDYRAiM0FRgZH/2gAIAQEABj8CzUQTYrQeO0W8KIPqja5w/8QAGhAAAwEBAQEAAAAAAAAAAAAAARExACFBYf/aAAgBAQABPyE64S0xTFPk5nelozfgYEbV6HEss7//2gAMAwEAAgADAAAAEFD/AP/EABURAQEAAAAAAAAAAAAAAAAAAAAR/9oACAEDAQE/EIj/xAAWEQEBAQAAAAAAAAAAAAAAAAAAEQH/2gAIAQIBAT8Quq//xAAeEAEBAAICAgMAAAAAAAAAAAABEQAhQWExUXGBkf/aAAgBAQABPxCGdSEj9feBcMWB23rPKBWjnInfqOp8UyVY1CJ+BitCvWf/2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process6&quot;
        title=&quot;process6&quot;
        src=&quot;/static/b8746a7ffffc4db805b67cdf804062f7/4b190/process6.jpg&quot;
        srcset=&quot;/static/b8746a7ffffc4db805b67cdf804062f7/e07e9/process6.jpg 200w,
/static/b8746a7ffffc4db805b67cdf804062f7/066f9/process6.jpg 400w,
/static/b8746a7ffffc4db805b67cdf804062f7/4b190/process6.jpg 800w,
/static/b8746a7ffffc4db805b67cdf804062f7/e5166/process6.jpg 1200w,
/static/b8746a7ffffc4db805b67cdf804062f7/5e3c2/process6.jpg 1288w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/9c94e0771e97b4bae18a225fc376f887/5e3c2/process7.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAQBAgP/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAABTXygChH/xAAbEAABBAMAAAAAAAAAAAAAAAAAAQIDERASE//aAAgBAQABBQKGLoSM0WhHUK68f//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABURAQEAAAAAAAAAAAAAAAAAAAAR/9oACAECAQE/AUf/xAAYEAACAwAAAAAAAAAAAAAAAAAAAREgMf/aAAgBAQAGPwLUQ6//xAAbEAEAAgIDAAAAAAAAAAAAAAABABEQITFBYf/aAAgBAQABPyG2gD73L1Nk0UYvCJh//9oADAMBAAIAAwAAABAUP//EABYRAQEBAAAAAAAAAAAAAAAAAAABEf/aAAgBAwEBPxC1r//EABURAQEAAAAAAAAAAAAAAAAAAAEQ/9oACAECAQE/EAj/xAAZEAEBAQEBAQAAAAAAAAAAAAABEQAhMbH/2gAIAQEAAT8QA1ZQUyTg3T35uoCjKNN6RM9dd//Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process7&quot;
        title=&quot;process7&quot;
        src=&quot;/static/9c94e0771e97b4bae18a225fc376f887/4b190/process7.jpg&quot;
        srcset=&quot;/static/9c94e0771e97b4bae18a225fc376f887/e07e9/process7.jpg 200w,
/static/9c94e0771e97b4bae18a225fc376f887/066f9/process7.jpg 400w,
/static/9c94e0771e97b4bae18a225fc376f887/4b190/process7.jpg 800w,
/static/9c94e0771e97b4bae18a225fc376f887/e5166/process7.jpg 1200w,
/static/9c94e0771e97b4bae18a225fc376f887/5e3c2/process7.jpg 1288w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;値段の割には見た目もスッキリして結構気に入ってます。
自作 PC でもそうですが光物は楽しいですね。&lt;/p&gt;
&lt;p&gt;取り付けから 1 ヶ月ほど立ちますが無事問題なく動作しています。&lt;/p&gt;</content:encoded></item><item><title><![CDATA[約半世紀前のレコードプレーヤーの修理してみた]]></title><description><![CDATA[…]]></description><link>https://blog.icchi.me/fix-record-player</link><guid isPermaLink="false">https://blog.icchi.me/fix-record-player</guid><pubDate>Tue, 18 Mar 2014 12:13:00 GMT</pubDate><content:encoded>&lt;p&gt;この前、ばあちゃんが誕生日を迎えるので何かしてあげたいと思っていた矢先、ふとばあちゃんが 「久々にレコードが聞きたいな」と言っているのを耳にしました&lt;/p&gt;
&lt;p&gt;これだと思い壊れたレコードプレーヤーを直すことに。とりあえずホコリまみれレコードプレーヤーを引っ張っり出してきました。&lt;/p&gt;
&lt;p&gt;これがその YAMAHA 製レコードプレーヤー。めっちゃ重かった...&lt;/p&gt;
&lt;p&gt;50 年くらい前に買ったものらしいのですが、なかり頑丈な作りで想像よりもかなりしっかりしてます。&lt;/p&gt;
&lt;p&gt;50 年前となると僕よりも 2 倍以上年上の大先輩。すごく歴史を感じます。&lt;/p&gt;
&lt;p&gt;ばあちゃんによるとターンテーブル(レコードを載せて回る台)が動かないのに加え、ダイアルを回しても反応がないらしい。&lt;/p&gt;
&lt;p&gt;電源を入れるとディスプレイが光るので回路は生きてる。あと確かにターンテーブルは回らないが何かの動作音は聞こえます。&lt;/p&gt;
&lt;p&gt;とりあえず簡単にばらしてみました&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/0d5f2884bba189c8d0e50f759a9a48db/5e3c2/record-player1.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAABAADBf/EABYBAQEBAAAAAAAAAAAAAAAAAAEAAv/aAAwDAQACEAMQAAABxD1S5Qzaf//EABoQAAIDAQEAAAAAAAAAAAAAAAACAQMREiH/2gAIAQEAAQUCldGXkwmv1kIrTP/EABYRAAMAAAAAAAAAAAAAAAAAAAEQIf/aAAgBAwEBPwExf//EABcRAQADAAAAAAAAAAAAAAAAAAECEBH/2gAIAQIBAT8BjiV//8QAHBAAAQMFAAAAAAAAAAAAAAAAAAEiMRAREiFB/9oACAEBAAY/AnXpJiscNjlP/8QAHBAAAgIDAQEAAAAAAAAAAAAAAAERIUFRcTGR/9oACAEBAAE/IYbTpVQSrvhDH0hWS3rQ6XoKLOm7XD//2gAMAwEAAgADAAAAEP8AD//EABYRAQEBAAAAAAAAAAAAAAAAAAEAEf/aAAgBAwEBPxAqsb//xAAWEQEBAQAAAAAAAAAAAAAAAAABABH/2gAIAQIBAT8QWgtL/8QAHRABAAICAgMAAAAAAAAAAAAAAQARIUFRcYGh8P/aAAgBAQABPxA0dLDnqDoBpME8y1cBqy/UyIIMOVx1KwAtSGmKpvQC/MM//9k=&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;record player1&quot;
        title=&quot;record player1&quot;
        src=&quot;/static/0d5f2884bba189c8d0e50f759a9a48db/4b190/record-player1.jpg&quot;
        srcset=&quot;/static/0d5f2884bba189c8d0e50f759a9a48db/e07e9/record-player1.jpg 200w,
/static/0d5f2884bba189c8d0e50f759a9a48db/066f9/record-player1.jpg 400w,
/static/0d5f2884bba189c8d0e50f759a9a48db/4b190/record-player1.jpg 800w,
/static/0d5f2884bba189c8d0e50f759a9a48db/e5166/record-player1.jpg 1200w,
/static/0d5f2884bba189c8d0e50f759a9a48db/5e3c2/record-player1.jpg 1288w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;上の部分を引っこ抜くと&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/afdf441eba7d8fd44905789b6a76d4b8/5e3c2/record-player2.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABQAC/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhADEAAAARWClAu3Wf/EABsQAAMAAgMAAAAAAAAAAAAAAAECAwAEERIx/9oACAEBAAEFAguJrzafPXPCKAxZQT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAbEAACAQUAAAAAAAAAAAAAAAAAARECEBIhMf/aAAgBAQAGPwIjlRFsWjZ//8QAGxAAAwACAwAAAAAAAAAAAAAAAAERQXExUZH/2gAIAQEAAT8htyPjbE/Bs1MqHEJkomnWj//aAAwDAQACAAMAAAAQYN//xAAVEQEBAAAAAAAAAAAAAAAAAAAxEP/aAAgBAwEBPxAZ/8QAFxEAAwEAAAAAAAAAAAAAAAAAAAEhEf/aAAgBAgEBPxDG1Cn/xAAdEAEAAgMAAwEAAAAAAAAAAAABABEhMUFhcaHw/9oACAEBAAE/EAQrufBARpyZOvyoipprEETixShd24A7XyWT3ClX7M//2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;record player2&quot;
        title=&quot;record player2&quot;
        src=&quot;/static/afdf441eba7d8fd44905789b6a76d4b8/4b190/record-player2.jpg&quot;
        srcset=&quot;/static/afdf441eba7d8fd44905789b6a76d4b8/e07e9/record-player2.jpg 200w,
/static/afdf441eba7d8fd44905789b6a76d4b8/066f9/record-player2.jpg 400w,
/static/afdf441eba7d8fd44905789b6a76d4b8/4b190/record-player2.jpg 800w,
/static/afdf441eba7d8fd44905789b6a76d4b8/e5166/record-player2.jpg 1200w,
/static/afdf441eba7d8fd44905789b6a76d4b8/5e3c2/record-player2.jpg 1288w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;よく見ると&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/4140e3f0402f2ed953ead02fd8cfdb09/5e3c2/record-player3.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAECAwQF/8QAFQEBAQAAAAAAAAAAAAAAAAAAAQD/2gAMAwEAAhADEAAAAeZJWkzaD//EABkQAAIDAQAAAAAAAAAAAAAAAAECAAMREv/aAAgBAQABBQLkmcQVaEtyBwTVeqr/AP/EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABURAQEAAAAAAAAAAAAAAAAAAAAh/9oACAECAQE/AVf/xAAYEAACAwAAAAAAAAAAAAAAAAAAAREhMf/aAAgBAQAGPwIVqzTCSGj/xAAcEAADAAIDAQAAAAAAAAAAAAAAAREhMUFhcaH/2gAIAQEAAT8hWhPIWsutcirL4Eb0NHIyVun/2gAMAwEAAgADAAAAEEwf/8QAFhEBAQEAAAAAAAAAAAAAAAAAABEh/9oACAEDAQE/EKx//8QAGBEAAgMAAAAAAAAAAAAAAAAAAAERITH/2gAIAQIBAT8QgdsP/8QAGxABAQADAQEBAAAAAAAAAAAAAREAIUFhMVH/2gAIAQEAAT8QOG142MoSDQAh9OYQYeKwnR8hbr9xmBStnXHyKWhzWf/Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;record player3&quot;
        title=&quot;record player3&quot;
        src=&quot;/static/4140e3f0402f2ed953ead02fd8cfdb09/4b190/record-player3.jpg&quot;
        srcset=&quot;/static/4140e3f0402f2ed953ead02fd8cfdb09/e07e9/record-player3.jpg 200w,
/static/4140e3f0402f2ed953ead02fd8cfdb09/066f9/record-player3.jpg 400w,
/static/4140e3f0402f2ed953ead02fd8cfdb09/4b190/record-player3.jpg 800w,
/static/4140e3f0402f2ed953ead02fd8cfdb09/e5166/record-player3.jpg 1200w,
/static/4140e3f0402f2ed953ead02fd8cfdb09/5e3c2/record-player3.jpg 1288w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;これだ...完全にベルトっぽいのが切れてました。&lt;/p&gt;
&lt;p&gt;調べてみると大抵のレコードプレーヤーは軸部分の回転をベルトを介してターンテーブルを回しているようで、この手の故障が一番多いんだそうです。&lt;/p&gt;
&lt;p&gt;ベルトを接着剤を使って補修したところで、ダイアル部分の修理へ。&lt;/p&gt;
&lt;p&gt;ただ...実はこのダイアル壊したの僕なんですよね...&lt;/p&gt;
&lt;p&gt;小さい時に何かと機械類を触るのが大好きだったんですが、当然こういった大きな機械には興味津々なわけでダイアルと回しまくっているうちにダイアルが空回りしてしまうようになったという...(汗)&lt;/p&gt;
&lt;p&gt;約 20 年の月日を経て自分で壊したものを自分で直す時が来るなんて...&lt;/p&gt;
&lt;p&gt;と少し時の流れの早さと自分の成長にしんみりしたところで回路部分を本体から外します。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/edc3e310b1f9dd5bec8b2a40b60bbfd0/5e3c2/record-player5.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAQCA//EABYBAQEBAAAAAAAAAAAAAAAAAAIBA//aAAwDAQACEAMQAAAB1xUizLWb/8QAGxAAAgIDAQAAAAAAAAAAAAAAAQIAAwQREhP/2gAIAQEAAQUCcHrYVi9GxjWMRiIJ5JP/xAAXEQEAAwAAAAAAAAAAAAAAAAAAAREh/9oACAEDAQE/Aalr/8QAFxEAAwEAAAAAAAAAAAAAAAAAAAERAv/aAAgBAgEBPwG5hUf/xAAdEAABAwUBAAAAAAAAAAAAAAAAASFhAiIxMpGh/9oACAEBAAY/AogdemPC6odzVD//xAAaEAADAQEBAQAAAAAAAAAAAAAAARExIYGh/9oACAEBAAE/IUWr6ysEo9apuIz9XU0TYjwv/9oADAMBAAIAAwAAABDs/wD/xAAWEQEBAQAAAAAAAAAAAAAAAAARAAH/2gAIAQMBAT8QxGJ//8QAFhEBAQEAAAAAAAAAAAAAAAAAAAFx/9oACAECAQE/ELA1f//EABwQAQACAgMBAAAAAAAAAAAAAAEAESExQVFhcf/aAAgBAQABPxBYUspl+sRyqOOh5G2WSGmm9m37CSpGeCGKx9lz/9k=&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;record player5&quot;
        title=&quot;record player5&quot;
        src=&quot;/static/edc3e310b1f9dd5bec8b2a40b60bbfd0/4b190/record-player5.jpg&quot;
        srcset=&quot;/static/edc3e310b1f9dd5bec8b2a40b60bbfd0/e07e9/record-player5.jpg 200w,
/static/edc3e310b1f9dd5bec8b2a40b60bbfd0/066f9/record-player5.jpg 400w,
/static/edc3e310b1f9dd5bec8b2a40b60bbfd0/4b190/record-player5.jpg 800w,
/static/edc3e310b1f9dd5bec8b2a40b60bbfd0/e5166/record-player5.jpg 1200w,
/static/edc3e310b1f9dd5bec8b2a40b60bbfd0/5e3c2/record-player5.jpg 1288w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;これが 50 年前の回路か、と思いふける間もなく
構造のシンプルさに感動しました。&lt;/p&gt;
&lt;p&gt;なんとダイアルの先は糸で回路部分のダイアルと直結しているだけでした。ディスプレイのゲージもその動作に連動するように棒が動くようになっているだけ。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/f31f070ac26813ec1696fac445ea61c0/5e3c2/record-player7.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAIEBf/EABUBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAHJTZgljHKP/8QAGhAAAgIDAAAAAAAAAAAAAAAAAAIBAwQQEf/aAAgBAQABBQInT4g1DwdP/8QAFREBAQAAAAAAAAAAAAAAAAAAEBH/2gAIAQMBAT8Bh//EABYRAAMAAAAAAAAAAAAAAAAAAAECEP/aAAgBAgEBPwENP//EABYQAAMAAAAAAAAAAAAAAAAAABAgYf/aAAgBAQAGPwJIP//EABsQAQACAwEBAAAAAAAAAAAAAAEAESFRYTGR/9oACAEBAAE/IVNTD0SX2UFjXYYuHYZYwV8n/9oADAMBAAIAAwAAABBLD//EABYRAQEBAAAAAAAAAAAAAAAAAAEAEf/aAAgBAwEBPxBRZf/EABcRAQEBAQAAAAAAAAAAAAAAAAEAETH/2gAIAQIBAT8QB5aX/8QAHhABAAICAQUAAAAAAAAAAAAAAQARITFBUWGBkbH/2gAIAQEAAT8QRqjGukHJZuD6vcBKbjavkEALJseGBaQHYz//2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;record player7&quot;
        title=&quot;record player7&quot;
        src=&quot;/static/f31f070ac26813ec1696fac445ea61c0/4b190/record-player7.jpg&quot;
        srcset=&quot;/static/f31f070ac26813ec1696fac445ea61c0/e07e9/record-player7.jpg 200w,
/static/f31f070ac26813ec1696fac445ea61c0/066f9/record-player7.jpg 400w,
/static/f31f070ac26813ec1696fac445ea61c0/4b190/record-player7.jpg 800w,
/static/f31f070ac26813ec1696fac445ea61c0/e5166/record-player7.jpg 1200w,
/static/f31f070ac26813ec1696fac445ea61c0/5e3c2/record-player7.jpg 1288w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/d378b1e66cf1d9c2b9290a7bf716fbf6/5e3c2/record-player8.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAIDBP/EABYBAQEBAAAAAAAAAAAAAAAAAAEAAv/aAAwDAQACEAMQAAABwu2TLYoN/8QAGxAAAgIDAQAAAAAAAAAAAAAAAAIBEQMEEyL/2gAIAQEAAQUC9s8ci2NlMiwhZ//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABwQAAICAgMAAAAAAAAAAAAAAAECACESQRBRYf/aAAgBAQAGPwLHfstiZRwHUDubbXP/xAAbEAACAwADAAAAAAAAAAAAAAAAAREhMUFhsf/aAAgBAQABPyFJ6DS7MSNktobLfwBN/Dobl76Ox//aAAwDAQACAAMAAAAQoA//xAAWEQEBAQAAAAAAAAAAAAAAAAAAARH/2gAIAQMBAT8QkY//xAAXEQEAAwAAAAAAAAAAAAAAAAABEBEh/9oACAECAQE/EFy2P//EABoQAQEBAQEBAQAAAAAAAAAAAAERIQBBYYH/2gAIAQEAAT8QHoa5ofvFWzPm/Asq8rVfew+50EhWGoNNM4gTi3d4woO7j3//2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;record player8&quot;
        title=&quot;record player8&quot;
        src=&quot;/static/d378b1e66cf1d9c2b9290a7bf716fbf6/4b190/record-player8.jpg&quot;
        srcset=&quot;/static/d378b1e66cf1d9c2b9290a7bf716fbf6/e07e9/record-player8.jpg 200w,
/static/d378b1e66cf1d9c2b9290a7bf716fbf6/066f9/record-player8.jpg 400w,
/static/d378b1e66cf1d9c2b9290a7bf716fbf6/4b190/record-player8.jpg 800w,
/static/d378b1e66cf1d9c2b9290a7bf716fbf6/e5166/record-player8.jpg 1200w,
/static/d378b1e66cf1d9c2b9290a7bf716fbf6/5e3c2/record-player8.jpg 1288w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;切れた糸を新品のタコ糸に交換してあげると無事ちゃんと直りました!&lt;/p&gt;
&lt;p&gt;今回の修理で特に驚いたのが昔の製品のシンプルさと頑丈さです。
今よりもひとつの製品を長く大切に使っていたってことが製品を見て伝わってきました。&lt;/p&gt;
&lt;p&gt;昔の人は良い物作るなと関心しまくりです。&lt;/p&gt;
&lt;p&gt;そういう点は今の人々も見らなうべきだと思います。個人的には新しいものも大好きですが、長く使い愛着のわいた製品はもっと好きになるわけで。&lt;/p&gt;
&lt;p&gt;あとレコードが直ったことを言うとばあちゃんはものすごい喜んでくれました。満足いく誕生日プレゼントになったようで良かったです。&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Aruduinoを使った重量計測システムを作ってみた]]></title><description><![CDATA[はじめに 今回はあるものづくりをする過程で重量計算をする必要が出てきたので Arduino…]]></description><link>https://blog.icchi.me/make-gravimeter-with-arduino</link><guid isPermaLink="false">https://blog.icchi.me/make-gravimeter-with-arduino</guid><pubDate>Sat, 15 Feb 2014 16:30:00 GMT</pubDate><content:encoded>&lt;h2 id=&quot;はじめに&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB&quot; aria-label=&quot;はじめに permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;はじめに&lt;/h2&gt;
&lt;p&gt;今回はあるものづくりをする過程で重量計算をする必要が出てきたので Arduino と圧力センサーを使って簡単なものを作ってみることにしました。&lt;/p&gt;
&lt;p&gt;要件は以下のようなものです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;精度はあまり求めずおおまかな重量測定&lt;/li&gt;
&lt;li&gt;ある一定の重量を超えた時にブザーを鳴らす&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;また重量は通常では 20kg 以下を想定しています。&lt;/p&gt;
&lt;h2 id=&quot;1-準備物&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#1-%E6%BA%96%E5%82%99%E7%89%A9&quot; aria-label=&quot;1 準備物 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;1. 準備物&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.amazon.co.jp/gp/product/B008GRTSV6/ref=as_li_tl?ie=UTF8&amp;camp=247&amp;creative=1211&amp;creativeASIN=B008GRTSV6&amp;linkCode=as2&amp;tag=haruyuki04-22&amp;linkId=826cb16dad367b86f5e2b4c8dfc912b9&quot;&gt;Arduino Uno Rev3 ATmega328 マイコンボード A000066&lt;/a&gt;&lt;img src=&quot;//ir-jp.amazon-adsystem.com/e/ir?t=haruyuki04-22&amp;l=am2&amp;o=9&amp;a=B008GRTSV6&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt;&lt;/li&gt;
&lt;li&gt;圧力センサ FSR-406&lt;/li&gt;
&lt;li&gt;電子ブザー HDB06LFPN&lt;/li&gt;
&lt;li&gt;抵抗 (今回は 10kΩ を使用)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/0cb8e8d7137a463e8f46c1ff7d4d26a4/eea4a/parts.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 74.5%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAUCAwT/xAAWAQEBAQAAAAAAAAAAAAAAAAACAQP/2gAMAwEAAhADEAAAAbs7BZmwiC//xAAaEAACAgMAAAAAAAAAAAAAAAABAgARAxAS/9oACAEBAAEFAmDU5ozIw5ajr//EABYRAAMAAAAAAAAAAAAAAAAAAAEQEf/aAAgBAwEBPwGlf//EABYRAAMAAAAAAAAAAAAAAAAAAAEQEf/aAAgBAgEBPwGBf//EABgQAAIDAAAAAAAAAAAAAAAAAAAQASIx/9oACAEBAAY/AquTF//EABsQAQACAgMAAAAAAAAAAAAAAAEAMRARQWGh/9oACAEBAAE/IVUb7ggKYGOrqcn3Fn//2gAMAwEAAgADAAAAEJAf/8QAFhEBAQEAAAAAAAAAAAAAAAAAARAh/9oACAEDAQE/EFHJ/8QAFxEBAQEBAAAAAAAAAAAAAAAAAQARIf/aAAgBAgEBPxAE7Zf/xAAcEAEAAwACAwAAAAAAAAAAAAABABEhMUFxgZH/2gAIAQEAAT8QXYjV4h3OBv0BVWq3iou9Qcq+g+y4I2Fat9EsbaPBk//Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;parts&quot;
        title=&quot;parts&quot;
        src=&quot;/static/0cb8e8d7137a463e8f46c1ff7d4d26a4/4b190/parts.jpg&quot;
        srcset=&quot;/static/0cb8e8d7137a463e8f46c1ff7d4d26a4/e07e9/parts.jpg 200w,
/static/0cb8e8d7137a463e8f46c1ff7d4d26a4/066f9/parts.jpg 400w,
/static/0cb8e8d7137a463e8f46c1ff7d4d26a4/4b190/parts.jpg 800w,
/static/0cb8e8d7137a463e8f46c1ff7d4d26a4/e5166/parts.jpg 1200w,
/static/0cb8e8d7137a463e8f46c1ff7d4d26a4/eea4a/parts.jpg 1280w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;主な準備物は上の 3 つ。&lt;/p&gt;
&lt;p&gt;Arduino 以外は全ていつもお世話になっている秋月電子さんで購入しました。&lt;/p&gt;
&lt;h2 id=&quot;2-接続&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#2-%E6%8E%A5%E7%B6%9A&quot; aria-label=&quot;2 接続 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;2. 接続&lt;/h2&gt;
&lt;p&gt;Arduino との接続も分圧を利用するだけなので非常にシンプル。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 519px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/be6ae763834240d68c2274d46edf3609/b23ad/circuit-figure.png&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 82.5%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAARCAIAAABSJhvpAAAACXBIWXMAAAsSAAALEgHS3X78AAACsUlEQVQ4y5WTbUhTURjHD2RmVkjJSCjK8AUS/RBF9Ckk+hT2IfsYIQX5IYT50nRvLoMQUnN523JT50jNyCJKzc10w17unVvde+7LrMRcm6kJu9M7N2tubOvqzCQU7cfDw3MO5zl/nnOeB0Q3IxKJ8H56evqbwxHbMRqNwuJi1u0Gm2dGwsFo9GRe/p70rAuPTVcbdAWSqusFl/PvtYGtyHLhaOrFK+D4mW2yJkFJ7RFh9QlhVZKwDsRObEQ4HOYPeBd+ZdU8ihNrksTqXVJNglgDZLqDiuYtKc//DGTUdGwva9h7A0kUqQQSJE2uTJfeB4uLi3P+OY/fw3vWz3ILHOtjY/Gsf9azMMt63W6P59RtbWKFOkGm3V2GpIiRnFvqozIETH2fQmnUbDdjdszEmCx2i4k2DX8e7sG6jZbXQzZDb1+nuf3huVLZPkVLXGXzTvGDZGnjYUVzplQFnE4nxCFDMhSkaEhTJMUHDMWgVkv/u17M+IyEuHNiIvemMlneFK9oiS9XC2SaQ3JNqhgBDocDRVGr1Tr8F4vVYkOJN8/Rp10Dgy+GLBjxNbcSEVRq46paj4nuHBApU+TaDEkDcDmdOI6TEK4aJAg7bTe8Nap7Wj9ChoBwbNxxWlS9oxQB5Y2Z1yrSihSJpcr9JXVLyhiG2XisK/DSFI63G16V6ZtsH2z8embmR9t7oujJwKU2Q7FKJ2rprDUT3eQocLlcBEFQFEX+AZLkF/tI12C/pF1HMQyB4263e/Xb1gImJyeXEiCkaZq/hfc4QYyOfOrs75N2tEKK5KtgWfafXgovGwgEAvPL+Hy+mOe8XCQYso6N3jW8DIZCXq83GAyu20Jgo66qqa8/ez5vfHmSYk26fvLaYlYmgeNysrMBACqVil+GQqH/U9br9YWFhfwYr/tUMX4D7ScsV4HV708AAAAASUVORK5CYII=&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;circuit figure&quot;
        title=&quot;circuit figure&quot;
        src=&quot;/static/be6ae763834240d68c2274d46edf3609/b23ad/circuit-figure.png&quot;
        srcset=&quot;/static/be6ae763834240d68c2274d46edf3609/772e8/circuit-figure.png 200w,
/static/be6ae763834240d68c2274d46edf3609/e17e5/circuit-figure.png 400w,
/static/be6ae763834240d68c2274d46edf3609/b23ad/circuit-figure.png 519w&quot;
        sizes=&quot;(max-width: 519px) 100vw, 519px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;h2 id=&quot;3-重量表示&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#3-%E9%87%8D%E9%87%8F%E8%A1%A8%E7%A4%BA&quot; aria-label=&quot;3 重量表示 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;3. 重量表示&lt;/h2&gt;
&lt;p&gt;表示に関してはシリアル通信を使って PC モニタで見てももちろんいいんですが、&lt;a href=&quot;https://blog.icchi.me/test-aqm0802a-with-arduino&quot;&gt;以前作った I2C 通信の LCD&lt;/a&gt;があったので今回はそれを使いたいと思います。&lt;/p&gt;
&lt;p&gt;LCD モジュールの接続は上の接続例にそのまま以前の接続を追加してください。&lt;/p&gt;
&lt;h2 id=&quot;4-プログラム&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#4-%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0&quot; aria-label=&quot;4 プログラム permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;4. プログラム&lt;/h2&gt;
&lt;p&gt;測定した電圧を重量に近似する計算部分は以下のサイト様のものを使わせていただきました。ありがとうございます。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.eleki-jack.com/FC/2011/10/arduinofsr2.html&quot;&gt;https://www.eleki-jack.com/FC/2011/10/arduinofsr2.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;あとはそれを使ってプログラムを Arduino に書き込むだけ。&lt;/p&gt;
&lt;p&gt;書き込んだソースはこちら&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;c&quot;&gt;&lt;pre style=&quot;counter-reset: linenumber NaN&quot; class=&quot;language-c line-numbers&quot;&gt;&lt;code class=&quot;language-c&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;/*
use follwing device
-LCD(AQM0802A)
-FSR406
*/&lt;/span&gt;

&lt;span class=&quot;token macro property&quot;&gt;#&lt;span class=&quot;token directive keyword&quot;&gt;include&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&amp;lt;Wire.h&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token macro property&quot;&gt;#&lt;span class=&quot;token directive keyword&quot;&gt;include&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&amp;lt;ST7032.h&gt;&lt;/span&gt;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; hone_pin &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; sensor_pin &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;float&lt;/span&gt; data &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;float&lt;/span&gt; weight &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;float&lt;/span&gt; R1 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;10.0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// register R1&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;float&lt;/span&gt; lim &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;20000&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
ST7032 lcd&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;float&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;calweight&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;float&lt;/span&gt; data&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;setup&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token function&quot;&gt;pinMode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;hone_pin&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; OUTPUT&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    lcd&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;begin&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    lcd&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;setContrast&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// コントラスト設定&lt;/span&gt;
    lcd&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Weight&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    lcd&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;setCursor&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    lcd&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;g&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;loop&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    data &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;analogRead&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;sensor_pin&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    weight &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;calweight&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;data&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;weight&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0.5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; weight &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0.0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;  lcd&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;setCursor&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;  lcd&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;  lcd&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;setCursor&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;  lcd&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;weight&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;  &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;weight&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;lim&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;hone_pin&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; HIGH&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;hone_pin&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; LOW&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token function&quot;&gt;delay&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;250&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;float&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;calweight&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;float&lt;/span&gt; data&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;float&lt;/span&gt; g&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;float&lt;/span&gt; rf&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

    rf&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;R1&lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt;data&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1024.0&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;data&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    g &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;880.79&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;rf &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0.05&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;token comment&quot;&gt;// + 47.962;&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;// fg= 1273.1/rf + 393.44&lt;/span&gt;

    &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; g&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;white-space: normal; width: auto; left: 0;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&quot;終わりに&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E7%B5%82%E3%82%8F%E3%82%8A%E3%81%AB&quot; aria-label=&quot;終わりに permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;終わりに&lt;/h2&gt;
&lt;p&gt;実際に測定している画像がこちら&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/6e587159743409040cab495a3d08a39e/eea4a/gravimeter-with-arduino.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABAUA/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhADEAAAAWiry4Hq+r//xAAZEAEBAAMBAAAAAAAAAAAAAAACAQADERP/2gAIAQEAAQUC2uC7ZYluXVlC9OC5/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAGxAAAwACAwAAAAAAAAAAAAAAAAERAiEQEkH/2gAIAQEABj8CVVLXl7GjXVcJm8Uf/8QAGxABAAMBAAMAAAAAAAAAAAAAAQARITFhcZH/2gAIAQEAAT8hZNRQTjROhR6iPh1KBdbLheuox0IfJP/aAAwDAQACAAMAAAAQ8M//xAAVEQEBAAAAAAAAAAAAAAAAAAAAIf/aAAgBAwEBPxBX/8QAFhEBAQEAAAAAAAAAAAAAAAAAACFR/9oACAECAQE/EEx//8QAGhABAAIDAQAAAAAAAAAAAAAAAQARITFBUf/aAAgBAQABPxB6bwC+8gM4m2loHYWSIUi2fcykQRpS6h1q0UmNx27Ois//2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;gravimeter with arduino&quot;
        title=&quot;gravimeter with arduino&quot;
        src=&quot;/static/6e587159743409040cab495a3d08a39e/4b190/gravimeter-with-arduino.jpg&quot;
        srcset=&quot;/static/6e587159743409040cab495a3d08a39e/e07e9/gravimeter-with-arduino.jpg 200w,
/static/6e587159743409040cab495a3d08a39e/066f9/gravimeter-with-arduino.jpg 400w,
/static/6e587159743409040cab495a3d08a39e/4b190/gravimeter-with-arduino.jpg 800w,
/static/6e587159743409040cab495a3d08a39e/e5166/gravimeter-with-arduino.jpg 1200w,
/static/6e587159743409040cab495a3d08a39e/eea4a/gravimeter-with-arduino.jpg 1280w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;これでひとまず完成です。
プログラムは的当に作ったものなのでバグ等あったらすみません(笑)&lt;/p&gt;
&lt;p&gt;あと圧力センサの特性として結果が安定するまでに多少時間がかかります。
例えば 10 の圧力を加えた際に 9 まではすぐに反応するがなかなか 10 まではいってくれません。&lt;/p&gt;
&lt;p&gt;より精度を求めるならば実際の電子体重計で使われているひずみゲージ式ロードセルを使うのが一番だと思います。 自分はじめは使ってみようと思ったのですが用意する手間と歪みによる電気特性の変化を調べるのが面倒ということもあって今回は手軽な圧力センサを選びました。&lt;/p&gt;
&lt;p&gt;圧力センサはほんとに手軽なので精度を要しないちょっとした工作には向いているのではないかと思います。&lt;/p&gt;</content:encoded></item><item><title><![CDATA[AQM0802AをArduinoで使ってみる。]]></title><description><![CDATA[学校の実験で使うため秋月で手軽な LCD を購入することに。 そこで見つけたのがこちら  AQM0802A-RN-GBW I2C 通信を使った 8*2 の手軽な LCD です。
なんといってもお値段が 320 円というのが魅力。 今回はこれを Arduino…]]></description><link>https://blog.icchi.me/test-aqm0802a-with-arduino</link><guid isPermaLink="false">https://blog.icchi.me/test-aqm0802a-with-arduino</guid><pubDate>Mon, 13 Jan 2014 15:42:00 GMT</pubDate><content:encoded>&lt;p&gt;学校の実験で使うため秋月で手軽な LCD を購入することに。&lt;/p&gt;
&lt;p&gt;そこで見つけたのがこちら&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/44d8d4553989535fae0e343833fef060/eea4a/aqm0802a.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 74.5%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAQFAQP/xAAWAQEBAQAAAAAAAAAAAAAAAAACAAP/2gAMAwEAAhADEAAAAaCb07NdzA3/xAAbEAACAgMBAAAAAAAAAAAAAAABAgADEBITIf/aAAgBAQABBQI+TqpaXpsq1BMf/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFREBAQAAAAAAAAAAAAAAAAAAARD/2gAIAQIBAT8BSf/EABsQAAIBBQAAAAAAAAAAAAAAAAAQARESMUFR/9oACAEBAAY/Ai3apg7K/8QAGxABAAICAwAAAAAAAAAAAAAAAREhABBBUXH/2gAIAQEAAT8hqlrKM6G4ZcPWRS+mv//aAAwDAQACAAMAAAAQMN//xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAwEBPxAVn//EABYRAQEBAAAAAAAAAAAAAAAAAAABEf/aAAgBAgEBPxCEY//EAB0QAQADAAEFAAAAAAAAAAAAAAEAIUEQETFRcdH/2gAIAQEAAT8QYygNWFMcDsrzGgLYlqOdAOjt6+8f/9k=&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;aqm0802a&quot;
        title=&quot;aqm0802a&quot;
        src=&quot;/static/44d8d4553989535fae0e343833fef060/4b190/aqm0802a.jpg&quot;
        srcset=&quot;/static/44d8d4553989535fae0e343833fef060/e07e9/aqm0802a.jpg 200w,
/static/44d8d4553989535fae0e343833fef060/066f9/aqm0802a.jpg 400w,
/static/44d8d4553989535fae0e343833fef060/4b190/aqm0802a.jpg 800w,
/static/44d8d4553989535fae0e343833fef060/e5166/aqm0802a.jpg 1200w,
/static/44d8d4553989535fae0e343833fef060/eea4a/aqm0802a.jpg 1280w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://akizukidenshi.com/catalog/g/gP-06669/&quot;&gt;AQM0802A-RN-GBW&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I2C 通信を使った 8*2 の手軽な LCD です。
なんといってもお値段が 320 円というのが魅力。&lt;/p&gt;
&lt;p&gt;今回はこれを Arduino を使って動作させてみようと思います。
あとこれを使うにあたって、つまずいたところもあったので簡単にまとめておきます。&lt;/p&gt;
&lt;h2 id=&quot;1-準備物&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#1-%E6%BA%96%E5%82%99%E7%89%A9&quot; aria-label=&quot;1 準備物 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;1. 準備物&lt;/h2&gt;
&lt;p&gt;制御に用いる Arduino&lt;/p&gt;
&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.amazon.co.jp/gp/product/B008GRTSV6/ref=as_li_tl?ie=UTF8&amp;camp=247&amp;creative=1211&amp;creativeASIN=B008GRTSV6&amp;linkCode=as2&amp;tag=haruyuki04-22&amp;linkId=826cb16dad367b86f5e2b4c8dfc912b9&quot;&gt;Arduino Uno Rev3 ATmega328 マイコンボード A000066&lt;/a&gt;&lt;img src=&quot;//ir-jp.amazon-adsystem.com/e/ir?t=haruyuki04-22&amp;l=am2&amp;o=9&amp;a=B008GRTSV6&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;加えて、このモジュールを使用するために必要な電子部品&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;10kΩ 抵抗*2&lt;/li&gt;
&lt;li&gt;1μF コンデンサ*2&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;必要物はこれだけですが、AQM0802A には付属していないので用意する必要があります。&lt;/p&gt;
&lt;h2 id=&quot;2-ピッチ変換-ブレッドボードで使う方のみ&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#2-%E3%83%94%E3%83%83%E3%83%81%E5%A4%89%E6%8F%9B-%E3%83%96%E3%83%AC%E3%83%83%E3%83%89%E3%83%9C%E3%83%BC%E3%83%89%E3%81%A7%E4%BD%BF%E3%81%86%E6%96%B9%E3%81%AE%E3%81%BF&quot; aria-label=&quot;2 ピッチ変換 ブレッドボードで使う方のみ permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;2. ピッチ変換 (ブレッドボードで使う方のみ)&lt;/h2&gt;
&lt;p&gt;ブレッドボード上でテストしようと思ったのもつかの間、このモジュールのピッチは 1.5mm とブレッドボードのピッチ幅よりも小さいので以下のリンクのようなピッチ変換済のもの、またはピッチ変換基板を用意してあげると便利です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://akizukidenshi.com/catalog/g/gK-06795/&quot;&gt;https://akizukidenshi.com/catalog/g/gK-06795/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://akizukidenshi.com/catalog/g/gP-06794/&quot;&gt;https://akizukidenshi.com/catalog/g/gP-06794/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/6cd4da736b4ac30e9e656dc44d4dc6fa/eea4a/process4.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 74.5%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAQFAgP/xAAWAQEBAQAAAAAAAAAAAAAAAAACAQP/2gAMAwEAAhADEAAAAWlaM7FdDIb/AP/EABkQAQEAAwEAAAAAAAAAAAAAAAIBAAMQEf/aAAgBAQABBQJ3zJtiubyUIIef/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFREBAQAAAAAAAAAAAAAAAAAAARD/2gAIAQIBAT8BSf/EABcQAAMBAAAAAAAAAAAAAAAAAAAQESH/2gAIAQEABj8C0ihi/8QAGhAAAgMBAQAAAAAAAAAAAAAAABEBITEQUf/aAAgBAQABPyFN0FfoyRTjTLX7z//aAAwDAQACAAMAAAAQp9//xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAwEBPxAVn//EABURAQEAAAAAAAAAAAAAAAAAAAEQ/9oACAECAQE/EAJ//8QAGhABAAIDAQAAAAAAAAAAAAAAAQARECFBcf/aAAgBAQABPxALyka2gLL7hqBDnIk+5bWXP//Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process4&quot;
        title=&quot;process4&quot;
        src=&quot;/static/6cd4da736b4ac30e9e656dc44d4dc6fa/4b190/process4.jpg&quot;
        srcset=&quot;/static/6cd4da736b4ac30e9e656dc44d4dc6fa/e07e9/process4.jpg 200w,
/static/6cd4da736b4ac30e9e656dc44d4dc6fa/066f9/process4.jpg 400w,
/static/6cd4da736b4ac30e9e656dc44d4dc6fa/4b190/process4.jpg 800w,
/static/6cd4da736b4ac30e9e656dc44d4dc6fa/e5166/process4.jpg 1200w,
/static/6cd4da736b4ac30e9e656dc44d4dc6fa/eea4a/process4.jpg 1280w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;図のように頑張って足を広げてもブレボにはまらなかったため&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/a2b8387ddac84798520bb1d0c9172a57/eea4a/process1.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 74.5%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAABAABA//EABYBAQEBAAAAAAAAAAAAAAAAAAIBA//aAAwDAQACEAMQAAABSRBcnlzhf//EABoQAAICAwAAAAAAAAAAAAAAAAECABEDEBL/2gAIAQEAAQUCYUCZcbJ0p1//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAWEQADAAAAAAAAAAAAAAAAAAABEBH/2gAIAQIBAT8BMX//xAAVEAEBAAAAAAAAAAAAAAAAAAAQEf/aAAgBAQAGPwJj/8QAGBABAAMBAAAAAAAAAAAAAAAAARARQQD/2gAIAQEAAT8hYl2GnVCyX//aAAwDAQACAAMAAAAQ5P8A/8QAFhEAAwAAAAAAAAAAAAAAAAAAARAR/9oACAEDAQE/EKV//8QAFREBAQAAAAAAAAAAAAAAAAAAABH/2gAIAQIBAT8QEf/EABcQAQEBAQAAAAAAAAAAAAAAAAERADH/2gAIAQEAAT8QJpnGuxzTuGoOiYCXK7//2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process1&quot;
        title=&quot;process1&quot;
        src=&quot;/static/a2b8387ddac84798520bb1d0c9172a57/4b190/process1.jpg&quot;
        srcset=&quot;/static/a2b8387ddac84798520bb1d0c9172a57/e07e9/process1.jpg 200w,
/static/a2b8387ddac84798520bb1d0c9172a57/066f9/process1.jpg 400w,
/static/a2b8387ddac84798520bb1d0c9172a57/4b190/process1.jpg 800w,
/static/a2b8387ddac84798520bb1d0c9172a57/e5166/process1.jpg 1200w,
/static/a2b8387ddac84798520bb1d0c9172a57/eea4a/process1.jpg 1280w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;ユニバーサル基板をカットして&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/95b592ef640b59e2f1f0c26e86d96c78/eea4a/process2.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 74.5%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAIDBP/EABYBAQEBAAAAAAAAAAAAAAAAAAIBA//aAAwDAQACEAMQAAABeWjDiriAv//EABkQAAMBAQEAAAAAAAAAAAAAAAABAhESQv/aAAgBAQABBQKniV9Glw1Po//EABURAQEAAAAAAAAAAAAAAAAAABAR/9oACAEDAQE/Aaf/xAAVEQEBAAAAAAAAAAAAAAAAAAAQEf/aAAgBAgEBPwGH/8QAGBAAAwEBAAAAAAAAAAAAAAAAABAhEkH/2gAIAQEABj8CItcIv//EAB0QAAIBBAMAAAAAAAAAAAAAAAERABAxQWEhUXH/2gAIAQEAAT8h5a+oENLg4oWpeQ6ja+zT/9oADAMBAAIAAwAAABD0/wD/xAAVEQEBAAAAAAAAAAAAAAAAAAAREP/aAAgBAwEBPxBM/8QAFhEBAQEAAAAAAAAAAAAAAAAAARAR/9oACAECAQE/EEZP/8QAGxABAAMBAAMAAAAAAAAAAAAAAQARIUExYdH/2gAIAQEAAT8QtKKCwdj5sOAUwp81H2Lt3fY+TNgBanOEtn//2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process2&quot;
        title=&quot;process2&quot;
        src=&quot;/static/95b592ef640b59e2f1f0c26e86d96c78/4b190/process2.jpg&quot;
        srcset=&quot;/static/95b592ef640b59e2f1f0c26e86d96c78/e07e9/process2.jpg 200w,
/static/95b592ef640b59e2f1f0c26e86d96c78/066f9/process2.jpg 400w,
/static/95b592ef640b59e2f1f0c26e86d96c78/4b190/process2.jpg 800w,
/static/95b592ef640b59e2f1f0c26e86d96c78/e5166/process2.jpg 1200w,
/static/95b592ef640b59e2f1f0c26e86d96c78/eea4a/process2.jpg 1280w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/d30e548a1a2c6c4d52ff0deafab0f24a/eea4a/process3.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 74.5%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAMEAgX/xAAWAQEBAQAAAAAAAAAAAAAAAAACAQP/2gAMAwEAAhADEAAAAdJu5OSpFgv/xAAYEAEAAwEAAAAAAAAAAAAAAAACAAESA//aAAgBAQABBQJLNV1pTUQK5Yyp/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFREBAQAAAAAAAAAAAAAAAAAAEBH/2gAIAQIBAT8Bh//EABkQAAIDAQAAAAAAAAAAAAAAABAhAAERMf/aAAgBAQAGPwLS6nUP/8QAGxAAAQQDAAAAAAAAAAAAAAAAEQABEDEhUWH/2gAIAQEAAT8hzJOQa9QFjI2AXdx//9oADAMBAAIAAwAAABA3/wD/xAAWEQEBAQAAAAAAAAAAAAAAAAARARD/2gAIAQMBAT8Qa5//xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAgEBPxBAT//EABwQAQABBQEBAAAAAAAAAAAAAAEAESExQVFxgf/aAAgBAQABPxC1CmAHMcKhytRXIlEtdPGFlc1QfBXZKz//2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process3&quot;
        title=&quot;process3&quot;
        src=&quot;/static/d30e548a1a2c6c4d52ff0deafab0f24a/4b190/process3.jpg&quot;
        srcset=&quot;/static/d30e548a1a2c6c4d52ff0deafab0f24a/e07e9/process3.jpg 200w,
/static/d30e548a1a2c6c4d52ff0deafab0f24a/066f9/process3.jpg 400w,
/static/d30e548a1a2c6c4d52ff0deafab0f24a/4b190/process3.jpg 800w,
/static/d30e548a1a2c6c4d52ff0deafab0f24a/e5166/process3.jpg 1200w,
/static/d30e548a1a2c6c4d52ff0deafab0f24a/eea4a/process3.jpg 1280w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;こんな感じに的当にハンダ付けしました。&lt;/p&gt;
&lt;h2 id=&quot;3-arduino-との接続&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#3-arduino-%E3%81%A8%E3%81%AE%E6%8E%A5%E7%B6%9A&quot; aria-label=&quot;3 arduino との接続 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;3. Arduino との接続&lt;/h2&gt;
&lt;p&gt;接続表を作ってみましたので、それを見てください&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/1aac8780105320ac5378ffbab79856e0/772aa/circuit-figure.png&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 62.5%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAIAAAAmMtkJAAAACXBIWXMAAAsSAAALEgHS3X78AAABYklEQVQoz32SgY6DIBBE/f9vbKpFLZaKCihqW/We0pjaNLeJhmV3hhmWaPk3pml6bfF8Po01zjnvfdd18zxTjfhCjei3GLYgBdm2La1s+s6nMrXOLvMCBZAVDJO1VmtdFMVN3Qi6x3GkA4q1e1lYtK7VjXZbCuQNVkoBJj+dTmxdLhdaV0A/dL6DjnWglncZuGB/g6WU4Ek4CidJkiCSQu9X/eEQAi2qUr73B/D1es2ybL8hTgAQpBpj6rrGiBCiqqr8ln+DqSGbVbhAWcimaXBIx+PxQA7UWZ4hRGk1jMMBzFG7z+k1JWkiMoEX7hn9/LEd0qIsfoDP53PwSbh2nSRq+QMIgy3Lsq5qZPdDfwDTwUh32XgDgGDS8EJY0MOctal8fwRjeG8lJ6UW6D7fGWCRiziJuRF0heYIt866xjRpnjIzXFCG7hMcRKGfQcZxDHvYj/aO1/aKpy1+vnMovhT9Afd07njDAfNrAAAAAElFTkSuQmCC&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;circuit figure&quot;
        title=&quot;circuit figure&quot;
        src=&quot;/static/1aac8780105320ac5378ffbab79856e0/5a190/circuit-figure.png&quot;
        srcset=&quot;/static/1aac8780105320ac5378ffbab79856e0/772e8/circuit-figure.png 200w,
/static/1aac8780105320ac5378ffbab79856e0/e17e5/circuit-figure.png 400w,
/static/1aac8780105320ac5378ffbab79856e0/5a190/circuit-figure.png 800w,
/static/1aac8780105320ac5378ffbab79856e0/c1b63/circuit-figure.png 1200w,
/static/1aac8780105320ac5378ffbab79856e0/29007/circuit-figure.png 1600w,
/static/1aac8780105320ac5378ffbab79856e0/772aa/circuit-figure.png 2042w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;h2 id=&quot;4-プログラムの書き込み&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#4-%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AE%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF&quot; aria-label=&quot;4 プログラムの書き込み permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;4. プログラムの書き込み&lt;/h2&gt;
&lt;p&gt;この LCD は I2C 通信を使っているため通常の LCD ライブラリでは動作しません。&lt;/p&gt;
&lt;p&gt;AQM0802A が簡単に使えるライブラリが制作、公開されていましたのでこちらを使わせてもらうことにしました。(ありがとうございます!!)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://ore-kb.net/archives/195&quot;&gt;https://ore-kb.net/archives/195&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ライブラリの導入についてはリンク先サイトでも書かれていますが、
zip ファイルを解凍して出てきたフォルダ「arduino_ST7032-master」を「ST7032」にリネームし、arduino の「libraries」フォルダにコピーするだけ。&lt;/p&gt;
&lt;p&gt;自分の場合は mac 環境なので書類 →Arduino→library の中にコピーすれはお k&lt;/p&gt;
&lt;p&gt;ただ上のリンク先の簡単な使い方ではなぜか動作せず、lcd の bigin 関数を入れてやれば問題なく動きました。&lt;/p&gt;
&lt;p&gt;ソースは以下もので動くはずです。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;c&quot;&gt;&lt;pre style=&quot;counter-reset: linenumber NaN&quot; class=&quot;language-c line-numbers&quot;&gt;&lt;code class=&quot;language-c&quot;&gt;&lt;span class=&quot;token macro property&quot;&gt;#&lt;span class=&quot;token directive keyword&quot;&gt;include&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&amp;lt;Wire.h&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token macro property&quot;&gt;#&lt;span class=&quot;token directive keyword&quot;&gt;include&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&amp;lt;ST7032.h&gt;&lt;/span&gt;&lt;/span&gt;

ST7032 lcd&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;setup&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    lcd&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;begin&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    lcd&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;setContrast&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    lcd&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;HaruLab&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;loop&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    lcd&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;setCursor&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    lcd&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;2525&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;white-space: normal; width: auto; left: 0;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;あとはこれを Arduino に書き込んであげれば終了。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/0c80e6d3521202e5c5879e4975cceabb/eea4a/aqm0802a-test.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAUCAwT/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAABrkwVw7MBH//EABsQAAEFAQEAAAAAAAAAAAAAAAIAAQMREhAi/9oACAEBAAEFAj26gchICvmfbT0v/8QAFREBAQAAAAAAAAAAAAAAAAAAABH/2gAIAQMBAT8BR//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABkQAAMBAQEAAAAAAAAAAAAAAAABEQIxcf/aAAgBAQAGPwJYd0jiVH6MtOH/xAAZEAADAQEBAAAAAAAAAAAAAAAAASERMVH/2gAIAQEAAT8hXa9HBnWBMLbVCaS34R2UpuvT/9oADAMBAAIAAwAAABCIL//EABYRAQEBAAAAAAAAAAAAAAAAAAEREP/aAAgBAwEBPxAC3H//xAAWEQEBAQAAAAAAAAAAAAAAAAABEQD/2gAIAQIBAT8QWE13/8QAHRABAAICAgMAAAAAAAAAAAAAAQARITFBwVGB8P/aAAgBAQABPxAELDZvm+Ui2XEY3s19mUqbAnogkqHeAQ0CaL7li99xE8B1P//Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;aqm0802a test&quot;
        title=&quot;aqm0802a test&quot;
        src=&quot;/static/0c80e6d3521202e5c5879e4975cceabb/4b190/aqm0802a-test.jpg&quot;
        srcset=&quot;/static/0c80e6d3521202e5c5879e4975cceabb/e07e9/aqm0802a-test.jpg 200w,
/static/0c80e6d3521202e5c5879e4975cceabb/066f9/aqm0802a-test.jpg 400w,
/static/0c80e6d3521202e5c5879e4975cceabb/4b190/aqm0802a-test.jpg 800w,
/static/0c80e6d3521202e5c5879e4975cceabb/e5166/aqm0802a-test.jpg 1200w,
/static/0c80e6d3521202e5c5879e4975cceabb/eea4a/aqm0802a-test.jpg 1280w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;うまく行けばこのように動作するはず。&lt;/p&gt;
&lt;h2 id=&quot;おまけ-引っかかった問題点&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%81%8A%E3%81%BE%E3%81%91-%E5%BC%95%E3%81%A3%E3%81%8B%E3%81%8B%E3%81%A3%E3%81%9F%E5%95%8F%E9%A1%8C%E7%82%B9&quot; aria-label=&quot;おまけ 引っかかった問題点 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;おまけ. 引っかかった問題点&lt;/h2&gt;
&lt;p&gt;今回初めて I2C 通信の LCD を使い、リファレンスもあまり読まないままに的当にテストしていました。抵抗だけ用意して Arduino と LCD をつなげていたため当然動作するはずもなくハンダ付けの際に IC 焼いちゃったかな? 位で考えてました(笑)&lt;/p&gt;
&lt;p&gt;ただ、ふと研究室で AQM0802A のデータシートを見た時...&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/023aa89ac2c424f08082cfcf3f55a10d/eea4a/tutorial.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAEDBP/EABYBAQEBAAAAAAAAAAAAAAAAAAQCA//aAAwDAQACEAMQAAAB0OdTVnEKz//EABgQAAMBAQAAAAAAAAAAAAAAAAABAjEh/9oACAEBAAEFAtKY9T7RW//EABURAQEAAAAAAAAAAAAAAAAAAAEQ/9oACAEDAQE/ASf/xAAXEQEAAwAAAAAAAAAAAAAAAAACARAi/9oACAECAQE/AUVCzX//xAAUEAEAAAAAAAAAAAAAAAAAAAAg/9oACAEBAAY/Al//xAAZEAEAAwEBAAAAAAAAAAAAAAABABEhEDH/2gAIAQEAAT8htQZEI09SgrDdbw//2gAMAwEAAgADAAAAEMff/8QAFxEAAwEAAAAAAAAAAAAAAAAAAAERIf/aAAgBAwEBPxBlNHaf/8QAFxEBAQEBAAAAAAAAAAAAAAAAAREAYf/aAAgBAgEBPxBZMOYCb//EABsQAQACAwEBAAAAAAAAAAAAAAEAESFhcTFR/9oACAEBAAE/EDAC/I0A9ojUGHY+gGCCkWvUA2auvk//2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;tutorial&quot;
        title=&quot;tutorial&quot;
        src=&quot;/static/023aa89ac2c424f08082cfcf3f55a10d/4b190/tutorial.jpg&quot;
        srcset=&quot;/static/023aa89ac2c424f08082cfcf3f55a10d/e07e9/tutorial.jpg 200w,
/static/023aa89ac2c424f08082cfcf3f55a10d/066f9/tutorial.jpg 400w,
/static/023aa89ac2c424f08082cfcf3f55a10d/4b190/tutorial.jpg 800w,
/static/023aa89ac2c424f08082cfcf3f55a10d/e5166/tutorial.jpg 1200w,
/static/023aa89ac2c424f08082cfcf3f55a10d/eea4a/tutorial.jpg 1280w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;明らかに電源供給でコンデンサを使っているがわかりますよね w&lt;/p&gt;
&lt;p&gt;手を動かす前にデータシートはちゃんと見るべきですね。&lt;/p&gt;
&lt;p&gt;反省です w&lt;/p&gt;
&lt;h2 id=&quot;reference&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#reference&quot; aria-label=&quot;reference permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Reference&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.amazon.co.jp/gp/product/B008GRTSV6/ref=as_li_tl?ie=UTF8&amp;camp=247&amp;creative=1211&amp;creativeASIN=B008GRTSV6&amp;linkCode=as2&amp;tag=haruyuki04-22&amp;linkId=826cb16dad367b86f5e2b4c8dfc912b9&quot;&gt;Arduino Uno Rev3 ATmega328 マイコンボード A000066&lt;/a&gt;&lt;img src=&quot;//ir-jp.amazon-adsystem.com/e/ir?t=haruyuki04-22&amp;l=am2&amp;o=9&amp;a=B008GRTSV6&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title><![CDATA[温湿度計を修理してみた]]></title><description><![CDATA[この前、部活顧問の先生の部屋で壊れた TANITA…]]></description><link>https://blog.icchi.me/fix-thermo-hygrometer</link><guid isPermaLink="false">https://blog.icchi.me/fix-thermo-hygrometer</guid><pubDate>Sun, 07 Jul 2013 19:06:00 GMT</pubDate><content:encoded>&lt;p&gt;この前、部活顧問の先生の部屋で壊れた TANITA 製温湿度計が置いてあったので貰って来ました。&lt;/p&gt;
&lt;p&gt;話によると落としたら壊れたらしく、これなら簡単に直せそうな気がしました。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/915cc09b62ba0d0ccc16530e6c2a6215/4b190/process1.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAMCBP/EABUBAQEAAAAAAAAAAAAAAAAAAAEA/9oADAMBAAIQAxAAAAGs9C6US//EABoQAAICAwAAAAAAAAAAAAAAAAABAhIDESL/2gAIAQEAAQUCk6pZOiy0qDmf/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAGRABAAIDAAAAAAAAAAAAAAAAARARACIx/9oACAEBAAY/Ahq8NZ4sf//EABsQAQACAgMAAAAAAAAAAAAAAAEAESExQVFx/9oACAEBAAE/ITsFupeGIu1jhqKkVxFy9DLXU//aAAwDAQACAAMAAAAQGM//xAAXEQADAQAAAAAAAAAAAAAAAAABEBEh/9oACAEDAQE/EDbi/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPxA//8QAGBABAQEBAQAAAAAAAAAAAAAAAREAIVH/2gAIAQEAAT8QVlVIpJrPKClTC3hxhlUhklUx0uN//9k=&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process1&quot;
        title=&quot;process1&quot;
        src=&quot;/static/915cc09b62ba0d0ccc16530e6c2a6215/4b190/process1.jpg&quot;
        srcset=&quot;/static/915cc09b62ba0d0ccc16530e6c2a6215/e07e9/process1.jpg 200w,
/static/915cc09b62ba0d0ccc16530e6c2a6215/066f9/process1.jpg 400w,
/static/915cc09b62ba0d0ccc16530e6c2a6215/4b190/process1.jpg 800w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;実際、部品は自体に大きな損傷は無さそうです。&lt;/p&gt;
&lt;p&gt;こういうときはとりあえずバラす。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/483ac7eab94f4beeda6e759b90eec255/4b190/process2.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAMEBf/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAGPQWpLTLF//8QAGxABAQABBQAAAAAAAAAAAAAAAQIRAAQSFCL/2gAIAQEAAQUC69Ohy04T0WpdbuuX/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAHxAAAgECBwAAAAAAAAAAAAAAABEBImEDECExQXGB/9oACAEBAAY/AtZ8KcRWyZs++SmIVz//xAAbEAEAAwADAQAAAAAAAAAAAAABABEhMUFRYf/aAAgBAQABPyE6WHEERcqCoUuvIsWe/GAcY1hdUof/2gAMAwEAAgADAAAAEOQ//8QAFxEBAAMAAAAAAAAAAAAAAAAAAAERIf/aAAgBAwEBPxCcU//EABURAQEAAAAAAAAAAAAAAAAAAAAR/9oACAECAQE/EKr/xAAdEAEAAgIDAQEAAAAAAAAAAAABABEhMVFhcUGB/9oACAEBAAE/EA0PGJynnyV4CjQRTGnUMsACuzziZ5VadDf5LVpCgPrqVA5jZV5n/9k=&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process2&quot;
        title=&quot;process2&quot;
        src=&quot;/static/483ac7eab94f4beeda6e759b90eec255/4b190/process2.jpg&quot;
        srcset=&quot;/static/483ac7eab94f4beeda6e759b90eec255/e07e9/process2.jpg 200w,
/static/483ac7eab94f4beeda6e759b90eec255/066f9/process2.jpg 400w,
/static/483ac7eab94f4beeda6e759b90eec255/4b190/process2.jpg 800w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;基板にも問題無さそうで、恐らく接触不良と判断。どうやら液晶を固定するプラスチックの部分が折れてしまっていたようです。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/590eab61885ab13920e38056677e3a5c/4b190/process3.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAMEAv/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAaVCikwH/8QAGxAAAgEFAAAAAAAAAAAAAAAAAAECERIxQUL/2gAIAQEAAQUCWFJF8TXVWf/EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABcQAQEBAQAAAAAAAAAAAAAAAAAxARD/2gAIAQEABj8CVWd//8QAGBABAQEBAQAAAAAAAAAAAAAAAREAYfH/2gAIAQEAAT8hUGIRBGY8GJ0mCqhum//aAAwDAQACAAMAAAAQUO//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/ED//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/ED//xAAcEAEAAgIDAQAAAAAAAAAAAAABABExQSFRYXH/2gAIAQEAAT8QGwmIrtFya3Em/wATLc9rMJ6UOoEAUPJ//9k=&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process3&quot;
        title=&quot;process3&quot;
        src=&quot;/static/590eab61885ab13920e38056677e3a5c/4b190/process3.jpg&quot;
        srcset=&quot;/static/590eab61885ab13920e38056677e3a5c/e07e9/process3.jpg 200w,
/static/590eab61885ab13920e38056677e3a5c/066f9/process3.jpg 400w,
/static/590eab61885ab13920e38056677e3a5c/4b190/process3.jpg 800w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;ただいまいちゴムのような部品の使い方がわからなかったのですが、
どうやら導電ゴムのようで液晶と基板を繋げながら固定していたようです。&lt;/p&gt;
&lt;p&gt;部品を本来あった場所に取り付け、折れた部分は接着剤で修復。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/d5b05f5f8b2a6485dc2ce3a293998d68/4b190/process4.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAIDBP/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAFazaNZEr//xAAYEAADAQEAAAAAAAAAAAAAAAAAARICEf/aAAgBAQABBQKMIzIuHRMs/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAGBAAAgMAAAAAAAAAAAAAAAAAAAEgMTL/2gAIAQEABj8CKZmH/8QAHBAAAgICAwAAAAAAAAAAAAAAAAERIRAxQaHR/9oACAEBAAE/IVyeiDTCj2KiIcP/2gAMAwEAAgADAAAAEFjv/8QAFREBAQAAAAAAAAAAAAAAAAAAARD/2gAIAQMBAT8QZ//EABURAQEAAAAAAAAAAAAAAAAAABAR/9oACAECAQE/EIf/xAAcEAADAAEFAAAAAAAAAAAAAAAAAREhUWFxsdH/2gAIAQEAAT8QlprdqY2Dh1PDD7CKloIaiwP/2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process4&quot;
        title=&quot;process4&quot;
        src=&quot;/static/d5b05f5f8b2a6485dc2ce3a293998d68/4b190/process4.jpg&quot;
        srcset=&quot;/static/d5b05f5f8b2a6485dc2ce3a293998d68/e07e9/process4.jpg 200w,
/static/d5b05f5f8b2a6485dc2ce3a293998d68/066f9/process4.jpg 400w,
/static/d5b05f5f8b2a6485dc2ce3a293998d68/4b190/process4.jpg 800w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;電池を電源を入れてあげると無事に表示されました。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/b22c312abd47317125f8dcfff5f15d0e/4b190/process5.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAMEAf/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAEdCwvNF//EABoQAAIDAQEAAAAAAAAAAAAAAAECAAMRBCL/2gAIAQEAAQUCDLWqqxjn1bWTObS5On//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAcEAAABgMAAAAAAAAAAAAAAAAAARAREmExM1H/2gAIAQEABj8Ci8eDa5UkiwKJP//EABwQAQACAQUAAAAAAAAAAAAAAAEAETEhQVFhkf/aAAgBAQABPyEKkF1ELsfQgWz5G7rBjiIBe5Lhn//aAAwDAQACAAMAAAAQQO//xAAVEQEBAAAAAAAAAAAAAAAAAAAAAf/aAAgBAwEBPxCo/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPxA//8QAHBABAQACAgMAAAAAAAAAAAAAAREAQSExYYGx/9oACAEBAAE/EK+bdgm3xcIoTWBfesGbE47OTYMNEn3BSjkRl0GBpOjP/9k=&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process5&quot;
        title=&quot;process5&quot;
        src=&quot;/static/b22c312abd47317125f8dcfff5f15d0e/4b190/process5.jpg&quot;
        srcset=&quot;/static/b22c312abd47317125f8dcfff5f15d0e/e07e9/process5.jpg 200w,
/static/b22c312abd47317125f8dcfff5f15d0e/066f9/process5.jpg 400w,
/static/b22c312abd47317125f8dcfff5f15d0e/4b190/process5.jpg 800w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;最後に元通りに組み立てて修理完了。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/e0ea16bd9cc5669a41db258539993d51/4b190/process6.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAEDAgT/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAABb1UmdBL/AP/EABoQAAMAAwEAAAAAAAAAAAAAAAECAwAQERL/2gAIAQEAAQUCCrKM6qWpL1Q8OIiDX//EABURAQEAAAAAAAAAAAAAAAAAABAR/9oACAEDAQE/AYf/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAcEAACAgIDAAAAAAAAAAAAAAABAgARAxIQIlH/2gAIAQEABj8C7BWN+QVjURjuRNSty9KPH//EABoQAQEBAQADAAAAAAAAAAAAAAERACFBUXH/2gAIAQEAAT8hPNYq4eUmcNMCXgeM/pORAA9OYtd//9oADAMBAAIAAwAAABDz7//EABYRAQEBAAAAAAAAAAAAAAAAAAABEf/aAAgBAwEBPxC0x//EABYRAQEBAAAAAAAAAAAAAAAAAAEAEf/aAAgBAgEBPxAS1v/EABoQAQADAQEBAAAAAAAAAAAAAAEAESExQVH/2gAIAQEAAT8Q65UJfw2MNC4fYiktrIHCFai0DH0RZY0xrAVb0n//2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process6&quot;
        title=&quot;process6&quot;
        src=&quot;/static/e0ea16bd9cc5669a41db258539993d51/4b190/process6.jpg&quot;
        srcset=&quot;/static/e0ea16bd9cc5669a41db258539993d51/e07e9/process6.jpg 200w,
/static/e0ea16bd9cc5669a41db258539993d51/066f9/process6.jpg 400w,
/static/e0ea16bd9cc5669a41db258539993d51/4b190/process6.jpg 800w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;案外簡単に直ったので良かったです。このまま研究室用にもらっちゃおうかと思いましたが、ちゃんと顧問の先生にお届けしました。&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Arduinoを使ったmicroSD記録のデータロガー(温度、照度)を作ってみた]]></title><description><![CDATA[はじめに 父親が小屋の気温や照度のデータが取りたいと言っていたのでデータロガーを作ってみました。 温度と照度を 10 分間隔で microSD に csv 形式で保存する仕様です。 今回使うセンサは以下の 2 つ 温度センサ LM61CIZ 下図右 明るさセンサ TEMT600…]]></description><link>https://blog.icchi.me/make-thermo-illuminometer-with-arduino</link><guid isPermaLink="false">https://blog.icchi.me/make-thermo-illuminometer-with-arduino</guid><pubDate>Tue, 09 Apr 2013 16:32:00 GMT</pubDate><content:encoded>&lt;h2 id=&quot;はじめに&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB&quot; aria-label=&quot;はじめに permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;はじめに&lt;/h2&gt;
&lt;p&gt;父親が小屋の気温や照度のデータが取りたいと言っていたのでデータロガーを作ってみました。 温度と照度を 10 分間隔で microSD に csv 形式で保存する仕様です。&lt;/p&gt;
&lt;p&gt;今回使うセンサは以下の 2 つ&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;温度センサ &lt;a href=&quot;https://akizukidenshi.com/catalog/g/gI-02726/&quot;&gt;LM61CIZ&lt;/a&gt; 下図右&lt;/li&gt;
&lt;li&gt;明るさセンサ &lt;a href=&quot;https://www.switch-science.com/products/detail.php?product_id=37&quot;&gt;TEMT6000&lt;/a&gt; 下図左&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/a220fa335c4848aec1a761ec5fc2ad1e/4b190/parts.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAAAAECAwT/xAAWAQEBAQAAAAAAAAAAAAAAAAABAAL/2gAMAwEAAhADEAAAAS+uHmQL/8QAGRAAAgMBAAAAAAAAAAAAAAAAAQIAERIQ/9oACAEBAAEFAi+QWsRRcdc8/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFREBAQAAAAAAAAAAAAAAAAAAEBH/2gAIAQIBAT8Bh//EABcQAQADAAAAAAAAAAAAAAAAAAEAESD/2gAIAQEABj8CuDn/xAAXEAADAQAAAAAAAAAAAAAAAAAAAREx/9oACAEBAAE/IVXYiAJxlL4TDZ//2gAMAwEAAgADAAAAEAsf/8QAFREBAQAAAAAAAAAAAAAAAAAAARD/2gAIAQMBAT8QUn//xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAgEBPxAST//EABkQAAMBAQEAAAAAAAAAAAAAAAABETEhUf/aAAgBAQABPxBsu4YJYmMi70bXRSWSj9IkmEHp/9k=&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;parts&quot;
        title=&quot;parts&quot;
        src=&quot;/static/a220fa335c4848aec1a761ec5fc2ad1e/4b190/parts.jpg&quot;
        srcset=&quot;/static/a220fa335c4848aec1a761ec5fc2ad1e/e07e9/parts.jpg 200w,
/static/a220fa335c4848aec1a761ec5fc2ad1e/066f9/parts.jpg 400w,
/static/a220fa335c4848aec1a761ec5fc2ad1e/4b190/parts.jpg 800w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;microSD との接続には秋月で売っている &lt;a href=&quot;https://akizukidenshi.com/catalog/g/gK-05488&quot;&gt;マイクロＳＤカードスロットＤＩＰ化キット&lt;/a&gt;を使いました。ブレッドボードで使う場合にはピンヘッダをハンダ付けすると便利です。&lt;/p&gt;
&lt;h2 id=&quot;接続表&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#%E6%8E%A5%E7%B6%9A%E8%A1%A8&quot; aria-label=&quot;接続表 permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;接続表&lt;/h2&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 479px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/d5a8313ef88a8ed184b8b623299cfe24/1194c/connection-table.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 78.99999999999999%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAQABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAMCBAX/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAAB0UyWqS0J/8QAGhAAAgMBAQAAAAAAAAAAAAAAAAECAxETIv/aAAgBAQABBQJRLfL0t0jJo4n/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAbEAABBAMAAAAAAAAAAAAAAAAAAQIRIRASMv/aAAgBAQAGPwJKEisNgtux0f/EAB0QAAICAgMBAAAAAAAAAAAAAAABETEhQVFhcZH/2gAIAQEAAT8hQ4SrsxUsCXI1l1omJvWhK1X4f//aAAwDAQACAAMAAAAQs8//xAAXEQADAQAAAAAAAAAAAAAAAAAAARFB/9oACAEDAQE/EG7hD//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8QP//EABwQAQACAgMBAAAAAAAAAAAAAAEAESExQWGhUf/aAAgBAQABPxBJkFKcpaqlms7vud+VVgq/nPU2nShu+iCFKzXD2f/Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;connection table&quot;
        title=&quot;connection table&quot;
        src=&quot;/static/d5a8313ef88a8ed184b8b623299cfe24/1194c/connection-table.jpg&quot;
        srcset=&quot;/static/d5a8313ef88a8ed184b8b623299cfe24/e07e9/connection-table.jpg 200w,
/static/d5a8313ef88a8ed184b8b623299cfe24/066f9/connection-table.jpg 400w,
/static/d5a8313ef88a8ed184b8b623299cfe24/1194c/connection-table.jpg 479w&quot;
        sizes=&quot;(max-width: 479px) 100vw, 479px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;まず microSD を繋げている時に問題が･･･ arduino の出力電圧が 5V に対し microSD の動作電圧は 2.7 ～ 3.6V 手元にあった 270Ω と 510Ω で分圧することで&lt;code class=&quot;language-text&quot;&gt;5*(510/(510+270))≒3.2V&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/d0fa55aa121bb42d30ae4b063ce202fb/4b190/process1.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAQCAwX/xAAVAQEBAAAAAAAAAAAAAAAAAAABAv/aAAwDAQACEAMQAAABnQ2jKGcD/8QAGhABAAMAAwAAAAAAAAAAAAAAAQACAxETI//aAAgBAQABBQLUuTsSrsS56btSWTn/xAAWEQEBAQAAAAAAAAAAAAAAAAAAETH/2gAIAQMBAT8BxX//xAAXEQADAQAAAAAAAAAAAAAAAAAAARIh/9oACAECAQE/AcZKP//EABoQAAMAAwEAAAAAAAAAAAAAAAABESEiMUH/2gAIAQEABj8CNk6cYo/CumKf/8QAGxAAAwEBAAMAAAAAAAAAAAAAAAERITFBYbH/2gAIAQEAAT8hapKvzigtoBPux9mbwoLqyJwfpY9s/9oADAMBAAIAAwAAABD/AO//xAAWEQEBAQAAAAAAAAAAAAAAAAAAIRH/2gAIAQMBAT8QtNv/xAAWEQEBAQAAAAAAAAAAAAAAAAARARD/2gAIAQIBAT8QoGH/xAAbEAEBAAMBAQEAAAAAAAAAAAABEQAhMVFhgf/aAAgBAQABPxBWnDb5IYSLht7+4iSRSYJSBc7WOr7be4ivIHiV5gsRmtzn/9k=&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process1&quot;
        title=&quot;process1&quot;
        src=&quot;/static/d0fa55aa121bb42d30ae4b063ce202fb/4b190/process1.jpg&quot;
        srcset=&quot;/static/d0fa55aa121bb42d30ae4b063ce202fb/e07e9/process1.jpg 200w,
/static/d0fa55aa121bb42d30ae4b063ce202fb/066f9/process1.jpg 400w,
/static/d0fa55aa121bb42d30ae4b063ce202fb/4b190/process1.jpg 800w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;良い感じに減圧出来ました。 最後に 2 つのセンサを取り付けます。 TEMT6000 は上から出力電圧、GND、5V LM61CIZ は文字が書いてある面から見て左から 5V、出力電圧、GND 詳しくは各データシートを参照してください。各端子繋いであげるとこれでハードは出来上がりです。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/ac1a979bb360e7b9381044bd99f7c856/4b190/demo1.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAMBBAX/xAAWAQEBAQAAAAAAAAAAAAAAAAADAQL/2gAMAwEAAhADEAAAAUL16OaogJP/xAAaEAACAwEBAAAAAAAAAAAAAAAAAQIDEQQh/9oACAEBAAEFArOdwcXLSz2hmH//xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAwEBPwEn/8QAFREBAQAAAAAAAAAAAAAAAAAAARD/2gAIAQIBAT8BZ//EABsQAAEEAwAAAAAAAAAAAAAAAAEAAhARITFC/9oACAEBAAY/Ag6wbWdRY5KMf//EAB4QAQACAgEFAAAAAAAAAAAAAAEAESFBMVGBkfDx/9oACAEBAAE/IV/RXg5Sbz2ShyMY/t/YeirdM8J//9oADAMBAAIAAwAAABDkL//EABYRAAMAAAAAAAAAAAAAAAAAABARQf/aAAgBAwEBPxBoP//EABYRAAMAAAAAAAAAAAAAAAAAABARQf/aAAgBAgEBPxBaP//EAB0QAQADAAEFAAAAAAAAAAAAAAEAESFRMYGhscH/2gAIAQEAAT8QXBqCzBl+e0BWurd4H5FGgeGU0NDxi0xQ0WisPUVheDoT/9k=&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;demo1&quot;
        title=&quot;demo1&quot;
        src=&quot;/static/ac1a979bb360e7b9381044bd99f7c856/4b190/demo1.jpg&quot;
        srcset=&quot;/static/ac1a979bb360e7b9381044bd99f7c856/e07e9/demo1.jpg 200w,
/static/ac1a979bb360e7b9381044bd99f7c856/066f9/demo1.jpg 400w,
/static/ac1a979bb360e7b9381044bd99f7c856/4b190/demo1.jpg 800w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;あとは arduino にプログラムを書き込むだけ。 今回のプログラムで microSD 関連は公式のライブラリもあったんですが、公式ライブラリをより使いやすく改良された方がいたので&lt;a href=&quot;https://tyk-systems.com/DataLogger/DataLogger.html&quot;&gt;こちらのサイト&lt;/a&gt;のものを使わせて頂きました。実際に microSD に書き込まれたログデータがこちら&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 557px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/8399acdd11a45fe3b3a1aaed6b6c70f5/30d00/demo2.png&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 78.5%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAIAAACZeshMAAAACXBIWXMAAAsSAAALEgHS3X78AAABRElEQVQoz52TXW+CMBSG/f93885dzZj5N7jTZcBo6UEQswvm3CTgBypq5Gsv7WYWlzj1CWlOS5/0tD1tVFVVlGVeVEVe5HmeZRnasiwLSfYH9beSNBar1eipLyzNGlieNxz6Pgnq9fu6rhuG6fv+SIJgKPE8bzweHw6HWsao3utxZhKJV5s+grflMomiKI5n8Wy2/GEhUbHjOPP5vJZJCG7bNjnbdIv+MaUzEFEYhlImcl0X6e52eyWfcDKIrhDiKAt82Eyapheu/EsWgjH+wthmvblaRuR6Ku2dlKtrViYyDAOpr29YGfJg4FiMTafhLTLuDS2u8WoZHufMMM3pZ3jDPQvI4H0yQd3i2PZnQWFyzr9lVGu3+3jXbLZa9+12++E/Op2OpmlJktSyqlUcOF7C8wVgWhAEeF61rF5fLikuRm3+C2vldXIbabFaAAAAAElFTkSuQmCC&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;demo2&quot;
        title=&quot;demo2&quot;
        src=&quot;/static/8399acdd11a45fe3b3a1aaed6b6c70f5/30d00/demo2.png&quot;
        srcset=&quot;/static/8399acdd11a45fe3b3a1aaed6b6c70f5/772e8/demo2.png 200w,
/static/8399acdd11a45fe3b3a1aaed6b6c70f5/e17e5/demo2.png 400w,
/static/8399acdd11a45fe3b3a1aaed6b6c70f5/30d00/demo2.png 557w&quot;
        sizes=&quot;(max-width: 557px) 100vw, 557px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;arduino に書き込んだスケッチは以下のとおりです。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;c&quot;&gt;&lt;pre style=&quot;counter-reset: linenumber NaN&quot; class=&quot;language-c line-numbers&quot;&gt;&lt;code class=&quot;language-c&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;/*
* using DIP kit
* 2013-4-7
*log temp illumi
*/&lt;/span&gt;

&lt;span class=&quot;token macro property&quot;&gt;#&lt;span class=&quot;token directive keyword&quot;&gt;include&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&amp;lt;SD.h&gt;&lt;/span&gt;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; chipSelect &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; ans &lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; temp &lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; tv &lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;float&lt;/span&gt; VDD&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;5.0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;R0&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;R1&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; lux&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;long&lt;/span&gt; date&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;// Subroutine for writing data in SD card,&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;PrintToFile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;String dataIn&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  File dataFile &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; SD&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;datalog.txt&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; FILE_WRITE&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;  &lt;span class=&quot;token comment&quot;&gt;// define the filename,&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;dataFile&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;                                      &lt;span class=&quot;token comment&quot;&gt;//if the file in the SD card was open to wrihte,&lt;/span&gt;
    dataFile&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;dataIn&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;                          &lt;span class=&quot;token comment&quot;&gt;// write data into the file,&lt;/span&gt;
    dataFile&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;close&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;                                  &lt;span class=&quot;token comment&quot;&gt;// close the file,&lt;/span&gt;
    Serial&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;dataIn&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;                           &lt;span class=&quot;token comment&quot;&gt;// print to the serial port too,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;                                              &lt;span class=&quot;token comment&quot;&gt;// if the file isn&apos;t open, pop up an error message,&lt;/span&gt;
    Serial&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;error opening file&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;setup&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  Serial&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;SD read write test start...\n&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token comment&quot;&gt;//analogReference(INTERNAL);                         //use internal voltage(1.1 V) as the analog input reference, アナログ入力の最大電力を1.1 Vに設定&lt;/span&gt;
  Serial&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;begin&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;9600&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;pinMode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; OUTPUT&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  Serial&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Initializing SD card...&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;          &lt;span class=&quot;token comment&quot;&gt;//check the Serial communication&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;pinMode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;chipSelect&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; OUTPUT&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;                       &lt;span class=&quot;token comment&quot;&gt;//Define chipselect terminal 8 as output,&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;SD&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;begin&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;chipSelect&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;                       &lt;span class=&quot;token comment&quot;&gt;// check the SD card is available or not,&lt;/span&gt;
    Serial&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Card failed, or not present&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;  &lt;span class=&quot;token comment&quot;&gt;// in the case of SD card error,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  Serial&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Card initialized.&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;              &lt;span class=&quot;token comment&quot;&gt;//in the case of SD card is available,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;token function&quot;&gt;PrintToFile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;date,temp,illumi&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;loop&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;

  &lt;span class=&quot;token comment&quot;&gt;//calculating temp&lt;/span&gt;
  ans &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;analogRead&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  tv  &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;ans&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1023&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;5000&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;//convert voltage sensor&lt;/span&gt;
  temp &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;tv&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;300&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1600&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;//convert temp voltage&lt;/span&gt;

  &lt;span class=&quot;token comment&quot;&gt;//calculating illumi&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; indata&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;analogRead&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;float&lt;/span&gt; ar&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;indata&lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt;VDD&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1024&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;R1&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  lux&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;20.0&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0.01&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt;ar&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token comment&quot;&gt;//calculating date&lt;/span&gt;
  date &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;millis&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;60&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;//insert elapsed time (minute)&lt;/span&gt;

  String dataString &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  dataString &lt;span class=&quot;token operator&quot;&gt;+=&lt;/span&gt; date&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  dataString &lt;span class=&quot;token operator&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;,&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  dataString &lt;span class=&quot;token operator&quot;&gt;+=&lt;/span&gt; temp&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  dataString &lt;span class=&quot;token operator&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;,&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  dataString &lt;span class=&quot;token operator&quot;&gt;+=&lt;/span&gt; lux&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token function&quot;&gt;PrintToFile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;dataString&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token function&quot;&gt;delay&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;60&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// run every 10 minutes&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;white-space: normal; width: auto; left: 0;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;今回は microSD に書き込むデータロガーですがネットワークと接続して cosm などのサービスを利用するとスマホと組み合わせたりできて、より面白いような気がします。長期休みも終わり学校が始まったので更新の間隔も広まりそうですが、ちょくちょく何か面白いものを作って行きたいですね。&lt;/p&gt;
&lt;h2 id=&quot;reference&quot; style=&quot;position:relative;&quot;&gt;&lt;a href=&quot;#reference&quot; aria-label=&quot;reference permalink&quot; class=&quot;anchor before&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; focusable=&quot;false&quot; height=&quot;16&quot; version=&quot;1.1&quot; viewBox=&quot;0 0 16 16&quot; width=&quot;16&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;Reference&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.amazon.co.jp/gp/product/B008GRTSV6/ref=as_li_tl?ie=UTF8&amp;camp=247&amp;creative=1211&amp;creativeASIN=B008GRTSV6&amp;linkCode=as2&amp;tag=haruyuki04-22&amp;linkId=826cb16dad367b86f5e2b4c8dfc912b9&quot;&gt;Arduino Uno Rev3 ATmega328 マイコンボード A000066&lt;/a&gt;&lt;img src=&quot;//ir-jp.amazon-adsystem.com/e/ir?t=haruyuki04-22&amp;l=am2&amp;o=9&amp;a=B008GRTSV6&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title><![CDATA[LCD SD1602VBWB を AVR attiny2313 で動作チェック]]></title><description><![CDATA[前に 7 セグ LED の表示を行いましたが、今回は LCD の表示を行ってみます。 使用する主な部品、環境は以下のとおり LCD SD1602VBWB-XA AVR attiny2313 atmel studio6.…]]></description><link>https://blog.icchi.me/test-sd1602vbvw-with-attiny2313</link><guid isPermaLink="false">https://blog.icchi.me/test-sd1602vbvw-with-attiny2313</guid><pubDate>Fri, 22 Mar 2013 18:43:00 GMT</pubDate><content:encoded>&lt;p&gt;前に 7 セグ LED の表示を行いましたが、今回は LCD の表示を行ってみます。&lt;/p&gt;
&lt;p&gt;使用する主な部品、環境は以下のとおり&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;LCD SD1602VBWB-XA&lt;/li&gt;
&lt;li&gt;AVR attiny2313&lt;/li&gt;
&lt;li&gt;atmel studio6.1&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/3e6a912766a5e2c872c0c7e942c8e767/72e01/parts.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAMEAf/EABQBAQAAAAAAAAAAAAAAAAAAAAL/2gAMAwEAAhADEAAAAbdnUFeJAv/EABwQAAICAgMAAAAAAAAAAAAAAAECAAMEEhETFP/aAAgBAQABBQLtVIcqrgNsGrDzzJFGq//EABURAQEAAAAAAAAAAAAAAAAAAAEQ/9oACAEDAQE/AUZ//8QAGBEAAgMAAAAAAAAAAAAAAAAAAQIQESH/2gAIAQIBAT8BUrWx/8QAGhAAAQUBAAAAAAAAAAAAAAAAAAERIjFBUf/aAAgBAQAGPwKRY6aS6Wox/8QAGhABAAMBAQEAAAAAAAAAAAAAAQARMSFBkf/aAAgBAQABPyFtKoGpnP5DHLohiJ9cjBMiqGXP/9oADAMBAAIAAwAAABDA3//EABYRAQEBAAAAAAAAAAAAAAAAAAEhAP/aAAgBAwEBPxBLMEu//8QAFxEBAQEBAAAAAAAAAAAAAAAAAREAIf/aAAgBAgEBPxAcVcpeb//EAB4QAQEBAAEEAwAAAAAAAAAAAAERADEhQVFhccHR/9oACAEBAAE/EFESKlrLnRR88kjKiSmBQFmvQfWWBwcdT8xPzncDxv/Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;parts&quot;
        title=&quot;parts&quot;
        src=&quot;/static/3e6a912766a5e2c872c0c7e942c8e767/4b190/parts.jpg&quot;
        srcset=&quot;/static/3e6a912766a5e2c872c0c7e942c8e767/e07e9/parts.jpg 200w,
/static/3e6a912766a5e2c872c0c7e942c8e767/066f9/parts.jpg 400w,
/static/3e6a912766a5e2c872c0c7e942c8e767/4b190/parts.jpg 800w,
/static/3e6a912766a5e2c872c0c7e942c8e767/72e01/parts.jpg 1024w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;このままではブレッドボード上で使うときに面倒なのでピンヘッダをハンダ付けします。ちゃちゃっとハンダ付けをして LCD の準備は完了。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/8fc33ef36e41fa12517c7623db381d99/72e01/process1.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAIDBP/EABYBAQEBAAAAAAAAAAAAAAAAAAEAAv/aAAwDAQACEAMQAAABSVmy3NI3/8QAGhAAAgMBAQAAAAAAAAAAAAAAAQMAAhESE//aAAgBAQABBQI3sZVOH1XMEX30Erz/xAAVEQEBAAAAAAAAAAAAAAAAAAAQEf/aAAgBAwEBPwGH/8QAFxEAAwEAAAAAAAAAAAAAAAAAAAECEf/aAAgBAgEBPwF06MP/xAAdEAABAgcAAAAAAAAAAAAAAAAAARECEBIxMmGR/9oACAEBAAY/AmNpwykypDSWP//EABwQAAICAgMAAAAAAAAAAAAAAAERACExgVFxkf/aAAgBAQABPyHOQH7BX2Rl4RVEBqBaIbgI6DOGbM//2gAMAwEAAgADAAAAEOPP/8QAFxEBAQEBAAAAAAAAAAAAAAAAAQARIf/aAAgBAwEBPxBB21v/xAAWEQEBAQAAAAAAAAAAAAAAAAARAAH/2gAIAQIBAT8Q0BMjf//EAB0QAQACAgIDAAAAAAAAAAAAAAEAESFhMUGxwdH/2gAIAQEAAT8QfsfEKtX1niJmpIoo3vUclG18jmGjK8sGG5CBsPcIO7NAHmf/2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;process1&quot;
        title=&quot;process1&quot;
        src=&quot;/static/8fc33ef36e41fa12517c7623db381d99/4b190/process1.jpg&quot;
        srcset=&quot;/static/8fc33ef36e41fa12517c7623db381d99/e07e9/process1.jpg 200w,
/static/8fc33ef36e41fa12517c7623db381d99/066f9/process1.jpg 400w,
/static/8fc33ef36e41fa12517c7623db381d99/4b190/process1.jpg 800w,
/static/8fc33ef36e41fa12517c7623db381d99/72e01/process1.jpg 1024w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;あとはブレッドボード上で LCD に電源、AVR をつなげます。&lt;/p&gt;
&lt;p&gt;今回は AVR の出力にはポート D を利用しました。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre style=&quot;counter-reset: linenumber NaN&quot; class=&quot;language-text line-numbers&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;PD0:RS
PD1:E
PD2:DB4
PD3:DB5
PD4:DB6
PD5:DB7&lt;/code&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;white-space: normal; width: auto; left: 0;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;このように AVR と LCD 接続。
コントラストとバックライトの電圧には半固定抵抗を使うと調節時に便利です。&lt;/p&gt;
&lt;p&gt;キャラ型の LCD は 4bit モードで制御できるのでつなげるピンが少なくて楽ですね。&lt;/p&gt;
&lt;p&gt;これでハードの準備は完了。
あとはソフトの準備をしていきます。&lt;/p&gt;
&lt;p&gt;今回 LCD を AVR で動作させるにあたって勉強も兼ねて制御関数を少し自分で作ってみて動作はしたんですが、結局のところ自作関数では機能が少ないので公開されているライブラリを利用しました。&lt;/p&gt;
&lt;p&gt;やっぱり公開されているものは作りこみもすごいですね(^_^;)&lt;/p&gt;
&lt;p&gt;今回利用させてもらったのはこちら&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.vector.co.jp/soft/dos/hardware/se476452.html&quot;&gt;https://www.vector.co.jp/soft/dos/hardware/se476452.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ダウンロードしたらライブラリフォルダに入っている 7 個のファイルをすべて atmel studio のプロジェクトにドラッグ&amp;#x26;ドロップ&lt;/p&gt;
&lt;p&gt;次に lcdConfig.h を開いて
13 行目をコメント&lt;/p&gt;
&lt;p&gt;68 行目以降を AVR と LCD を繋げたように変更&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;c&quot;&gt;&lt;pre style=&quot;counter-reset: linenumber NaN&quot; class=&quot;language-c line-numbers&quot;&gt;&lt;code class=&quot;language-c&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;/* レジスタ選択 */&lt;/span&gt;
&lt;span class=&quot;token macro property&quot;&gt;#&lt;span class=&quot;token directive keyword&quot;&gt;define&lt;/span&gt; PIN_LCD_RS_PORT LCD_PORTD.P0&lt;/span&gt;
&lt;span class=&quot;token macro property&quot;&gt;#&lt;span class=&quot;token directive keyword&quot;&gt;define&lt;/span&gt; PIN_LCD_RS_DDR LCD_DDRD.P0&lt;/span&gt;
&lt;span class=&quot;token macro property&quot;&gt;#&lt;span class=&quot;token directive keyword&quot;&gt;define&lt;/span&gt; PIN_LCD_RS_PIN LCD_PIND.P0&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;/* Read/Write 選択 */&lt;/span&gt;
&lt;span class=&quot;token macro property&quot;&gt;#&lt;span class=&quot;token directive keyword&quot;&gt;define&lt;/span&gt; PIN_LCD_RW_PORT LCD_PORTC.P5&lt;/span&gt;
&lt;span class=&quot;token macro property&quot;&gt;#&lt;span class=&quot;token directive keyword&quot;&gt;define&lt;/span&gt; PIN_LCD_RW_DDR LCD_DDRC.P5&lt;/span&gt;
&lt;span class=&quot;token macro property&quot;&gt;#&lt;span class=&quot;token directive keyword&quot;&gt;define&lt;/span&gt; PIN_LCD_RW_PIN LCD_PINC.P5&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;/* Enable 信号 */&lt;/span&gt;
&lt;span class=&quot;token macro property&quot;&gt;#&lt;span class=&quot;token directive keyword&quot;&gt;define&lt;/span&gt; PIN_LCD_E_PORT LCD_PORTD.P1&lt;/span&gt;
&lt;span class=&quot;token macro property&quot;&gt;#&lt;span class=&quot;token directive keyword&quot;&gt;define&lt;/span&gt; PIN_LCD_E_DDR LCD_DDRD.P1&lt;/span&gt;
&lt;span class=&quot;token macro property&quot;&gt;#&lt;span class=&quot;token directive keyword&quot;&gt;define&lt;/span&gt; PIN_LCD_E_PIN LCD_PIND.P1&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;/* DB4 */&lt;/span&gt;
&lt;span class=&quot;token macro property&quot;&gt;#&lt;span class=&quot;token directive keyword&quot;&gt;define&lt;/span&gt; PIN_LCD_DB4_PORT LCD_PORTD.P2&lt;/span&gt;
&lt;span class=&quot;token macro property&quot;&gt;#&lt;span class=&quot;token directive keyword&quot;&gt;define&lt;/span&gt; PIN_LCD_DB4_DDR LCD_DDRD.P2&lt;/span&gt;
&lt;span class=&quot;token macro property&quot;&gt;#&lt;span class=&quot;token directive keyword&quot;&gt;define&lt;/span&gt; PIN_LCD_DB4_PIN LCD_PIND.P2&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;/* DB5 */&lt;/span&gt;
&lt;span class=&quot;token macro property&quot;&gt;#&lt;span class=&quot;token directive keyword&quot;&gt;define&lt;/span&gt; PIN_LCD_DB5_PORT LCD_PORTD.P3&lt;/span&gt;
&lt;span class=&quot;token macro property&quot;&gt;#&lt;span class=&quot;token directive keyword&quot;&gt;define&lt;/span&gt; PIN_LCD_DB5_DDR LCD_DDRD.P3&lt;/span&gt;
&lt;span class=&quot;token macro property&quot;&gt;#&lt;span class=&quot;token directive keyword&quot;&gt;define&lt;/span&gt; PIN_LCD_DB5_PIN LCD_PIND.P3&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;/* DB6 */&lt;/span&gt;
&lt;span class=&quot;token macro property&quot;&gt;#&lt;span class=&quot;token directive keyword&quot;&gt;define&lt;/span&gt; PIN_LCD_DB6_PORT LCD_PORTD.P4&lt;/span&gt;
&lt;span class=&quot;token macro property&quot;&gt;#&lt;span class=&quot;token directive keyword&quot;&gt;define&lt;/span&gt; PIN_LCD_DB6_DDR LCD_DDRD.P4&lt;/span&gt;
&lt;span class=&quot;token macro property&quot;&gt;#&lt;span class=&quot;token directive keyword&quot;&gt;define&lt;/span&gt; PIN_LCD_DB6_PIN LCD_PIND.P4&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;/* DB7 */&lt;/span&gt;
&lt;span class=&quot;token macro property&quot;&gt;#&lt;span class=&quot;token directive keyword&quot;&gt;define&lt;/span&gt; PIN_LCD_DB7_PORT LCD_PORTD.P5&lt;/span&gt;
&lt;span class=&quot;token macro property&quot;&gt;#&lt;span class=&quot;token directive keyword&quot;&gt;define&lt;/span&gt; PIN_LCD_DB7_DDR LCD_DDRD.P5&lt;/span&gt;
&lt;span class=&quot;token macro property&quot;&gt;#&lt;span class=&quot;token directive keyword&quot;&gt;define&lt;/span&gt; PIN_LCD_DB7_PIN LCD_PIND.P5&lt;/span&gt;&lt;/code&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;white-space: normal; width: auto; left: 0;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;lcdLibPrv.h の 7，8 行目を以下のように変更&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;c&quot;&gt;&lt;pre style=&quot;counter-reset: linenumber NaN&quot; class=&quot;language-c line-numbers&quot;&gt;&lt;code class=&quot;language-c&quot;&gt;&lt;span class=&quot;token macro property&quot;&gt;#&lt;span class=&quot;token directive keyword&quot;&gt;include&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;./lcdlib.h&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token macro property&quot;&gt;#&lt;span class=&quot;token directive keyword&quot;&gt;include&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;./lcdConfig.h&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;white-space: normal; width: auto; left: 0;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;最後にプロジェクトの main 関数に以下のように書きました。&lt;/p&gt;
&lt;p&gt;あとはいつもどおりビルドして AVR に書き込めば完了です。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/16537e20566529b2722424d4bb9d3fa5/4b190/demo.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAEEA//EABUBAQEAAAAAAAAAAAAAAAAAAAAC/9oADAMBAAIQAxAAAAHWNsZORf8A/8QAGRAAAwEBAQAAAAAAAAAAAAAAAAECAxIT/9oACAEBAAEFAtKi8/XNSnNnZWzO6Z//xAAWEQEBAQAAAAAAAAAAAAAAAAAAASH/2gAIAQMBAT8B1K//xAAWEQEBAQAAAAAAAAAAAAAAAAABABH/2gAIAQIBAT8BMkv/xAAdEAACAQQDAAAAAAAAAAAAAAAAARECECExEmGR/9oACAEBAAY/AlyTbQkqa8dEx6YnZq3/xAAZEAEAAwEBAAAAAAAAAAAAAAABABEhMXH/2gAIAQEAAT8hNdIzyGnrcW5rvBsK0g6bK0iOOdYE/9oADAMBAAIAAwAAABCD7//EABcRAQEBAQAAAAAAAAAAAAAAAAERACH/2gAIAQMBAT8QYOGSFN//xAAXEQEBAQEAAAAAAAAAAAAAAAABEQAh/9oACAECAQE/EKPXDWO//8QAGxABAQADAQEBAAAAAAAAAAAAAREAITFBUdH/2gAIAQEAAT8QGkYhp47M2CxW1bzvN5FwqIIxi37BDuh38wlbr7P3FU49s7n/2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;demo&quot;
        title=&quot;demo&quot;
        src=&quot;/static/16537e20566529b2722424d4bb9d3fa5/4b190/demo.jpg&quot;
        srcset=&quot;/static/16537e20566529b2722424d4bb9d3fa5/e07e9/demo.jpg 200w,
/static/16537e20566529b2722424d4bb9d3fa5/066f9/demo.jpg 400w,
/static/16537e20566529b2722424d4bb9d3fa5/4b190/demo.jpg 800w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;あとなぜか C++でプロジェクトを作るとビルド時にエラーが出ました。c++のソースファイルから c で書かれたヘッダファイル上の関数を呼び出すのってなにか問題あるのかな？&lt;/p&gt;
&lt;p&gt;カウンターのプログラムを書き込んで動作している様子です。&lt;/p&gt;
&lt;div class=&quot;gatsby-resp-iframe-wrapper&quot; style=&quot;padding-bottom: 56.25%; position: relative; height: 0; overflow: hidden; margin-bottom: 1.0725rem&quot; &gt; &lt;iframe src=&quot;https://www.youtube.com/embed/LUw6jYE4sR4&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen style=&quot; position: absolute; top: 0; left: 0; width: 100%; height: 100%; &quot;&gt;&lt;/iframe&gt; &lt;/div&gt;
&lt;p&gt;写真にも写ってるように電子工作してる時にはよく 3 端子レギュレータで作った 5V 電源使ってるけど USB にも 5V が通ってるんだから USB から電源作れそうな気がする。&lt;/p&gt;</content:encoded></item><item><title><![CDATA[7セグLED ダイナミック点灯制御をやってみた]]></title><description><![CDATA[今回はこの前時間の都合でできなかった 7 セグ LED のダイナミック点灯制御を行ってみました。 ダイナミック点灯とは簡単に言うと LED を制御するピンの本数を少なくできるというもの。
1 個の 7 セグ LED をで数字を表示するには 7 個のピンを制御する必要があり、…]]></description><link>https://blog.icchi.me/7seg-led-dynamic-lighting-control</link><guid isPermaLink="false">https://blog.icchi.me/7seg-led-dynamic-lighting-control</guid><pubDate>Tue, 19 Mar 2013 22:06:00 GMT</pubDate><content:encoded>&lt;p&gt;今回はこの前時間の都合でできなかった 7 セグ LED のダイナミック点灯制御を行ってみました。&lt;/p&gt;
&lt;p&gt;ダイナミック点灯とは簡単に言うと LED を制御するピンの本数を少なくできるというもの。
1 個の 7 セグ LED をで数字を表示するには 7 個のピンを制御する必要があり、3 個の 7 セグになれば 21 個と結構な数になります。これを少なくするために 7 セグ LED の各発光場所ごとにまとめてしまいます。&lt;/p&gt;
&lt;p&gt;だたこれだと 3 つの 7 セグ LED とも同じ数字が表示されますが、表示させる LED を高速で切り替えることによって解決しようという考え。 これは電光掲示板なんかでも使われる技術で案外身近にあったりするみたいです。&lt;/p&gt;
&lt;p&gt;早速 3 個の 7 セグ LED の各発光場所ごとにまとめて前回同様 AVR の D ポート 0 ～ 6 に接続、数字を表示させてみます。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/2adbcf7a6d57e629f13b7453fcd26c35/5e3c2/demo1.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAQDBf/EABUBAQEAAAAAAAAAAAAAAAAAAAIA/9oADAMBAAIQAxAAAAFH0ZTGIL//xAAaEAADAQADAAAAAAAAAAAAAAAAAQISESEi/9oACAEBAAEFArWD0iO5vTdSxPg//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFhEAAwAAAAAAAAAAAAAAAAAAARAR/9oACAECAQE/AaF//8QAHhAAAgEDBQAAAAAAAAAAAAAAAAERAhIhIjEyUqH/2gAIAQEABj8CtVqnsRFODZHPweqTB//EABoQAQEBAQEBAQAAAAAAAAAAAAERACExYUH/2gAIAQEAAT8hcslW9dyCi/LDcTJ/YaKrD4Mf0r2hko7Pu//aAAwDAQACAAMAAAAQXD//xAAWEQEBAQAAAAAAAAAAAAAAAAABABH/2gAIAQMBAT8Qxhv/xAAXEQADAQAAAAAAAAAAAAAAAAAAASEx/9oACAECAQE/EGD2H//EABsQAQADAQEBAQAAAAAAAAAAAAEAESFRMYGh/9oACAEBAAE/EBbyQUowvtVDyEE2piENMNBcKHiteru3CEv6R/Id6DXG/J//2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;demo1&quot;
        title=&quot;demo1&quot;
        src=&quot;/static/2adbcf7a6d57e629f13b7453fcd26c35/4b190/demo1.jpg&quot;
        srcset=&quot;/static/2adbcf7a6d57e629f13b7453fcd26c35/e07e9/demo1.jpg 200w,
/static/2adbcf7a6d57e629f13b7453fcd26c35/066f9/demo1.jpg 400w,
/static/2adbcf7a6d57e629f13b7453fcd26c35/4b190/demo1.jpg 800w,
/static/2adbcf7a6d57e629f13b7453fcd26c35/e5166/demo1.jpg 1200w,
/static/2adbcf7a6d57e629f13b7453fcd26c35/5e3c2/demo1.jpg 1288w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;同じ信号がそれぞれの 7 セグ LED に送られているので当然すべて同じ表示 光らせる 7 セグ LED を切り替えるために、各 7 セグ LED とグランドの間にトランジスタを入れて各トランジスタのベースに AVR の B ポート 0 ～ 2 を接続します。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/e4cd0900f721e79f8b541f2f61ba09cf/5e3c2/demo2.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAMEAv/EABUBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAF8FUkrDBD/AP/EABkQAQEBAAMAAAAAAAAAAAAAAAECABESE//aAAgBAQABBQJPPNddJFll1rMcm//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABURAQEAAAAAAAAAAAAAAAAAABAh/9oACAECAQE/AYf/xAAdEAEAAQMFAAAAAAAAAAAAAAABAAIRIQMQElGh/9oACAEBAAY/AnhQK9szpAy7QTJSy75t/8QAGxABAAICAwAAAAAAAAAAAAAAAQAhETFBgZH/2gAIAQEAAT8hqfECWr5ncuccxSmNKuZmEzsxhoZ//9oADAMBAAIAAwAAABB7D//EABcRAAMBAAAAAAAAAAAAAAAAAAABIWH/2gAIAQMBAT8Qonh//8QAFxEBAQEBAAAAAAAAAAAAAAAAAQARIf/aAAgBAgEBPxBVO7y//8QAHRABAQACAgMBAAAAAAAAAAAAAREAITFhQXHR8P/aAAgBAQABPxDQwqlEHBv9vAD3WII+/mSh2ml47cALLQS7ZiaBs8BOnEQVNuf/2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;demo2&quot;
        title=&quot;demo2&quot;
        src=&quot;/static/e4cd0900f721e79f8b541f2f61ba09cf/4b190/demo2.jpg&quot;
        srcset=&quot;/static/e4cd0900f721e79f8b541f2f61ba09cf/e07e9/demo2.jpg 200w,
/static/e4cd0900f721e79f8b541f2f61ba09cf/066f9/demo2.jpg 400w,
/static/e4cd0900f721e79f8b541f2f61ba09cf/4b190/demo2.jpg 800w,
/static/e4cd0900f721e79f8b541f2f61ba09cf/e5166/demo2.jpg 1200w,
/static/e4cd0900f721e79f8b541f2f61ba09cf/5e3c2/demo2.jpg 1288w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;だいぶ配線がゴチャって来ました(^_^;) 最後に適当に数字をカウントするプログラムを書いて AVR に書き込んでおしまい。 切り替えの間隔を 200ms にしたのがこちら&lt;/p&gt;
&lt;div class=&quot;gatsby-resp-iframe-wrapper&quot; style=&quot;padding-bottom: 56.25%; position: relative; height: 0; overflow: hidden; margin-bottom: 1.0725rem&quot; &gt; &lt;iframe src=&quot;https://www.youtube.com/embed/ZToqD2haru8&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen style=&quot; position: absolute; top: 0; left: 0; width: 100%; height: 100%; &quot;&gt;&lt;/iframe&gt; &lt;/div&gt;
&lt;p&gt;間隔を 5ms まで小さくしてみます。&lt;/p&gt;
&lt;div class=&quot;gatsby-resp-iframe-wrapper&quot; style=&quot;padding-bottom: 56.25%; position: relative; height: 0; overflow: hidden; margin-bottom: 1.0725rem&quot; &gt; &lt;iframe src=&quot;https://www.youtube.com/embed/JFKys1de2Ig&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen style=&quot; position: absolute; top: 0; left: 0; width: 100%; height: 100%; &quot;&gt;&lt;/iframe&gt; &lt;/div&gt;
&lt;p&gt;5ms まで下げると人間の目では切り替えを認識できないですね。
7 セグを使うことはほぼないと思いますがとりあえずお勉強ということで。&lt;/p&gt;
&lt;p&gt;最後に AVR に書き込んたコードでも載せておきます。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;c&quot;&gt;&lt;pre style=&quot;counter-reset: linenumber NaN&quot; class=&quot;language-c line-numbers&quot;&gt;&lt;code class=&quot;language-c&quot;&gt;&lt;span class=&quot;token macro property&quot;&gt;#&lt;span class=&quot;token directive keyword&quot;&gt;include&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&amp;lt;avr/io.h&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token macro property&quot;&gt;#&lt;span class=&quot;token directive keyword&quot;&gt;include&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&amp;lt;util/delay.h&gt;&lt;/span&gt;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;LED_output&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;char&lt;/span&gt; num&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;switch&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;num&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;
        PORTD &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;b00111111&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;
        PORTD &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;b00000110&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;
        PORTD &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;b01011011&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;
        PORTD &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;b01001111&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;
        PORTD &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;b01100110&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;
        PORTD &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;b01101101&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;
        PORTD &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;b11111101&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;
        PORTD &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;b00000111&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;
        PORTD &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;b01111111&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;
        PORTD &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;b01101111&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;void&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    DDRD &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;b111111111&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    DDRB &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;b111111111&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

    PORTD &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;b00000000&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    PORTB &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;b00000000&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

    &lt;span class=&quot;token keyword&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;char&lt;/span&gt; num &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;char&lt;/span&gt; dig &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;char&lt;/span&gt; delay_interval &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

    &lt;span class=&quot;token keyword&quot;&gt;while&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token comment&quot;&gt;// devide num&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;char&lt;/span&gt; dig1 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; num &lt;span class=&quot;token operator&quot;&gt;%&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;char&lt;/span&gt; dig2 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;num&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;char&lt;/span&gt; dig3 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;num&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

        &lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt; i&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;200&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i&lt;span class=&quot;token operator&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;token keyword&quot;&gt;switch&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;dig&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
                &lt;span class=&quot;token keyword&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;
                PORTB &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;b00000001&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;token function&quot;&gt;LED_output&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;dig1&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;token keyword&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;token keyword&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;
                PORTB &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;b00000010&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;token function&quot;&gt;LED_output&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;dig2&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;token keyword&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;token keyword&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;
                PORTB &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;b00000100&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;token function&quot;&gt;LED_output&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;dig3&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

            &lt;span class=&quot;token function&quot;&gt;_delay_ms&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;delay_interval&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
            dig&lt;span class=&quot;token operator&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;dig&lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; dig &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

    num&lt;span class=&quot;token operator&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

    &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;white-space: normal; width: auto; left: 0;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[7セグメントLED NKR161で遊んでみた]]></title><description><![CDATA[本日、PC パーツなどを片付けていたんですが、ふとボロいダンボールを覗いてみると、そこにはかなり昔の電子工作キットが。 保存が悪いものは使えなさそうでしたが、袋に入っていたおかげで状態がいい 7 セグメント LED を見つけました。父親に聞いてみると 3…]]></description><link>https://blog.icchi.me/test-7seg-led-nkr161</link><guid isPermaLink="false">https://blog.icchi.me/test-7seg-led-nkr161</guid><pubDate>Fri, 15 Mar 2013 00:14:00 GMT</pubDate><content:encoded>&lt;p&gt;本日、PC パーツなどを片付けていたんですが、ふとボロいダンボールを覗いてみると、そこにはかなり昔の電子工作キットが。&lt;/p&gt;
&lt;p&gt;保存が悪いものは使えなさそうでしたが、袋に入っていたおかげで状態がいい 7 セグメント LED を見つけました。父親に聞いてみると 30 年ほど前のものらしい。&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/af1c9593ec7aee9fff337b6bdcb78c13/4b190/7seg-led.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAMEAv/EABUBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAG+J0krjJL/AP/EABsQAAICAwEAAAAAAAAAAAAAAAABAhEDEyEj/9oACAEBAAEFApKhzRZm9FrFxf/EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABYRAAMAAAAAAAAAAAAAAAAAAAEQEf/aAAgBAgEBPwExf//EABkQAAIDAQAAAAAAAAAAAAAAAAABEBExYf/aAAgBAQAGPwIfJ1lH/8QAGxAAAwACAwAAAAAAAAAAAAAAAAERITFBUXH/2gAIAQEAAT8hfQtyEPKHUHV4Ra9Akuh//9oADAMBAAIAAwAAABDrL//EABYRAAMAAAAAAAAAAAAAAAAAAAEQEf/aAAgBAwEBPxAVf//EABYRAAMAAAAAAAAAAAAAAAAAAAEQEf/aAAgBAgEBPxAqX//EABoQAQADAQEBAAAAAAAAAAAAAAEAESExUcH/2gAIAQEAAT8QaTWetR8JZUn2ADQSxipE6PRLEk4W+wwFQZc//9k=&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;7seg led&quot;
        title=&quot;7seg led&quot;
        src=&quot;/static/af1c9593ec7aee9fff337b6bdcb78c13/4b190/7seg-led.jpg&quot;
        srcset=&quot;/static/af1c9593ec7aee9fff337b6bdcb78c13/e07e9/7seg-led.jpg 200w,
/static/af1c9593ec7aee9fff337b6bdcb78c13/066f9/7seg-led.jpg 400w,
/static/af1c9593ec7aee9fff337b6bdcb78c13/4b190/7seg-led.jpg 800w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;先輩にあたる部品に敬意を表していざ google で検索。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.stanley-components.com/jp/description_of_part_number/led_numeric_display.cfm&quot;&gt;こちら&lt;/a&gt;のメーカー HP によると、この 7 セグの品番 NKR161 は N が 7 セグ、K がカソードコモン、R が赤色を意味してるらしい。&lt;/p&gt;
&lt;p&gt;さっそく、動作するかチェック&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/7c6a6999b20062c054e176dbe8bf2729/4b190/demo.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAAMAAAAAAAAAAAAAAAAAAAECBP/EABYBAQEBAAAAAAAAAAAAAAAAAAECA//aAAwDAQACEAMQAAABzEiUZ3//xAAbEAABBQEBAAAAAAAAAAAAAAABAAIDERIUMf/aAAgBAQABBQLnsZlQ8a+QDUiFr//EABURAQEAAAAAAAAAAAAAAAAAABAh/9oACAEDAQE/Aaf/xAAVEQEBAAAAAAAAAAAAAAAAAAAQIf/aAAgBAgEBPwGH/8QAHRAAAgIBBQAAAAAAAAAAAAAAAAIBEhARITEygf/aAAgBAQAGPwK0Svh3XGlVOFNz/8QAGxABAAMBAAMAAAAAAAAAAAAAAQARITFBkaH/2gAIAQEAAT8hWd10hVr4TJELOypPfNF1e9j1i78T/9oADAMBAAIAAwAAABBz7//EABYRAQEBAAAAAAAAAAAAAAAAAAEAMf/aAAgBAwEBPxABGX//xAAXEQEBAQEAAAAAAAAAAAAAAAABADEh/9oACAECAQE/EFezvL//xAAcEAEAAgIDAQAAAAAAAAAAAAABABEhMUFR8HH/2gAIAQEAAT8QGutstq+xL7ZHIa4+QoAxUMXzDVJw2PaiDR7SgbtNPSf/2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;demo&quot;
        title=&quot;demo&quot;
        src=&quot;/static/7c6a6999b20062c054e176dbe8bf2729/4b190/demo.jpg&quot;
        srcset=&quot;/static/7c6a6999b20062c054e176dbe8bf2729/e07e9/demo.jpg 200w,
/static/7c6a6999b20062c054e176dbe8bf2729/066f9/demo.jpg 400w,
/static/7c6a6999b20062c054e176dbe8bf2729/4b190/demo.jpg 800w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;おぉ無事点灯！！ちょっとした感動モンです(^o^
似たような品番のデータシートとピン配置が同じで助かりました。&lt;/p&gt;
&lt;p&gt;せっかく動作したので数字を表示させるプログラムを AVR に書き込んでみました。&lt;/p&gt;
&lt;div class=&quot;gatsby-resp-iframe-wrapper&quot; style=&quot;padding-bottom: 56.25%; position: relative; height: 0; overflow: hidden; margin-bottom: 1.0725rem&quot; &gt; &lt;iframe src=&quot;https://www.youtube.com/embed/cU71WPmaD4s&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen style=&quot; position: absolute; top: 0; left: 0; width: 100%; height: 100%; &quot;&gt;&lt;/iframe&gt; &lt;/div&gt;
&lt;p&gt;ほんとうは 7 セグ LED が 3 個あったのでダイナミック制御を試してみたかったんですが、これからボードに行くので時間が足りませんでした。&lt;/p&gt;
&lt;p&gt;また帰ってきてから続きをやりたいと思います。&lt;/p&gt;</content:encoded></item><item><title><![CDATA[マルチバイブレーターを作ってみた]]></title><description><![CDATA[トランジスタ 2 つを使ってマルチバイブレーターを作ってみました。 電源は 3 端子レギュレーターを使って 5v…]]></description><link>https://blog.icchi.me/make-multi-vibrator</link><guid isPermaLink="false">https://blog.icchi.me/make-multi-vibrator</guid><pubDate>Fri, 08 Mar 2013 10:47:00 GMT</pubDate><content:encoded>&lt;p&gt;トランジスタ 2 つを使ってマルチバイブレーターを作ってみました。 電源は 3 端子レギュレーターを使って 5v で動作させてます。&lt;/p&gt;
&lt;p&gt;これはトランジスタのベース前にコンデンサを挟むことによってその静電容量に比例して一定時間のパルスが発生されるというもの。&lt;/p&gt;
&lt;p&gt;動作原理を理解するのは少し時間がかかりましたが、理解してみるとこの構造を考えた人はどんだけすごいのかと感心させられます。&lt;/p&gt;
&lt;p&gt;100μF を使った場合&lt;/p&gt;
&lt;div class=&quot;gatsby-resp-iframe-wrapper&quot; style=&quot;padding-bottom: 56.25%; position: relative; height: 0; overflow: hidden; margin-bottom: 1.0725rem&quot; &gt; &lt;iframe src=&quot;https://www.youtube.com/embed/bKpvNxnKbWU&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen style=&quot; position: absolute; top: 0; left: 0; width: 100%; height: 100%; &quot;&gt;&lt;/iframe&gt; &lt;/div&gt;
&lt;p&gt;470μF を使った場合&lt;/p&gt;
&lt;div class=&quot;gatsby-resp-iframe-wrapper&quot; style=&quot;padding-bottom: 56.25%; position: relative; height: 0; overflow: hidden; margin-bottom: 1.0725rem&quot; &gt; &lt;iframe src=&quot;https://www.youtube.com/embed/DyzJxbY-KWE&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen style=&quot; position: absolute; top: 0; left: 0; width: 100%; height: 100%; &quot;&gt;&lt;/iframe&gt; &lt;/div&gt;
&lt;p&gt;容量が大きくなった方が充電に時間がかかりパスルの発生が置くせていることが確認できます。&lt;/p&gt;
&lt;p&gt;コレクタの電圧を測ってみたけど少し不安定な感じ&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 800px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/e7138011ba5d83aec3798ff629677a1c/4b190/demo.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 75%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAIDBAX/xAAVAQEBAAAAAAAAAAAAAAAAAAACAf/aAAwDAQACEAMQAAAB5bU0FKTBf//EABoQAAIDAQEAAAAAAAAAAAAAAAECAAMTBCH/2gAIAQEAAQUCMUe4CczVh77KidXn/8QAFhEAAwAAAAAAAAAAAAAAAAAAEBEh/9oACAEDAQE/AXR//8QAFhEBAQEAAAAAAAAAAAAAAAAAACES/9oACAECAQE/AcxX/8QAHRAAAQMFAQAAAAAAAAAAAAAAAAExUQIDEBETMv/aAAgBAQAGPwJ9HrCrdiCjlMDH/8QAGhABAAIDAQAAAAAAAAAAAAAAAQARITFRgf/aAAgBAQABPyFW15wlFK72OOl12VzppdooVEy1jZgJP//aAAwDAQACAAMAAAAQOz//xAAXEQEAAwAAAAAAAAAAAAAAAAAAARFB/9oACAEDAQE/EMFQ/8QAFxEBAAMAAAAAAAAAAAAAAAAAABFBUf/aAAgBAgEBPxCxOn//xAAbEAEBAQEAAwEAAAAAAAAAAAABESEAMWFx0f/aAAgBAQABPxCIBIFM5vFKKTHSOBDlnZmgHyb+daQ+YRM+7ylLZrJ67//Z&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;demo&quot;
        title=&quot;demo&quot;
        src=&quot;/static/e7138011ba5d83aec3798ff629677a1c/4b190/demo.jpg&quot;
        srcset=&quot;/static/e7138011ba5d83aec3798ff629677a1c/e07e9/demo.jpg 200w,
/static/e7138011ba5d83aec3798ff629677a1c/066f9/demo.jpg 400w,
/static/e7138011ba5d83aec3798ff629677a1c/4b190/demo.jpg 800w&quot;
        sizes=&quot;(max-width: 800px) 100vw, 800px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;どうもベース電流がうまく制御できていないように感じるけど、とりあえずこれで動作確認終了。&lt;/p&gt;</content:encoded></item><item><title><![CDATA[ブログ開設]]></title><description><![CDATA[ブログに興味があった＋やったことをまとめる場所が欲しかったのでブログを初めてみました。 大体は PC、プログラミング、電子工作などといった趣味の内容を書いていく予定です。
ほぼ備忘録として利用します。 のんびり更新していければいいな。]]></description><link>https://blog.icchi.me/start-my-blog</link><guid isPermaLink="false">https://blog.icchi.me/start-my-blog</guid><pubDate>Thu, 21 Feb 2013 14:17:00 GMT</pubDate><content:encoded>&lt;p&gt;ブログに興味があった＋やったことをまとめる場所が欲しかったのでブログを初めてみました。&lt;/p&gt;
&lt;p&gt;大体は PC、プログラミング、電子工作などといった趣味の内容を書いていく予定です。
ほぼ備忘録として利用します。&lt;/p&gt;
&lt;p&gt;のんびり更新していければいいな。&lt;/p&gt;</content:encoded></item></channel></rss>