今年もよろしくお願いします。
今年の目標として・・・断捨離かな
去年の目標は達成できなかったので、今年こそ!って感じで
もっとアクティブに前向きに生きていきます。
体調は良いと思う。
電子工作・ラジオ作成・無線(できるかな)・まずは、片付けないとね(部屋)
前向きにね!
※今年で還暦ですね・・・
還暦です
8月16日

デザイン By Copilot
今年もよろしくお願いします。
今年の目標として・・・断捨離かな
去年の目標は達成できなかったので、今年こそ!って感じで
もっとアクティブに前向きに生きていきます。
体調は良いと思う。
電子工作・ラジオ作成・無線(できるかな)・まずは、片付けないとね(部屋)
前向きにね!
※今年で還暦ですね・・・
還暦です
8月16日

デザイン By Copilot
イルグジモデル




購入時はこんな色だったが・・・経年劣化で・・・
バッテリーも死んでるので、交換した

ML2016 充電バッテリー
Amazon | ML2016 Maxell 充電池 | Maxell | カメラ用バッテリーパック
1280円した
初めてのG-SHOCKの電池交換・・・
失敗した
裏蓋を開けたとき、調子こいてユニットをケースから外してしまい
戻すときに4っつのスイッチがうまくはまっていないのに
そのまま戻して蓋をしめてしまい、設定できなかった・・・
慌ててまた裏蓋を外すときに・・・・ネジなめた・・・
なんとか、ラジオペンチで外せたので・・・
スイッチの収まりをきちんと確認してから蓋を閉めました。
スイッチはOK
もちろん、リセットもしたので、表示がきちんとされていています。
※1枚目の写真が交換後
ネジは調達中・・・M1.4の4mm~5mm
youtubeで動画は見ていたが、いざ自分でやると、なれないので
失敗もするさ・・・
それと、パッキンのシリコン塗布器も購入してあった
これから、電池交換はできるようになったので、進んでやるさ!
あと・・・バックライトがつかん・・・
新品で購入・・・でも。
再生商品を購入した
3080円(事務キチ)
本物(新品)は7千いくらで売っているところ
ちがう棚に袋詰めのこいつを発見した。
よくみると「再生商品」のシールがあった。
再生商品:
展示品・開梱品のうち、再生可能なものを
本体ケース、一部の部品交換で機能検査後の上再出荷したもの。




右下に「R」シール
再生商品

もちろん、ちゃんと動作する
メーカー再生品
ちなみに、JP500の再生品もあった(1980円だったかな)
久しぶりに関数電卓
入手したのはCASIOのfx-4000pだ。

液晶が少しへたってきているね・・・
1985年ごろ発売
fx-602pの後継にあたるようだ
fx-3500p~3650pも前モデルとして存在するが
文法が変わっているらしい。
自分が当時使っていたのがfx-3500pだったかな
けっこう、普通に電卓として使い倒した・・・
ところで、どの位置になるのかな・・・4000p
| 年代 | モデル | ステップ | 文法 | 備考 |
|---|---|---|---|---|
| 1985 | fx‑3500P | 38 | 旧式 | 本家 |
| 1986 | fx‑3600P | 38 | 旧式 | ほぼ同じ |
| 1987 | fx‑3400P | 38 | PV系文法 | レア機 |
| 1988 | fx‑3600PV | 38 | PV系文法 | 学校向けで長寿命 |
| 2000 | fx‑3650P | 360 | 新文法 | 別系統 |
なるほど、ここに4000pは無いね
| 年代 | モデル | ステップ | 文法 | 備考 |
|---|---|---|---|---|
| 1981 | FX‑602P | 512〜 | キーコード方式 | 名機 |
| 1983 | FX‑702P | 1680 | BASIC風 | 上位機 |
| 1985 | fx‑4000P | 550 | Formula Programming | 602P の後継的立場 |
| 1986 | fx‑4100P | 128 | 簡易版 | |
| 1987 | fx‑7000G | グラフ | 新世代 |
別系統なんだ・・・
| 項目 | 内容 |
|---|---|
| プログラム方式 | Formula Programming(数式入力) |
| 最大ステップ数 | 550 ステップ |
| メモリ | 94(A〜Z 変数含む) |
| 分岐 | 条件分岐(Cond) |
| ジャンプ | GOTO / LBL |
| サブルーチン | Subr |
| 間接アドレス | Ind |
| 表示 | アルファベット 12 文字表示 |
| 精度 | 12 桁 |
| 編集 | 数式表示のまま編集可能 |
容量が多いね550ステップ
これで、プログラムが外部に保存できるとスマートなんだがな
“A=”:?→A
このモデルは、1行でプログラムを書くこと・・・コロンで区切っていく
久しぶりに買ったG-SHOCKの第二弾・・・中古だけどね
GBD-200です。
G-SQUAD – GBD-200 | G-SHOCK 腕時計

