なんでも作っちゃう、かも。

Arduino/Make/フィジカルコンピューティング/電子工作あたりで活動しています。スタバの空きカップを使ったスタバカップアンプなど製作。最近はもっぱらArduinoと3Dプリンタの自作に興味があります。

ハンズ渋谷、スタバカップアンプワークショップ

Posted by arms22 on 2011年02月27日 0  0

Make: in Hands

Makerの楽園、ハンズ渋谷店でスタバカップアンプのワークショップを行ってきました。26日(土曜日)、27日(日)あわせて14名の方がワークショップに参加、初日は2時間の枠いっぱいに使ったけど、なんとか全員完成し、お持ち帰りしていただけました。
完成したスタバカップアンプはお友達にいっぱい自慢してあげてください!ワークショップへのご参加ありがとうございました!


プロトタイピング!

Posted by arms22 on 2011年02月21日 0  0

IMGP0555 IMGP0545

IMGP0541 IMGP0533

色々プロトタイピング。現在、Arduinoを使った4つのプロジェクトを同時進行している。ハードウェア、ソフトウェアの仕様が固まらないからなかなかユニバーサル基板に移せない。ブレッドボード、ジャンプワイヤーが足りないよ!追加であと2~3枚ブレッドボード、ジャンプワイヤが30~40本必要そうだ。


Dotsduino発売(再開)!

Posted by arms22 on 2011年02月15日 8  0

Dotsduino v1.2

おまたせしました!Dotsduino販売再開です!

スイッチサイエンス/商品詳細 Dotsduinoキット
http://www.switch-science.com/products/detail.php?product_id=510

+galileo7+ - Dotsduino
http://www.galileo-7.com/?pid=26976603

Dotsduino(ドッツデュイーノ)は8x8LEDドットマトリクスを使ったミニ電光掲示板のキットです。DotsduinoはArduino互換機となっていて、Arduinoのソフトウェア環境を使って簡単に、あなた好みのパターンに書き換えることができます。デスクトップのマスコットとして、またイベントの時に目立つバッジとしてお使いください。


Dotsduino v1.2 Dotsduino v1.2


追加の情報





2011/12/14
しばらく売り切れでしたが、スイッチサイエンスに入荷しております。少量です。

2011/2/15
スイッチサイエンスでも販売再開しました。

2011/2/14
お待たせ致しました!Dotsduinoの販売再開です!今回からgalileo7(オリジナルのArduinoシールド等販売)での取り扱いも開始されました。スイッチサイエンスの方も、もう間もなく掲載されると思います。

2011/1/17
ただ今絶賛売り切れ中です。。すみません。。orz
追加で部品と基板を発注しています。
商品入荷までもう暫くおまちください。

Make: in Hands(東急ハンズ渋谷、2/15~2/28)

Posted by arms22 on 2011年02月10日 0  0

make_in_hands_logo.png
告知です。2月15日~28日、東急ハンズ渋谷店にて「Make: in Hands」が開催されます。今回、僕もスタバカップアンプ、電光掲示板、Dotsduinoの展示で参加します。2月26日、27日の2日間はスタバカップアンプキットのワークショップを行います。ワークショップの申し込みはMake:ブログの申し込みフォームから。

以前来日したMake英語版のスタッフが「Maker's Paradise」と称した東急ハンズ。この2月15日から28日まで、東急ハンズ渋谷店にて「Make: in Hands」を開催することになりました。Make: Tokyo Meetingにも出展したことのあるMaker9組による作品展示、Make日本語版に掲載した作品展示、200円のLEDキット(LED+ボタン電池、いわゆるLEDスローウィー)を使ったセルフワークショップを中心に、週末は有料のワークショップも行われます。

■会場:東急ハンズ渋谷店 7Aフロア(東京都渋谷区宇田川町12-18)
■会期:2011年2月15日(火)?2月28日(月)
■営業時間:10:00~20:30




東急ハンズ渋谷店にて「Make: in Hands」開催(2/15~2/28)
Make: in Handsワークショップ情報と申し込みフォーム
『Make: in Hands』開催します!! - スタッフ・ブログ 東急ハンズ渋谷店
東急ハンズとMake:のコラボイベント「Make: in Hands」 - 関心空間

Arduinoで遊ぼう - シリアルSRAMを使ってメモリを拡張する

Posted by arms22 on 2011年02月01日 0  0

