SSブログ
前の10件 | -

3.5mmジャックとプラグ [パーツ]

うちのSONYのテレビにはRCAコネクタが付いていません。
4極 (TRRS;Tip Ring Ring Sleeve)ケーブルが別途必要。
bravia_rca.png
ヘルプガイド BD_DVDレコーダーをつなぐ
https://helpguide.sony.net/tv/hjp1/v1/ja/04-02_01.html

音声・マイクの4極には「CTIA」(iPhoneなど現在の主流?)と「OMTP」など一応規格はある様子。
TRRSの順で、、
・Audio(L)-Audio(R)-GND-Mic  CTIA
・Audio(L)-Audio(R)-Mic-GND  OMTP

音声・ビデオの4極はカオスのようで決まったものがないみたい。
trrs_lvgr.pngTRRSの順で、、
・Audio(L)-Video-GND-Audio(R)  □[ VCR ]=
     SONY(BRAVIA)、Panasonic(VIERA, Strada)、SHARP(AQUOS)、JVC(Everio)
・Audio(L)-Audio(R)-GND-Video  □[CTIA?]=
     Pioneer(carrozzeria)、ALPINE、Raspberry Pi、TCL??
・Audio(L)-Audio(R)-Video-GND  □■[OMTP?]=
     海外製品?
     (Bearmax・AVOX)?
・Audio(R)-Audio(L)-GND-Video  □■[____]=
     iPod Video? TCL??
・Video-Audio(L)-Audio(R)-GND  ■[____]=
     海外製品?SAMSUNG TV??
     (REALLIFE JAPAN(AiVN)・VERSOS・TMY・arwin・HYFIDO・GREEN HOUSE)?
・Video-Audio(L)-Audio(R)-GND(long) (15mmではなく18mm) [____]=
     TOSHIBA/Hisense(REGZA)?     

PanCakeシールド作成では、RCAコネクタをユニバーサル基板に取り付けるのに苦労しました。
3.5mmジャックならユニバーサル基板にも乗っかるいいのがあったので代用しようと思ったのだけど。

φ3.5mm ステレオジャック 基板用 ブレッドボード対応 スイッチ付 黒 _ PJ-317-B
https://eleshop.jp/shop/g/gJ25311/

こんなものを作って接続テストしてみました。
trrs_testplug.jpg

SONY形式で行くなら、ちょうどAudio(R)は使わないので捨ててこんな感じ。
trs_jack1.jpg

別のジャックだと根本が金属で TRRSの最後のRとSがショートしてしまうけど、SONY形式なら使わないAudio(R)とGNDがショートするだけなので問題なさそう。
trs_jack2.jpg


nice!(0)  コメント(0) 

IchigoCakeの説明書を小冊子に印刷する。 [ツール]

IchigoCakeの説明書をこんな感じで印刷して小冊子にしてみました。
ij_book.jpg
最近というほど最近ではないですが、近ごろは多くのプリンタが両面印刷できるようです。

PDFは標準だとMicrosoft Edgeで開いてしまうのですが、Adobe Acrobat Readerで開くと印刷時に以下のダイアログが出るので、
ij_pdf_setting.png
・ページサイズ処理で「小冊子」を選択
・小冊子の印刷方法「両面で印刷」
・綴じ方「左」(漫画や国語の教科書なら右)
とします。

「中綴じホチキス」というものがあればいいのですが、うちにはないので、ホチキスを180度開いて、段ボールなどの柔らかいものの上で針を打ち、自分で針先を折り曲げて完成。

IchigoCake
http://ichigocake.shizentai.jp/
IchigoCake for ゲームクリエイター - IchigoJam
http://ichigocake.shizentai.jp/IchigoCake_jam.pdf
IchigoCake for ゲームクリエイター - IchigoLatte
http://ichigocake.shizentai.jp/IchigoCake_latte.pdf


マックス MAX ホチキス ホッチキス タテヨコ ホッチくる 15枚とじ ブルー HD-10V/B

マックス MAX ホチキス ホッチキス タテヨコ ホッチくる 15枚とじ ブルー HD-10V/B

  • 出版社/メーカー: マックス(MAX)
  • 発売日: 2003/08/25
  • メディア: オフィス用品