歩数カウントができて通知が届くのを探していました


普段の表示は・・・

電池駆動で約2年らしい
しばらくこいつでいきます
デミオ用に用意したバッテリー充電器
先日、バッテリーを上げてしまった。
スモールライトをつけっぱで、仕事帰りにえらいことに
勤務先の車両部に駆け込んで、バッテリーを借りた
始動はできたので、走行して充電して回復できた
念のため、充電しておこう
入手したのはBALの充電器

今日は、長時間できなかったが、4時間しかできなかった
ISSの2Aモードで開始

充電前はGOOD、93%(590CCA)

530CCAだと・・・71%
しかし、健康は57%(590CCA)

4時間充電して・・・

71%(530CCA)

次の点検は12月・・・持たせないとね
いよいよ、計画を進めよう・・・
準備編として
構成を考える・・・
1.バリコン:330pF
2.コイル :1.5~1.7μH
7MHz付近を330pFだと、1.5μH
塩ビパイプ(VP16)22mmx50mm
0.4mmエナメル線
T5で1.4~1.5μHになった。

このコイルとバリコン330pFで
2SK241で発振回路を作ってみたが
うまく発振しない・・・
見直し・・・
つづく

手持ちのSSD1306(i2c)の発色状態やアドレスを調べるために
作ったツールです。

アドレス:0x3Cと出て
全体的に文字を表示して色の確認

| No | 部品名 | 補足 |
| 1 | ATTiny85 | 16MHz(int) |
| 2 | スイッチ | スライド |
| 3 | 電池ボックス | |
| 4 | CR2032 | |
| 5 | ブレッドボード | |
| 6 | 配線 | 適当 |
| 7 | SD1306 OLED 128×64 i2c | テスト対象 |
0.96インチ 128×64ドット有機ELディスプレイ(OLED) 白色: オプトエレクトロニクス 秋月電子通商-電子部品・ネット通販
Amazon.co.jp: ARCELI 0.96インチOLEDモジュール12864 128×64 青と白のSSD1306ドライブ I2Cシリアルポート自発光ディスプレイボード : パソコン・周辺機器
いくつかの色で出ている
青・黄+青・白・・・
OLED
(Organic Light Emitting Diode)と呼ばれる有機ELディスプレイ
焼きつくと、だんだん表示が薄くなっていくので注意
ATTiny85
AVRマイコン ATTINY85-20PU: 半導体 秋月電子通商-電子部品・ネット通販


