2023年1月 2日 (月)

aitendo 2023お楽しみ福袋

Cimg0289

 贔屓にしている電子パーツ通販のaitendoで,今年も「2023お楽しみ福袋」を買ったのでご紹介します。
税別999円で限定100袋が,10分くらいで完売したようですw
12月31日午前10時にポチったら,1月1日お昼頃に自宅に届きました。aitendoさん,佐川急便さん ありがとう(^^)

Cimg0290
作りやすいFMバンドDSPラジオキット [K-M803A] これがこの福袋のメイン商品かな。正月休み中に作ってみよっと。


Cimg0297
IchigoJam-T互換基板 [MB-1114FN28-T]っぽいけど,マイコンが載ってないからどうしようもないなあ。これはゴミですw


Cimg0291
★ロシア★高性能ゲルマニウムダイオード(2個入) [D9G] これはいいかも。またゲルマラジオを作ってみようかな。


Cimg0300
STN液晶モジュール★16x1★ [ZJM161A] 16文字×1行のSTN液晶モジュール。せめて2行のが良かったなあ。


Cimg0299
SATAコネクタwith基板 [SATA22PM-2P]とピッチ変換基板(1.0/15P) P-FCB1015Aとミニ基板 これは使いそうもないなー。


Cimg0293
マイクロUSB変換基板 これも使いそうにないなー


Cimg0295
RCAプラグはいいとして,HDMIのアダプタは,タイプAプラグ⇔タイプAソケットとタイプAプラグ⇔タイプAプラグってどういう用途があるのかしら?笑

Cimg0298
電解コンデンサ100μF 450Vと8Ω2Wのスピーカー

まあ,999円以上の商品が入ってたのは確かだけど,今年のaitendo福袋は今ひとつでしたねー。来年は2024円福袋にしてくれるといいな。

| |

2022年1月 6日 (木)

aitendo 2022 お楽しみ福袋

Cimg9843
もう1週間前のことですが,通販でaitendoのお楽しみ福袋(税別2,022円)を買ったので,中身をご紹介します。限定100袋が数分で完売してしまったようです笑
Cimg9831
高音質・高感度・作りやすいAMラジオキット [K-EZ7642BXA2]
AMラジオICを使った,乾電池1個で動くラジオのキット。これはいいですね。
Cimg9829
あちゃんでいいの [AKIT-ADINO]が2個
CR類が各1個分しか入ってないのに,基板は各3枚も入ってます。ATMega328Pも買わないとw
Cimg9830
VFD表示器 [6-BT-321GNK]
★0.36★4桁7セグLED表示器(赤色) [ZDS4-G369SRB-7.7]
4桁7セグLED表示器 [YHA2681HRK]
4桁7セグLED表示器 [YH-4043HS]
★0.28★4桁7セグLED表示器(黄緑色) [BW428G-E1-10MM]
4桁LED表示器:LIM-2843G-11

Cimg9832
巨大なセグメント液晶モジュール [CM1441A-V4]

Cimg9837
bigグラフィックス液晶モジュール★SPI★ [WOM12864J5]

Cimg9833
大型LCDモジュール (仕様不明)

Cimg9835
ワイヤレスモジュール [MW-R-WX]

Cimg9838
サーモスタット式温度スイッチ [KSD301]

Cimg9839
★φ10x17★ツマミ [KN1017A]

Cimg9836
100μF-450V 電解コンデンサ

Cimg9842
ミニ ユニバーサル基板各種

Cimg9834 基板用 各種コネクタ

総額2,022円以上の品が入ってるのは確かですが,扱いに困るものもあるなw
まあ ぼちぼち遊びまーす。

| |

2020年7月23日 (木)

ZK-80で足し算

20200723

 ZK-80で足し算をやってみました。
Aレジスタに0x16を入れておいて,そこに0x24を加えます。んで,答(Aレジスタの内容)は8010番地に書き込みましょう。