タグ:IchigoCake PDF
nice!(0)  コメント(0) 

Arduinoで「りんごをさっちゃん」スケッチ編 [Arduino]

「IchigoJam」は「こどもパソコン」ということで、サンプルプログラムの「りんごをさっちゃん」をArduino用に書き直すのは容易なことだと考えていました。
しかしサンプルプログラムにはコメントが1行目の「LINGO WO SACCHAN」しかなく、変数もBASIC版だと1文字しかなく、小学生がこのプログラムをみて勉強するのは厳しくないか?と思いました。
ということで、プログラムを読み解きながら、コメントをふんだんに付けてみました。
そのまえに、PanCakeを使うにあたってのとりあえず思いついた注意点をまとめてみます。

・PanCakeが起動するまで少し待つ
  起動前にシリアルデータを送っても処理してもらえない
  とりあえず1000ミリ秒待てば間違いなさそう(たぶん、もう少し短くてもいい)

・Arduinoのほうが高速
  IchigoJamはBASICでインタープリター
  Arduinoはコンパイルしたスケッチ
  サンプルプログラムの移植そのままだと速すぎる

・PanCakeに送る数値は2桁の16進数で
  数値データを2桁の16進数(2文字)にして送る
  sprintfで書式を作り数値を代入した文字列をつくり、それを送信するとか
char buf[96];
sprintf(buf, "PANCAKE SPRITE MOVE 00 %02X %02X", bx, 35);
Serial.println(buf);

  かなり適当なマクロを作るとか
// Convert to 2-digit hexadecimal number
#define F02X(d)  ((String)"0123456789ABCDEF"[(d)>>4 & 0x0f] \
                 +(String)"0123456789ABCDEF"[(d)    & 0x0f] ) 
    あるいは、
#define F02X(d)  (String((d)/16,HEX)+String((d)%16,HEX))

・数値は整数
  javascriptでは割り算の答えは(割り切れなければ)小数で出てくるけど、IchigoLatteではC言語の整数型と同様に小数点以下切り捨ての整数で返ってくる

こんな感じ。
lws.jpg

// LINGO WO SACCHAN for Arduino + PanCake
#define F02X(d)  ((String)"0123456789ABCDEF"[(d)>>4 & 0x0f] \
                 +(String)"0123456789ABCDEF"[(d)    & 0x0f] )   // 2-digit hexadecimal number form
uint8_t sx, f;                      // SACCHAN position, direciton (flip)
uint8_t bx;                         // bascket position
uint8_t rx, ry, rr;                 // apple position(x, y), rotation
uint8_t score, speed;

void setup() {
  pinMode(11, INPUT_PULLUP);        // SW [Left]
  pinMode(12, INPUT_PULLUP);        // SW [Right]
  sx = 36;  f = 0;  bx = sx + 7;    // initialize SACCHAN and bascket position, direciton (flip)
  rx = random(72); ry = 0; rr = 0;  // initialize apple position(x, y), rotation
  score = 0;  speed = 1;            // initialize score and speed
  delay(3000);                      // Wait for Pancake to stabilize
  Serial.begin(115200);             // initialize serial communications at 115200 bps
  Serial.println(F("PANCAKE RESET"));
  Serial.println(F("PANCAKE MUSIC SCORE 00 00 81 $C>C<EG"));
  Serial.println(F("PANCAKE MUSIC SCORE 01 00 80 RRRRR$RRRRRRRRCCDE~~~~EFED~~~~DEDC~~~~"));
  Serial.println(F("PANCAKE MUSIC PLAY 01"));
  Serial.println(F("PANCAKE SPRITE START 01"));
  Serial.println(F("PANCAKE SPRITE CREATE 00 5D"));   // 00:bascket (5D)
  Serial.println(F("PANCAKE SPRITE CREATE 01 1F"));   // 01:apple   (1F)
  Serial.println(F("PANCAKE SPRITE CREATE 02 0B"));   // 02:SACCHAN (0B)
  Serial.println(F("PANCAKE SPRITE CREATE 03 A6"));   // 03:number 0(A6)
  Serial.println(F("PANCAKE SPRITE MOVE 03 00 00"));  //    (tens place)
  Serial.println(F("PANCAKE SPRITE CREATE 04 A6"));   // 04:number 0
  Serial.println(F("PANCAKE SPRITE MOVE 04 08 00"));  //    (ones place)
}

