「電子工作」カテゴリーアーカイブ

RedBearLab BLE Nano の設定方法とOTA

BLE Nanoの設定方法とBLEを介して直接プログラムを書き込むOTAの方法を記載します。
 

BLE Nanoとは

RedBear社のBluetooth Low Energy(BLE)搭載の小型マイコンです。
上に載ってる ちっこいのがBLE Nanoで下の基板がUSB書き込み用ボードのMK20
 
購入先

すでにMK20を持ってる場合は
 
以下ブログのプラレール遠隔コントロール改造でもBLE Nanoを使用してます 😀

ダイソー版 プラレール を改造したよ♪

MK20 USB boardの設定

USBを介してBLE Nanoにプログラムを書き込む際に必要なボードです。
Windowsの場合MK20をシリアルポートとして認識させるのにドライバが必要です。

  • https://developer.mbed.org/handbook/Windows-serial-configuration
    でmbed Windows serial port driverのexeファイルをダウンロードし実行
    無事インストールされるとMK20がシリアルポートとして認識されコード書き込みの準備が完了です♪
    “MBED”ドライブと表示されます。

以下はBLE Nanoとのセットで買った場合は必要ないと思いますが
RedBearLab WiFi MicroとかでMK20を使用してた場合にBLE Nano用のファームウェアを再度書き込む必要があります。

  • https://github.com/RedBearLab/nRF51822-Arduino/tree/S130/mk20
    のBLENano_MK20.binをダウンロードします。
  • MK20のリセット(RST)ボタンを押しながらPCに接続しLEDがゆっくり点滅すると”BOOTLOADER”ドライブとして認識されます。
  • ボタンを開放し”BOOTLOADER”ドライブにBLENano_MK20.binをドラッグ
  • 読み込まれるとLEDが高速で点滅しPCに再接続で”MBED”ドライブが表示されれば完了です。

Arduino IDE環境設定方法

オフィシャルではArduino IDEバージョン1.6.7が推奨のようだけど1.6.8でもいけました。
  • メニュー [ファイル]->[環境設定]内のAdditional Boards Manager URLsに

を追加(すでに他のjsonを入力してる場合はカンマで仕切る)し[OK]をクリック

  • メニュー [ツール]->[ボード]内の[Board Manager]を選択
  • [Board Manager] 内の”RedBearLab nRF51822 Boards”(version 1.0.5)を選択し[Install]をクリック
  • インストール後メニュー [ツール]->[ボード]内に”BLE Nano(V1.5 32KB)”が追加されるので選択

    任意のシリアルポートを指定して書込みが可能になります(Arduinoに比べると書込みに時間がかかります)。

新品のBLE NanoではデフォルトでArduino IDE用のブートローダーが書き込まれているのですが、MBED等で一度書き込んで再度Arduinoで使用する際などにはArduino用ブートローダーの書込みが必要です。
これメチャメチャ ハマりました!!!
公式説明ではhttps://github.com/RedBearLab/nRF51822-Arduino/tree/S130/bootloader
のbootloader.hexをダウンロードし”MBED”ドライブにドラッグすれば良いとあるのですが、
全然正常に動作しません(基板の製造次期にもよるのか?)。。。。
以下、解決策です。

  • 上記でversion 1.0.5でインストールした”RedBearLab nRF51822 Boards”をversion 1.0.0でインストールし直します
  • C:\ユーザー\AppData\Local\Arduino15\packages\RedBearLab\hardware\nRF51822\1.0.0\bootloaders
    内にbootloader.hexが生成されてますので、これを”MBED”ドライブにドラッグするとBLE NanoのLEDが点滅しブートローダ状態になり正常に動作します。
  • このbootloader.hexはどこかに保存しといて”RedBearLab nRF51822 Boards”はversion 1.0.5で更新しなおします。

    これでやっとArduinoで書き込めるようになりました♪

OTAの実施方法 

OTA(Over-The-Air)はMK20を使用せずスマホからBLE通信で直接プログラムを書き込む方法です。
  •  まずはArduino IDEで書込みたいプログラムのhexファイルを生成
    メニュー [スケッチ]->[コンパイルしたバイナリを出力]
    コンパイル後にhexファイルが生成される。出力先はプログラムと同じ場所
  • nRF ToolboxアプリをAndroid or iPhoneにインストール 

          

  • DFU(Device Firmware Update) -> SELECT FILE ->Application選択してOK
    先ほど作成したhexファイルを指定(お父ちゃんはhexファイルをGoogleドライブにアップしてスマホとデータ共有してます)
  • Init packetの有無を聞かれるが”NO”を選択
  • SELECT DEVICEでBLE Nanoデバイスをスキャンして選択
  • 一度BLE Nanoの電源をOFF -> ONしてBLE NanoのLEDが高速点滅したらUPLOADで書き込み開始

