読者です 読者をやめる 読者になる 読者になる

みかづきブログ その3

3ヶ月つづけてみました。

konashiをつかおう。

Objective-C iOS

今回は konashi をつかってみたいと思います。

konashiとは

konashi(こなし)は,iPhone/iPadのための,フィジカル・コンピューティングツールキットです。iOSから簡単にハードウェアにアクセスする開発環境を提供し,マイコン側のファームウェア開発をすることなくソフトウェアエンジニア・デザイナ・アーティストが手軽にプロトタイピングを行うツールとしてお使いいただけます。

konashi | ユカイ工学 より引用

昔、Arduinoをつかって簡単な電子工作をしていた時期があったのですが、
konashiはiPhoneArduinoといっても過言ではない製品です。
ArduinoとPCを無線で通信する際には、XBeeをつかってましたが、
konashiはbluetoothiPhoneと通信するのではじめから無線です。

兎にも角にもさっそくLEDを点滅させてみました。

簡単な作業メモ

基本的に このサイト を参考にすればなにも困ることはありませんでした。

とりあえず、iPhonebluetoothの通信が成功するとLEDが点滅するコードを書いてみたのでメモしておきます。

#import "MainViewController.h"
#import "Konashi.h"

@interface MainViewController () {
    NSTimer *timer;
    bool ledFlag;
}

@end

@implementation MainViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    [Konashi initialize];
    [Konashi addObserver:self selector:@selector(ready) name:KONASHI_EVENT_READY];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)ready
{
    timer = [NSTimer
             scheduledTimerWithTimeInterval:1
                                     target:self
                                   selector:@selector(blink:)
                                   userInfo:nil
                                    repeats:true];
}

- (void)blink:(NSTimer*)timer
{
    if (ledFlag) {
        [self offLED];
    } else {
        [self onLED];
    }
}

- (void)onLED
{
    if (!ledFlag) {
        [Konashi pinMode:LED2 mode:OUTPUT];
        [Konashi digitalWrite:LED2 value:HIGH];
        ledFlag = true;
    }
}

- (void)offLED
{
    if (ledFlag) {
        [Konashi pinMode:LED2 mode:OUTPUT];
        [Konashi digitalWrite:LED2 value:LOW];
        ledFlag = false;
    }
}

- (IBAction)didTapBtnConnectKonashi:(id)sender {
    [Konashi find];
}

@end


はやく電子工作とiPhoneを繋げたいところですが、今回は以上です。