void loop() {
  Serial.println("PANCAKE SPRITE MOVE 00 " + F02X(bx) + " 23" );    // 0x23=35(horizon)
  Serial.println("PANCAKE SPRITE FLIP 00 " + F02X(f)          );
  Serial.println("PANCAKE SPRITE MOVE 02 " + F02X(sx) + " 23" );
  Serial.println("PANCAKE SPRITE FLIP 02 " + F02X(f)          );
  Serial.println("PANCAKE SPRITE MOVE 01 " + F02X(rx) + " " + F02X(ry) );
  Serial.println("PANCAKE SPRITE ROTATE 01 " + F02X(rr)       );
  Serial.println("PANCAKE SPRITE CREATE 03 " + F02X(0xa6 + score / 10) );
  Serial.println("PANCAKE SPRITE CREATE 04 " + F02X(0xa6 + score % 10) );
  rr = (rr + 1) % 4;                // rotate apple
  ry = ry + random(speed + 1);      // falling apple
  if(35 < ry) {                     // When the apple reaches the horizon
    if((bx-4<rx)*(rx<bx+4)) {       // If the apple is in the basket ..
      score++;
      Serial.println(F("PANCAKE MUSIC SCORE 03 01 22 >>CE>C"));
    }
    if((sx-4<rx)*(rx<sx+4)) {       // If the apple hits SACCHAN ..
      Serial.println(F("PANCAKE SPRITE CREATE 02 08"));
      Serial.println(F("PANCAKE MUSIC PLAY 00"));
      Serial.println(F("PANCAKE MUSIC SCORE 03 01 40 <F~ED~<B>C~~~"));
      setup();                      // game over and restart
      return;
    }
    rx = random(72);  ry = 0;       // next apple
    speed = (score + 10) / 10;      // Speed up
  }
  delay(100);
  if( digitalRead(11) == LOW ) {  sx--; f=1;  bx=sx-7;  }   // move left
  if( digitalRead(12) == LOW ) {  sx++; f=0;  bx=sx+7;  }   // move right
}




PanCake
http://pancake.shizentai.jp/

IchigoCake
http://ichigocake.shizentai.jp/
タグ:pancake
nice!(0)  コメント(0) 

Arduinoで「りんごをさっちゃん」ハードウェア編 [Arduino]

PanCake Shieldをつかって、IchigoJam+Pancake (または IchigoCake)のサンプルプログラムである「りんごをさっちゃん」をArduinoに移植してみようと思います。
PanCake Shieldへのデータ入力選択ジャンパーピンをUno上のUSB-serial変換器からの入力ではなく、ATmega328からの入力に切り替えます。
pancake_s_jumper2.jpg
これで、スケッチからPanCakeを操作できます。

ゲームの操作については、IchigoJamはもともとPS/2キーボードをつなぐ前提で作られているのでキーボードでの操作ができますが、Arduinoにはそれがないのでコントローラーが必要です。
中古のゲーム機用コントローラーを使うかとも思ったのですが、ジャンク箱を探すと子供が学校で使った理科実験のおもちゃのコントローラーがありました。左右の操作に加えてもう1つボダンがついているというもの。分解すると意外と複雑だったのですが、必要なのはスイッチ3つ分だけなので、内部の配線をしなおして単純なスイッチにしてしまいました。
d11-13sw.jpg

電流と電磁石 フットサル・ロボ II
https://www.daiwa-e.com/contents/seihin/seihin_r5-01_main.php

Arduino Unoの11番,12番,13番,GNDのならびでスイッチにしてみたのですが、これが大失敗!
11番を右ボタン、12番を左ボダン、13番をやり直しボタンに割り当てましたが、13番はLEDにつながっていることをすっかり忘れていました。
pinMode(13, INPUT_PULLUP) にしても、LEDがつながっているためスイッチの状態に関わらず常にLOWになってしまいスイッチとしては使えませんでした。
ただ「りんごをさっちゃん」には必要ないのでとりあえずこのままで。
タグ:pancake
nice!(0)  コメント(0) 

