<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>arduino &#8211; JunkHack Feed</title>
	<link>/</link>
	<description>アリエクでポチった JUNKHACK</description>
	<lastBuildDate>Sat, 01 May 2021 21:56:55 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.3</generator>

<image>
	<url>/wp-content/uploads/2020/09/logo.png</url>
	<title>arduino &#8211; JunkHack</title>
	<link>/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>XIAOでMacのスクリーンショット専用USBキーを作るDIY</title>
		<link>/2021/03/01/post-10186.html</link>
		
		<dc:creator><![CDATA[JunkHack]]></dc:creator>
		<pubDate>Sun, 28 Feb 2021 17:20:05 +0000</pubDate>
				<category><![CDATA[arduino]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">/?p=10186</guid>
				<media:thumbnail url="/wp-content/uploads/2021/03/DIY-USB-KEY-1.png" />
							<description><![CDATA[今回のDIYは、ちょっと実用的なものを作ろうかと思います 最近、はまっている小さくて安いArduino互換機、XIAOを使ってカスタマイズできるキーボードを作ろうと思います！　冒頭でも少し触れましたが、Macのスクショア [&#8230;]]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-word-balloon-word-balloon-block"><div class="w_b_box w_b_w100 w_b_flex w_b_div"><div class="w_b_wrap w_b_wrap_talk w_b_L w_b_flex w_b_div" style=""><div class="w_b_ava_box w_b_relative w_b_ava_L w_b_col w_b_f_n w_b_div"><div class="w_b_icon_wrap w_b_relative w_b_div"><div class="w_b_ava_wrap w_b_direction_L w_b_mp0 w_b_div"><div class="w_b_ava_effect w_b_relative w_b_oh w_b_radius w_b_size_M w_b_div" style="">
<img decoding="async" src="/wp-content/uploads/2020/09/abata.png" width="96" height="96" alt="じゃんくはっく" class="w_b_ava_img w_b_w100 w_b_h100  w_b_mp0 w_b_img" style="" />
</div></div></div><div class="w_b_name w_b_w100 w_b_lh w_b_name_C w_b_ta_C w_b_mp0 w_b_div">じゃんくはっく</div></div><div class="w_b_bal_box w_b_bal_L w_b_relative w_b_direction_L w_b_w100 w_b_div"><div class="w_b_space w_b_mp0 w_b_div"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="1" height="38" viewBox="0 0 1 1" fill="transparent" stroke="transparent" stroke-miterlimit="10" class="w_b_db w_b_mp0"><polygon fill="transparent" stroke="transparent" points="0,1 0,1 0,1 0,1 "/></svg></div><div class="w_b_bal_outer w_b_flex w_b_mp0 w_b_relative w_b_div" style=""><div class="w_b_bal_wrap w_b_bal_wrap_L w_b_div"><div class="w_b_bal w_b_relative w_b_talk w_b_talk_L w_b_shadow_L w_b_ta_L w_b_div"><div class="w_b_quote w_b_div">
<p>スクショの専用キーがほしい！</p>
</div></div></div></div></div></div></div></div>



<div class="wp-block-word-balloon-word-balloon-block"><div class="w_b_box w_b_w100 w_b_flex w_b_mla w_b_jc_fe w_b_div"><div class="w_b_wrap w_b_wrap_talk w_b_R w_b_flex w_b_jc_fe w_b_div" style=""><div class="w_b_bal_box w_b_bal_R w_b_relative w_b_direction_R w_b_w100 w_b_div"><div class="w_b_space w_b_mp0 w_b_div"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="1" height="38" viewBox="0 0 1 1" fill="transparent" stroke="transparent" stroke-miterlimit="10" class="w_b_db w_b_mp0"><polygon fill="transparent" stroke="transparent" points="0,1 0,1 0,1 0,1 "/></svg></div><div class="w_b_bal_outer w_b_flex w_b_mp0 w_b_relative w_b_div" style=""><div class="w_b_bal_wrap w_b_bal_wrap_R w_b_div"><div class="w_b_bal w_b_relative w_b_talk w_b_talk_R w_b_shadow_R w_b_ta_L w_b_div"><div class="w_b_quote w_b_div">
<p>Macだと、シフト＋コマンド＋３とかの？</p>
</div></div></div></div></div><div class="w_b_ava_box w_b_relative w_b_ava_R w_b_col w_b_f_n w_b_div"><div class="w_b_icon_wrap w_b_relative w_b_div"><div class="w_b_ava_wrap w_b_direction_R w_b_mp0 w_b_div"><div class="w_b_ava_effect w_b_relative w_b_oh w_b_radius w_b_size_M w_b_div" style="">
<img decoding="async" src="/wp-content/uploads/2020/09/pi-.png" width="96" height="96" alt="ぴー" class="w_b_ava_img w_b_w100 w_b_h100  w_b_mp0 w_b_img" style="" />
</div></div></div><div class="w_b_name w_b_w100 w_b_lh w_b_name_C w_b_ta_C w_b_mp0 w_b_div">ぴー</div></div></div></div></div>



<div class="wp-block-word-balloon-word-balloon-block"><div class="w_b_box w_b_w100 w_b_flex w_b_div"><div class="w_b_wrap w_b_wrap_talk w_b_L w_b_flex w_b_div" style=""><div class="w_b_ava_box w_b_relative w_b_ava_L w_b_col w_b_f_n w_b_div"><div class="w_b_icon_wrap w_b_relative w_b_div"><div class="w_b_ava_wrap w_b_direction_L w_b_mp0 w_b_div"><div class="w_b_ava_effect w_b_relative w_b_oh w_b_radius w_b_size_M w_b_div" style="">
<img decoding="async" src="/wp-content/uploads/2020/09/abata.png" width="96" height="96" alt="じゃんくはっく" class="w_b_ava_img w_b_w100 w_b_h100  w_b_mp0 w_b_img" style="" />
</div></div></div><div class="w_b_name w_b_w100 w_b_lh w_b_name_C w_b_ta_C w_b_mp0 w_b_div">じゃんくはっく</div></div><div class="w_b_bal_box w_b_bal_L w_b_relative w_b_direction_L w_b_w100 w_b_div"><div class="w_b_space w_b_mp0 w_b_div"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="1" height="38" viewBox="0 0 1 1" fill="transparent" stroke="transparent" stroke-miterlimit="10" class="w_b_db w_b_mp0"><polygon fill="transparent" stroke="transparent" points="0,1 0,1 0,1 0,1 "/></svg></div><div class="w_b_bal_outer w_b_flex w_b_mp0 w_b_relative w_b_div" style=""><div class="w_b_bal_wrap w_b_bal_wrap_L w_b_div"><div class="w_b_bal w_b_relative w_b_talk w_b_talk_L w_b_shadow_L w_b_ta_L w_b_div"><div class="w_b_quote w_b_div">
<p>Mac標準だとそうだけど、Skitchっていうスクショツール使ってるからシフト＋コマンド＋５だね。</p>
</div></div></div></div></div></div></div></div>



<div class="wp-block-word-balloon-word-balloon-block"><div class="w_b_box w_b_w100 w_b_flex w_b_mla w_b_jc_fe w_b_div"><div class="w_b_wrap w_b_wrap_talk w_b_R w_b_flex w_b_jc_fe w_b_div" style=""><div class="w_b_bal_box w_b_bal_R w_b_relative w_b_direction_R w_b_w100 w_b_div"><div class="w_b_space w_b_mp0 w_b_div"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="1" height="38" viewBox="0 0 1 1" fill="transparent" stroke="transparent" stroke-miterlimit="10" class="w_b_db w_b_mp0"><polygon fill="transparent" stroke="transparent" points="0,1 0,1 0,1 0,1 "/></svg></div><div class="w_b_bal_outer w_b_flex w_b_mp0 w_b_relative w_b_div" style=""><div class="w_b_bal_wrap w_b_bal_wrap_R w_b_div"><div class="w_b_bal w_b_relative w_b_talk w_b_talk_R w_b_shadow_R w_b_ta_L w_b_div"><div class="w_b_quote w_b_div">
<p>いろんな需要があると思うからカスタマイズできるといいね</p>
</div></div></div></div></div><div class="w_b_ava_box w_b_relative w_b_ava_R w_b_col w_b_f_n w_b_div"><div class="w_b_icon_wrap w_b_relative w_b_div"><div class="w_b_ava_wrap w_b_direction_R w_b_mp0 w_b_div"><div class="w_b_ava_effect w_b_relative w_b_oh w_b_radius w_b_size_M w_b_div" style="">
<img decoding="async" src="/wp-content/uploads/2020/09/pi-.png" width="96" height="96" alt="ぴー" class="w_b_ava_img w_b_w100 w_b_h100  w_b_mp0 w_b_img" style="" />
</div></div></div><div class="w_b_name w_b_w100 w_b_lh w_b_name_C w_b_ta_C w_b_mp0 w_b_div">ぴー</div></div></div></div></div>



<p>今回のDIYは、ちょっと実用的なものを作ろうかと思います</p>



<p>最近、はまっている小さくて安いArduino互換機、XIAOを使ってカスタマイズできるキーボードを作ろうと思います！　冒頭でも少し触れましたが、MacのスクショアプリでSkitchっていうツール使っているんですが、このスクショのショート専用のキーボードを作ろうかと。ショートカットは、シフト＋コマンド＋５ですが、３つもボタンを押さないといけないので、１ボタンだと助かります。</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img fetchpriority="high" decoding="async" width="267" height="194" src="/wp-content/uploads/2021/02/image-6.png" alt="" class="wp-image-10197"/></figure></div>



<p>その後、Skitchの編集メニューから「画像をコピー」でクリップボードに入れてWordPressのローカルアプリに貼り付けるのが、一連の動きです。このショートカットがシフト＋コマンド＋C　です。</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="221" height="384" src="/wp-content/uploads/2021/02/image-7.png" alt="" class="wp-image-10198"/></figure></div>



<p>構想では、この２つのボタンが専用であるといいなと。キャンセルしたいときにESCキーがあると便利かもしれませんね。</p>



<h3 class="wp-block-heading">使えるUSBライブラリは？</h3>



<blockquote class="wp-block-quote"><p>TinyUSB Mouse and Keyboard library</p><cite><a href="https://github.com/cyborg5/TinyUSB_Mouse_and_Keyboard/" target="_blank" rel="noreferrer noopener external" data-wpel-link="external" class="wpel-icon-right">https://github.com/cyborg5/TinyUSB_Mouse_and_Keyboard/<span class="wpel-icon wpel-image wpel-icon-1"></span></a></cite></blockquote>



<p>このライブラリは、Chris Youngさんが統合したTinyUSBです。以下で紹介されています。</p>



<blockquote class="wp-block-quote"><p><a href="https://learn.adafruit.com/mouse-and-keyboard-control-using-tinyusb-and-ble/overview" target="_blank" rel="noreferrer noopener external" data-wpel-link="external" class="wpel-icon-right">Mouse and Keyboard Control Using TinyUSB and BLE<span class="wpel-icon wpel-image wpel-icon-1"></span></a></p></blockquote>



<p>examplesを試したのですが、記述がわかりやすいし使いやすそうだったのでこれでやってみることにします。他にも、Seeedの紹介ページにAdafruitのライブラリを使った例がありますが、examplesを見た限りでは使いにくそうでしたのでこちらはパスです。</p>



<blockquote class="wp-block-quote"><p><a href="https://wiki.seeedstudio.com/jp/Seeeduino-XIAO-TinyUSB/" target="_blank" rel="noreferrer noopener external" class="broken_link wpel-icon-right" data-wpel-link="external">Seeeduino XIAOをUSBデバイス(TinyUSB)として使う<span class="wpel-icon wpel-image wpel-icon-1"></span></a></p></blockquote>



<h3 class="wp-block-heading">ライブラリを入れる</h3>



<p>マスターのZIPをArduinoIDEから入れて、例題をやってみます。</p>



<blockquote class="wp-block-quote"><p>ZIP : TinyUSB_Mouse_and_Keyboard</p><cite><a href="https://github.com/cyborg5/TinyUSB_Mouse_and_Keyboard/archive/master.zip" target="_blank" rel="noreferrer noopener external" data-wpel-link="external" class="wpel-icon-right">URL<span class="wpel-icon wpel-image wpel-icon-1"></span></a></cite></blockquote>



<p>Arduino IDEからライブラリをいれるのは、以下からです。</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="555" height="189" src="/wp-content/uploads/2021/03/image.png" alt="" class="wp-image-10202"/></figure></div>



<p>ZIPのライブラリを入れると、以下のように同じところから見えていると思います。</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="284" height="477" src="/wp-content/uploads/2021/03/image-1.png" alt="" class="wp-image-10203"/></figure></div>



<p>提供されたライブラリは、Macだと以下に入るようです。直接ここに入れてもOKです。</p>



<blockquote class="wp-block-quote"><p>/Users/<strong>USERNAME</strong>/Documents/Arduino/libraries/</p></blockquote>



<p>ちなみに、ArduinoIDE組込（デフォルトの）は以下です。</p>



<blockquote class="wp-block-quote"><p>/Applications/Arduino.app/Contents/Java/libraries/</p></blockquote>



<p>XIAOのボード関連は以下にあります。</p>



<blockquote class="wp-block-quote"><p>/Users/<strong>USERNAME</strong>/Library/Arduino15/packages/Seeeduino/</p></blockquote>



<p>ライブラリとか、PGのディレクトリ以下に格納しておいたほうが後からわかりやすいかもしれません。数年後、また動かそうとすると環境変わっていたりしますからね。その場合は、includeをダブルクオートで囲って記載すればカレントディレクリ（現在のディレクトリのこと）を参照します。</p>



<pre class="wp-block-code"><code>#include "TinyUSB_Mouse_and_Keyboard.h"</code></pre>



<h3 class="wp-block-heading">サンプルを動かしてみる</h3>



<p>Macユーザーで、Launchpad のショートカットをF5にしていれば動作します。</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="668" height="615" src="/wp-content/uploads/2021/03/image-2.png" alt="" class="wp-image-10204"/></figure></div>



<pre class="wp-block-code"><code>$ git clone https://github.com/take-i/XIAO-USB-example.git
$ cd XIAO-USB-example/xiao_usb1/
$ open xiao_usb1.ino </code></pre>



<p>XIAOに書き込んで、見てください。ブラウザが起動して JunkHackのページが見えていれば成功です。</p>



<p>サンプル例では、Launchpadが開き、コマンドFで検索、英字モードに切り替えてterminalをタイプしてターミナルを開きます。ターミナルからはURLをオープンしています。macの場合、コマンドの修飾キーは以下のようにKEY_LEFT_GUIが相当します。WindowsだとWINキーです。</p>



<pre class="wp-block-code"><code>  // New terminal windows
  Keyboard.press(KEY_LEFT_GUI);
  Keyboard.write('n');
  Keyboard.releaseAll();</code></pre>



<p>Keyboard.pressは、押しっぱなし状態になるのでKeyboard.releaseAll()でリリースします。delayを入れないと、速すぎて期待する動作にならないので適当に調整します。</p>



<h3 class="wp-block-heading">４ボタンの専用キーボードを作る！</h3>



<p>さて、サンプルはうまく動いたので実際にボタンをつけて日常的に使える状態にします。こんなコードにしました。</p>



<pre class="wp-block-code"><code>https:&#47;&#47;github.com/take-i/XIAO-USB-example/tree/master/ss-key</code></pre>



<p>Pin接続は、A7 , A8 , A9 , A10 とGNDの５つです。なお、このPGは同時にボタンを押した時の考慮はしていませんのでご注意を。クリティカルなボタンの場合は、何かキーが押されている場合は違うキーの処理に入らないようにする必要があります。</p>



<h3 class="wp-block-heading">筐体に組み込む！</h3>



<p>３Dプリンターとメカニカルスイッチで作るのが面倒だったので、適当なジャンク品のキーボードを漁ってきました。</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="565" src="/wp-content/uploads/2021/03/image-3-1024x565.png" alt="" class="wp-image-10207" srcset="/wp-content/uploads/2021/03/image-3-1024x565.png 1024w, /wp-content/uploads/2021/03/image-3-768x423.png 768w, /wp-content/uploads/2021/03/image-3-984x543.png 984w, /wp-content/uploads/2021/03/image-3.png 1177w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></div>



<p>15年くらい前の無線キーボードです。エンターキーが無くなっているのは、子供に剥がされたからです。それ以来、使っていませんでしたがここに来て約に立ちそうです。</p>



<p>このタイプのキーボードはノートPCと同じで、キーボードの下はフィルムのメンブレンスイッチになっています。これにジャンパー配線するのは厳しいので、端っこのパーツを使うことにしました。</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="722" src="/wp-content/uploads/2021/03/image-4-1024x722.png" alt="" class="wp-image-10208" srcset="/wp-content/uploads/2021/03/image-4-1024x722.png 1024w, /wp-content/uploads/2021/03/image-4-768x542.png 768w, /wp-content/uploads/2021/03/image-4-984x694.png 984w, /wp-content/uploads/2021/03/image-4.png 1116w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></div>



<p>こっちは基盤があって、なんとかなりそうです。キーボード筐体をグラインダーで切断し、左側部分を使うことにしました。こんな感じ。</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="765" src="/wp-content/uploads/2021/03/image-6-1024x765.png" alt="" class="wp-image-10210" srcset="/wp-content/uploads/2021/03/image-6-1024x765.png 1024w, /wp-content/uploads/2021/03/image-6-768x573.png 768w, /wp-content/uploads/2021/03/image-6-984x735.png 984w, /wp-content/uploads/2021/03/image-6.png 1212w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></div>



<p>配線はこんな感じ。XIAOは小さいので、ほんと助かります。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="839" height="628" src="/wp-content/uploads/2021/03/image-7.png" alt="" class="wp-image-10211" srcset="/wp-content/uploads/2021/03/image-7.png 839w, /wp-content/uploads/2021/03/image-7-768x575.png 768w" sizes="(max-width: 839px) 100vw, 839px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="688" src="/wp-content/uploads/2021/03/XIAO_Pin.png" alt="" class="wp-image-10213" srcset="/wp-content/uploads/2021/03/XIAO_Pin.png 1024w, /wp-content/uploads/2021/03/XIAO_Pin-768x516.png 768w, /wp-content/uploads/2021/03/XIAO_Pin-984x661.png 984w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>黒い線がGNDで、それ以外はボタンからのプリント基板の配線からジャンパー線を出して使っています。</p>



<p>こんな感じで、無線キーボードの上に置いてあります。</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="742" src="/wp-content/uploads/2021/03/image-5-1024x742.png" alt="" class="wp-image-10209" srcset="/wp-content/uploads/2021/03/image-5-1024x742.png 1024w, /wp-content/uploads/2021/03/image-5-768x557.png 768w, /wp-content/uploads/2021/03/image-5-984x713.png 984w, /wp-content/uploads/2021/03/image-5.png 1251w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></div>



<p>右側からESC、スクショ、スクショのコピー、https://www.canva.com/ を開く　の４機能を持たせてあります。今もこの記事を書いているときにこのボタンを使っていますが、かなり便利ですね！　canvaを割り当てているのは、ブログ記事のサムネイルをいつもここで作るからです。今回はこんな感じかな？</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="800" height="800" src="/wp-content/uploads/2021/03/DIY-USB-KEY.png" alt="" class="wp-image-10212" srcset="/wp-content/uploads/2021/03/DIY-USB-KEY.png 800w, /wp-content/uploads/2021/03/DIY-USB-KEY-768x768.png 768w" sizes="(max-width: 800px) 100vw, 800px" /></figure></div>



<p>Macからはこんな感じで認識されています。</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="540" height="383" src="/wp-content/uploads/2021/03/image-8.png" alt="" class="wp-image-10214"/></figure></div>



<p>キーボードの修飾キーにも、出ていますね</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="665" height="605" src="/wp-content/uploads/2021/03/image-9.png" alt="" class="wp-image-10215"/></figure></div>



<h3 class="wp-block-heading">MacのKeycodeを確認</h3>



<p>※追記<br>MacだとどんなKeycodeがタイプされるのか確認しておきたかったので、macosで動作するキーロガーのソースを少し修正してDecで数字を出すように改修したものが以下にあります。</p>



<blockquote class="wp-block-quote"><p>Mac OS X Keylogger</p><cite><a href="https://github.com/take-i/keylogger-macos" target="_blank" rel="noreferrer noopener external" data-wpel-link="external" class="wpel-icon-right">https://github.com/take-i/keylogger-macos<span class="wpel-icon wpel-image wpel-icon-1"></span></a></cite></blockquote>



<p>オリジナルは、アトランタのアプリ開発者、ケーシー・スカボローさんが作ったものです。簡単に使い方を記載しておきます。</p>



<pre class="wp-block-code"><code>$ sudo touch /var/log/keystroke.log
$ sudo chmod 644 /var/log/keystroke.log
$ git clone https://github.com/take-i/keylogger-macos.git &amp;&amp; cd keylogger-macos/
$ make
$ sudo ./keylogger</code></pre>



<p>ログは以下のパスに数字で出力されます。</p>



<pre class="wp-block-code"><code>$ tail -f /var/log/keystroke.log</code></pre>



<p>たとえば、Macのキーボード配列の場合、F3キーはMission Controlのキーとなり、Keycodeは、160となります。F3の場合は99です。純正キーボードの場合は、以下のようにキーボード設定に「F1、F2などのキー標準のファンクションキーとして使用」のチェックボックスがでます。社外キーボードの場合、これはでないようです。</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="668" height="581" src="/wp-content/uploads/2021/03/mac-keyboard.png" alt="" class="wp-image-10252"/></figure></div>



<p>DIYキーボードをUSB接続したとき、macのキーボードだと認識させてMission Controlのコードとして認識させるようにする方法を模索したのですが、ちょっとよくわかりませんでした。また、いつか再チャレンジしたときに覚書として書いておきます。</p>



<h3 class="wp-block-heading">まとめ</h3>



<p>今回、なんとなくわかった・わからなかったのは以下となります。</p>



<p>・Seeed XIAOは簡単にキーボード・マウスのデバイスが作れる<br>・スイッチOn,OffタイプであればPinの数分、キーは作れる（最大、１１Key）<br>・ライブラリは、TinyUSB Mouse and Keyboard libraryが使いやすかった<br>・KeycodeというのがUSBの仕様で決まっているようです（<a rel="noreferrer noopener external" href="https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf" target="_blank" data-wpel-link="external" class="wpel-icon-right">hut1_12v2.pdf<span class="wpel-icon wpel-image wpel-icon-1"></span></a>）<br>・こっちのUSB仕様書のほうが新しいかな？（<a rel="noreferrer noopener external" href="https://usb.org/sites/default/files/hut1_21_0.pdf" target="_blank" data-wpel-link="external" class="wpel-icon-right">hut1_21_0.pdf<span class="wpel-icon wpel-image wpel-icon-1"></span></a>）<br>・macの場合は、<a rel="noreferrer noopener external" href="https://github.com/caseyscarborough/keylogger" target="_blank" data-wpel-link="external" class="wpel-icon-right">Mac OS X Keylogger<span class="wpel-icon wpel-image wpel-icon-1"></span></a>　を少し手直しすれば番号がわかる<br>・しかし、USBの仕様書とは違う値が帰る（例：F3は、macだと10進で160または99、USB仕様書では、60）<br>・PGの定義は、0xC4で10進だと196<br>・<a rel="noreferrer noopener external" href="http://blog.livedoor.jp/hardyboy/archives/5532602.html" target="_blank" data-wpel-link="external" class="wpel-icon-right">ここ<span class="wpel-icon wpel-image wpel-icon-1"></span></a>によれば、0x88以上は、その値から0x88を引いた数（10進だと136）となるようです。つまり、196-136=60　なるほど！PGの定義からは謎がとけました<br>・しかし、macのkeycodeは違う値を出す。ここがよくわからない<br>・おそらく、macはkeycodeのマッピングテーブルを持っているのだろう<br>・または、キーボード種類によってF3はMission ControlになるようOSがマッピングしているのだろう<br>・keycodeとUSBデバイスのレイアウトの関係はまだ奥が深そうだ<br>・フィルムのメンブレンスイッチって自作できないかな？<br>・アルミテープとラミネートフィルムで作れないかな？</p>



<h3 class="wp-block-heading">あとがき</h3>



<p>作ってみて、実際に使ってみたらすごく具合がいいです。USBデバイスをこんなに簡単に作れるとは、驚きですね。いつか、本格的なキーボード作りもしてみたいです。40%キーボードとか小さくて可愛いので使ってみたいんですが、何から手をつけていいのかよくわかりません。あと、薄いMacのキーボードに手が馴染んでしまったのでという理由もあります。</p>



<p>まぁ次キーボード作る機会もあると思うので、その時は自作したいですね。</p>



<h3 class="wp-block-heading">著者にメッセージ</h3>



 


<p>間違いのご指摘など、コメントじゃなくて、個人的にやりとりしたい場合は<a class="c-link-text" href="/mail.html" target="_blank" rel="noopener noreferrer" data-wpel-link="internal">こちらから</a>どうぞ。お返事が遅くなるときもありますが、ご了承を。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Arduino Nano互換機に書き込めないだと！</title>
		<link>/2021/02/23/post-10154.html</link>
					<comments>/2021/02/23/post-10154.html#comments</comments>
		
		<dc:creator><![CDATA[JunkHack]]></dc:creator>
		<pubDate>Tue, 23 Feb 2021 06:17:03 +0000</pubDate>
				<category><![CDATA[arduino]]></category>
		<category><![CDATA[DIY]]></category>
		<guid isPermaLink="false">/?p=10154</guid>
				<media:thumbnail url="/wp-content/uploads/2021/02/arduinoNano.png" />
							<description><![CDATA[いやはや、5年も触っていないといろいろ完璧に忘れています。ArduinoNanoという小さなArduino があるんですが、それにLチカでも書き込んで動作確認しようとしたら、書き込めずエラーが出てしまいました。持っている [&#8230;]]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-word-balloon-word-balloon-block"><div class="w_b_box w_b_w100 w_b_flex w_b_div"><div class="w_b_wrap w_b_wrap_talk w_b_L w_b_flex w_b_div" style=""><div class="w_b_ava_box w_b_relative w_b_ava_L w_b_col w_b_f_n w_b_div"><div class="w_b_icon_wrap w_b_relative w_b_div"><div class="w_b_ava_wrap w_b_direction_L w_b_mp0 w_b_div"><div class="w_b_ava_effect w_b_relative w_b_oh w_b_radius w_b_size_M w_b_div" style="">
<img loading="lazy" decoding="async" src="/wp-content/uploads/2020/09/abata.png" width="96" height="96" alt="じゃんくはっく" class="w_b_ava_img w_b_w100 w_b_h100  w_b_mp0 w_b_img" style="" />
</div></div></div><div class="w_b_name w_b_w100 w_b_lh w_b_name_C w_b_ta_C w_b_mp0 w_b_div">じゃんくはっく</div></div><div class="w_b_bal_box w_b_bal_L w_b_relative w_b_direction_L w_b_w100 w_b_div"><div class="w_b_space w_b_mp0 w_b_div"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="1" height="38" viewBox="0 0 1 1" fill="transparent" stroke="transparent" stroke-miterlimit="10" class="w_b_db w_b_mp0"><polygon fill="transparent" stroke="transparent" points="0,1 0,1 0,1 0,1 "/></svg></div><div class="w_b_bal_outer w_b_flex w_b_mp0 w_b_relative w_b_div" style=""><div class="w_b_bal_wrap w_b_bal_wrap_L w_b_div"><div class="w_b_bal w_b_relative w_b_talk w_b_talk_L w_b_shadow_L w_b_ta_L w_b_div"><div class="w_b_quote w_b_div">
<p>5年振りにArduino Nano（互換機）を触ったら書き込みできなーい！</p>
</div></div></div></div></div></div></div></div>



<div class="wp-block-word-balloon-word-balloon-block"><div class="w_b_box w_b_w100 w_b_flex w_b_mla w_b_jc_fe w_b_div"><div class="w_b_wrap w_b_wrap_talk w_b_R w_b_flex w_b_jc_fe w_b_div" style=""><div class="w_b_bal_box w_b_bal_R w_b_relative w_b_direction_R w_b_w100 w_b_div"><div class="w_b_space w_b_mp0 w_b_div"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="1" height="38" viewBox="0 0 1 1" fill="transparent" stroke="transparent" stroke-miterlimit="10" class="w_b_db w_b_mp0"><polygon fill="transparent" stroke="transparent" points="0,1 0,1 0,1 0,1 "/></svg></div><div class="w_b_bal_outer w_b_flex w_b_mp0 w_b_relative w_b_div" style=""><div class="w_b_bal_wrap w_b_bal_wrap_R w_b_div"><div class="w_b_bal w_b_relative w_b_talk w_b_talk_R w_b_shadow_R w_b_ta_L w_b_div"><div class="w_b_quote w_b_div">
<p>あら、壊れたのかしら？</p>
</div></div></div></div></div><div class="w_b_ava_box w_b_relative w_b_ava_R w_b_col w_b_f_n w_b_div"><div class="w_b_icon_wrap w_b_relative w_b_div"><div class="w_b_ava_wrap w_b_direction_R w_b_mp0 w_b_div"><div class="w_b_ava_effect w_b_relative w_b_oh w_b_radius w_b_size_M w_b_div" style="">
<img loading="lazy" decoding="async" src="/wp-content/uploads/2020/09/pi-.png" width="96" height="96" alt="ぴー" class="w_b_ava_img w_b_w100 w_b_h100  w_b_mp0 w_b_img" style="" />
</div></div></div><div class="w_b_name w_b_w100 w_b_lh w_b_name_C w_b_ta_C w_b_mp0 w_b_div">ぴー</div></div></div></div></div>



<div class="wp-block-word-balloon-word-balloon-block"><div class="w_b_box w_b_w100 w_b_flex w_b_div"><div class="w_b_wrap w_b_wrap_talk w_b_L w_b_flex w_b_div" style=""><div class="w_b_ava_box w_b_relative w_b_ava_L w_b_col w_b_f_n w_b_div"><div class="w_b_icon_wrap w_b_relative w_b_div"><div class="w_b_ava_wrap w_b_direction_L w_b_mp0 w_b_div"><div class="w_b_ava_effect w_b_relative w_b_oh w_b_radius w_b_size_M w_b_div" style="">
<img loading="lazy" decoding="async" src="/wp-content/uploads/2020/09/abata.png" width="96" height="96" alt="じゃんくはっく" class="w_b_ava_img w_b_w100 w_b_h100  w_b_mp0 w_b_img" style="" />
</div></div></div><div class="w_b_name w_b_w100 w_b_lh w_b_name_C w_b_ta_C w_b_mp0 w_b_div">じゃんくはっく</div></div><div class="w_b_bal_box w_b_bal_L w_b_relative w_b_direction_L w_b_w100 w_b_div"><div class="w_b_space w_b_mp0 w_b_div"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="1" height="38" viewBox="0 0 1 1" fill="transparent" stroke="transparent" stroke-miterlimit="10" class="w_b_db w_b_mp0"><polygon fill="transparent" stroke="transparent" points="0,1 0,1 0,1 0,1 "/></svg></div><div class="w_b_bal_outer w_b_flex w_b_mp0 w_b_relative w_b_div" style=""><div class="w_b_bal_wrap w_b_bal_wrap_L w_b_div"><div class="w_b_bal w_b_relative w_b_talk w_b_talk_L w_b_shadow_L w_b_ta_L w_b_div"><div class="w_b_quote w_b_div">
<p>「マイコンボードに書き込もうとしましたが、エラーが発生しました。」と出るのよ</p>
</div></div></div></div></div></div></div></div>



<div class="wp-block-word-balloon-word-balloon-block"><div class="w_b_box w_b_w100 w_b_flex w_b_mla w_b_jc_fe w_b_div"><div class="w_b_wrap w_b_wrap_talk w_b_R w_b_flex w_b_jc_fe w_b_div" style=""><div class="w_b_bal_box w_b_bal_R w_b_relative w_b_direction_R w_b_w100 w_b_div"><div class="w_b_space w_b_mp0 w_b_div"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="1" height="38" viewBox="0 0 1 1" fill="transparent" stroke="transparent" stroke-miterlimit="10" class="w_b_db w_b_mp0"><polygon fill="transparent" stroke="transparent" points="0,1 0,1 0,1 0,1 "/></svg></div><div class="w_b_bal_outer w_b_flex w_b_mp0 w_b_relative w_b_div" style=""><div class="w_b_bal_wrap w_b_bal_wrap_R w_b_div"><div class="w_b_bal w_b_relative w_b_talk w_b_talk_R w_b_shadow_R w_b_ta_L w_b_div"><div class="w_b_quote w_b_div">
<p>アリエクでまた買えば</p>



<p>200円くらいでしょ？</p>
</div></div></div></div></div><div class="w_b_ava_box w_b_relative w_b_ava_R w_b_col w_b_f_n w_b_div"><div class="w_b_icon_wrap w_b_relative w_b_div"><div class="w_b_ava_wrap w_b_direction_R w_b_mp0 w_b_div"><div class="w_b_ava_effect w_b_relative w_b_oh w_b_radius w_b_size_M w_b_div" style="">
<img loading="lazy" decoding="async" src="/wp-content/uploads/2020/09/pi-.png" width="96" height="96" alt="ぴー" class="w_b_ava_img w_b_w100 w_b_h100  w_b_mp0 w_b_img" style="" />
</div></div></div><div class="w_b_name w_b_w100 w_b_lh w_b_name_C w_b_ta_C w_b_mp0 w_b_div">ぴー</div></div></div></div></div>



<p>いやはや、5年も触っていないといろいろ完璧に忘れています。ArduinoNanoという小さなArduino があるんですが、それにLチカでも書き込んで動作確認しようとしたら、書き込めずエラーが出てしまいました。持っているNano互換機はこれです。</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="690" height="478" src="/wp-content/uploads/2021/02/nano.png" alt="" class="wp-image-10165"/></figure></div>



<blockquote class="wp-block-quote"><p>JunkHack : arduino hello world!　投稿日: 2015年3月15日<br>6年くらい前の記事で、$3でアリエクでポチったもの</p><cite><a href="/2015/03/15/arduino-hello-world/" target="_blank" rel="noreferrer noopener" data-wpel-link="internal">/2015/03/15/arduino-hello-world/</a></cite></blockquote>



<p>今回のエラーログは以下のようになります。</p>



<pre class="wp-block-code"><code>avrdude: Version 6.3-20190619
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/Applications/Arduino1.8.12.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf"
         User configuration file is "/Users/junkhack/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/cu.wchusbserial14120
         Using Programmer              : arduino
         Overriding Baud Rate          : 115200
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
：：（省略）
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00

avrdude done.  Thank you.

マイコンボードに書き込もうとしましたが、エラーが発生しました。
このページを参考にしてください。
http:&#47;&#47;www.arduino.cc/en/Guide/Troubleshooting#upload</code></pre>



<p>通信が出来ていないような感じですね。キーワード「avrdude: stk500_recv(): programmer is not responding」でググってみるとブートローダーが壊れたとか、いろいろ出て来て壊れたのかなと。でも、実は違うようです。</p>



<h3 class="wp-block-heading">プロセッサ：ATmega328P(Old Bootloader)を選べば大丈夫！</h3>



<blockquote class="wp-block-quote"><p>Arduino / micro:bit / M5Stick勉強会の電録簿<br>ボード・アップデートで書き込みエラー</p><cite><a href="http://www.umek.topaz.ne.jp/mameduino/boardupdate_error/" target="_blank" rel="noreferrer noopener external" class="broken_link wpel-icon-right" data-wpel-link="external">http://www.umek.topaz.ne.jp/mameduino/boardupdate_error/<span class="wpel-icon wpel-image wpel-icon-1"></span></a></cite></blockquote>



<p>このサイトによれば、どうやら、ボード設定メニューのプロセッサー種別選択のサブメニューにて「ATmega328P(Old Bootloader)」を選択するだけでいいようです。</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="648" height="407" src="/wp-content/uploads/2021/02/ArudinoNano.png" alt="" class="wp-image-10155"/></figure></div>



<p>はい、ちゃんと書き込めました。どうやら、Nanoの新しいやつは、通信速度が112.5kbps<strong> </strong>ということで、古いNanoは57.6kbpsということのようです。</p>



<p>ブートローダーを新しくすることもできるようで、もう一台arduinoがあれば以下のように書き込めるようです。</p>



<blockquote class="wp-block-quote"><p>Arduino as ISP and Arduino Bootloaders</p><cite><a href="https://www.arduino.cc/en/Tutorial/BuiltInExamples/ArduinoISP" target="_blank" rel="noreferrer noopener external" data-wpel-link="external" class="wpel-icon-right">https://www.arduino.cc/en/Tutorial/BuiltInExamples/ArduinoISP<span class="wpel-icon wpel-image wpel-icon-1"></span></a></cite></blockquote>



<p><s>また今度やってみようかな。今日はいろいろ違う目的がありますので。</s></p>



<p>いや、こういうのはわかった時に即実行が良いですね。ブログのネタにもなるし少し休憩後、書き込んでみました。</p>



<h3 class="wp-block-heading">UnoをISPにしてNanoに書き込みする！</h3>



<p>こういうのは全体の流れを把握するのが大事です。大きくは以下と理解。</p>



<p>(1) UnoをISPにして、Nanoに書き込む<br>　　→　手持ちにUnoがあったのですが、それ以外でもOK<br>(2) まず、UnoにArduinoISPのスケッチを書き込む<br>　　→　スケッチ例＞11.ArduinoISP＞ArduinoISP<br>　　　　※書き込んだら、次に配線をしますのでUSBを外します<br>(3) UnoとNanoを配線する<br>　　→　配線は６本<br>(4) IDEのツールからブートローダーを書き込む<br>　　→　UnoをUSBでPCに接続。その後書き込みます</p>



<h3 class="wp-block-heading">(1) UnoをISPにして、Nanoに書き込む</h3>



<p>ISPとは、インサーキットシリアルプログラマーということで、ICSPとも略されるようですね。基板に繋いだまま内蔵メモリにプログラムを書き込むことを言うようです。今回の例だと、Nanoのブートローダーを書き込むにあたり、UnoをISPにして書き込むわけです！　</p>



<h3 class="wp-block-heading">(2) まず、UnoにArduinoISPのスケッチを書き込む</h3>



<p>アリエクで昔、本物のUnoをポチっていました。裏が白い基板のです。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="381" src="/wp-content/uploads/2021/02/ss-uno-1024x381.png" alt="" class="wp-image-10160" srcset="/wp-content/uploads/2021/02/ss-uno-1024x381.png 1024w, /wp-content/uploads/2021/02/ss-uno-768x286.png 768w, /wp-content/uploads/2021/02/ss-uno-984x366.png 984w, /wp-content/uploads/2021/02/ss-uno.png 1196w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>まずは、ISPのスケッチをIDEから引っ張りだしてきて、Unoに書き込みます。</p>



<pre class="wp-block-code"><code>スケッチ例 > 11.ArduinoISP > ArduinoISP</code></pre>



<p>次に配線しますので、USBを外しておきます。</p>



<h3 class="wp-block-heading">(3) UnoとNanoを配線する</h3>



<p>配線は６本で、こんな感じです。写真ではUSBが接続さていますが書き込みが終わったときに撮ったからです。配線するときは、外してやってくださいね。</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="683" height="512" src="/wp-content/uploads/2021/02/IMG_20210223_114749_jpg.png" alt="" class="wp-image-10159"/></figure></div>



<div class="wp-block-jetpack-markdown"><table>
<thead>
<tr>
<th>ISP UNO</th>
<th>書込ターゲットNANO</th>
</tr>
</thead>
<tbody>
<tr>
<td>D13</td>
<td>D13</td>
</tr>
<tr>
<td>D12</td>
<td>D12</td>
</tr>
<tr>
<td>D11</td>
<td>D11</td>
</tr>
<tr>
<td>D10</td>
<td>RST</td>
</tr>
<tr>
<td>+5V</td>
<td>+5V</td>
</tr>
<tr>
<td>GND</td>
<td>GND</td>
</tr>
</tbody>
</table>
</div>



<p>実体配線図だとこういうことですね。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="877" src="/wp-content/uploads/2021/02/ArduinoUNOtoUNO_ISP2.jpg" alt="" class="wp-image-10161" srcset="/wp-content/uploads/2021/02/ArduinoUNOtoUNO_ISP2.jpg 800w, /wp-content/uploads/2021/02/ArduinoUNOtoUNO_ISP2-768x842.jpg 768w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p>さて、書き込みましょうか！　USBをUno（ISP）に接続します。</p>



<h3 class="wp-block-heading">(4) IDEのツールからブートローダーを書き込む</h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="776" height="703" src="/wp-content/uploads/2021/02/Uno-isp-to-nano.png" alt="" class="wp-image-10162" srcset="/wp-content/uploads/2021/02/Uno-isp-to-nano.png 776w, /wp-content/uploads/2021/02/Uno-isp-to-nano-768x696.png 768w" sizes="(max-width: 776px) 100vw, 776px" /></figure>



<p>ツールからボート、プロセッサ、シリアルポート、書込装置を程よく選択して「ブートローダを書き込む」でOKです。ログには以下のように流れました。</p>



<pre class="wp-block-code"><code>/Applications/Arduino1.8.12.app/Contents/Java/hardware/tools/avr/bin/avrdude -C/Applications/Arduino1.8.12.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf -v -patmega328p -cstk500v1 -P/dev/cu.usbmodem14111 -b19200 -Uflash:w:/Applications/Arduino1.8.12.app/Contents/Java/hardware/arduino/avr/bootloaders/optiboot/optiboot_atmega328.hex:i -Ulock:w:0x0F:m 

avrdude: Version 6.3-20190619
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/Applications/Arduino1.8.12.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf"
         User configuration file is "/Users/junkhack/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/cu.usbmodem14111
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: 1 bytes of lock verified
avrdude: reading input file "0xFD"
avrdude: writing efuse (1 bytes):

Writing | ################################################## | 100% 0.01s

avrdude: 1 bytes of efuse written
avrdude: verifying efuse memory against 0xFD:
avrdude: load data efuse data from input file 0xFD:
avrdude: input file 0xFD contains 1 bytes
avrdude: reading on-chip efuse data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: 1 bytes of efuse verified
avrdude: reading input file "0xDA"
avrdude: writing hfuse (1 bytes):

Writing | ################################################## | 100% 0.01s

avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xDA:
avrdude: load data hfuse data from input file 0xDA:
avrdude: input file 0xDA contains 1 bytes
avrdude: reading on-chip hfuse data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: 1 bytes of hfuse verified
avrdude: reading input file "0xFF"
avrdude: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.01s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xFF:
avrdude: load data lfuse data from input file 0xFF:
avrdude: input file 0xFF contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: 1 bytes of lfuse verified

avrdude done.  Thank you.

         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "/Applications/Arduino1.8.12.app/Contents/Java/hardware/arduino/avr/bootloaders/optiboot/optiboot_atmega328.hex"
avrdude: writing flash (32768 bytes):

Writing | ################################################## | 100% 0.00s

avrdude: 32768 bytes of flash written
avrdude: verifying flash memory against /Applications/Arduino1.8.12.app/Contents/Java/hardware/arduino/avr/bootloaders/optiboot/optiboot_atmega328.hex:
avrdude: load data flash data from input file /Applications/Arduino1.8.12.app/Contents/Java/hardware/arduino/avr/bootloaders/optiboot/optiboot_atmega328.hex:
avrdude: input file /Applications/Arduino1.8.12.app/Contents/Java/hardware/arduino/avr/bootloaders/optiboot/optiboot_atmega328.hex contains 32768 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: 32768 bytes of flash verified
avrdude: reading input file "0x0F"
avrdude: writing lock (1 bytes):

Writing | ################################################## | 100% 0.02s

avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x0F:
avrdude: load data lock data from input file 0x0F:
avrdude: input file 0x0F contains 1 bytes
avrdude: reading on-chip lock data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: 1 bytes of lock verified

avrdude done.  Thank you.</code></pre>



<h3 class="wp-block-heading">新しいブートローダをNanoで確認</h3>



<p>今書き込んだNanoの動作確認です。ボード設定メニューのプロセッサー種別選択のサブメニューにて「ATmega328P」を選択します。Old Bootloaderじゃないやつです。</p>



<p>LEDブリンクをNanoに書き込み！　以下がログですが、115200kbpsで通信していますね。</p>



<pre class="wp-block-code"><code>avrdude: Version 6.3-20190619
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/Applications/Arduino1.8.12.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf"
         User configuration file is "/Users/junkhack/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/cu.wchusbserial14120
         Using Programmer              : arduino
         Overriding Baud Rate          : 115200
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : Arduino
         Description     : Arduino
         Hardware Version: 3
         Firmware Version: 4.4
         Vtarget         : 0.3 V
         Varef           : 0.3 V
         Oscillator      : 28.800 kHz
         SCK period      : 3.3 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: reading input file "/var/folders/f1/5d6ycdnj6v58mcq9kn4b3ksm0000gn/T/arduino_build_539320/Blink.ino.hex"
avrdude: writing flash (924 bytes):

Writing | ################################################## | 100% 0.48s

avrdude: 924 bytes of flash written
avrdude: verifying flash memory against /var/folders/f1/5d6ycdnj6v58mcq9kn4b3ksm0000gn/T/arduino_build_539320/Blink.ino.hex:
avrdude: load data flash data from input file /var/folders/f1/5d6ycdnj6v58mcq9kn4b3ksm0000gn/T/arduino_build_539320/Blink.ino.hex:
avrdude: input file /var/folders/f1/5d6ycdnj6v58mcq9kn4b3ksm0000gn/T/arduino_build_539320/Blink.ino.hex contains 924 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.45s

avrdude: verifying ...
avrdude: 924 bytes of flash verified

avrdude done.  Thank you.</code></pre>



<p>flash verified　が出ていますね。うまくいったようです！　ログをよく見てみるとファームウェアバージョンは4.4ということのようです。</p>



<blockquote class="wp-block-quote"><p>Hardware Version: 3<br>Firmware Version: 4.4</p></blockquote>



<h3 class="wp-block-heading">まとめ</h3>



<p>今回、なんとなくわかったのは以下となります。</p>



<p>・ブートローダが古ければ、Arduino を書込機器（ISP）にして新しくできる<br>・古いArduinoなら、プロセッサー種別選択で「ATmega328P(Old Bootloader)」を選択<br>・違いは、通信速度のようです。それ以外の違いはまだ不明</p>



<h3 class="wp-block-heading">あとがき</h3>



<p>5年も使っていなかったので、扱いが悪くて壊れたのかな？　と思っていましたが、対応方法があってよかったです！　まさかブートローダが新しくなっていてIDEから古いのを選択しないとダメだとは思っていませんでした。壊れていなくてよかったです。</p>



<p>5年経過しているので、いろいろな環境が変わっていますね。5年前よりいろいろ進化しているので、ハマることもあるかもですが以前より楽しいことができそうな気がします。</p>



<h3 class="wp-block-heading">著者にメッセージ</h3>



 


<p>間違いのご指摘など、コメントじゃなくて、個人的にやりとりしたい場合は<a class="c-link-text" href="/mail.html" target="_blank" rel="noopener noreferrer" data-wpel-link="internal">こちらから</a>どうぞ。お返事が遅くなるときもありますが、ご了承を。</p>
]]></content:encoded>
					
					<wfw:commentRss>/2021/02/23/post-10154.html/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>久しぶりに一目惚れしたArudio互換機のSeeeduino XIAO</title>
		<link>/2021/02/20/post-10121.html</link>
		
		<dc:creator><![CDATA[JunkHack]]></dc:creator>
		<pubDate>Sat, 20 Feb 2021 06:38:39 +0000</pubDate>
				<category><![CDATA[arduino]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[Parts]]></category>
		<guid isPermaLink="false">/?p=10121</guid>
				<media:thumbnail url="/wp-content/uploads/2021/02/seeed-xiao.png" />
							<description><![CDATA[サムネでもわかるとは思いますが、これ全体のフォルムがかわいいんですよね。あと想像よりもちっさいんです。親指くらいの大きさなんですよ。発売は去年の３〜6月ごろだったみたいですが、今頃発見です。 3個入りパッケージで1,75 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-word-balloon-word-balloon-block"><div class="w_b_box w_b_w100 w_b_flex w_b_div"><div class="w_b_wrap w_b_wrap_talk w_b_L w_b_flex w_b_div" style=""><div class="w_b_ava_box w_b_relative w_b_ava_L w_b_col w_b_f_n w_b_div"><div class="w_b_icon_wrap w_b_relative w_b_div"><div class="w_b_ava_wrap w_b_direction_L w_b_mp0 w_b_div"><div class="w_b_ava_effect w_b_relative w_b_oh w_b_radius w_b_size_M w_b_div" style="">
<img loading="lazy" decoding="async" src="/wp-content/uploads/2020/09/abata.png" width="96" height="96" alt="じゃんくはっく" class="w_b_ava_img w_b_w100 w_b_h100  w_b_mp0 w_b_img" style="" />
</div></div></div><div class="w_b_name w_b_w100 w_b_lh w_b_name_C w_b_ta_C w_b_mp0 w_b_div">じゃんくはっく</div></div><div class="w_b_bal_box w_b_bal_L w_b_relative w_b_direction_L w_b_w100 w_b_div"><div class="w_b_space w_b_mp0 w_b_div"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="1" height="38" viewBox="0 0 1 1" fill="transparent" stroke="transparent" stroke-miterlimit="10" class="w_b_db w_b_mp0"><polygon fill="transparent" stroke="transparent" points="0,1 0,1 0,1 0,1 "/></svg></div><div class="w_b_bal_outer w_b_flex w_b_mp0 w_b_relative w_b_div" style=""><div class="w_b_bal_wrap w_b_bal_wrap_L w_b_div"><div class="w_b_bal w_b_relative w_b_talk w_b_talk_L w_b_shadow_L w_b_ta_L w_b_div"><div class="w_b_quote w_b_div">
<p>可愛すぎて一目惚れしました！</p>
</div></div></div></div></div></div></div></div>



<div class="wp-block-word-balloon-word-balloon-block"><div class="w_b_box w_b_w100 w_b_flex w_b_mla w_b_jc_fe w_b_div"><div class="w_b_wrap w_b_wrap_talk w_b_R w_b_flex w_b_jc_fe w_b_div" style=""><div class="w_b_bal_box w_b_bal_R w_b_relative w_b_direction_R w_b_w100 w_b_div"><div class="w_b_space w_b_mp0 w_b_div"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="1" height="38" viewBox="0 0 1 1" fill="transparent" stroke="transparent" stroke-miterlimit="10" class="w_b_db w_b_mp0"><polygon fill="transparent" stroke="transparent" points="0,1 0,1 0,1 0,1 "/></svg></div><div class="w_b_bal_outer w_b_flex w_b_mp0 w_b_relative w_b_div" style=""><div class="w_b_bal_wrap w_b_bal_wrap_R w_b_div"><div class="w_b_bal w_b_relative w_b_talk w_b_talk_R w_b_shadow_R w_b_ta_L w_b_div"><div class="w_b_quote w_b_div">
<p>ぽっ！　きゃー</p>
</div></div></div></div></div><div class="w_b_ava_box w_b_relative w_b_ava_R w_b_col w_b_f_n w_b_div"><div class="w_b_icon_wrap w_b_relative w_b_div"><div class="w_b_ava_wrap w_b_direction_R w_b_mp0 w_b_div"><div class="w_b_ava_effect w_b_relative w_b_oh w_b_radius w_b_size_M w_b_div" style="">
<img loading="lazy" decoding="async" src="/wp-content/uploads/2020/09/pi-.png" width="96" height="96" alt="ぴー" class="w_b_ava_img w_b_w100 w_b_h100  w_b_mp0 w_b_img" style="" />
</div></div></div><div class="w_b_name w_b_w100 w_b_lh w_b_name_C w_b_ta_C w_b_mp0 w_b_div">ぴー</div></div></div></div></div>



<div class="wp-block-word-balloon-word-balloon-block"><div class="w_b_box w_b_w100 w_b_flex w_b_div"><div class="w_b_wrap w_b_wrap_talk w_b_L w_b_flex w_b_div" style=""><div class="w_b_ava_box w_b_relative w_b_ava_L w_b_col w_b_f_n w_b_div"><div class="w_b_icon_wrap w_b_relative w_b_div"><div class="w_b_ava_wrap w_b_direction_L w_b_mp0 w_b_div"><div class="w_b_ava_effect w_b_relative w_b_oh w_b_radius w_b_size_M w_b_div" style="">
<img loading="lazy" decoding="async" src="/wp-content/uploads/2020/09/abata.png" width="96" height="96" alt="じゃんくはっく" class="w_b_ava_img w_b_w100 w_b_h100  w_b_mp0 w_b_img" style="" />
</div></div></div><div class="w_b_name w_b_w100 w_b_lh w_b_name_C w_b_ta_C w_b_mp0 w_b_div">じゃんくはっく</div></div><div class="w_b_bal_box w_b_bal_L w_b_relative w_b_direction_L w_b_w100 w_b_div"><div class="w_b_space w_b_mp0 w_b_div"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="1" height="38" viewBox="0 0 1 1" fill="transparent" stroke="transparent" stroke-miterlimit="10" class="w_b_db w_b_mp0"><polygon fill="transparent" stroke="transparent" points="0,1 0,1 0,1 0,1 "/></svg></div><div class="w_b_bal_outer w_b_flex w_b_mp0 w_b_relative w_b_div" style=""><div class="w_b_bal_wrap w_b_bal_wrap_L w_b_div"><div class="w_b_bal w_b_relative w_b_talk w_b_talk_L w_b_shadow_L w_b_ta_L w_b_div"><div class="w_b_quote w_b_div">
<p>・・・いや、ぴーちゃんの事じゃなくて、SeedのXIAOっていうArduio 互換機のことよ。</p>
</div></div></div></div></div></div></div></div>



<div class="wp-block-word-balloon-word-balloon-block"><div class="w_b_box w_b_w100 w_b_flex w_b_mla w_b_jc_fe w_b_div"><div class="w_b_wrap w_b_wrap_talk w_b_R w_b_flex w_b_jc_fe w_b_div" style=""><div class="w_b_bal_box w_b_bal_R w_b_relative w_b_direction_R w_b_w100 w_b_div"><div class="w_b_space w_b_mp0 w_b_div"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="1" height="38" viewBox="0 0 1 1" fill="transparent" stroke="transparent" stroke-miterlimit="10" class="w_b_db w_b_mp0"><polygon fill="transparent" stroke="transparent" points="0,1 0,1 0,1 0,1 "/></svg></div><div class="w_b_bal_outer w_b_flex w_b_mp0 w_b_relative w_b_div" style=""><div class="w_b_bal_wrap w_b_bal_wrap_R w_b_div"><div class="w_b_bal w_b_relative w_b_talk w_b_talk_R w_b_shadow_R w_b_ta_L w_b_div"><div class="w_b_quote w_b_div">
<p>こんなチビっこいマシンに負けたのか・・・w</p>
</div></div></div></div></div><div class="w_b_ava_box w_b_relative w_b_ava_R w_b_col w_b_f_n w_b_div"><div class="w_b_icon_wrap w_b_relative w_b_div"><div class="w_b_ava_wrap w_b_direction_R w_b_mp0 w_b_div"><div class="w_b_ava_effect w_b_relative w_b_oh w_b_radius w_b_size_M w_b_div" style="">
<img loading="lazy" decoding="async" src="/wp-content/uploads/2020/09/pi-.png" width="96" height="96" alt="ぴー" class="w_b_ava_img w_b_w100 w_b_h100  w_b_mp0 w_b_img" style="" />
</div></div></div><div class="w_b_name w_b_w100 w_b_lh w_b_name_C w_b_ta_C w_b_mp0 w_b_div">ぴー</div></div></div></div></div>



<p>サムネでもわかるとは思いますが、これ全体のフォルムがかわいいんですよね。あと想像よりもちっさいんです。親指くらいの大きさなんですよ。発売は去年の３〜6月ごろだったみたいですが、今頃発見です。</p>



<h3 class="wp-block-heading">3個入りパッケージで1,750円！</h3>



<blockquote class="wp-block-quote"><p>Wiki  Seeeduino Xiaoをはじめよう</p><cite><a href="https://wiki.seeedstudio.com/jp/Seeeduino-XIAO/" target="_blank" rel="noreferrer noopener external" class="broken_link wpel-icon-right" data-wpel-link="external">https://wiki.seeedstudio.com/jp/Seeeduino-XIAO/<span class="wpel-icon wpel-image wpel-icon-1"></span></a></cite></blockquote>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="955" height="430" src="/wp-content/uploads/2021/02/xiao1.png" alt="" class="wp-image-10122" srcset="/wp-content/uploads/2021/02/xiao1.png 955w, /wp-content/uploads/2021/02/xiao1-768x346.png 768w" sizes="(max-width: 955px) 100vw, 955px" /></figure>



<p>Seeedの日本語版のWikiもありますので、大きさなどはそちらでどうぞ。上の写真は3個入りのをアマゾンからゲットしました。3個入りで1800円弱です。１つ600円ってとこですかね。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="782" height="320" src="/wp-content/uploads/2021/02/xiao2.png" alt="" class="wp-image-10123" srcset="/wp-content/uploads/2021/02/xiao2.png 782w, /wp-content/uploads/2021/02/xiao2-768x314.png 768w" sizes="(max-width: 782px) 100vw, 782px" /></figure>



<p>中身！　想像より、ちっちゃい！親指に乗りますよ。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="783" height="342" src="/wp-content/uploads/2021/02/xiao.png" alt="" class="wp-image-10124" srcset="/wp-content/uploads/2021/02/xiao.png 783w, /wp-content/uploads/2021/02/xiao-768x335.png 768w" sizes="(max-width: 783px) 100vw, 783px" /></figure>



<p>ESP32と遊んでからだいぶ月日が経ちましたが、大きさはそのくらいです。ブレッドボードに刺さるのでPinつけてすぐ楽しめますね！</p>



<h3 class="wp-block-heading">まずはボードをじろじろと見る！</h3>



<p>Type-Cコネクタが付いていて、端面がスルーホールになっていて面実装も考慮されていますね。このType-Cコネクタは６ピンタイプじゃなくて12ピンです。あと、LEDらしきものが４つ付いています。</p>



<p>金属のカバーで覆われていますので、その中が気になるところですがまずは、PIN番号が表からわかるようにシールを貼っておきました。なかなか気が利いていますね！　Seeedさん、このプロダクトをリリースするにあたりいろいろ気合いが入っているようです。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="884" height="659" src="/wp-content/uploads/2021/02/xiao-1.png" alt="" class="wp-image-10125" srcset="/wp-content/uploads/2021/02/xiao-1.png 884w, /wp-content/uploads/2021/02/xiao-1-768x573.png 768w" sizes="(max-width: 884px) 100vw, 884px" /></figure>



<p>裏面を見ると、SMD実装したときのVIN,GNDがありますね。４つの丸いのは、なんでしょうか？</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="881" height="659" src="/wp-content/uploads/2021/02/xiao-2.png" alt="" class="wp-image-10126" srcset="/wp-content/uploads/2021/02/xiao-2.png 881w, /wp-content/uploads/2021/02/xiao-2-768x574.png 768w" sizes="(max-width: 881px) 100vw, 881px" /></figure>



<p>調べてみると、英語版Wikiによれば、Newバージョンだとこの丸いのが４つあるようです。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="672" height="497" src="/wp-content/uploads/2021/02/Seeeduino_XIAO_-_Seeed_Wiki.png" alt="" class="wp-image-10127"/></figure>



<blockquote class="wp-block-quote"><p>Seeed　英語版Wiki：hardware-overview</p><cite><a href="https://wiki.seeedstudio.com/Seeeduino-XIAO/#hardware-overview" target="_blank" rel="noreferrer noopener external" data-wpel-link="external" class="wpel-icon-right">Wiki<span class="wpel-icon wpel-image wpel-icon-1"></span></a></cite></blockquote>



<p>どうやら、<strong>SWCLK (PA30)</strong> と <strong>SWDIO (PA31)</strong> のGPIOのようです。</p>



<blockquote class="wp-block-quote"><p>qita : Seeeduino XIAO 背面パッドをGPIOとして使う</p><cite><a href="https://qiita.com/nanase/items/37ecca24aee8fbd4492e" target="_blank" rel="noreferrer noopener external" data-wpel-link="external" class="wpel-icon-right">https://qiita.com/nanase/items/37ecca24aee8fbd4492e<span class="wpel-icon wpel-image wpel-icon-1"></span></a></cite></blockquote>



<p>だいぶ時間が経過しているので、先輩たちがあれこれ情報をあげていてくれて助かりますね。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="644" height="464" src="/wp-content/uploads/2021/02/xiao-type-c.png" alt="" class="wp-image-10128"/></figure>



<p>やっぱり、Type-C が付いているところがうれしいです。接続しやすいですからね！</p>



<h3 class="wp-block-heading">動作確認</h3>



<p>Type-Cケーブル（スマホでいつも使っているやつね）をPCに繋げて、おもむろにXAIOに繋げてみます。ケーブルのほうが重いので、本体が浮きます！　</p>



<p>オレンジ色のLEDがピカピカしてますね！</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="/wp-content/uploads/2021/02/Blink.gif" alt="" class="wp-image-10129" width="456" height="327"/></figure></div>



<h3 class="wp-block-heading">とりあえずLチカ</h3>



<p>Arudio IDEを使って、Lチカでもやってみます。SeeedのWikiにしたがってIDEは仕込みんでおきます。久しぶりすぎて書き方、だいぶ忘れちゃいました。</p>



<p>この２つのブルーLEDは、RX/TXのLEDなんですがIDEからも定義されているので、光らせることができるようです。デジタル出力だけかなと思っていましたが、アナログでもいけるようですね。</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="/wp-content/uploads/2021/02/Blink3.gif" alt="" class="wp-image-10130" width="458" height="348"/></figure></div>



<pre class="wp-block-code"><code>//setup()内の処理は最初の一回だけ行われる
void setup() {
  pinMode(PIN_LED2, OUTPUT );//Pinを出力用に設定
  pinMode(PIN_LED3, OUTPUT);
  int led_pw = 255; // 明るさ(通常とは逆) 明るい0 - 255暗い
}

void loop() {
  rx_led2( 2 ); //明るさ調整ステップ
  rest();
  tx_led3( 2 ); //明るさ調整ステップ
  rest();
}

// RXとLED 基盤側の青LED
void rx_led2(int n){
  int led_pw = 255;
  //点滅周期
  for (int i=0;i &lt; 255;i++ ) {
    analogWrite(PIN_LED2, led_pw );
    led_pw = led_pw + n;
    if( led_pw ==   0 ) n =  n;
    if( led_pw == 255 ) n = -n;
    delay( 5 );//だんだん暗くなる速度
  }
//  digitalWrite(PIN_LED2, HIGH ); //通常とは逆　LOW で点灯、HIGH で消灯
analogWrite(PIN_LED2, 255 );// LED Off 上より暗くなる
}

// TXのLED USBコネクタ側の青LED
void tx_led3(int n){
  int led_pw = 255;
  for (int i=0;i &lt; 255;i++ ) {
    analogWrite(PIN_LED3, led_pw );
    led_pw = led_pw + n;
    if( led_pw ==   0 ) n =  n;
    if( led_pw == 255 ) n = -n;
    delay( 5 );
  }
analogWrite(PIN_LED3, 255 );// LED Off
}

void rest() {
    delay( 500 );
}</code></pre>



<p>いろんな値を書き換えて遊んでみてください。</p>



<p>注意点としては、HIGHとLOWが逆なのと、255が暗く、0が明るい状態となるようです。これは仕様なのかバグなのか？　Seeedさん、これは修正してほしいです。</p>



<h3 class="wp-block-heading">XIAOはどんなスペックなのか？</h3>



<p>このボード、一目惚れして速攻買ったのでどんなスペックかまだよくわかっていません。改めて、記載してみます。</p>



<figure class="wp-block-table"><table><tbody><tr><td><strong>製品名称</strong></td><td><strong><a href="https://www.seeedstudio.com/Seeeduino-XIAO-Arduino-Microcontroller-SAMD21-Cortex-M0+-p-4426.html?utm_source=blog&amp;utm_medium=blog" target="_blank" rel="noreferrer noopener external" data-wpel-link="external" class="wpel-icon-right">Seeeduino XIAO<span class="wpel-icon wpel-image wpel-icon-1"></span></a></strong></td></tr><tr><td><strong>マイコン</strong></td><td>ARM Cortex-M0+ CPU(SAMD21G18) </td></tr><tr><td><strong>動作電圧</strong></td><td>3.3V</td></tr><tr><td><strong>デジタル I/O </strong>ピン</td><td>11</td></tr><tr><td><strong>PWM Pins</strong></td><td>10</td></tr><tr><td><strong>アナログ I/O ピン</strong></td><td>11</td></tr><tr><td><strong>フラッシュメモリ</strong></td><td>256 KB</td></tr><tr><td><strong>SRAM</strong></td><td>32KB</td></tr><tr><td><strong>EEPROM</strong></td><td>–</td></tr><tr><td><strong>クロックスピード</strong></td><td>48 MHz</td></tr><tr><td><strong>大きさ</strong></td><td>23.5mm x 17.5mm</td></tr><tr><td><strong>価格</strong></td><td>$4.90</td></tr></tbody></table></figure>



<p>だいぶarduinoから離れていて、このあたり疎いのですがどうやら ATSAMD21は、アーキテクチャーはARM Cortex-M0+ CPU(SAMD21G18) のようです。Arduino Zero・M0 Proっていうボードにも使われているやつみたいですね。SAMD21系のarduinoとか表現されている感じです。または、単にSAMD系Arduinoとか。</p>



<blockquote class="wp-block-quote"><p>ARM　CORTEX-M0+</p><cite><a href="https://www.arm.com/ja/products/silicon-ip-cpu/cortex-m/cortex-m0-plus" target="_blank" rel="noreferrer noopener external" data-wpel-link="external" class="wpel-icon-right">https://www.arm.com/ja/products/silicon-ip-cpu/cortex-m/cortex-m0-plus<span class="wpel-icon wpel-image wpel-icon-1"></span></a></cite></blockquote>



<p>メジャーなArduino との比較表です。自分は、<strong>Nano</strong>シリーズ互換機か、Pro Miniが好きです。安いからw</p>



<figure class="wp-block-table"><table><tbody><tr><td><strong>ボード</strong></td><td><strong>マイコン</strong></td><td><strong>動作電圧</strong></td><td><strong>Digital I/O </strong></td><td><strong>PWM </strong></td><td><strong>Analog I/O </strong></td><td><strong>Flash Memory</strong></td><td><strong>SRAM</strong></td><td><strong>EEPROM</strong></td><td><strong><strong>クロックスピード</strong></strong></td><td><strong><strong>大きさ</strong></strong></td><td><strong><strong>価格</strong></strong></td></tr><tr><td><strong><a href="https://www.seeedstudio.com/Arduino-Nano-v3-p-1928.html?utm_source=blog&amp;utm_medium=blog" target="_blank" rel="noreferrer noopener external" data-wpel-link="external" class="wpel-icon-right">Arduino Nano v3<span class="wpel-icon wpel-image wpel-icon-1"></span></a></strong></td><td>ATmega328</td><td>5V</td><td>22</td><td>6</td><td>8</td><td>32KB</td><td>2KB</td><td>1KB</td><td>16MHz</td><td>45 mm x 18 mm</td><td>$45.90</td></tr><tr><td><strong><a href="https://www.seeedstudio.com/Seeeduino-Nano-p-4111.html?utm_source=blog&amp;utm_medium=blog" target="_blank" rel="noreferrer noopener external" data-wpel-link="external" class="wpel-icon-right">Seeeduino Nano<span class="wpel-icon wpel-image wpel-icon-1"></span></a></strong></td><td>ATmega328</td><td>5V</td><td>22</td><td>6</td><td>8</td><td>32KB</td><td>2KB</td><td>1KB</td><td>16MHz</td><td>45 mm x 18 mm</td><td>$6.90</td></tr><tr><td><strong><a href="https://www.seeedstudio.com/Arduino-Micro-p-1368.html?utm_source=blog&amp;utm_medium=blog" target="_blank" rel="noreferrer noopener external" data-wpel-link="external" class="wpel-icon-right">Arduino Micro<span class="wpel-icon wpel-image wpel-icon-1"></span></a></strong></td><td>ATmega32u4</td><td>5V</td><td>20</td><td>7</td><td>12</td><td>32KB</td><td>2.5KB</td><td>1KB</td><td>16MHz</td><td>48 mm x 18 mm</td><td>$24.90</td></tr><tr><td><strong><a href="https://www.seeedstudio.com/Arduino-Pro-Mini-328-5V-16MHz-p-1443.html?utm_source=blog&amp;utm_medium=blog" target="_blank" rel="noreferrer noopener external" data-wpel-link="external" class="wpel-icon-right">Arduino Pro Mini<span class="wpel-icon wpel-image wpel-icon-1"></span></a></strong></td><td>ATmega328</td><td>5V / 3.3V</td><td>14</td><td>6</td><td>6</td><td>32KB</td><td>2KB</td><td>1KB</td><td>8 /16MHz</td><td>33 mm x 18 mm</td><td>$9.95</td></tr><tr><td><strong><a href="https://www.adafruit.com/product/3500" target="_blank" rel="noreferrer noopener external" data-wpel-link="external" class="wpel-icon-right">Trinket M0<span class="wpel-icon wpel-image wpel-icon-1"></span></a></strong></td><td>ATSAMD21</td><td>3.3V</td><td>5</td><td>2</td><td>3</td><td>256KB</td><td>32KB</td><td>–</td><td>48MHz</td><td>27mm x 15.3 mm</td><td>$8.95</td></tr><tr><td><strong><a href="https://www.seeedstudio.com/Seeeduino-XIAO-Arduino-Microcontroller-SAMD21-Cortex-M0+-p-4426.html?utm_source=blog&amp;utm_medium=blog" target="_blank" rel="noreferrer noopener external" data-wpel-link="external" class="wpel-icon-right">Seeeduino XIAO<span class="wpel-icon wpel-image wpel-icon-1"></span></a></strong></td><td><br>ATSAMD21</td><td>3.3V</td><td>11</td><td>10</td><td>11</td><td>256KB</td><td>32KB</td><td>–</td><td>48MHz</td><td>23.5mm x 17.5mm</td><td>$4.90</td></tr></tbody></table></figure>



<p>NanoやProMiniの互換機は、アリエクで200〜300円くらいなんですが、それと比べると600円は高いかもしれませんが、倍以上のスペックはありますね。</p>



<p>こうして比較してみると、コスパがいいんじゃないでしょうか。まぁ、こんな高スペックは必要ないっていう用途もあるんで使い所次第ですかね。</p>



<h3 class="wp-block-heading">今後に備え応用例や試したことなどメモ</h3>



<p>発売からもうすぐ1年経過するので、どんな応用例があるかリサーチしてみました。また、開発する上で役立ちそうなメモをしておきます。</p>



<blockquote class="wp-block-quote"><p>Seeed：Seeeduino XIAO Resources Roundup. What will be your next project idea made by Seeeduino XIAO?</p><cite><a href="https://www.seeedstudio.com/blog/2020/05/08/seeeduino-xiao-community-projects-collection-whats-your-next-project-idea-made-by-seeeeduino-xiao/" target="_blank" rel="noreferrer noopener external" data-wpel-link="external" class="wpel-icon-right">リンク<span class="wpel-icon wpel-image wpel-icon-1"></span></a></cite></blockquote>



<p>まず、オフィシャルのSeeedのブログでいくつか紹介されています。その中から独断と偏見で面白そうなプロジェクトをピックアップ。</p>


<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube"><a href="/2021/02/20/post-10121.html" data-wpel-link="internal" rel="noopener noreferrer"><img decoding="async" src="/wp-content/plugins/wp-youtube-lyte/lyteCache.php?origThumbUrl=%2F%2Fi.ytimg.com%2Fvi%2FHd8Jb1o405s%2Fhqdefault.jpg" alt="YouTube Video"></a><br /><br /><figcaption></figcaption></figure>


<p>MIDIをコントロールできるので、オリジナルコントローラとかセンサー駆動の楽器とか？</p>



<p>サイトでは、違うボードを使っていますがXIAOでも同じことが可能。画像や図形を組み合わせて空中にお好みの絵を投影する装置。</p>



<blockquote class="wp-block-quote"><p><a rel="noreferrer noopener external" href="https://homemadegarbage.com/povranian-make" target="_blank" data-wpel-link="external" class="wpel-icon-right">PovRanian 装置<span class="wpel-icon wpel-image wpel-icon-1"></span></a></p><p>PovRanian (ポブラニアン)：画像や図形を組み合わせて空中にお好みの絵を投影する装置</p></blockquote>



<p></p>



<p>これ作りたいなー！</p>



<blockquote class="wp-block-quote"><p><a href="https://qiita.com/dattaman9/items/37a6755e125ecfc20d63" target="_blank" rel="noreferrer noopener external" data-wpel-link="external" class="wpel-icon-right">エアロバイクでストリートビュー進みたい！！ （その3）（Seeeduino XIAO化してみた）<span class="wpel-icon wpel-image wpel-icon-1"></span></a></p></blockquote>



<p>ツールのUSB Stack は、 TinyUSBを選択とな。ほほー。</p>



<p></p>



<p>あれこれ調査していると、PlatformIOも対応しているようです。まだ試していませんが、メモしておきます。</p>



<blockquote class="wp-block-quote"><p>開発環境：PlatformIO　<a href="https://docs.platformio.org/en/latest/boards/atmelsam/seeed_xiao.html#id1" data-wpel-link="external" target="_blank" rel="external noopener noreferrer" class="wpel-icon-right">Seeeduino XIAO<span class="wpel-icon wpel-image wpel-icon-1"></span></a></p></blockquote>



<blockquote class="wp-block-quote"><p><a href="https://github.com/gdsports/USB_Host_Library_SAMD" target="_blank" rel="noreferrer noopener external" data-wpel-link="external" class="wpel-icon-right">USBホストライブラリSAMD<span class="wpel-icon wpel-image wpel-icon-1"></span></a></p></blockquote>



<p>SeeedのWikiにあるやつですが、リンク先だけメモしておきます。</p>



<blockquote class="wp-block-quote"><p><a href="https://wiki.seeedstudio.com/jp/Seeeduino-XIAO-TinyUSB/" target="_blank" rel="noreferrer noopener external" class="broken_link wpel-icon-right" data-wpel-link="external">Seeeduino XIAOをUSBデバイス(TinyUSB)として使う<span class="wpel-icon wpel-image wpel-icon-1"></span></a></p></blockquote>



<blockquote class="wp-block-quote"><p><a rel="noreferrer noopener external" href="http://zattouka.net/GarageHouse/micon/Arduino/XIAO/use.htm" target="_blank" data-wpel-link="external" class="wpel-icon-right">Ｓｅｅｅｄｕｉｎｏ　ＸＩＡＯ の使い方<span class="wpel-icon wpel-image wpel-icon-1"></span></a></p></blockquote>



<blockquote class="wp-block-quote"><p><a rel="noreferrer noopener external" href="https://botalab.tech/tamiya_camrobo_face_xiao/" target="_blank" class="broken_link wpel-icon-right" data-wpel-link="external">カムロボの顔用基板を作ってみた [Xiao版]<span class="wpel-icon wpel-image wpel-icon-1"></span></a></p></blockquote>



<blockquote class="wp-block-quote"><p><a href="https://elchika.com/article/97dc4b94-1934-4ee1-acbf-6fa1503b83f6/" target="_blank" rel="noreferrer noopener external" data-wpel-link="external" class="wpel-icon-right">Seeeduino XIAOを使って二酸化炭素測定する　SparkFunライブラリVer<span class="wpel-icon wpel-image wpel-icon-1"></span></a></p></blockquote>



<blockquote class="wp-block-quote"><p>f<a rel="noreferrer noopener external" href="https://forum.fritzing.org/t/seeeduino-xiao-anyone-got-the-part/10820" target="_blank" data-wpel-link="external" class="wpel-icon-right">ritzingのパーツ<span class="wpel-icon wpel-image wpel-icon-1"></span></a></p></blockquote>



<blockquote class="wp-block-quote"><p><a href="https://matsujirushi.hatenablog.jp/entry/2020/04/23/173722" target="_blank" rel="noreferrer noopener external" data-wpel-link="external" class="wpel-icon-right">Seeeduino XIAOのタッチ入力<span class="wpel-icon wpel-image wpel-icon-1"></span></a></p></blockquote>



<blockquote class="wp-block-quote"><p><a href="https://matsujirushi.hatenablog.jp/entry/2020/04/18/201940" target="_blank" rel="noreferrer noopener external" data-wpel-link="external" class="wpel-icon-right">Seeeduino XIAOのデジタル入力<span class="wpel-icon wpel-image wpel-icon-1"></span></a></p></blockquote>



<blockquote class="wp-block-quote"><p><a href="https://matsujirushi.hatenablog.jp/entry/2020/04/19/070000" target="_blank" rel="noreferrer noopener external" data-wpel-link="external" class="wpel-icon-right">Seeeduino XIAOのデジタル出力<span class="wpel-icon wpel-image wpel-icon-1"></span></a></p></blockquote>



<blockquote class="wp-block-quote"><p><a href="https://101010.fun/iot/arduino-hc-sr04.html" target="_blank" rel="noreferrer noopener external" data-wpel-link="external" class="wpel-icon-right">Arduinoで超音波センサHC-SR04の使い方【距離測定】<span class="wpel-icon wpel-image wpel-icon-1"></span></a></p></blockquote>



<blockquote class="wp-block-quote"><p><a href="https://101010.fun/iot/arduino-oled-display.html" target="_blank" rel="noreferrer noopener external" data-wpel-link="external" class="wpel-icon-right">ArduinoでOLED<span class="wpel-icon wpel-image wpel-icon-1"></span></a></p></blockquote>



<blockquote class="wp-block-quote"><p><a href="https://101010.fun/iot/arduino-serial-led.html" target="_blank" rel="noreferrer noopener external" data-wpel-link="external" class="wpel-icon-right">シリアルLED（WS2812B）をArduinoで制御<span class="wpel-icon wpel-image wpel-icon-1"></span></a></p></blockquote>



<blockquote class="wp-block-quote"><p><a href="https://kesokonpatata.hatenablog.jp/entry/2021/01/01/%E3%80%90Seeeduino_XIAO%E3%80%91RS232c%E3%81%8B%E3%82%89%E5%8F%97%E4%BF%A1%E3%81%97%E3%81%9F%E4%BF%A1%E5%8F%B7%E3%82%92USBHID%E3%81%A7%E9%80%81%E4%BF%A1%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B" target="_blank" rel="noreferrer noopener external" data-wpel-link="external" class="wpel-icon-right">【Seeeduino XIAO】RS232cから受信した信号をUSB HIDで送信してみる<span class="wpel-icon wpel-image wpel-icon-1"></span></a></p></blockquote>



<blockquote class="wp-block-quote"><p><a href="https://zoe6120.com/2020/05/05/1449/" target="_blank" rel="noreferrer noopener external" data-wpel-link="external" class="wpel-icon-right">Seeeduino XIAO でPWM調光のLチカとI2CのLCDを使ってみる<span class="wpel-icon wpel-image wpel-icon-1"></span></a></p></blockquote>



<p>いろいろありますねー。こんなこともできるみたいです。</p>



<blockquote class="wp-block-quote"><p><a rel="noreferrer noopener external" href="https://qiita.com/hori-takeshi/items/1c9b30433896495afb2c" target="_blank" data-wpel-link="external" class="wpel-icon-right">Seeeduino XIAO マイコンで TOPPERS を始めよう<span class="wpel-icon wpel-image wpel-icon-1"></span></a></p><p>TOPPERS/R2CAというマルチタスク処理ができる</p></blockquote>



<blockquote class="wp-block-quote"><p><a href="https://qiita.com/reiven/items/c4018da0892953236b21" target="_blank" rel="noreferrer noopener external" data-wpel-link="external" class="wpel-icon-right">Seeeduino_XIAOでArduino Keyboard.h互換ライブラリを利用してMicrosoft Teamsミュートキーを作製する<span class="wpel-icon wpel-image wpel-icon-1"></span></a></p></blockquote>



<p>楽しそうなのがいっぱいありますね。</p>



<p>XIAOを組み込んでいるハードウェア作家さんもいましたよ！</p>



<blockquote class="wp-block-quote"><p>XIAO DAP<br>Seeeduino XIAO をメインコントローラとした、DigitalAudioPlayer</p><cite><a href="https://sites.google.com/view/chikoidac/home/xiao_dap" target="_blank" rel="noreferrer noopener external" data-wpel-link="external" class="wpel-icon-right">https://sites.google.com/view/chikoidac/home/xiao_dap<span class="wpel-icon wpel-image wpel-icon-1"></span></a></cite></blockquote>



<p>まだ販売はされていないとのことですが、販売されたら組み立てKITを買ってみたいです！</p>



<h3 class="wp-block-heading">まとめ</h3>



<p>今回、なんとなくわかったのは以下となります。</p>



<p>・XIAOはコスパ最高でないか！<br>・Type-Cが良い！<br>・Arduino IDE 互換で、SAMD21系のarduino<br>・本家では、Arduino Zero・M0 Proに使われている<br>・3.3v動作でクロックが速く、フラッシュメモリも多い<br>・しかしEEPROMがないようです　フラッシュメモリに保存する？<br>・USB関連のプロダクトやシリアル通信系の応用とか相性良さそう<br>・SMD実装がやりやすい（ので、基板設計して使うのとか良いですね）</p>



<h3 class="wp-block-heading">あとがき</h3>



<p>このボード、本当に小さくて応用次第では面白い組込ができそうだなーと感じています。まずは３つあるので、何か実用的な何かを１、２つ作ってみたいですね。１つは、開発用にしておいて残りは実験的に何か実際に作ってみようと思います。まずは、できそうなことからやってみましょうか！</p>



<h3 class="wp-block-heading">著者にメッセージ</h3>



 


<p>間違いのご指摘など、コメントじゃなくて、個人的にやりとりしたい場合は<a class="c-link-text" href="/mail.html" target="_blank" rel="noopener noreferrer" data-wpel-link="internal">こちらから</a>どうぞ。お返事が遅くなるときもありますが、ご了承を。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ロジックアナライザでI2C 信号を見ると</title>
		<link>/2016/02/01/post-2081.html</link>
		
		<dc:creator><![CDATA[JunkHack]]></dc:creator>
		<pubDate>Sun, 31 Jan 2016 15:11:08 +0000</pubDate>
				<category><![CDATA[arduino]]></category>
		<category><![CDATA[I2C]]></category>
		<category><![CDATA[PCB]]></category>
		<category><![CDATA[ロジックアナライザ]]></category>
		<guid isPermaLink="false">/?p=2081</guid>
							<description><![CDATA[INA226 と arduino の I2C 信号をロジックアナライザで見てみました。 コードは前回と同じものです。1秒ごとに４つのデータをゲットしています。 トリガは、SDA にかけました。Hi から Low になって [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>INA226 と arduino の I2C 信号をロジックアナライザで見てみました。</p>
<p>コードは前回と同じものです。1秒ごとに４つのデータをゲットしています。</p>
<p> <a href="/wp-content/uploads/2016/02/7713a84eb638.png" target="_blank" rel="noopener noreferrer" data-wpel-link="internal"><img loading="lazy" decoding="async" title="１" style="border-top:0;border-right:0;border-bottom:0;float:none;margin-left:auto;border-left:0;display:block;margin-right:auto;" border="0" alt="１" src="/wp-content/uploads/2016/02/thumb.png" width="626" height="638" /></a>   </p>
<p>トリガは、SDA にかけました。Hi から Low になって信号が行くようです。</p>
<p>まず、I2C アドレス0x40 のレジスタ 0x02 を投げて、値が帰ってくる流れが見えます。読み出しには、1.7ms ほどかかっていることがわかりました。ビットの信号は、4us 程度のようです。SDAでビットが立っているのを判別しているようです。</p>
<p>&#160;</p>
<p>たとえば、最初は INA226_REG_BUSVOLTAGE&#160; (0x02) を読み出しているようで、値は16進数で 0x0E9E が帰ってきています。10進数では、3742 でこれに1.25 を掛けたものが mV になるので、4677.5 mV = 4.6775V ということですね。精度は、0.1mV ということです。</p>
<p>&#160;</p>
<p>I2C のリアルタイムな生データを見るのは今回が初めてです。なかなか、IC同士で通話している感じがおもしろいですね。</p>
<p>1000分の1,2秒で、データを読み取っていて、0 と 1 の Hi と Low の信号のやり取りでそれをやっているというのが目で見えてわかりやすいです。ロジックアナライザって偉い存在ですね。</p>
<p>&#160;</p>
<p>▼まとめ</p>
<p>・INA226 と arduino の I2C 信号を見てみた</p>
<p>・SDA の LOW にトリガーをかけて採取。</p>
<p>・スレーブアドレス+データ領域を指定すると、対応するスレーブから値が帰ってくる</p>
<p>・SCL にビットデータが流れ、SDA にデータ流れる感じ。両方ともHi になった部分が ビットが立つ感じ。</p>
<p>・ビット のHi になる時間は、4us ほど。</p>
<p>・１つのレジスタの読み出しには、1.7ms ほどかかる。</p>
<p>・呼び出しから応答までの間隔は、1ms ほど。0.7ms でデータをやり取りしている。合計で1.7ms</p>
<p>・安物のロジックアナライザでも十分現象を観察できた。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>INA226 を arduino nano で</title>
		<link>/2016/01/30/post-2074.html</link>
		
		<dc:creator><![CDATA[JunkHack]]></dc:creator>
		<pubDate>Sat, 30 Jan 2016 14:27:20 +0000</pubDate>
				<category><![CDATA[arduino]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[I2C]]></category>
		<category><![CDATA[PCB]]></category>
		<guid isPermaLink="false">/?p=2074</guid>
							<description><![CDATA[もう1月も終わりですね。なんだか速く月日が経つような気がします。 さて、今日は 先日作った INA226 の電流電圧センサーを I2C で arduino nano クローンにて計測してみました。 前回の調査で見つけた、 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>もう1月も終わりですね。なんだか速く月日が経つような気がします。</p>
<p>さて、今日は 先日作った INA226 の電流電圧センサーを I2C で arduino nano クローンにて計測してみました。</p>
<p>前回の調査で見つけた、ポーランドのサイトにいいチュートリアルがありました。</p>
<blockquote>
<p>Korneliusz Jarzębskiのサイト     <br /><a href="http://www.jarzebski.pl/arduino/czujniki-i-sensory/cyfrowy-czujnik-pradu-mocy-ina226.html" target="_blank" rel="noopener noreferrer external" data-wpel-link="external" class="wpel-icon-right">Dwukierunkowy cyfrowy czujnik prądu/mocy INA226<span class="wpel-icon wpel-image wpel-icon-1"></span></a></p>
<p>github     <br />Arduino-INA226      <br /><a title="https://github.com/jarzebski/Arduino-INA226" href="https://github.com/jarzebski/Arduino-INA226" target="_blank" rel="noopener noreferrer external" data-wpel-link="external" class="wpel-icon-right">https://github.com/jarzebski/Arduino-INA226<span class="wpel-icon wpel-image wpel-icon-1"></span></a></p>
</blockquote>
<p>このGitHub のsimple のソースにライブラリを配置し、</p>
<pre class="brush: cpp; gutter: false; toolbar: false; collapse: true; auto-links: false; smart-tabs: false;">./INA226_simple
├── INA226.cpp
├── INA226.h
└── INA226_simple.ino</pre>
<p>INA226.cpp の記述を以下に変更。25mR のシャント抵抗の設定をします。</p>
<pre class="brush: cpp; gutter: false; toolbar: false; collapse: true; auto-links: false; smart-tabs: false;">#include &quot;INA226.h&quot;
::
void setup() 
{
::
  // Calibrate INA226. Rshunt = 0.025 ohm, Max excepted current = 4A
  ina.calibrate(0.025, 1);
::</pre>
<p>配線は以下のようにしました。ちょっとわかりにくいですが、Arduino の A5(SCL) と A4(SDA) をつないで、GND と 3.3V を VSS に入れます。あとは、負荷を電流計測にハイサイド側に付ける感じです。</p>
<p><a href="/wp-content/uploads/2016/01/arduino_ina226.jpg" target="_blank" rel="noopener noreferrer" data-wpel-link="internal"><img loading="lazy" decoding="async" title="arduino_ina226" style="border-top:0;border-right:0;border-bottom:0;float:none;margin-left:auto;border-left:0;display:block;margin-right:auto;" border="0" alt="arduino_ina226" src="/wp-content/uploads/2016/01/arduino_ina226_thumb.jpg" width="640" height="480" /></a> </p>
<p>シリアル通信を開くと、以下のようになっています。</p>
<pre class="brush: cpp; gutter: false; toolbar: false; collapse: true; auto-links: false; smart-tabs: false;">Initialize INA226
-----------------------------------------------
Mode:                  Shunt and Bus, Continuous
Samples average:       1 sample
Bus conversion time:   1.100ms
Shunt conversion time: 1.100ms
Max possible current:  3.28 A
Max current:           3.28 A
Max shunt voltage:     0.08 V
Max power:             117.96 W
-----------------------------------------------
Bus voltage:   4.67875 V
Bus power:     0.01250 W
Shunt voltage: 0.00007 V
Shunt current: 0.00300 A

Bus voltage:   4.68125 V
Bus power:     0.01250 W
Shunt voltage: 0.00007 V
Shunt current: 0.00300 A

Bus voltage:   4.67750 V
Bus power:     0.01250 W
Shunt voltage: 0.00007 V
Shunt current: 0.00300 A</pre>
<p>PC からのUSB 電圧は4.67V 程度のようです。3mA で12.5mW ということがわかりました。ちゃんと計測できているようですね。</p>
<p>arduino だと装備からLCDなどに出す用途で使えそうですね。データをどこかに飛ばすものであれば、ESP8266 が良さそうです。</p>
<p>&#160;</p>
<p>IC 回路の電圧は3.3V でも5V でもOKです。LEDの負荷を arduino の 3.3V から取って計測してみると以下のようになりました。</p>
<pre class="brush: cpp; gutter: false; toolbar: false; collapse: true; auto-links: false; smart-tabs: false;">Initialize INA226
-----------------------------------------------
Mode:                  Shunt and Bus, Continuous
Samples average:       1 sample
Bus conversion time:   1.100ms
Shunt conversion time: 1.100ms
Max possible current:  3.28 A
Max current:           3.28 A
Max shunt voltage:     0.08 V
Max power:             117.96 W
-----------------------------------------------
Bus voltage:   3.26875 V
Bus power:     0.00500 W
Shunt voltage: 0.00004 V
Shunt current: 0.00150 A

Bus voltage:   3.27000 V
Bus power:     0.00500 W
Shunt voltage: 0.00004 V
Shunt current: 0.00150 A

Bus voltage:   3.26875 V
Bus power:     0.00500 W
Shunt voltage: 0.00004 V
Shunt current: 0.00160 A</pre>
<p>&#160;</p>
<p>ちょっとコードを追加して、レジスターの値を取ってみました。</p>
<pre class="brush: cpp; gutter: false; toolbar: false; collapse: true; auto-links: false; smart-tabs: false;">Initialize INA226
-----------------------------------------------
Mode:                  Shunt and Bus, Continuous
Samples average:       1 sample
Bus conversion time:   1.100ms
Shunt conversion time: 1.100ms
Max possible current:  3.28 A
Max current:           3.28 A
Max shunt voltage:     0.08 V
Max power:             117.96 W
-----------------------------------------------
INA226_REG_CONFIG          (0x00):16679 ---
INA226_REG_SHUNTVOLTAGE    (0x01):30 ---
INA226_REG_BUSVOLTAGE      (0x02):3749 ---
INA226_REG_POWER           (0x03):5 ---
INA226_REG_CURRENT         (0x04):30 ---
INA226_REG_CALIBRATION     (0x05):2048 ---
-----------------------------------------------
Bus voltage:   4.68250 V
Bus power:     0.01250 W
Shunt voltage: 0.00007 V
Shunt current: 0.00300 A</pre>
<p>レジスター値は10進です。アベレージの回数とかも定数があるので便利ですね。<br />
  <br />精度は、0.1mA&#160; のようですね。PCB のあまり部分で作ったモジュールでも結構遊べました。あと、小さなパーツの半田付けの練習にもなりました。</p>
<p>&#160;</p>
<p>▼参考サイト</p>
<p><a title="http://denshi-kousaku.fan.coocan.jp/report030.html" href="http://denshi-kousaku.fan.coocan.jp/report030.html" target="_blank" rel="noopener noreferrer external" data-wpel-link="external" class="wpel-icon-right">http://denshi-kousaku.fan.coocan.jp/report030.html<span class="wpel-icon wpel-image wpel-icon-1"></span></a></p>
<p>&#160;</p>
<p>▼まとめ</p>
<p>・ライブラリ便利！</p>
<p>・INA226 モジュールを使って、arduino で i2c にて電流電圧を簡単に取れる</p>
<p>・精度は、シャント抵抗次第で、0.025R だと0.1mA（100μA） の精度になるようです</p>
<p>・GND はIC回路と共通で測定で、電圧を測定する場合は、IC の VBUS ８pin に計測電圧をかける</p>
<p>・LSB とは一般的には、最下位ビットのことで、least significant bit の頭文字。</p>
<p>・これの分解能力は16ビットなので、0.025R だと電流は0.1mA で電圧は 1.25mV</p>
<p>・とりあえず、十分な精度です。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
