Micro Python & 自作ターミナル

手持ちの ”Cortex-M4"マイクロコントローラボード "NUCLEO-F401RE" の使い道を考えていたところ、"MicroPython" を見つけたので、試してみた。

 CQ出版の インターフェース2016年10月号(PDFで購入)で"Python" の特集があり、そこに、詳しい説明(第7章アプリはスクリプトで柔軟に!マイコン用MicroPythonプログラミング)があったので参考にした。

左のLCDは、320x240の自作ターミナルです。

映像は、ターミナルをリセットしたのち、NUCLEO-F401REをリセットするとMicroPythonが起動し、キーボードから”1+2”と入力すると、答えが表示されている様子がわかります。

"MicroPython"には、esp8266、esp32用のコードも用意されていますので、ターミナルさえ準備できれば、手軽に学習ができると思い、このターミナルを作ってみました。

てがるに、Pythonを勉強するには、持ってこいではないですか?

チャレンジしてみたい方、お気軽にご連絡ください。

お問い合わせ

REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER をつなぐ

REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER をつないで、SDCardから、オフラインでプリントできるようになりました。



使ったLCDは、REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER(安いです)

Ben_Kとの接続のためには、コネクタのアダプターを別途作成する必要があります。

それ用に、ピンを開けておいたので、割と簡単にできると思います。
以下のpins.hを参考に、作ってください。
(ご要望が多ければ、専用のボードを開発しますので、ご連絡ください。)

もちろんファームの変更も必要です。
Marlin Firmware の configuration.h  pins.h の2つのファイルを変更します。

**** configuration.h *****
まず、configuration.h は 500行目付近にある

//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

この行の頭の"//"を削除して、有効にします。
(もちろん他のLCDをすでに使っていた場合は、その該当行はコメントにしてください。)

***** pins.h *****
こちらは、Ben_K のPin Assignments を以下を参考に、変更します。

/****************************************************************
* BEN_K Pin Assignments
******************************************************************/
#if MB(BEN_K)
#define KNOWN_BOARD
#ifndef __AVR_ATmega2560__
#error Oops!  Make sure you have 'Ben_K2560' selected from the 'Tools -> Boards' menu.
#endif

#define LARGE_FLASH true

#define X_STEP_PIN 37
#define X_DIR_PIN 49
#define X_ENABLE_PIN 29

#define Y_STEP_PIN 36
#define Y_DIR_PIN 48
#define Y_ENABLE_PIN 28

#define Z_STEP_PIN 32
#define Z_DIR_PIN 47
#define Z_ENABLE_PIN 27

// Brn_K pin#
#define X_MIN_PIN 81
#define X_MAX_PIN -1 //82
#define Y_MIN_PIN 80
#define Y_MAX_PIN -1 //83
#define Z_MIN_PIN 79
#define Z_MAX_PIN -1 //38 Use for Servo


#define HEATER_BED_PIN 45
#define TEMP_BED_PIN 13  // Therm1

#define HEATER_0_PIN  44
#define TEMP_0_PIN 12  // Therm0

#define HEATER_1_PIN -1
#define TEMP_1_PIN 14  // Therm3

#ifdef BARICUDA
#define HEATER_2_PIN -1
#else
#define HEATER_2_PIN -1
#endif
#define TEMP_2_PIN 15  // Therm3


#define E0_STEP_PIN         34
#define E0_DIR_PIN          43
#define E0_ENABLE_PIN       26

#define E1_STEP_PIN         33
#define E1_DIR_PIN          42
#define E1_ENABLE_PIN       25

#define SDPOWER            -1
#define SDSS               -1
#define LED_PIN            13
#define FAN_PIN            46
#define PS_ON_PIN          -1
#define KILL_PIN           -1 //80 with Smart Controller LCD
#define SUICIDE_PIN        -1  //PIN that has to be turned on right after start, to keep power flowing.

#ifdef NUM_SERVOS
  #define SERVO0_PIN       38 // Z_MAX_PIN
#endif

#ifdef ULTRA_LCD
  #define KILL_PIN 55
  #ifdef NEWPANEL
   //arduino pin which triggers an piezzo beeper
    #define BEEPER 56      // Beeper on AUX-4
    #define LCD_PINS_RS 60
    #define LCD_PINS_ENABLE 61
    #define LCD_PINS_D4 62
    #define LCD_PINS_D5 63
    #define LCD_PINS_D6 64
    #define LCD_PINS_D7 65

    //buttons are directly attached using AUX-2
    #define BTN_EN1 57
    #define BTN_EN2 58
    #define BTN_ENC 59  //the click

    #define BLEN_C 2
    #define BLEN_B 1
    #define BLEN_A 0

    #define SDCARDDETECT 54
#define SDSS         53

    //encoder rotation values
    #define encrot0 0
    #define encrot1 2
    #define encrot2 3
    #define encrot3 1
  #else //old style panel with shift register
    //arduino pin witch triggers an piezzo beeper
    #define BEEPER 33    No Beeper added
    //buttons are attached to a shift register
    // Not wired this yet
    // #define SHIFT_CLK 38
    // #define SHIFT_LD 42
    // #define SHIFT_OUT 40
    // #define SHIFT_EN 17

    #define LCD_PINS_RS 75
    #define LCD_PINS_ENABLE 17
    #define LCD_PINS_D4 23
    #define LCD_PINS_D5 25
    #define LCD_PINS_D6 27
    #define LCD_PINS_D7 29

    //encoder rotation values
    #define encrot0 0
    #define encrot1 2
    #define encrot2 3
    #define encrot3 1

    //bits in the shift register that carry the buttons for:
    // left up center down right red
    #define BL_LE 7
    #define BL_UP 6
    #define BL_MI 5
    #define BL_DW 4
    #define BL_RI 3
    #define BL_ST 2
    #define BLEN_B 1
    #define BLEN_A 0
  #endif