PanCakeのフォークとナイフ [Arduino]

パンケーキの両脇のフォークとナイフがうまく表示されていなかったけど、キャプチャデバイスがしょぼいからかなと思ってました。
しかし画面が全然でないときもあったりしたので、もしかしたらはんだづけ不良かも、、。
基板の裏面を見てもよくわからなかったのですが、とりあえずはんだを盛ってみました。
すると、フォークとナイフがちゃんと出るようになりました。
しょぼかったのはキャプチャデバイスではなく、自分のはんだづけ技術でした。

pancake_s_i00.png
 ↓ ↓ ↓
pancake_s_i00_2.png
タグ:ビデオ pancake
nice!(0)  コメント(0) 

PanCake Shield にデータを送る [Arduino]

Arduino Uno のUSB-シリアル変換から、直接 PanCake を操作してみます。
pancake_s_jumper.jpg
こんなふうにジャンパーピンをつなぐと、シリアルモニターからの文字列を直接送ることができます。
pancake_s_serial.png
改行コードは「LF」で、通信速度は「115200 bps」。
例えば「PANCAKE IMAGE 01」と送ると、、
pancake_s_i00.png
 ↓
pancake_s_i01.png
となります。
タグ:pancake ビデオ
nice!(0)  コメント(0) 

PanCake Shield を作ってみた。 [Arduino]

Arduinoをつかってビデオ信号を作るのは、

TVout Library
https://playground.arduino.cc/Main/TVout/

というものを使うのがいいようだけど、古いもののよう。
そこで、こどもパソコン「IchigoJam」のアドオンボードというか、マルチメディアボードの「PanCake」というものがありまして、

PanCake
http://pancake.shizentai.jp/

これが、シリアル通信により制御できるとのこと。
じゃあ、Arduinoでも制御できそうということでやってみた。

とりあえず、「PanCake」を購入。
 ・プリント基板キット
 ・組み立て済 完成品
 ・ブレッドボードキット
とあるのですが、完成品だとArduinoとPanCakeとをつなぐ簡単なシールドが必要。ブレッドボード版だと完全にシールドを自作しないといけない。迷っていたので、どちらにもいくことができるプリント基板キットを購入。

PanCakeプリント基板キット(サウンドグラフィックボード) 組立キット(モジュール) 秋月電子通商-電子部品・ネット通販
https://akizukidenshi.com/catalog/g/gK-09686/

ディスコンマークが付いていて、在庫限りで取扱い終了、、。
でも、頑張ると決めたので、シールドつくることにした。

pancakeshield_1a.png
PasSのパーツもいくつか作ってみた。
信号レベルが3.3Vなので、2.2KΩと3.3kΩで分圧しています。

pancakeshield_2.jpg
スペースが少ないのでICソケットの下にも抵抗を配置。

pancakeshield_4.jpg
USB type-Bのコネクタとぎりぎり接しない感じ。(ねんのため絶縁テープで保護を。)
RCAコネクタの固定が難儀でした。

pancakeshield_3.jpg
完成!

いきなりテレビにつないでテレビが壊れたらいやなので、USBビデオキャプチャユニットを使用。
pancakeshield_5.png
バージョン1.0だと思っていたけど、バージョン1.2だった。

nice!(0)  コメント(0) 

久しぶりにATtiny13Aを使う。 [Arduino]

ちょっとATtiny13Aを使ってみようとしたが一筋縄ではいかなかったので、メモ。
attiny13asu.jpg
以下のページのお世話になりました。

Arduino IDEでATtiny13Aに書き込む
https://www.jh4vaj.com/archives/27291


・ボードの追加
 追加のボードマネージャのURL
  https://kimio-kosaka.github.io/bitDuino13/package_bitDuino13_index.json
 ボードマネージャ
  bitduino13 をインストール

ここまでは、問題ない。

・書き込み装置が指定できない問題
 programmers.txt がない
  コピー元フォルダ:
   %PROGRAMFILES(X86)%\Arduino\hardware\arduino\avr
  コピー先フォルダ:
   %LOCALAPPDATA%\Arduino15\packages\bitDuino13\hardware\avr\1.0.1

