jendo1969 のすべての投稿

Longan Nano Board2

Longan Nanoの開発には、PlatformIOを使用します。
文書関係は、以下のサイトにあります。
https://www.seeedstudio.com/Sipeed-Longan-Nano-RISC-V-GD32VF103CBT6-Development-Board-p-4205.html
以下に開発方法が書かれています。
http://longan.sipeed.com/en/
中文の方が情報が多いいです。
http://longan.sipeed.com/zh/
以下にVS CODEにプラグインをインストールする方法やデバイスの設定方法があります。手順通りに進めればOKです。
http://longan.sipeed.com/en/get_started/pio.html
次にLED Blinkのサンプルプログラムを作ります。
これも以下のサイトの手順通り進めます。
http://longan.sipeed.com/en/get_started/blink.html
ビルドするとfirmware.binができます。
書き込みには、USB DFU のツールを使用します。
以下にツールとUSBのドライバがありまs。
http://dl.sipeed.com/LONGAN/Nano/Tools/GD32_MCU_Dfu_Tool_V3.8.1.5784_1.rar
インストール方法は、以下の項に詳しく書かれています。
http://longan.sipeed.com/en/get_started/blink.html#usb-dfu-download
インストール後、GD32 MCU Dfu Tool.exeでbinファイルをダウンロードします。ツールにLongan Nano Boardを認識させるためには、BOOTボタンを押しながら、RESETボタンを押します。

接続するとDFU Devideに「GD DFU DEVICE 1」が表示されます。
Openしてbinファイルを選択し「OK」押すと書き込みが開始されます。
書き込み後RESETボタンを押すと書き込んだプログラムが走り出します。

Longan Nano Board

RISC-Vボードを購入しました。

Sipeed Longan Nano RISC-V GD32VF103CBT6開発ボード
http://akizukidenshi.com/catalog/g/gK-14678/
CPU:GD32VF103CBT6
メモリ:128KB Flash/32KB SRAM
RISC-V 32bitのGigaDeviceのCPU、GD32VF103CBT6を搭載しています。自分的には、STM32に続く中華対応です。
GigaDeviceは、中国の半導体会社です。
https://www.gigadevice.com/
160×80ドット、0.96インチのフルカラーIPS液晶とケースがついて830円なのでかなりの格安セットです。

ESP8266 micropython3

WiFi接続を行いました。
ESP8266の使い方は以下に詳しくあります。
https://micropython-docs-ja.readthedocs.io/ja/latest/esp8266/quickref.html
ネットワーキングの項目にWiFiの接続方法が書かれています。
この関数を使って簡単にWiFi接続ができました。

次にOLEDディスプレイを接続しました。I2Cでの接続です。
これも以下のURLで接続方法の記述があります。
https://randomnerdtutorials.com/micropython-oled-display-esp32-esp8266/
ライブラリファイルをアプロードした後に、メインプログラムをアップロードします。

SSD1306のOLEDは、I2Cで使用ピンも少なく、視認性も良いので重宝します。

ESP8266 micropython2

micropythonの IEDとしてuPycraft を使用しました。
以下のサイトにWindowsにInstallする方法があります。
https://randomnerdtutorials.com/install-upycraft-ide-windows-pc-instructions/

uPyCraft.exeは、以下のURLからダウンロード可能です。
https://randomnerdtutorials.com/uPyCraftWindows

IDEが立ち上がります。
micropythonのファームウェアを書き込んだNODEMCUをUSBでPCと接続します。
ToolsメニューのSerialメニューから接続しているCOMポートを選択してください。これでエディタの下側のターミナル表示部分に>>>のプロンプトが表示されます。
これでmicropythonのコーディング準備ができました。

NODEMCU側は、そのままだと使いづらいので NodeMcuベースを購入しました。
https://www.amazon.co.jp/gp/product/B07KD2XVD4

/ref=ppx_yo_dt_b_asin_title_o02_s00?ie=UTF8&psc=1
電源やIOのピンが複数用意されているのでプロトタイプを作成するのに最適です。残念なことに幅が合わなくて亀の子状態になっています。

ESP8266 micropython