電子ブロック工房さんの JavaScript Z80 tiny assembler を使うと便利です。

8000: LD A,16          3E 16
8002: ADD A,24        C6 24
8004: LD (8010),A    32 10 80
8007: RET                C9 

 下の動画のように,パチパチ入力してRUNすると,8010番地に答の0x3Aが書き込まれてるのが確認できます。そうか,42年前に僕の友人はこういうことをやって遊んでたのか。
なんとなく活動記録。さんのところからリンクされてる 8080の命令セットの説明書をちゃんと読んで勉強してみようかな。

| | | コメント (0)

2020年7月21日 (火)

TK-80互換機 ZK-80のキット

20200721-zk80

 1976年に発売されて大ヒットしたマイコンTK-80の互換機ZK-80のキットをaitendoで買って組み立ててみました。
TK-80は工学部電気電子系へ進学した友人の間では流行ってましたが,僕は全然関心がありませんでした。で,まったくニーモニックや機械語に触れることもなく大学時代を過ごし,就職後に初めて買ったコンピュータ(FM-8)で覚えた言語はBASICでした。
 定年退職後ヒマだし,aitendoの「ミニ版ZK-80組立てキット」は2,500円というリーズナブルなお値段なので,つい手が出てしまったというわけです。

 キットとしては部品点数も少ないし,あっという間にでき上がったのでネットで拾ったプログラムをパチパチ入力してるときに「あれ?4桁LEDのアドレス表示部とデータ表示部が逆だぞ」と気づきました。
回路を設計したピコソフト(株)のWebサイトのFAQを見てみたらその答えがありました。
「4桁LEDは二つ使用していますが,片方はアノードコモン,他方はカソードコモンで別物です。説明書にあるように,アドレス表示部にはアノードコモンのLED,データ表示部にはカソードコモンのLEDを付けてください。」

「うわ,そうだったのか! 気づかなかったー!」
逆に取り付ける確率は50%ですが,やらかしました。さあここからが大変。ハンダ吸取線や吸取器を使って悪戦苦闘すること30分。やっと取り外しに成功して正しい位置に付け直しました。
 しかし,電源を入れてみると7セグLEDのセグメントのひとつが点灯しません。取り外すときに基板のパターンを剥がしてしまったようです。回路図を見ながらテスターで調べ,切れてるっぽい箇所を見つけて配線。7セグLEDも無事点灯して,やっと完成です。
さっきのプログラムを入力してRUNすると,ちゃんと動いてるみたいです。やれやれ。

 ところが,また不具合発見。一番右上のRESETボタンが効かないのです。基板の表を見ても裏を見ても,このスイッチはどこにもつながってません。aitendoのキットの基板はこういうミスがよくあるんだよなあ。
回路図を見て,このスイッチはマイコンの1番ピン(MCLR)とGNDにつなぐことを確認して配線しました。この写真をごらんください ↓
20200721

 手間取りましたが,RESETボタンも効くようになってやっと完成! ↓ こんなサンプルプログラムがあらかじめ入ってました。

 

| | | コメント (0)

2020年4月18日 (土)

Arduinoで作ろう(47) GPSモジュールで現在地の緯度・経度を取得

Esp32gps_

 aitendoで買ったGPSモジュールNEO-6MをESP32につないで。現在地を取得してみました。
TinyGPS++というライブラリを使うと,GPSモジュールから簡単に時刻,緯度(LAT),経度(LNG),標高(ALT)などを取り出すことができます。

20200418

 よく行くパソコンショップの駐車場にクルマを止めて,この装置で現在地を取得し,GoogleMapに緯度・経度を入力してみると正確に測位できていることが確認できました。これは普通にすごいな。

Gps_map

//ESP32 + GPSモジュール NEO-6M 