シリアルSRAMモジュール 23K256
(写真 スイッチサイエンス - シリアルSRAMモジュール 23K256

8bitマイコンのSRAM(以下メモリ)は数100バイト~数Kバイトと非常に少なく、Arduino UNOに搭載されているATmega328だと2Kバイト、MEGAに搭載されているATmega2560で8Kバイトだ。ちょっとしたアプリケーションならこれで十分だけど、インターネットからのストリーミングデータを扱ったり、大量のデータを使って何か計算したり、ディレイやリバーブを作ったりしたい場合ぜんぜん足りない。そんな時はメモリチップを外付けしてメモリを拡張しよう!

23K256Microchip社のシリアルメモリチップだ。32Kバイトのメモリ空間にシリアルインターフェース(SPI)経由でアクセスできる。一般的な32Kバイトのメモリは15本のアドレスラインと8本のデータラインを繋ぐ必要があるが、23K256はたった4本の信号(MISO/MOSI/SCK/CS)を繋ぐだけで良い。またEEPROMのようなライトサイクルを必要としないので高速に読み書きでき、スタンバイ時の電流は4uAと非常に少なく、電池でバックアップすれば数週間~数ヶ月はデータを保持できる。

23K256の主な特徴
動作電圧:2.7V~3.6V
メモリサイズ:256Kbit(32K x 8 bit)
インターフェース:SPI
速度:最大20MHz

23K256の動作電圧は2.7V~3.6Vで、5V動作のArduino UNOには直接接続できない。5Vトレラント機能を持つバッファICか抵抗分圧による電圧変換が必要になるだろう。今回、Arduino UNOでも使いやすいようにバッファICを搭載したシリアルSRAMモジュールを作った。少量だがスイッチサイエンスで発売している。

スイッチサイエンス - シリアルSRAMモジュール 23K256
http://www.switch-science.com/products/detail.php?product_id=516

3.3V動作のArduino ProやPro Miniで使う場合はマイクロファンでDIPパッケージの23K256を入手すると良い。

マイクロファン - 23K256-DIP8
http://www.microfan.jp/shop/77_104.html


Arduinoに接続する


1 CS <-- 10番(Arduino)
2 SO --> 12番(Arduino)
3 未接続
4 Vss <-- GND(Arduino)
5 SI <-- 11番(Arduino)
6 SCK <-- 13番(Arduino)
7 HOLD <-- 100kΩ抵抗でプルアップ
8 Vcc <-- 3.3V(Arduino)
シリアルSRAMモジュールのピン割り当ては23K256と同じ。HOLD端子は使わないので10K~100K抵抗でプルアップしておく。繰り返すが23K256の動作電圧は2.7V~3.6Vだ。間違っても5Vを印加しないように!


SPISRAMライブラリ


Arduino用にSPI SRAMライブラリを作成した。バイトアクセス、シーケンシャルアクセスに対応。次のURLからライブラリをダウンロードして、Arduinoのライブラリフォルダ(MacOSXの場合"~/Documents/Arduino/libraries"、Windowsの場合"My Documents/Arduino/libraries")にコピーする。

SPI SRAM 23k256 librariy for Arduino
http://code.google.com/p/arms22/downloads/detail?name=SPISRAM-001.zip


サンプルスケッチ


SPI SRAMライブラリはSPIライブラリを使うので、SPIライブラリもインクルードする。メモリの読み込みはread関数、書き込みはwrite関数で行う。若干遅くなるがCの配列のようなアクセスも行える。
#include <SPI.h>
#include <SPISRAM.h>

/*
 SRAM   Arduino
 1 CS   10(CS)
 2 SO   12(MISO)
 3 -    -
 4 Vss  GND
 5 SI   11(MOSI)
 6 SCK  13(SCK)
 7 HOLD <-- 100k ohm -- 3.3V
 8 Vcc  3.3V
 */

SPISRAM myRAM(10); // CS pin
char buffer[128];

void setup()
{
  Serial.begin(9600);

  SPI.begin();
  SPI.setBitOrder(MSBFIRST);
  SPI.setClockDivider(SPI_CLOCK_DIV2);
  SPI.setDataMode(SPI_MODE0);

  Serial.println("Byte write...");
  myRAM.write(0,'H');
  myRAM.write(1,'e');
  myRAM.write(2,'l');
  myRAM.write(3,'l');
  myRAM.write(4,'o');
  myRAM.write(5,'-');

  Serial.println("Byte read...");
  Serial.println(myRAM.read(0));
  Serial.println(myRAM.read(1));
  Serial.println(myRAM.read(2));
  Serial.println(myRAM.read(3));
  Serial.println(myRAM.read(4));
  Serial.println(myRAM.read(5));

  Serial.println("\nByte write...");
  myRAM.write(0x7FFC,'W');
  myRAM.write(0x7FFD,'o');
  myRAM.write(0x7FFE,'r');
  myRAM.write(0x7FFF,'l');
  myRAM.write(0x8000,'d');
  myRAM.write(0x8001,'!');
  myRAM.write(0x8002,'!');

  Serial.println("Byte read...");
  Serial.println(myRAM.read(0x7FFC));
  Serial.println(myRAM.read(0x7FFD));
  Serial.println(myRAM.read(0x7FFE));
  Serial.println(myRAM.read(0x7FFF));
  Serial.println(myRAM.read(0x8000));
  Serial.println(myRAM.read(0x8001));
  Serial.println(myRAM.read(0x8002));

  Serial.println("\nseq write...");
  int addr = 0x7F00;
  myRAM.write(addr, (byte*)"Hello world!!", sizeof("Hello world!!"));

  Serial.println("seq read...");
  myRAM.read(addr, (byte*)buffer, sizeof(buffer));
  Serial.println( buffer );

  Serial.println("\nByte read at operator[]...");
  myRAM[100] = 'H';
  myRAM[101] = 'e';
  myRAM[102] = 'l';
  myRAM[103] = 'l';
  myRAM[104] = 'o';
  Serial.println( myRAM[100] );
  Serial.println( myRAM[101] );
  Serial.println( myRAM[102] );
  Serial.println( myRAM[103] );
  Serial.println( myRAM[104] );

  Serial.println("\nRandom read/write...");
  for(int i=0;i<100;i++){
    int addr = random() & 0x7fff;
    byte val = i;
    Serial.print( addr, HEX );
    Serial.print( " " );
    Serial.print( val, HEX );
    myRAM[addr] = val;
    Serial.print( " " );
    Serial.println( myRAM[addr], HEX );
  }
}

void loop()
{
}







該当の記事は見つかりませんでした。