先日のブログで「自宅にMultiploが届いた」と書きましたが、それを使ってやっとロボットが完成しました。
N6というタイプのロボットに憧れてこのキットを購入したのですが、手元に来たキットのバージョンではN6ロボットを作ることができなくなっていました。いつのバージョンから作れなくなったのでしょうかね。
オリジナルのN6ロボット
私が作ったN6風ロボット
一番の原因は付属しているモーターが大きくなってしまったため、横に並べてしまうとN6ロボットのスペースでは収まりきらなくなってしまったため、ラインナップの中から外してしまったのだと思います。
そこでモーターを横ではなく縦に2つ並べて、直角に動力を伝えるマイタという歯車を使い、実現しました。

付属していたパーツ以外に用意したものは



N6というタイプのロボットに憧れてこのキットを購入したのですが、手元に来たキットのバージョンではN6ロボットを作ることができなくなっていました。いつのバージョンから作れなくなったのでしょうかね。


一番の原因は付属しているモーターが大きくなってしまったため、横に並べてしまうとN6ロボットのスペースでは収まりきらなくなってしまったため、ラインナップの中から外してしまったのだと思います。
そこでモーターを横ではなく縦に2つ並べて、直角に動力を伝えるマイタという歯車を使い、実現しました。

付属していたパーツ以外に用意したものは
先ほど話にあったマイタ(タップを切って、3mmのイモビスを入れた)
4mmのアルミ棒
4mm平ワッシャー
5mmのナット(スペーサー代わり)
です。4mmのアルミ棒
4mm平ワッシャー
5mmのナット(スペーサー代わり)




Arduinoに似たマイコン、DuinoBot v1.2を使ってみました。
ここまで来たらバラしてしまいますが、実は先日Multiploが届いたのです。
これは知っている人は知っている(知らない人は全く知らないが・・)組み立てロボットです。
そのMultiploの頭脳とも言えるマイコンボードがDuinoBot v1.2なのです。
搭載マイコンはArduino leonardoと同じATmega32u4を使っています。
しかし、大きく違うのがモーターを動かすための端子が予めあることです。
もちろん、センサーなどをつなぐためのピンソケットもあります。
基本はMinibloqで作成したスケッチで動かしますが、ArduinoIDEで作成したスケッチも転送できるようです。
またまた、私が困ってしまったことをここに書いておきます。
MinibloqでExamplesで選んだスケッチをDuinoBotに転送しようとした時、どのマイコンを選べばよいのかです。
DuinoBot.v1.x.HIDを選んでください。
PortはHIDが自動で表示されますが、そのままです。
Arduinoに慣れきってしまうとPortが選択できなということは、PCがマイコンを認識していないと思い込んでしまいますが、このマイコンの場合は関係ないみたいです。
ここまで来たらバラしてしまいますが、実は先日Multiploが届いたのです。
これは知っている人は知っている(知らない人は全く知らないが・・)組み立てロボットです。
そのMultiploの頭脳とも言えるマイコンボードがDuinoBot v1.2なのです。
搭載マイコンはArduino leonardoと同じATmega32u4を使っています。
しかし、大きく違うのがモーターを動かすための端子が予めあることです。
もちろん、センサーなどをつなぐためのピンソケットもあります。
基本はMinibloqで作成したスケッチで動かしますが、ArduinoIDEで作成したスケッチも転送できるようです。
またまた、私が困ってしまったことをここに書いておきます。
MinibloqでExamplesで選んだスケッチをDuinoBotに転送しようとした時、どのマイコンを選べばよいのかです。
DuinoBot.v1.x.HIDを選んでください。
PortはHIDが自動で表示されますが、そのままです。
Arduinoに慣れきってしまうとPortが選択できなということは、PCがマイコンを認識していないと思い込んでしまいますが、このマイコンの場合は関係ないみたいです。
今までビジュアルプログラミング言語ってプログラミング入門向けの文部科学省のプログラミンとScratchしか知りませんでした。
今回、Arduinoに対応したビジュアルプログラミング言語をためしてみる機会があり使ってみました。
Minibloqです。
日本語での説明を探したのですがどこにもなく、とにかくトライアンドエラーの繰り返しでなんとなくですが、ブロックの意味を理解してきています。
ArduinoIDEを先に使い始めた私にとって、「ちょっと痒いところに手が届かない」という感じでちょっと残念な気がしていますが、逆にこれからプログラムを始める人達にとってはシンプルな方が理解しやすいということもあるのでしょう。
私と同じようにArduinoIDEからMinibloqを始める人にとってつまずくこと。
setup()が全てであって、loop()はないということです。
ここが最も大きな違いです。
機会があったらブロックの説明を日本語化してみたいですが、英語が苦手な私・・・
どなたかお願いいたします。
今回、Arduinoに対応したビジュアルプログラミング言語をためしてみる機会があり使ってみました。
Minibloqです。
日本語での説明を探したのですがどこにもなく、とにかくトライアンドエラーの繰り返しでなんとなくですが、ブロックの意味を理解してきています。
ArduinoIDEを先に使い始めた私にとって、「ちょっと痒いところに手が届かない」という感じでちょっと残念な気がしていますが、逆にこれからプログラムを始める人達にとってはシンプルな方が理解しやすいということもあるのでしょう。
私と同じようにArduinoIDEからMinibloqを始める人にとってつまずくこと。
setup()が全てであって、loop()はないということです。
ここが最も大きな違いです。
機会があったらブロックの説明を日本語化してみたいですが、英語が苦手な私・・・
どなたかお願いいたします。
Arduino Leonardoと同じマイコンが使われているストロベリーリナックス製ダ・ヴィンチ32Uを使ってみた。
これにはArduinoのBootloaderが書き込まれているやつと書き込まれていないやつが売られています。今回、書き込まれているやつを使いました。
しかし、Arduinoに対応するpinがわからない。
そこでAtmega32u4のpinのリストを参考にダ・ヴィンチのピンの表を作ってみました。