#include "TinyGPS++.h" //http://arduiniana.org/libraries/tinygpsplus/
#include "HardwareSerial.h"
#include "Wire.h"
#include "SSD1306.h"
SSD1306 display(0x3c, 21, 22); //I2Cアドレス0x3c,SDA->GPIO21,SCL->GPIO22
TinyGPSPlus gps;
HardwareSerial serial2(2); //ESP32_GPIO16->GPS_TX , ESP32_GPIO17->GPS_RX

void setup() {
  display.init();
  pinMode(2, OUTPUT);
  digitalWrite(2, LOW);
  Serial.begin(9600);
  Serial.println("Start GPS... ");
  display.clear();
  display.drawString(0,0,"Start GPS... ");
  display.display();
  serial2.begin(9600);
}

void loop() {
  if (serial2.available()){
   char c = serial2.read();
   gps.encode(c);
   if (gps.location.isUpdated()) {
    digitalWrite(2, HIGH);
    Serial.print("LAT: "); Serial.println(gps.location.lat(), 9);
    Serial.print("LONG: "); Serial.println(gps.location.lng(), 9);
    display.clear();
    display.drawString(0,0,String(gps.time.hour()+9)+":"+String(gps.time.minute())+":"+String(gps.time.second())+" JST");
    display.drawString(0,20,"LAT : "+String(gps.location.lat(),9));
    display.drawString(0,35,"LNG : "+String(gps.location.lng(),9));
    display.drawString(0,50,"ALT : "+String(gps.altitude.meters())+"m");
    display.display();
  } else{
    digitalWrite(2, LOW);
  }
 }
}

| | | コメント (0)

2019年9月 9日 (月)

Arduinoで作ろう(33) 7セグLEDでデジタル時計 〈その2〉

20190909multi_function_shield

 以前 紹介したMulti Function Shieldで,7セグLEDデジタル時計を作ってみました。

Multifunctionshield_tokei_
 前回のシールドはシフトレジスタ74HC595が1個,7セグLEDはカソードコモンでしたが,今回のは74HC595が2個,7セグLEDはアノードコモンです。
どう配線されているかと言うと,こんな感じ↓

20190909

 桁選択用74HC595のSDOから数字表示用74HC595のSDIに配線されてますから,Shiftoutでデータを送るときは,数字表示用のデータを先に送らないといけません。
で,スケッチはこれです→ 20190908_ks0184_tokei.ino

/*
  Multi_function_shield
  RTC DS3231 7セグLEDデジタル時計
*/
#include <Wire.h>
#include <RtcDS3231.h>
RtcDS3231<TwoWire>
Rtc(Wire);
const int latch = 4;   // Latchピン
const int clock = 7;   // Clockピン
const int data = 8;   // Serial Data In ピン
const byte digit[] = //7seg 点灯パターン(アノードコモン)
{
  B11000000, // 数字 0
  B11111001, // 1
  B10100100, // 2
  B10110000, // 3
  B10011001, // 4
  B10010010, // 5
  B10000010, // 6
  B11011000, // 7
  B10000000, // 8
  B10010000  // 9
};

const byte segment[] =
{
  B00001000, //1桁め
  B00000100, //2桁め
  B00000010, //3桁め
  B00000001  //4桁め
};

void setup() {
  pinMode(latch, OUTPUT);
  pinMode(clock, OUTPUT);
  pinMode(data, OUTPUT);
  Rtc.Begin() ;
 // DS3231の日時を「それなりの値」に設定する場合に、以下の2行をコメントアウト
 // RtcDateTime compiled = RtcDateTime(__DATE__, __TIME__) ;
 // Rtc.SetDateTime(compiled) ;
}

void loop() {
 RtcDateTime dt = Rtc.GetDateTime() ;
  Disp(3,dt.Hour()/10%10);
  Disp(2,dt.Hour()%10);
  Disp(1,dt.Minute()/10%10);
  Disp(0,dt.Minute()%10);
 }

