組込みとともに -12ページ目

イヤホン一体型ウォークマン購入

本日イヤホン一体のウォークマンを購入しました^^


↓パッケージ
組込みとともに-SN3E0764.JPG

↓充電器にセットした状態
組込みとともに-SN3E0767.JPG

↓HDDコンポとセットで
組込みとともに-SN3E0768.JPG

ただし、このウォークマンNWD-W202はちょっとした落とし穴がありましたので、同じように困った方のために解決策を残しておきます。


1.NWD-W202はATRACの著作権保護に対応していない

 そのためmoraで購入した曲や着うたはサポート対象外

2.NETJUKEで対応していない機種がある

 私はNAS-D50HDというNETJUKEを使用しているのですが、曲の転送時に「ウォークマンが接続されていません」と転送を行えません。


解決方法は簡単で次の2つを行えばOKです。


1.NETJUKEでの録音はmp3で!

 録音設定をmp3に変更しておきます。オプションで録音形式を変更できます。

2.転送方法をUSBストレージに!

 オプション→転送→USBストレージ でOKです!


簡単でしょ。

NETJUKEユーザーはここで一つ疑問がわくと思います。

Q「今まで取ためたATRACファイルをいかせないの?」

正直答えは、「わかりません」

基本的に著作権保護で保存されていると思われるので変換も出来ないと思います。それとNAS-D50HDのそとへそのファイルを送り出す方法すら分かりません。

ということで、「改めてmp3で録音する」がもっとも手軽な方法だと思います。


ご参考まで


それにしてもこのウォークマン画面がありませんが、操作方法に工夫がされていて面白いユーザーインターフェースを備えています。お察しの通り簡単な「音声ガイド」が使われていましたがそれだけではなくZAPPINという仕組みを組み込んで使いやすさを向上しています。はじめは戸惑いますが、すぐに慣れると思いますよ^^


関連機器↓

SONY ウォークマン Wシリーズ ヘッドホン一体型 2GB ホワイト NWD-W202/W
¥8,680
Amazon.co.jp

SONY 80GB ハードディスクコンポ NAS-D50HD -W色、S色
¥39,900
家電21

Twiame 5歩目~Twitter APIテスト~

この日記はTwiame 4歩目~基板作成~ の続きです。


今回は、Twitter APIへSocketベースで接続するテストプログラムを作成しました。

Socketベースで接続する意味は、AVRでは高度なライブラリーを利用できないためSocket通信を行います。


APIといってもTwiame用に使用するところだけがターゲットなんでupdateしか使用しません。

updateはPOSTメソッドを使用します。

認証が必要ですのアカウントとパスワードも送ります。

最後にstatus=の後にHTMLエンコードをかけたメッセージをつなげて送り込みます。


↓起動画面


組込みとともに-起動画面


↓送信完了
組込みとともに-送信後

↓つぶやきOK
組込みとともに-成功

ソース↓↓

---------

Form1.cs

---------


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using System.IO;

namespace REST_test
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string hostName = "twitter.com";
            int httpPort = 80;
            string parm = "status=" + Uri.EscapeUriString(textBox1.Text);
            byte[] data = Encoding.ASCII.GetBytes(parm);

            try
            {
                // 接続
                TcpClient tcp = new TcpClient(hostName, httpPort);
                toolStripStatusLabel1.Text = ( "サーバーと接続しました。" );
                NetworkStream ns = tcp.GetStream();

                string sendMsg =  "POST /statuses/update.xml HTTP/1.1\r\n"
                                + "HOST: " + hostName + "\r\n"
                                + "ContentType: application/x-www-form-urlencoded\r\n"
                                + "Authorization: Basic " 
                                + Convert.ToBase64String(
                                     Encoding.UTF8.GetBytes("userid:pass")) 
                                + "\r\n" // ユーザーIDとパスワードをセットします
                                + "Content-Length: " + data.Length.ToString() + "\r\n"
                                + "\r\n"
                                + parm;
                byte[] sendBytes = Encoding.UTF8.GetBytes(sendMsg);

                // 送信(update)
                ns.Write(sendBytes, 0, sendBytes.Length);

                // 応答受信
                MemoryStream ms = new MemoryStream();
                byte[] resBytes = new byte[256];
                int resSize;
                do
                {
                    resSize = ns.Read(resBytes, 0, resBytes.Length);
                    if (resSize == 0)
                    {
                        toolStripStatusLabel1.Text = "サーバーが切断しました。";
                        return;
                    }
                    ms.Write(resBytes, 0, resSize);
                } while (ns.DataAvailable);
                string resMsg = Encoding.UTF8.GetString(ms.ToArray());
                ms.Close();
                toolStripStatusLabel1.Text = resMsg.Remove(resMsg.IndexOf("\r\n",0));

                tcp.Close();
                //toolStripStatusLabel1.Text = "切断しました。";
            }
            catch (Exception ex)
            {
                toolStripStatusLabel1.Text = ex.Message;
            }

        }
    }
}

---------

尚、リソースの乏しいAVRへ移植する場合はエンコードしたものを予め用意してAVRのFlashやEEPROMへ配置してそれを使うよよいと思います^^


Twiame 4歩目~基板作成~


この日記は『Twiame (Qtouch 3歩目~ソフトウェアとりあえず~) 』の続きです。

上記日記で紹介した回路を作成しました。


↓赤いのがWIZNETのイーサモジュールです。

(写真が90度回転しているのはご愛嬌ということで^^;

組込みとともに-090908_2022~01.jpg


こちらはハンダ面です。

幅50mm(センサ幅と同じ)以下にしたかったので基板の両面にモジュールを搭載する形としました。

こちらはUSB-232C変換モジュールです(電源供給元でもあります)
組込みとともに-090908_2023~01.jpg

イーサモジュール(WIZ812MJ)もUSBモジュールもピン数がありますが実際に使用するピンは少量なので配線はピン数の割には少ないです。


センサーは以前の日記 で紹介したものを使用します。


問題はケースです。雨の中にさらすので防滴性が必要です。

週末に百均で容器を物色しよう。


つづく。