デジタル入出力ピンの順番がバラバラで使いにくいのが残念ですね。
これにはArduinoのBootloaderが書き込まれているやつと書き込まれていないやつが売られています。今回、書き込まれているやつを使いました。
しかし、Arduinoに対応するpinがわからない。
そこでAtmega32u4のpinのリストを参考にダ・ヴィンチのピンの表を作ってみました。

デジタル入出力ピンの順番がバラバラで使いにくいのが残念ですね。
前回のブログに掲載した私が電子工作で作ったSIMONですが、実は音が出ません。
Arduinoで音を出すことが一つのハードルだと思ったので、まずはSIMONとしてゲームを作ることを最優先したからです。
いざ完成し「ほっ」としたので、次のハードルを越えようとArduinoの音を出そうと思ったのですが、意外にも意外、このハードルはものすごく低かったです。
Arduino IDEに最初から入っているサンプルスケッチを使ってみました。
ファイル>スケッチの例>02.DIGITAL>toneMelody
接続の説明は
http://arduino.cc/en/Tutorial/Tone
実際、100Ωの抵抗はあってもなくても構いません。
なくても音が大きくなるだけですし、私は100Ωの抵抗を持っていなかったので150Ωを使いましたが、少し音が小さくなったぐらいでした。
ArduinoのサンプルスケッチtoneMelody
Arduinoで音を出すことが一つのハードルだと思ったので、まずはSIMONとしてゲームを作ることを最優先したからです。
いざ完成し「ほっ」としたので、次のハードルを越えようとArduinoの音を出そうと思ったのですが、意外にも意外、このハードルはものすごく低かったです。
Arduino IDEに最初から入っているサンプルスケッチを使ってみました。
ファイル>スケッチの例>02.DIGITAL>toneMelody
接続の説明は
http://arduino.cc/en/Tutorial/Tone
実際、100Ωの抵抗はあってもなくても構いません。
なくても音が大きくなるだけですし、私は100Ωの抵抗を持っていなかったので150Ωを使いましたが、少し音が小さくなったぐらいでした。
ArduinoのサンプルスケッチtoneMelody
SIMONっていうゲームを御存知ですか?
赤ボタン・緑ボタン・青ボタン・黄色ボタンがランダムに点灯し、点灯した色のボタンを押します。次はそれから一つ色が増えたものが点灯し、その通りにボタンを押していきます。それがだんだん増えていきある一定の回数まで正しくボタンを押すことが出来れば、ゲームに勝つことができます。
詳しくはWikipediaに譲ります。おもちゃ屋さんに発売されていた頃の写真も掲載されています。
私はUbuntuの教育版Edubuntuをインストールした時にプリインストールされていて知りました。
このSIMONというゲームをArduinoを使って電子工作してみました。
同じように作りたいという人のために説明編と回路図編とプログラム編に分けて、今回の電子工作を公開しています。
このブログは説明編です。
プログラムはSparkfunのSimonのキット用のソフトが公開されていたので参考にしましたが、公開されていたのはC言語で、Arduinoの機能を使用しないものだったので、Arduino言語にのっとって作り直しました。参考にはしましたが、一から作ったと言っていいと思います。
出来上がったのが