void Disp(byte keta,byte value){
  digitalWrite(latch, LOW);
  shiftOut(data, clock, MSBFIRST,digit[value]);
    if (keta == 2) {
    shiftOut(data, clock, MSBFIRST, digit[value]&B01111111); //hhとmmの間に小数点をつける
    }
  shiftOut(data, clock, MSBFIRST, segment[keta]);
  digitalWrite(latch, HIGH);
  delay(4);
 }

20190908

| | | コメント (0)

2019年9月 7日 (土)

Arduinoで作ろう(32) 7セグLEDでデジタル時計

Kcs1

 aitendoで買ったシールドで,このラーニングキットK-CS1ってのを忘れてました。
4桁7セグ表示器+74HC595ディスプレイ回路,温度センサインターフェース,クロックモジュールインターフェース,電圧メーター回路,タクトスイッチx2回路,超音波センサインターフェース,ブザー回路がついていて,学習用に便利なものです。
 今回はこれでデジタル時計を作ってみます。RTCはDS3231で,ライブラリはこれを使いました。

Fritzingで描いた回路図はこうなります。

7segled_tokei_2 シフトレジスタ74HC595があるので比較的ラクですが,スマートなコードはなかなかうまく書けませんなあ。もう少し勉強が必要ですね。

スケッチはこれ→20190907_7segled_clock.ino

// aitendoシールド K-CS1 + RTC DS3231 + 7セグLED デジタル時計

#include <Wire.h>
#include <RtcDS3231.h>
RtcDS3231<TwoWire>
Rtc(Wire);
const byte segment[] = {4,5,6,7}; //各桁カソードピン
const int clock = 10;   //74HC595 → Pin 10
const int latch = 9;    //74HC595 → Pin 9
const int data = 8;     //74HC595 → Pin 8
const byte digit[] =       //7セグLED 点灯パターン
{
  B00111111, //0
  B00000110, //1
  B01011011, //2
  B01001111, //3
  B01100110, //4
  B01101101, //5
  B01111101, //6
  B00000111, //7
  B01111111, //8
  B01101111  //9
};

void setup ()
 {
  for (int i = 0; i < 4; i++) {
  pinMode(segment[i], OUTPUT);
  }
  pinMode(latch, OUTPUT);
  pinMode(clock, OUTPUT);
  pinMode(data, OUTPUT);
  Rtc.Begin() ;
 // DS3231の日時を「それなりの値」に設定する場合に、以下の2行をコメントアウト
 // RtcDateTime compiled = RtcDateTime(__DATE__, __TIME__) ;
 // Rtc.SetDateTime(compiled) ;
 }

void loop () {
  RtcDateTime dt = Rtc.GetDateTime() ;
  Disp(3,dt.Hour()/10%10);
  Disp(2,dt.Hour()%10);
  Disp(1,dt.Minute()/10%10);
  Disp(0,dt.Minute()%10);
 }

void Disp(byte keta,byte value){
  for (byte j = 0; j < 4; j++) {
   digitalWrite(segment[j], HIGH); // 全桁LEDをOFF
   }
  digitalWrite(segment[keta], LOW);
  digitalWrite(latch, LOW);
  shiftOut(data, clock, MSBFIRST,digit[value]);
   if (keta == 2) {
   shiftOut(data, clock, MSBFIRST, digit[value]|B10000000); //hhとmmの間に小数点をつける
   }
  digitalWrite(latch, HIGH);
  delay(4);
 }

Rimg0044

| | | コメント (0)

2019年9月 5日 (木)

Arduinoで作ろう(31) ATtiny13をArduino IDEで使ってみる

 タイトルの「Arduinoで作ろう」からは少しズレてるような気もしますが,8ピンDIPの小さなAVRマイコンATtiny13をArduino IDEで使えるようにしてみました。

201909055

 まず,Arduino IDEのボード選択にATtiny13が出てくるようにしましょう。
そのために,まずArduino IDEの「環境設定」にある「追加のボードマネージャのURL」に https://kimio-kosaka.github.io/bitDuino13/package_bitDuino13_index.json を追加します。