NODEMCUを購入しました。 https://www.amazon.co.jp/gp/product/B07K2VQ4J7/ref=ppx_yo_dt_b_asin_title_o06_s00?ie=UTF8&psc=1
ESP8266を搭載したESP-12Eを搭載しています。
micropythonで使用してみます。
以下のサイトがmicoropythonの公式サイトです。
https://docs.micropython.org/en/latest/index.html
ESP8266のクイックリファレンスです。
https://docs.micropython.org/en/latest/esp8266/quickref.html
まずはインストールのなので Getting startedを参照します。
https://docs.micropython.org/en/latest/esp8266/tutorial/intro.html#intro
インストールするためUBUNTUを使用しました。
pip install esptool
でツールをインストールします。NODEMCUをUBUNTUに接続します。
まずフラッシュメモリを消すコマンドを実行します。
esptool.py –port /dev/ttyUSB0 erase_flash

 

先にmicropyhtonのファームウェアをダウンロードしておきます。以下にイメージがあります。最新のv1.11を使用します。
http://micropython.org/download#esp8266

次にまずmicropyhtonのファームウェアをフラッシュメモリに書き込みます。
esptool.py –port /dev/ttyUSB0 –baud 460800 write_flash –flash_size=detect -fm dio 0 esp8266-20190529-v1.11.bin

書き込みが終わるとシリアルで接続できるようになります。
picocom /dev/ttyUSB0 -b115200
115200bpsで接続できます。

MicroPython v1.11-8-g48dcbbe60 on 2019-05-29; ESP module with ESP8266
Type “help()” for more information.
>>>

ターミナルが起動すれば成功です。

 

MBED NUCLEO-F767ZI

前回mbedのオフライン開発環境mbed CLIを作成しました。OS5でEthernetを使用したいと考えています。LPC1768では、ちょっとメモリが小さいので新しいボードを探しました。
NUCLEO-F767ZIを購入しました。
https://os.mbed.com/platforms/ST-Nucleo-F767ZI/
メーカのサイトは以下になります。
https://www.st.com/en/evaluation-tools/nucleo-f767zi.html#
RSコンポーネンツで購入しました。
https://jp.rs-online.com/web/p/processor-microcontroller-development-kits/1231052/?relevancy-data=636F3D3126696E3D4931384E53656172636847656E65726963266C753D6A61266D6D3D6D61746368616C6C7061727469616C26706D3D5E5B5C707B4C7D5C707B4E647D2D2C2F255C2E5D2B2426706F3D31313326736E3D592673723D2673743D4B4559574F52445F53494E474C455F414C5048415F4E554D455249432677633D4E4F4E45267573743D4E55434C454F2D463736375A49267374613D4E55434C454F2D463736375A4926&searchHistory=%7B%22enabled%22%3Atrue%7D
税抜きで3000円しないので性能に比べると低価格です。
ST-LINK/V2も内蔵しているのでデバッガを別途用意する必要はありません。このボードは、mbedとして使用します。
電源を入れるとLEDの点滅とUSERボタンに対応したプロフラムが起動します。
https://os.mbed.com/teams/ST/code/mbed-os-tcp-server-example/
mbed-os-tcp-server-example をCLIでコンパイルし動かしました。
Webサーバとして動きました 。

mbed OS 5 CLI

mbed OS5をオフラインで使うためにmbed-cliの開発環境を作りました。
https://os.mbed.com/
mbedは、初代LPC1768を使用しました。

Windows10での環境構築は以下のURLに詳しく書かれています。
https://os.mbed.com/users/ytsuboi/notebook/ja-setup-mbed-cli-on-windows/
LINUXでの環境構築は以下のURLに詳しく書かれています。
LINUXはUbuntu16.04LTSを使用しました。
https://qiita.com/hotchpotch/items/4d87c13b97d236db5b4f
どちらもほぼ同じ手順で環境構築できます。
Windowsには、Installerが用意されている分、簡単に構築できます。
https://github.com/ARMmbed/mbed-cli-windows-installer/releases/tag/v0.4.10
動作確認にmbed-os-example-blinkyサンプルプロフラムを使用します。
https://os.mbed.com/teams/mbed-os-examples/code/mbed-os-example-blinky/

mbed targetを実行すると実際にUSB でつながているmbedボードが認識されます。

mbed compileを実行するとサンプルプログラムがビルドされます。
…\mbed-os-example-blinky\BUILD\LPC1768\GCC_ARMフォルダの中にmbed-os-example-blinky.binファイルが作成されます。
後はいつものようにmbedドライブに書き込みRESTすればサンプルプログラムが動作します。
コマンドプロンプトでの操作になりますが、mbedがLOCAL環境で
開発できるようになりました。

BeagleBoard-xM Update