です。
お菓子の箱に穴を開けて、照明付きボタンを配置しています。
フタの裏側は

箱の中身は

です。
Arduinoコンパチのスイッチサイエンス製のCielduinoを使用しています。理由はほんの少しだけユニバーサル基板が必要だったのですが、ユニバーサル基板タイプのシールドを使うほどではなかったので、Cielduinoで代用しました。
電池を1つ使っていますが、これはSparkfunの5V DC to DC Step Up - 1xAAという電池ボックスで1.5Vを5Vに昇圧しています。
赤ボタン・緑ボタン・青ボタン・黄色ボタンがランダムに点灯し、点灯した色のボタンを押します。次はそれから一つ色が増えたものが点灯し、その通りにボタンを押していきます。それがだんだん増えていきある一定の回数まで正しくボタンを押すことが出来れば、ゲームに勝つことができます。
詳しくはWikipediaに譲ります。おもちゃ屋さんに発売されていた頃の写真も掲載されています。
私はUbuntuの教育版Edubuntuをインストールした時にプリインストールされていて知りました。
このSIMONというゲームをArduinoを使って電子工作してみました。
同じように作りたいという人のために説明編と回路図編とプログラム編に分けて、今回の電子工作を公開しています。
このブログは説明編です。
プログラムはSparkfunのSimonのキット用のソフトが公開されていたので参考にしましたが、公開されていたのはC言語で、Arduinoの機能を使用しないものだったので、Arduino言語にのっとって作り直しました。参考にはしましたが、一から作ったと言っていいと思います。
出来上がったのが

です。
お菓子の箱に穴を開けて、照明付きボタンを配置しています。
フタの裏側は

箱の中身は