Image11

 そうすると,「ツール」の「ボードマネージャ」の一番下に「bitDuino13」というパッケージが現れますから,これをインストールします。

Image12

 これで準備OK。「ツール」の「ボード選択」で一番下に「ATtiny13」が現れますから,これを選択します。

Image13

 さて,ここでaitendoのATtiny ISPシールドきっと の登場です。これはArduino UNOに取り付けるシールドで,各種ATtinyに対応したスグレモノです。ブレッドボード上で面倒な配線をしなくていいから便利ですよ。これはオススメ。

20190905

 この状態で,Arduinoで作ろう(28) に書いた手順でATtiny13にブートローダを書き込み,続けてスケッチを書き込んでやればOKです。
内部クロックは9.6MHzにしておきましょうか。(半端なクロック数ですな)

201909054

void setup() {
  pinMode(3, OUTPUT);
}
 
void loop() {
  digitalWrite(3, HIGH);
  delay(1000);
  digitalWrite(3, LOW);
  delay(1000);
}

こんな感じのLチカのスケッチを書き込んでみました。

201909052

| | | コメント (0)

2019年9月 3日 (火)

Arduinoで作ろう(30) ATmega328Pを内部クロック8MHzで動かしてみた

  Arduino UNOや「あちゃんでいいの」などArduino互換機に載ってるATmega328Pは外付けXTAL(16MHz)で動いてますが,ATmega328Pは内部クロック(8MHz)を持ってるんだそうです。じゃ,その内部クロックで動かしてみようじゃないですか。

 そのために,まずこのページの真ん中あたりにある breadboard-1-6-x.zipをダウンロードし,解凍してできる「breadboard」というフォルダをArduino IDEがインストールされているフォルダの「hardware」フォルダ内に置きます。
Image00

 そうすると,Arduino IDEの「ツール」→「ボード」の中に「ATmega328 on a breadboard (8 MHz internal clock)」が現れるので,これを選びます。
Image01
 内部クロック8MHzで動かしたいATmega328(ターゲット)を「極貧ブートローダ書き込み機」に取りつけて,Arduino UNO(ArduinoISPを書き込んだAVRライタ)に載せ,ブートローダを書き込みます。

20190901

Image02

これで,内部クロック8MHzで動くATmega328Pのできあがりです。

 このまま続けてこのATmega328Pに「Blink」を書き込んでみます。書き込むときに「書込装置を使って書き込む」を選ぶのがポイントです。

Image03

「極貧ブートローダ書き込み機」から「Blinkを書き込んだ内部クロック8MHzで動くAtmega328P」を取り外し,ブレッドボードに載せて配線します。

20190831

おお,うまくいきました🎵

| | | コメント (0)

2019年9月 1日 (日)

Arduinoで作ろう(29) 「あちゃんでいいの」にスケッチを書き込んでみた

20190827

 前回ブートローダを書き込んだATmega328Pをあちゃんでいいのに取り付けて,スケッチを書き込んでみます。
ま,スケッチ例「Blink」でいいかな。
あちゃんでいいの と USB-シリアルコンバータモジュールを接続して,パソコンに繋ぎましょう。このモジュールはCH340を積んだこれなんだけど,老眼の僕にとってはハンダ付けが大変でした。ハズキルーペ必須ですw

  あちゃんでいいの 変換モジュール
 P (PROG_RESET)  DTR
 G (GND)  GND
 5 (5V)  5V
 R (RXD)  TXD
 T (TXD)  RXD

 上記の表のように接続しますが,ピンヘッダがこの順序通り並んでるので,両端にピンソケット(1×5)メスのついたケーブルがそのまんま使えます。こりゃいい。
Arduino IDE でスケッチを書き込むとき,「ボード」は「Arduino UNO」で大丈夫です。

201908271242

電池を電源にしてLチカしてみました。VCCは7ピン,GNDは8ピンです。

| | | コメント (0)