#endif //ULTRA_LCD

#ifndef SDSUPPORT
// these pins are defined in the SD library if building with SD support
  #define SCK_PIN          52
  #define MISO_PIN         50
  #define MOSI_PIN         51
#endif

#endif // BEN_K
**************************
以上です。

チャレンジしてみたい方、お気軽にご連絡ください。

MAX10 FPGA電子工作キットが、動くまで

トランジスタ技術増刊号の「FPGA電子工作スーパーキット」を使って、FPGAの勉強環境を用意しました。

 実際にこのFPGA勉強環境が動くまでの苦労メモです。

 付録の、FPGA基板(MAX10-FB)とPICを使ったUSB Blaster機能基板(MAX10-JB)、同じく付録のDVDに収められた開発環境のインストールをしました。

1.まず、基板を作成し、PICにUSB Blaster機能を持たせるためのファームの書き込みです。
 説明通り進めればそれでよかったようですが、MAX10-JBのPIC書き込みの際、注意書きにあるようにUSB電源の信号ラインがアクティブになるものに接続すると書き込みエラーになる。

 実際は、このアクティブにならないということの確認が、実際にケーブル接続後信号を確認しないとわからなかったため、大丈夫と思ったものがほとんどだめで、何度も失敗した。

 結局、USB電源をやめ、3.3Vの外部電源を基板に直接接続することで、成功した。

参考URL:トラブルシュート- MAX10 FPGA解説本


2.できたと思って、開発環境をインストールしてMAX10-JBをUSBケーブルで接続したが、ドライバーが正常にインストールされませんでした。

 PICの書き込みがうまくいかなかったのかと思い、何度も見直したが、結局書き込みは正常に成功したようだったので、ドライバーのインストールがうまくいかない問題の調査を始めた。

 USB Blasterのドライバーはちゃんとした署名がないから、Windows10では通常モードではインストールしてくれないということが分かった。

 で、調べた結果以下のURLを参考にドライバーのインストールをし直したところ、ようやく、インストールが成功し、開発環境で、MAX10-FBが認識できるようになった。

参考URL:MAX10 USB-Blasterが認識されない
参考URL:Windows 10のテストモードで署名のないドライバをインストールする方法

チャレンジしてみたい方、お気軽にご連絡ください。


iPAD PYONKEE での MESH 接続について

PYONKEE は iPadで動く本格派のビジュアルプログラミング環境です。MITメディアラボの SCRATCH1.4 を基にしておりプロジェクトの互換性があります。

これを使って、SCRATCH1.4と同じように MESH 接続を使い ロボットコントロールをしてみようと思い、チャレンジしました。

PYONKEE のメニューには最初から「メッシュのホストになる」というのがあり、これをタップすると IPアドレスが表示され うまいことホストになったように見えたが、つながらなかった


いろいろと調べた結果、「調べる」の「センサーの値」ブロックを長押しして、現れた「遠隔センサー接続を有効にするこれで、ホストになれました。 この時点では IPアドレスが表示されないので、改めてメニューから「IPアドレスを表示する」で、確認します。

これで、うまいこと行きました。

どちらも同じはずとの指摘を受けて、調べたところロボット側の電圧低下による不安定動作だったようだ。
ご指摘の通り、どちらでも動作しました。
ご指摘ありがとうございます。

確認したのは、PYNKEE Ver2.2 bild 3 です。

TeraTerm4.93 にバグ??

ESP-Wroom02のシリアルモニター用にTeraTerm4.93を使用したところ、文字化けが発生。
いろいろと設定を確認したが治らず、古いバージョン4.89に変更したところ治った。

Windows7~10 Soft AP の設定


Windows7~10 Soft AP の設定方法は同じで、以下のURLを参考にして実行できます。

http://tabletpcnavi.com/windows10-softap/


EAGLEライブラリーをDS-PCBに取り込む手順メモ

EAGLEライブラリーをDS-PCBに取り込む手順メモ
DS-PCB : (DesignSpark PCB)

1.EAGLE - >ライブラリーをOpen

2.DS-PCBのインストールフォルダーの中の"EagleULP"フォルダーの中にある"LibraryToIntermediate.ulp"をULPで実行する。
 変換された中間ファイルは"***.eil"で、適当なフォルダーに保存する。

3.DS-PCBを起動し、"File"->"Library"でLibrary Managerを起動します。

4."Schematics Symbols"タブをクリックします。

5."NewLibrary"ボタンをクリックし、新しく作るライブラリの名前を入力します。(EAGLEライブラリの名前と同じにできれば便利です。

6."Add Files"ボタンをクリックし、先ほど保存した中間ファイル"***.eil"を選んで"開く"ボタンをクリックします。

7."PCB Symbols"タブをクリックし、上記5.6.を繰り返します。

8."Components"タブをクリックし、上記5.6.を繰り返します。

以上で、完了です。