BLE Nanoをハンダ付けでゴテゴテに組み込むとMK20接続できないのでOTAは非常に役立ちます

参考

 http://redbearlab.com/getting-started-nrf51822
 https://www.youtube.com/watch?v=d75strWav5k

追記(16/10/13) 

BLE Nanoを使って作成しました!

ワウペダルと加速度センサでBLE制御ラジコン!

ダイソー版 プラレール を改造したよ♪

ダイソー版プラレール プチ電車”はやぶさ”を改造してスマホで自由にコントロールできるようにしました!ダイソー版プラレール沢山種類あってレールとか周辺キットも充実してます。


以下のBluetooth Low Energy(BLE)搭載のマイコンを使用して、スマホと通信して前進・後進、左右のコントロールができるようにしました。


比較的安くて凄く小さいのでDIYに持って来いです。Arduino IDEで設計できるので親しみやすいです♪

BLEマイコンでモータドライバ介してモータを制御してます。モータはプラレールに付いてたものをそのまま使用してます。車両連結部にサーボモータを取り付けて左右へのステアリングを実現してます!


レールいらずの新幹線。。。邪道かな 🙄 ?

部品
 ダイソー
 プチ電車シリーズ はやぶさ ¥108×3両
 スイッチサイエンス
 リチウムイオンポリマー電池 400mAh ¥868
 RedBearLab BLE Nano ¥2,700
 ストロベリー・リナックス
 モータードライバ・モジュール DRV8830  ¥540
 秋月電子
 マイクロサーボ9g SG90  ¥400
費用合計 約¥4,832

詳細は動画で!。是非見てくださいネ♪

激安!! Arduino クローン マイコン

以下2種のマイコンを安さに驚愕したのち購入しました(送料無料)!中国から半月ほどで届きました。
Arduino Unoのクローン
  Arduino Uno用シールドもキチンとハマる!(ピンソケットのハンダ少し雑で挿しにくかったけど。。。)
 USBケーブルもついててお得!(みじけーけど。。)
 
Arduino Nanoのクローン
 相変わらずピンは曲がってるのでペンチで修正。。
 
Win7では いずれもUSB接続しても認識されない(Win10では自動認識しました)。。これはUSBシリアル変換ICが定番のATmega16U2ではなくCH340Gってのが載ってるため
 
 
 てことでCH340Gのドライバーをインストール。こちらのサイトが参考になりました♪
http://www.wch.cn/download/CH341SER_ZIP.html の CH341SER.ZIP をダウンロード・解凍して SETUP.EXEを実行して”INSTALL”。
 
これでいずれの基板もバッチリ認識されるようになり、それぞれArduino IDEでマイコンボード:”Arduino/Genuino Uno”や”Arduino Nano”で書込み動作確認出来ました!
 
書込み毎にUSB抜く必要ある感じで若干クセあるが。。。
正規品の1/4以下の値段だし趣味レベルの利用ではコレで十分かなと(^^)

追記(16/9/25)

以下、Arduinoクローン品で作ったものです。問題なく動いてますw

デジタルかざぐるま Digindmill

測距センサ VL53L0X を用いた身長測定器

小型マイコン Digispark の設定方法

Digisparkの設定で引っかかった点があったので備忘録として設定方法を記載します♪
 

Digisparkとは

Adafruit Trinketと同じマイコン(ATtiny85)を搭載した小型マイコンで、Arduino Unoじゃスペックオーバーで小型化したい時に最適です。
 
ピン配置

 VIN → 5Vレギュレータ入力(最大定格 35V)
 GND → グランド
 5V → 5Vレギュレータ出力(5V 500mA)
 P0 → D0(I2C SDA, PWM)
 P1 → D1(PWM, LED)
 P2 → D2(I2C SCL), A1(Analog In)
 P3 → D3, A3(Analog In) [also used for USB+ when USB is in use]
 P4 → D4(PWM), A2(Analog In) [also used for USB- when USB is in use]
 P5 → D5, A0(Analog In)
  P3, P4はUSBデータピンに接続されるのでハイインピー用途以外では実質使えないかな。。
 
回路図
 
購入先
ここで購入しました。¥380。。安すぎる。。きっとクローン品ですが問題なく動きました。
2週間ほどたって忘れた頃にはるばる中国から届きました。  

環境設定方法

ここのとおりやれば動きます。。。がハマった点があるので以下に簡単にまとめます。
Arduino IDEバージョン1.6.8ではエラーがでます。1.6.5では動作確認できました(1.6.7もいけるかもですが試してません)。1.6.11では普通に動作しました!
  • メニュー [ファイル]->[環境設定]内のAdditional Boards Manager URLsに

を追加(すでに他のjsonを入力してる場合はカンマで仕切る)し[OK]をクリック

  • メニュー [ツール]->[ボード]内の[Board Manager]を選択
  • [Board Manager] 内の”Digistump AVR Boards”を選択し[Install]をクリック
  • インストール後メニュー [ツール]->[ボード]内に”Digispark (Default – 16.5mhz)”が追加されるので選択

    ポートや書込装置の設定は必要ない