折角なので、ソースは以下、回路図は簡単なので省略(ソース内に接続図)
#include <TinyWireM.h>
#include "#include <TinyWireM.h>
#include "TinySSD1306.h"
/*
========================================================
ATtiny85 ←→ SSD1306 (I2C) 接続図
========================================================
ATtiny85 (8pin DIP)
┌─────────────┐
PB5 ──┤1 8├── VCC
PB3 ──┤2 7├── PB2 (SCL)
PB4 ──┤3 6├── PB1
GND ──┤4 5├── PB0 (SDA)
└─────────────┘
SSD1306 (I2C)
┌───────────────┐
│ GND → GND │
│ VCC → VCC │
│ SCL → PB2 │
│ SDA → PB0 │
└───────────────┘
========================================================
クロック: 16MHz (PLL) または 8MHz 内蔵
ライブラリ: TinyWireM + TinySSD1306.h
RAM使用量: 約40〜50バイト(ATtiny85で安全)
========================================================
*/
// OLED インスタンス(初期値は 0x3C)
TinySSD1306 oled(0x3C);
// I2Cデバイスをスキャンして最初に応答したアドレスを返す
uint8_t scanI2C() {
for (uint8_t addr = 1; addr < 127; addr++) {
TinyWireM.beginTransmission(addr);
if (TinyWireM.endTransmission() == 0) {
return addr;
}
}
return 0; // 見つからない
}
void setup() {
TinyWireM.begin();
// OLED の I2C アドレス自動検出
uint8_t addr = scanI2C();
if (addr == 0) {
// OLED が見つからない場合は停止
for (;;) {}
}
oled.setAddress(addr);
oled.init();
delay(50);
oled.setCursor(0, 0);
for (uint8_t page = 0; page < 8; page++) {
oled.setCursor(0, page);
for (uint8_t col = 0; col < 128; col++) {
TinyWireM.beginTransmission(addr);
TinyWireM.write(0x40);
TinyWireM.write(0x00);
TinyWireM.endTransmission();
}
}
// ---- 表示 ----
oled.setCursor(0, 0);
oled.print("SSD1306 Tester");
oled.setCursor(0, 1);
oled.print("ATtiny85 OK");
oled.setCursor(0, 2); // ここが重要
oled.print("I2C Addr: 0x");
oled.setCursor(80, 2); // ← ここで位置を固定する
oled.drawChar("0123456789ABCDEF"[(addr >> 4) & 0xF]);
oled.drawChar("0123456789ABCDEF"[addr & 0xF]);
oled.setCursor(0, 3);
oled.print("BUNCHAN747");
oled.setCursor(0, 4);
oled.print(" BUNCHAN747");
oled.setCursor(0, 5);
oled.print(" BUNCHAN747");
oled.setCursor(0, 6);
oled.print(" BUNCHAN747");
oled.setCursor(0, 7);
oled.print(" BUNCHAN747");
}
void loop() {
// テスターなので特に処理なし
}
TinySSD1306.h
#ifndef TINYSSD1306_H
#define TINYSSD1306_H
#include <TinyWireM.h>
#include <avr/pgmspace.h>
class TinySSD1306 {
public:
TinySSD1306(uint8_t addr) : _addr(addr) {}
void setAddress(uint8_t addr) { _addr = addr; }
void init() {
sendCommand(0xAE);
sendCommand(0xD5); sendCommand(0x80);
sendCommand(0xA8); sendCommand(0x3F);
sendCommand(0xD3); sendCommand(0x00);
sendCommand(0x40);
sendCommand(0x8D); sendCommand(0x14);
sendCommand(0x20); sendCommand(0x00);
sendCommand(0xA1);
sendCommand(0xC8);
sendCommand(0xDA); sendCommand(0x12);
sendCommand(0x81); sendCommand(0xCF);
sendCommand(0xD9); sendCommand(0xF1);
sendCommand(0xDB); sendCommand(0x40);
sendCommand(0xA4);
sendCommand(0xA6);
sendCommand(0xAF);
}
void setCursor(uint8_t col, uint8_t page) {
sendCommand(0x21); sendCommand(col); sendCommand(127);
sendCommand(0x22); sendCommand(page); sendCommand(page);
}
void drawChar(char c) {
if (c < 32 || c > 127) c = '?';
for (uint8_t i = 0; i < 5; i++) {
uint8_t line = pgm_read_byte(&font[c - 32][i]);
TinyWireM.beginTransmission(_addr);
TinyWireM.write(0x40);
TinyWireM.write(line);
TinyWireM.endTransmission();
}
TinyWireM.beginTransmission(_addr);
TinyWireM.write(0x40);
TinyWireM.write(0x00);
TinyWireM.endTransmission();
}
void print(const char *s) {
while (*s) drawChar(*s++);
}
private:
uint8_t _addr;
void sendCommand(uint8_t cmd) {
TinyWireM.beginTransmission(_addr);
TinyWireM.write(0x00);
TinyWireM.write(cmd);
TinyWireM.endTransmission();
}
public:
static const uint8_t font[96][5] PROGMEM;
};
#endif
// ====== フォント定義(PROGMEM版) ======
const uint8_t TinySSD1306::font[96][5] PROGMEM = {
{0x00,0x00,0x00,0x00,0x00}, // space
{0x00,0x00,0x5F,0x00,0x00}, // !
{0x00,0x07,0x00,0x07,0x00}, // "
{0x14,0x7F,0x14,0x7F,0x14}, // #
{0x24,0x2A,0x7F,0x2A,0x12}, // $
{0x23,0x13,0x08,0x64,0x62}, // %
{0x36,0x49,0x55,0x22,0x50}, // &
{0x00,0x05,0x03,0x00,0x00}, // '
{0x00,0x1C,0x22,0x41,0x00}, // (
{0x00,0x41,0x22,0x1C,0x00}, // )
{0x14,0x08,0x3E,0x08,0x14}, // *
{0x08,0x08,0x3E,0x08,0x08}, // +
{0x00,0x50,0x30,0x00,0x00}, // ,
{0x08,0x08,0x08,0x08,0x08}, // -
{0x00,0x60,0x60,0x00,0x00}, // .
{0x20,0x10,0x08,0x04,0x02}, // /
{0x3E,0x51,0x49,0x45,0x3E}, // 0
{0x00,0x42,0x7F,0x40,0x00}, // 1
{0x42,0x61,0x51,0x49,0x46}, // 2
{0x21,0x41,0x45,0x4B,0x31}, // 3
{0x18,0x14,0x12,0x7F,0x10}, // 4
{0x27,0x45,0x45,0x45,0x39}, // 5
{0x3C,0x4A,0x49,0x49,0x30}, // 6
{0x01,0x71,0x09,0x05,0x03}, // 7
{0x36,0x49,0x49,0x49,0x36}, // 8
{0x06,0x49,0x49,0x29,0x1E}, // 9
{0x00,0x36,0x36,0x00,0x00}, // :
{0x00,0x56,0x36,0x00,0x00}, // ;
{0x08,0x14,0x22,0x41,0x00}, // <
{0x14,0x14,0x14,0x14,0x14}, // =
{0x00,0x41,0x22,0x14,0x08}, // >
{0x02,0x01,0x51,0x09,0x06}, // ?
{0x32,0x49,0x79,0x41,0x3E}, // @
{0x7E,0x11,0x11,0x11,0x7E}, // A
{0x7F,0x49,0x49,0x49,0x36}, // B
{0x3E,0x41,0x41,0x41,0x22}, // C
{0x7F,0x41,0x41,0x22,0x1C}, // D
{0x7F,0x49,0x49,0x49,0x41}, // E
{0x7F,0x09,0x09,0x09,0x01}, // F
{0x3E,0x41,0x49,0x49,0x7A}, // G
{0x7F,0x08,0x08,0x08,0x7F}, // H
{0x00,0x41,0x7F,0x41,0x00}, // I
{0x20,0x40,0x41,0x3F,0x01}, // J
{0x7F,0x08,0x14,0x22,0x41}, // K
{0x7F,0x40,0x40,0x40,0x40}, // L
{0x7F,0x02,0x0C,0x02,0x7F}, // M
{0x7F,0x04,0x08,0x10,0x7F}, // N
{0x3E,0x41,0x41,0x41,0x3E}, // O
{0x7F,0x09,0x09,0x09,0x06}, // P
{0x3E,0x41,0x51,0x21,0x5E}, // Q
{0x7F,0x09,0x19,0x29,0x46}, // R
{0x46,0x49,0x49,0x49,0x31}, // S
{0x01,0x01,0x7F,0x01,0x01}, // T
{0x3F,0x40,0x40,0x40,0x3F}, // U
{0x1F,0x20,0x40,0x20,0x1F}, // V
{0x7F,0x20,0x18,0x20,0x7F}, // W
{0x63,0x14,0x08,0x14,0x63}, // X
{0x03,0x04,0x78,0x04,0x03}, // Y
{0x61,0x51,0x49,0x45,0x43}, // Z
{0x00,0x7F,0x41,0x41,0x00}, // [
{0x02,0x04,0x08,0x10,0x20}, // backslash
{0x00,0x41,0x41,0x7F,0x00}, // ]
{0x04,0x02,0x01,0x02,0x04}, // ^
{0x40,0x40,0x40,0x40,0x40}, // _
{0x00,0x01,0x02,0x04,0x00}, // `
{0x20,0x54,0x54,0x54,0x78}, // a
{0x7F,0x48,0x44,0x44,0x38}, // b
{0x38,0x44,0x44,0x44,0x20}, // c
{0x38,0x44,0x44,0x48,0x7F}, // d
{0x38,0x54,0x54,0x54,0x18}, // e
{0x08,0x7E,0x09,0x01,0x02}, // f
{0x08,0x14,0x54,0x54,0x3C}, // g
{0x7F,0x08,0x04,0x04,0x78}, // h
{0x00,0x44,0x7D,0x40,0x00}, // i
{0x20,0x40,0x44,0x3D,0x00}, // j
{0x7F,0x10,0x28,0x44,0x00}, // k
{0x00,0x41,0x7F,0x40,0x00}, // l
{0x7C,0x04,0x18,0x04,0x7C}, // m
{0x7C,0x08,0x04,0x04,0x78}, // n
{0x38,0x44,0x44,0x44,0x38}, // o
{0x7C,0x14,0x14,0x14,0x08}, // p
{0x08,0x14,0x14,0x18,0x7C}, // q
{0x7C,0x08,0x04,0x04,0x08}, // r
{0x48,0x54,0x54,0x54,0x20}, // s
{0x04,0x3F,0x44,0x40,0x20}, // t
{0x3C,0x40,0x40,0x20,0x7C}, // u
{0x1C,0x20,0x40,0x20,0x1C}, // v
{0x3C,0x40,0x30,0x40,0x3C}, // w
{0x44,0x28,0x10,0x28,0x44}, // x
{0x0C,0x50,0x50,0x50,0x3C}, // y
{0x44,0x64,0x54,0x4C,0x44}, // z
{0x00,0x08,0x36,0x41,0x00}, // {
{0x00,0x00,0x7F,0x00,0x00}, // |
{0x00,0x41,0x36,0x08,0x00}, // }
{0x08,0x04,0x08,0x10,0x08} // ~
};
あるサイトで見つけた、これまたTinyJoyPadのコピー品
www.tinyjoypad.com – TINYJOYPAD_ATTINY85
【Arduino】ATtiny85を使ったミニゲーム機『Tiny Joypad』をブレッドボードで組んで遊んでみる! | ぶらり@web走り書き
ATTiny85 で動くレトロゲーム機を作ってみた – ブログだいちゃん
これらは、TinyJoyPadの派生なんだが、少しづつアレンジされている。
結局は、Gameのソース次第なんだが・・・
基板はどえらい前に入手していたのだが、作る暇が・・・
シルバーウィークなので、電子工作日和・・・
部品をそろえて、はんだ付け開始!

手持ちの抵抗だったので、大きさが・・・
さっそくATTiny85にプログラムを書き込む・・・前回のUSBaspで

無事に動きました。
本日の午前中の電子工作だ
次は何作ろうか・・・
つづく