です。
Arduinoコンパチのスイッチサイエンス製のCielduinoを使用しています。理由はほんの少しだけユニバーサル基板が必要だったのですが、ユニバーサル基板タイプのシールドを使うほどではなかったので、Cielduinoで代用しました。
電池を1つ使っていますが、これはSparkfunの5V DC to DC Step Up - 1xAAという電池ボックスで1.5Vを5Vに昇圧しています。
このSIMONというゲームをArduinoを使って電子工作してみました。
同じように作りたいという人のために説明編と回路図編とプログラム編に分けて、今回の電子工作を公開しています。
このブログはプログラム編です。
#define LED_RED 0
#define LED_GREEN 1
#define LED_BLUE 2
#define LED_YELLOW 3
#define FAILURE 9
#define LED_RED_PIN 10
#define LED_GREEN_PIN 11
#define LED_BLUE_PIN 12
#define LED_YELLOW_PIN 13
#define RELAY 4
#define BUTTON_RED_PIN 6
#define BUTTON_GREEN_PIN 7
#define BUTTON_BLUE_PIN 8
#define BUTTON_YELLOW_PIN 9
#define TIME_LIMIT 300
#define MOVE_TO_WIN 8
#define MARK_OF_LOST false
#define MARK_OF_WIN true
int moves[32];
int nmoves = 0;
int leave_counter;
void setup() {
pinMode(LED_RED_PIN, OUTPUT);
pinMode(LED_GREEN_PIN, OUTPUT);
pinMode(LED_BLUE_PIN, OUTPUT);
pinMode(LED_YELLOW_PIN, OUTPUT);
pinMode(BUTTON_RED_PIN, INPUT);
pinMode(BUTTON_GREEN_PIN, INPUT);
pinMode(BUTTON_BLUE_PIN, INPUT);
pinMode(BUTTON_YELLOW_PIN, INPUT);
pinMode(RELAY,OUTPUT);
digitalWrite(RELAY,HIGH);
play_winner(3);
randomSeed(analogRead(0));
}
void loop() {
delay(1000);
if (game_mode() == MARK_OF_WIN){
play_winner(10);
}else{
play_loser();
}
}
void led_all_switch_on(){
for ( int i = 0 ; i <= 25 ; ++i){
for ( int j = 0 ; j<= 3 ; ++j){
set_leds(j);
delay(1);
}
}
}
void play_loser(){
for (int i = 0; i <=5 ;++ i){
led_all_switch_on();
set_leds(4);
delay(100);
}
}
void play_winner(int count){
for ( int i = 0 ; i <= count ; ++i){
set_leds(0);
delay(80);
set_leds(1);
delay(80);
set_leds(3);
delay(80);
set_leds(2);
delay(80);
set_leds(4);
}
}
//問題を表示する
void play_moves(){
for (int c_move = 0 ; c_move < nmoves ; ++c_move){
set_leds(moves[c_move]);
delay(200);
set_leds(4);
delay(200);
}
}
//新しい色を加える
void add_to_moves(){
int new_button;
moves[nmoves] = random(4);
++nmoves;
}
// ボタンが押されるか、タイムアウトまで待つ。返り値は0から3までの色かFAILURE=9のどれか。
int wait_for_button(){
int old_button = FAILURE;
int time_limit = TIME_LIMIT;
while( time_limit > 0){
int button;
button = check_button();
if (((old_button == 0)||(old_button == 1)||(old_button == 2)||(old_button == 3))&&(button == FAILURE)){
return old_button;
}
old_button = button;
delay(10);
--time_limit;
}
return FAILURE;
}
//ゲームのメインサブルーチン
boolean game_mode(){
nmoves= 0;
while ( nmoves < MOVE_TO_WIN){
add_to_moves();
play_moves();
for ( int c_move = 0 ; c_move < nmoves ; ++c_move){
int choice = wait_for_button();
if (choice == FAILURE) {
//リレーを操作 auto power off
if (nmoves == 1) {
++leave_counter ;
if (leave_counter >= 5) digitalWrite(RELAY,LOW);
}else leave_counter =0;
//
return MARK_OF_LOST;
}
set_leds(choice);
delay(200);
if (choice != moves[c_move]) return MARK_OF_LOST;
set_leds(4);
}
delay(1000);
}
return MARK_OF_WIN;
}
//ボタンをチェック。0~3の色かFAILURE=9の返り値
int check_button(){
int i = FAILURE;
if (digitalRead(BUTTON_RED_PIN) == HIGH){
delay(10);
i = LED_RED;
}
if (digitalRead(BUTTON_GREEN_PIN) == HIGH){
delay(10);
i = LED_GREEN;
}
if (digitalRead(BUTTON_BLUE_PIN) == HIGH){
delay(10);
i = LED_BLUE;
}
if (digitalRead(BUTTON_YELLOW_PIN) == HIGH){
delay(10);
i = LED_YELLOW;
}
return i;
}
//LEDの表示。返り値なし
void set_leds(int leds){
digitalWrite(LED_RED_PIN,LOW);
digitalWrite(LED_GREEN_PIN,LOW);
digitalWrite(LED_BLUE_PIN,LOW);
digitalWrite(LED_YELLOW_PIN,LOW);
switch (leds){
case 0:
digitalWrite(LED_RED_PIN,HIGH);
break;
case 1:
digitalWrite(LED_GREEN_PIN,HIGH);
break;
case 2:
digitalWrite(LED_BLUE_PIN,HIGH);
break;
case 3:
digitalWrite(LED_YELLOW_PIN,HIGH);
break;
}
}
同じように作りたいという人のために説明編と回路図編とプログラム編に分けて、今回の電子工作を公開しています。
このブログはプログラム編です。
#define LED_RED 0
#define LED_GREEN 1
#define LED_BLUE 2
#define LED_YELLOW 3
#define FAILURE 9
#define LED_RED_PIN 10
#define LED_GREEN_PIN 11
#define LED_BLUE_PIN 12
#define LED_YELLOW_PIN 13
#define RELAY 4
#define BUTTON_RED_PIN 6
#define BUTTON_GREEN_PIN 7
#define BUTTON_BLUE_PIN 8
#define BUTTON_YELLOW_PIN 9
#define TIME_LIMIT 300
#define MOVE_TO_WIN 8
#define MARK_OF_LOST false
#define MARK_OF_WIN true
int moves[32];
int nmoves = 0;
int leave_counter;
void setup() {
pinMode(LED_RED_PIN, OUTPUT);
pinMode(LED_GREEN_PIN, OUTPUT);
pinMode(LED_BLUE_PIN, OUTPUT);
pinMode(LED_YELLOW_PIN, OUTPUT);
pinMode(BUTTON_RED_PIN, INPUT);
pinMode(BUTTON_GREEN_PIN, INPUT);
pinMode(BUTTON_BLUE_PIN, INPUT);
pinMode(BUTTON_YELLOW_PIN, INPUT);
pinMode(RELAY,OUTPUT);
digitalWrite(RELAY,HIGH);
play_winner(3);
randomSeed(analogRead(0));
}
void loop() {
delay(1000);
if (game_mode() == MARK_OF_WIN){
play_winner(10);
}else{
play_loser();
}
}
void led_all_switch_on(){
for ( int i = 0 ; i <= 25 ; ++i){
for ( int j = 0 ; j<= 3 ; ++j){
set_leds(j);
delay(1);
}
}
}
void play_loser(){
for (int i = 0; i <=5 ;++ i){
led_all_switch_on();
set_leds(4);
delay(100);
}
}
void play_winner(int count){
for ( int i = 0 ; i <= count ; ++i){
set_leds(0);
delay(80);
set_leds(1);
delay(80);
set_leds(3);
delay(80);
set_leds(2);
delay(80);
set_leds(4);
}
}
//問題を表示する
void play_moves(){
for (int c_move = 0 ; c_move < nmoves ; ++c_move){
set_leds(moves[c_move]);
delay(200);
set_leds(4);
delay(200);
}
}
//新しい色を加える
void add_to_moves(){
int new_button;
moves[nmoves] = random(4);
++nmoves;
}
// ボタンが押されるか、タイムアウトまで待つ。返り値は0から3までの色かFAILURE=9のどれか。
int wait_for_button(){
int old_button = FAILURE;
int time_limit = TIME_LIMIT;
while( time_limit > 0){
int button;
button = check_button();
if (((old_button == 0)||(old_button == 1)||(old_button == 2)||(old_button == 3))&&(button == FAILURE)){
return old_button;
}
old_button = button;
delay(10);
--time_limit;
}
return FAILURE;
}
//ゲームのメインサブルーチン
boolean game_mode(){
nmoves= 0;
while ( nmoves < MOVE_TO_WIN){
add_to_moves();
play_moves();
for ( int c_move = 0 ; c_move < nmoves ; ++c_move){
int choice = wait_for_button();
if (choice == FAILURE) {
//リレーを操作 auto power off
if (nmoves == 1) {
++leave_counter ;
if (leave_counter >= 5) digitalWrite(RELAY,LOW);
}else leave_counter =0;
//
return MARK_OF_LOST;
}
set_leds(choice);
delay(200);
if (choice != moves[c_move]) return MARK_OF_LOST;
set_leds(4);
}
delay(1000);
}
return MARK_OF_WIN;
}
//ボタンをチェック。0~3の色かFAILURE=9の返り値
int check_button(){
int i = FAILURE;
if (digitalRead(BUTTON_RED_PIN) == HIGH){
delay(10);
i = LED_RED;
}
if (digitalRead(BUTTON_GREEN_PIN) == HIGH){
delay(10);
i = LED_GREEN;
}
if (digitalRead(BUTTON_BLUE_PIN) == HIGH){
delay(10);
i = LED_BLUE;
}
if (digitalRead(BUTTON_YELLOW_PIN) == HIGH){
delay(10);
i = LED_YELLOW;
}
return i;
}
//LEDの表示。返り値なし
void set_leds(int leds){
digitalWrite(LED_RED_PIN,LOW);
digitalWrite(LED_GREEN_PIN,LOW);
digitalWrite(LED_BLUE_PIN,LOW);
digitalWrite(LED_YELLOW_PIN,LOW);
switch (leds){
case 0:
digitalWrite(LED_RED_PIN,HIGH);
break;
case 1:
digitalWrite(LED_GREEN_PIN,HIGH);
break;
case 2:
digitalWrite(LED_BLUE_PIN,HIGH);
break;
case 3:
digitalWrite(LED_YELLOW_PIN,HIGH);
break;
}
}
たまたまネットサーフィンをしている時に見つけた動画が
[ScienceNews]「作る」が変わる!広がるMakerムーブメント
この動画は独立行政法人 科学技術振興機構がJSTサイエンスニュース向けに作成したらしい。
アメリカのものづくりを趣味にしている達が起こしたムーブメント=MAKEを紹介しています。
なかなか大量生産大量消費が当たり前になってしまった日本に浸透するのは難しいとは思うが、作る面白さをみんなに知ってほしいという事を伝えようとする動画ではかなり良い出来ではないかと思います。
この中に紹介していた「Make: Ogaki Meeting 2012」には残念ながら仕事の都合で行くことは出来なかった(仕事がなかったとしても大垣まで行ったかどうかは?)が、2010年に行われた「Make: Tokyo Meeting 06」と2011年に行われた「Make: Tokyo Meeting 07」は参加させていただいた。
私自身、いつかここでみなさんにお見せすることができるモノを作ってみたいとは思いますが、実現は難しそうです。
動画の中に小林茂センセが出ていらっしゃいました。
実際は面識もなく、こちらが一方的に存じ上げているだけなのですが、Arduino互換機 Funnel I/Oの開発者です。
出版物は「Prototypeing Lab 作りながら考えるためのArduino実践レシピ」です。もちろん、持っていますよ。
ぜひぜひ、動画をごらんになり多くの人がMAKEの世界へ足を踏み入れて欲しいと思います。
[ScienceNews]「作る」が変わる!広がるMakerムーブメント
この動画は独立行政法人 科学技術振興機構がJSTサイエンスニュース向けに作成したらしい。
アメリカのものづくりを趣味にしている達が起こしたムーブメント=MAKEを紹介しています。
なかなか大量生産大量消費が当たり前になってしまった日本に浸透するのは難しいとは思うが、作る面白さをみんなに知ってほしいという事を伝えようとする動画ではかなり良い出来ではないかと思います。
この中に紹介していた「Make: Ogaki Meeting 2012」には残念ながら仕事の都合で行くことは出来なかった(仕事がなかったとしても大垣まで行ったかどうかは?)が、2010年に行われた「Make: Tokyo Meeting 06」と2011年に行われた「Make: Tokyo Meeting 07」は参加させていただいた。
私自身、いつかここでみなさんにお見せすることができるモノを作ってみたいとは思いますが、実現は難しそうです。
動画の中に小林茂センセが出ていらっしゃいました。
実際は面識もなく、こちらが一方的に存じ上げているだけなのですが、Arduino互換機 Funnel I/Oの開発者です。
出版物は「Prototypeing Lab 作りながら考えるためのArduino実践レシピ」です。もちろん、持っていますよ。
ぜひぜひ、動画をごらんになり多くの人がMAKEの世界へ足を踏み入れて欲しいと思います。