書き込み方法

Digisparkにはリセットボタンがないため、書込みボタンをクリック後”Plug in device now…”と表記されてからDigisparkをUSBポートに差し込む。問題がなければ書き込みが開始する。
いちいち抜き差し面倒なのでダイソーのスイッチ付きUSBコネクタや延長コードがあると便利です。
I2Cは標準のライブラリWire.hでもTinyWireM.hでも動きました。

追記(16/9/25)

Digisparkで作りました♪

Hey!バス・ストップ

LED 目ん玉 装置製作

昨年のハロウィン用につくったLED目ん玉を紹介します♪

マジックハンドの先に目の形にLEDテープを貼ったザルをつけてグリップを握るとまばたきします。持ち手もつけてグリグリ回すと瞳がキョロキョロします!

構成

部品

  • マイコン Arduino Pro Mini 328 5V 16MHz

     
  • 曲げセンサ 55mm

     
  • フルカラーシリアルLEDテープ  Neopixel

     
  • スライドスイッチ

装置概要

この目ん玉装置はグリップと引き金を有しています。ダイソーのマジックハンドを改造して作りました。

グリップには可変抵抗10kOhmが仕込まれておりグリグリすると目玉の瞳が左右に動きます。
引き金を引くとマジックハンドの手の部分に仕込まれた曲げセンサが曲がって瞬きします。

LED目ん玉

ダイソーのザルにラップをコーティングしてLEDテープNeopixelを目玉型に貼り付けます。

 
Neopixel を68セル使用しています。配線順序は以下の通りです。

動作モード

装置には2つスライドスイッチが仕込まれており、スイッチ状態によって動作モードが以下の表のように変わります。

  • デモモード:LEDがNeopixelライブラリサンプルコードのように光ります
  • 瞳の色変更モード:瞳の色をグリップで変更
  • 調光モード:LEDの輝度をグリップで変更

Arduino IDEコード

以下のNeopixelライブラリを使用しています。
 https://github.com/adafruit/Adafruit_NeoPixel

 

動作

楽しいハロウィンになりました♪

Neopixel LED EyeBall

I made a eye-ball using LED Tape Neopixel. It blink and pupil is moved to the left and right.

Structure

Parts

  • Microcontroller Arduino Pro Mini 328 5v 16MHz

     
  • Bending sensor 55mm

     
  • Full color serial LED tape Neopixel

     
  • Slide switch

Equipment overview

This Eye-ball has Grip and Trigger. When Grip (VR 10kohm) is turned, pupil move to the left and right. When Trigger is pulled, Bend Sensor is bended and blink.

LED Eye Ball

 
Neopixel LED tape is used. LED is 68 unit. LED is fixed to the bowl with double-sided tape and wired in the following order.

Operating mode

Eye-ball has two slide switch for mode select.

  • Demo mode: LED shines in a variety of patterns
  • Color adjustment mode: pupil color change by turning grip
  • Brightness adjustment: LED brightness change by turning grip

Arduino IDE Code

The following Neopixel libraries are used:
 https://github.com/adafruit/Adafruit_NeoPixel

 

Operation

It was a fun Halloween!

led 眼球设备生产

我介绍了去年万圣节的 led 眼球

当我抓住抓地力时, 我把一个带有 led 胶带的夹子贴在魔手前面的眼睛形状上, 从而眨眼。瞳孔是枪口, 它也转动, 并且财产手申请!

配置

部分

  • Microcontroller Arduino Pro Mini 328 5v 16MHz

     
  • Bending sensor 55mm

     
  • Full color serial LED tape Neopixel

     
  • Slide switch

设备概述

这个眼球装置有抓地力和扳机。我是通过改造大索的魔手来做到的。

当可变阻力10kohm 被压到抓地力和枪口时, 眼球的眼睛向左和向右移动。
当你扣动扳机时, 在魔法手的手部分训练的弯曲传感器闪烁。

发光二极管眼球

一个包裹涂在一个颜色的大索, 以附加 led 胶带 ne鸦片 xel 的眼球类型。

 
Neopixel 使用68个细胞。接线顺序如下所示。

工作模式

该设备配备了两个滑动开关, 操作模式会发生变化, 如下表所示, 具体取决于开关状态。

  • 演示模式: led 像 Neopixel 库示例代码一样发光
  • 学生颜色更改模式: 使用手柄更改瞳孔颜色
  • 调光模式: 通过抓地力改变了导光能

arduino ide 代码

使用了以下 Neopixel 库:
 https://github.com/adafruit/Adafruit_NeoPixel

 

工作

这是一个有趣的万圣节!

Https://www.youtube.com/watch?v=7omLuYF4dW8