久しぶにBeagleBoard-xM のOSを入れ替えました。最新のUbuntu18.04LTSを入れました。
https://elinux.org/BeagleBoardUbuntu
ここからUbuntuをダウンロードできます。
https://rcn-ee.com/rootfs/2018-12-10/microsd/bbxm-ubuntu-18.04.1-console-armhf-2018-12-10-2gb.img.xz
SDへの書き込みは、Win32DiskImagerを使用しました。
最近は、http://etcher.ioでの書き込み例が多いいですが
Win32DiskImagerも簡単です。
BeagleBoard-xM はシリアルポートがついているのでコンソールで立ち上げができます。
有線LANは、初めからDHCPで認識されますが、16.04で認識されていたWiFiは有効になりません。USB無線LAN子機は、BuffaloのWLI-UC-GNM2Sを使用しています。lsusbで確認するとUSBには認識されます。16.04で使っていたwpa_supplicant.confでの設定ではなく、Network Managerを使うようです。
sudo apt-get install network-manager
でインストールします。
nmcliコマンドで設定をしていくようです。
詳しい設定は、以下を参考にしました。
▼RHEL7 / CentOS 7 で、NetworkManager 管理下で WiFi の自動接続をコマンドラインで設定する▼
非常に助かりました。ありがとうございます。
SSIDやセキュリティの設定後、必ずnmcliコマンドでsaveして保存を行うことを忘れないようにしてください。
設定後、Network Managerを再起動するとWiFIがAPと接続し、IPが取得できました。
sudo service network-manager restart

最後に自動起動するように設定します。
sudo systemctl enable NetworkManager
これで電源投入後自動的にWiFiが接続します。
WiFi経由でSSHが使えるようになるととても操作が楽になります。

Raspberry Pi A+ UART GATEWAY

Raspberry Pi A+でUSB Serial ComverterとOnboardのUARTとをGatewayするプログラムを作成しました。

UARTは、RS232Cレベルで通信するためアナログデバイセズのドライバIC ADM3202を使用しました。
https://www.analog.com/jp/products/adm3202.html

OnboardのUARTをプログラムで使用するときは、コンソールでの使用を無効にする必要上がります。
sudo raspi-config
でシリアル接続上のシェルとカーネルのメッセージを無効にします。以下のURLに詳しい記載があります。
https://www.raspberrypi.org/documentation/configuration/raspi-config.md

双方向にデータのやり取りができました。
サンプルプログラムは、以下にあります。
https://github.com/jendo1969/pydir/blob/master/UART/serialtest.py

Raspberry Pi A+ UPDATE

Raspberryを最新のOSに乗せ換えました。
OSのRasbianは、以下からダウンロードしました。
https://www.raspberrypi.org/downloads/raspbian/
今回は、DESKTOPとして使用しないので軽い以下のOSを選択しました。
https://www.raspberrypi.org/downloads/raspbian/
Raspbian Stretch Liteをダウンロードします。
Raspbian Stretch Lite Minimal image based on Debian Stretch
Version: November 2018 Release date: 2018-11-13

WindowsでSDカードに書き込んだので
Win32 Disk Imager
を使用して書き込みました。
起動して設定を進めるためシリアル通信TTYのターミナルで設定を進めました。

まずは、ネットにつなげるためWiFiの設定をしました。
WiFiは、USBドングルのPLANEX GW-USNano2を使用しました。
まずWiFiの設定を行います。
$wpa_passphrase SSID PASSWORD
このコマンドで設定が取得できます。
network={
ssid=”SSID”
psk=PASSWORDの暗号コード
}

$sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
テキストエディタで設定ファイルを編集します。
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
ssid=”SSID”
psk=PASSWORDの暗号コード
key_mgmt=WPA-PSK
proto=WPA
pairwise=TKIP CCMP
priority=2
scan_ssid=1
}

続いてネットワークの設定を行います。
$cd /etc/network
$sudo nano interfaces
設定ファイルを編集します。

auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

再起動します。
$sudo reboot

再起動後、IPアドレスの設定を確認します。
$ifconfig -a
IPアドレスが取れていることを確認します。

インターネットが接続できるようになったので、最新の状態に変更します。
$sudo apt-get update
$sudo apt-get upgrade

LANがつながるのでSSHを有効にします。
Raspberry PIの背帝プログラムを起動します。
$sudo raspi-config
メニューから ”5 Interfacing Options”を選択
“P2 SSH”を選択
これで、SSHが使用できるようになりシリアルで接続しなくてよくなります。

© 2014 Spineedge Corporation.