もう、何年使っているのだろうか。
ナビをつけるスペースのない車に乗っていたにもかかわらず、おもいっきり方向音痴なので、このポータビルナビが発売された時には迷わず購入した。
そして自家用車の更新があったので一時的には使用しなくなりましたが、会社の車にナビが無いのでこちらで使うことにしました。
たまに音が出なくなることがありますが、ナビとしての機能としては使えるのでそのまま使用していました。
しかし、とうとうバッテリーが使用不可能となり、電源を入れるたびに初期化モードから起動されるので、移動中にコンビニに寄ろうものなら再度目的地を入力しなければならないという事になってしまいました。
と、いうことでバッテリーの交換をいたしました。
念の為に言っておきますが、自己責任で行なってください。
ハンダによる結線が必要となりますし、加工の仕方が不十分であれば電池に熱を持ち火災や爆発の可能性だってあります。
下の部分にあるビスを2つ外して、上下の外装を少しずつ広げながら液晶を引っ張り出すと一番最後にバッテリーが出てきます。

ビニールの被覆を剥くとバッテリーと基板が出てきます。
この基板はバッテリーの温度を測っているようです。

新しく買ってきたバッテリーです。
今回はAMAZONで購入しました。
実際はアンテナファーストが取り扱っているようです。
本数がまとまったなら、直接買ったほうが良いかもしれません。
パナソニック製CGR18650CH 2250mAh ニッケルタブ付です。
電池にハンダするのが難しいらしいので、あらかじめタブをスポット溶接してあるものを購入しました。

温度センサーの基板にハンダで結線しました。
本来だったらタブの位置が少しずれている方が良かったのですが、同じ位置のものを購入したので、電線で調整しました。

このポータブルナビゲーションはまだまだ使えそうです。
地図の更新はないですが・・・