これでOK。
avrdude.conf もコピーとありましたが、うちはコピーしなくてもいけた。

・USBaspでは書き込めない問題
 ATtiny13Aは書き込みエラーを起こしやすく、何回かやると書き込めるとあったが、何回やっても書き込めず。
 Arduino as ISP (スケッチ例にあるArduinoISPを Duemilanove/Unoなどに書きこんだもの)なら書き込めた。
 AVRASP mkII (セットアップが面倒。WinAVRインストールする羽目に。)でも書き込めた。


★ほかにもAtTiny13Aを使うボードマネージャがあった。
 MicroCore
 https://github.com/MCUdude/MicroCore

・ボードの追加
 追加のボードマネージャのURL
  https://mcudude.github.io/MicroCore/package_MCUdude_MicroCore_index.json
 ボードマネージャ
  MicroCore をインストール

programmers.txtのコピーは不要でした。
タグ:ISP ATtiny13A
nice!(0)  コメント(0) 

丸ピンICソケットと板バネICソケット [パーツ]

「丸ピンICソケット」か「板バネICソケット」か
icpinsocket1.jpg
製品としては、、

丸ピンICソケット ( 8P) パーツ一般 秋月電子通商-電子部品・ネット通販
https://akizukidenshi.com/catalog/g/gP-00035/

ICソケット ( 8P) (10個入) パーツ一般 秋月電子通商-電子部品・ネット通販
https://akizukidenshi.com/catalog/g/gP-00017/

説明は以下。

マルツパーツ館 パーツまめ知識 ICソケットの接触方式
https://www.marutsu.co.jp/contents/shop/marutsu/mame/193.pdf

まとめると、「丸ピンICソケット」のほうが保持性が良く、振動、衝撃に強く、耐久性が高い、、ということみたい。

ただ、アマチュアとしては別のメリットがありました。

並べてみます。
icpinsocket2.jpg
違いは、、
icpinsocket3.jpg
まず、丸ピンソケットは下のスペースが広いのでICソケット下に配線がしやすい。

もう一つ、板バネソケットは、板バネの引っ掛かりが必要なため両端にでっぱりができでしまいます。
これが問題。
stc-8a.jpg
ICテストクリップを使うときに邪魔になる。

タグ:ICソケット
nice!(0)  コメント(0) 

久しぶりにISPで書き込みしてみると [Arduino]

ATTinyCoreのATtiny85にUSBaspを使って、書き込みしてみるとエラーが出る。

isp_error_1.png
Arduino:1.8.19 (Windows 10), ボード:"ATtiny25/45/85 (No bootloader), Enabled, CPU (CPU frequency), ATtiny85, 16.5 MHz (PLL, tweaked), EEPROM retained, B.O.D. Disabled (saves power), Enabled"

最大8192バイトのフラッシュメモリのうち、スケッチが1008バイト(12%)を使っています。
最大512バイトのRAMのうち、グローバル変数が37バイト(7%)を使っていて、ローカル変数で475バイト使うことができます。
スケッチの書き込み中にエラーが発生しました
avrdude: set SCK frequency to 187500 Hz
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: error: program enable: target doesn't answer. 0 
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

・Arduino as ISP なら問題なくスケッチを書き込める。
・AVRDUDESS - A GUI for AVRDUDE ではATtiny85をちゃんと認識できる。
・USBaspのファームウェアを書き換えたりしてみたけどダメ。

ということで、Arduino の AVRDUDE が怪しい。

%USERPROFILE%\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino18\bin

(別の書き方だと、 %APPDATA%\..\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino18\bin )

ここにある avrdude.exe を「AVRDUDESS-2.14-portable.zip (844 KB)」 の中に入っていた avrdude.exe に置き換えてみたらエラーが消えた。

(参照)
AVRDUDESS – A GUI for AVRDUDE - Zak’s Electronics Blog --
https://blog.zakkemble.net/avrdudess-a-gui-for-avrdude/

isp_error_2.png

問題解決、けっこう疲れた。
タグ:ISP AVRDUDE USBasp
nice!(0)  コメント(0) 
前の10件 | -