REDBearのBLENanoの導入手法

システムのバージョン:mac(OS X Yosemite 10.10.5)

ビデオ

arduino1.65(検証済み)を使ってBLENanoに書き込みの手法をメモしていただきます。

1、ここのファイルをダウンロードする:
http://github.com/RedBearLab/nRF51822-Arduino

2、ブートローダをインストール方法(必ず):注意
例:cp -Xv desktop/bootloader.hex /Volumes/MBED/

3、arduino の Boards Manager で ”RedBearLab nRF51822 Boards(version1.0.0)” を追加する

4、最後はuploadすれば完成だ!

ちなみに, mbedの書き込みも(”cp -Xv desktop/bootloader.hex /Volumes/MBED/“)こういう手法でできます

Apple製品でApp Storeに接続できない時の対策

研究室に長く使わないipodを使いたい時、以外にApple Storeは入れない。wifiのDNSまで修正して入れなっかた!
すると、思いつきにusbケーブルで自分のパソコンとつなげる状態で、apple storeに入ってみると入った!なんと簡単だったんかい!

思いつき

airSkate: oculusと三軸加速度で作ったゲームIMG_1445

2015-11-26

hoverCarのサンプルを勉強してて思いついた。三軸加速度センサーの偏るを読み取って、airSkateをコントロールして、oculusをかぶって、まるでその場にいるみたいに遊びました。

OF側でLEDをコントロール

Arduino

int data;
void setup() {
Serial.begin(9600);
pinMode(13,OUTPUT);

}

void loop() {
if(Serial.available())
{
data = Serial.read();
if(data == ‘A’){
digitalWrite(13,HIGH);
}else{
digitalWrite(13,LOW);
}
}

}

 

Openframeworks

ofApp.h

#pragma once

#include “ofMain.h”

class ofApp : public ofBaseApp{

public:

void setup();

void update();

void draw();

void mousePressed(int x, int y, int button);

ofSerial serial;

bool lightState;

};

 

ofApp.cpp

#include “ofApp.h”

//————————————————————–

void ofApp::setup(){

serial.setup( 0, 9600 );

}

//————————————————————–

void ofApp::update(){

serial.available();

serial.readByte();

}

//————————————————————–

void ofApp::draw(){

ofSetColor(40, 600, 20);

ofCircle(ofGetWidth()/2, ofGetHeight()/2, 10);

}

//————————————————————–

void ofApp::mousePressed(int x, int y, int button){

//作った円の中でクリックすると、ledの状態(ステータス)が変わる

if(x > (ofGetWidth()/2-10)&&x < (ofGetWidth()/2+10)&&(y>ofGetHeight()/2-10)&&y<(ofGetHeight()/2+10)){

if(lightState == false)

{

serial.writeByte(‘A’);

lightState = true;

}else{

serial.writeByte(‘a’);

lightState = false;

}

}

}

 

極シンプルな電子時計の作り方(プログラム編)

IMG_1099

ビデオ

準備:

arduino uno         一つ

Adafruit I2C通信の7セグメント4桁ディスプレイ (赤色)  一つ

導線      若干

タクトスイッチ 二つ

作り方:

プログラミングの方:

// pin CLK->A5 DAT->A4 GND VCC+
#include <Wire.h>
#include “Adafruit_LEDBackpack.h”
#include “Adafruit_GFX.h”
//————metro timer——————————–

struct _timer {
int min;
int sec;
int minx10_set;
int min_set;
int secx10_set;
int sec_set;
}
timer;

class _metro
{
public:
unsigned long long timestamp;
unsigned int count;
boolean flg_pause;
_metro(unsigned int _count) {
count = _count;
timestamp = millis();
flg_pause = true;
}
void set(unsigned int _count) {
count = _count;
timestamp = millis();
}
boolean check() {
if ( flg_pause ) {
return false;
}
if ( millis() – timestamp >= count ) {
timestamp = millis();
return true;
}
else {
return false;
}
}
void pause() {
flg_pause = true;
}
void start() {
flg_pause = false;
}
}
metro(1000);
//————metro timer——————————–

Adafruit_7segment matrix = Adafruit_7segment();

int decHours;
int hours;
int decMinutes;
int minutes;

//数える用
int seconds = 0;
int i = 0; // minutes
int j = 0; //hours

void setup() {
metro.set(1000);
metro.start();
Serial.begin(9600);
Serial.println(“7 Segment Backpack Test”);
matrix.begin(0x70);

//——–pause switch—————————–
pinMode(7, INPUT);
//——–start switch—————————–
pinMode(8, INPUT);

}

void loop() {
//————delay clock——————-
/* if (metro.check() == true) {
for (int j = 0; j < 24 ; j++)
{

for (int i = 0; i < 60; i++)
{

decHours = (j / 10) % 10;
hours = j % 10;
decMinutes = (i / 10) % 10;
minutes = i % 10;

matrix.drawColon(true);
matrix.writeDigitNum(0, decHours, false);
matrix.writeDigitNum(1, hours, false);
matrix.writeDigitNum(3, decMinutes, false);
matrix.writeDigitNum(4, minutes, false);
matrix.writeDisplay();
delay(100);
}
}
}*/
//——————-delay clock———————————-
//——————–metro control clock————————-
switchPauseControl();
switchStartControl();
if (metro.check() == true) {
seconds++;
if (seconds > 59) {
seconds = 0;
i++;
if (i > 59)
{
i = 0;
j++;
if (j > 23)
{
j = 0;
}
}
}
decHours = (j / 10) % 10;
hours = j % 10;
decMinutes = (i / 10) % 10;
minutes = i % 10;
/*
Serial.print(decHours);
Serial.print(hours);
Serial.print(“:”);
Serial.print(decMinutes);
Serial.print(minutes);
Serial.print(“:”);
Serial.print(seconds);
Serial.println();
*/
if (seconds % 2 == 0)
{
matrix.drawColon(false);
}
else {
matrix.drawColon(true);
}
matrix.writeDigitNum(0, decHours, false);
matrix.writeDigitNum(1, hours, false);
matrix.writeDigitNum(3, decMinutes, false);
matrix.writeDigitNum(4, minutes, false);
matrix.writeDisplay();
}
//——————–metro control clock———————
}
void switchPauseControl()
{
//スイッチを押すと一時停止になる
if (digitalRead(7) == HIGH)
{
metro.pause();
seconds++;
if (seconds > 59) {
seconds = 0;
i++;
if (i > 59)
{
i = 0;
j++;
if (j > 23)
{
j = 0;
}
}
}

decMinutes = (i / 10) % 10;
minutes = i % 10;
decHours = (j / 10) % 10;
hours = j % 10;
matrix.drawColon(false);
matrix.writeDigitNum(0, decHours, false);
matrix.writeDigitNum(1, hours, false);
matrix.writeDigitNum(3, decMinutes, false);
matrix.writeDigitNum(4, minutes, false);
matrix.writeDisplay();

}
}

void switchStartControl()
{
if (digitalRead(8) == HIGH)
{
metro.set(1000);
metro.start();
matrix.drawColon(true);
matrix.writeDigitNum(0, decHours, false);
matrix.writeDigitNum(1, hours, false);
matrix.writeDigitNum(3, decMinutes, false);
matrix.writeDigitNum(4, minutes, false);
matrix.writeDisplay();
seconds = 0;
}
}

ページ立ち上がったばかりで、ちょろちょろ更新します。