2020年10月10日土曜日

はじめに

記事はすべて左のメニューからアクセス出来ます。

写真:クリックすると拡大して表示されます。
プログラムソース:左上の view plain  をクリックするとソースのみ表示されます。

ビギナーなので、回路図や説明に誤りがある場合があります。
最近自分の知識不足を痛感しています。
記事の内容を試す場合やファイルをダウンロードして利用する場合は、
自己責任でお願いします。

個人的な趣味のページでメモ的に記録しているだけです。

ブラウザはFirefox で最適に表示されるように確認しています。

2014年3月3日月曜日

サーボを選ぶ

10g前後の手頃なマイクロサーボを調べてみる


Table Header ggTable Header
Table Cell
Table Cell gTable Cell
Table Cell Table Cell Table Cell

2014年2月12日水曜日

シリアル通信:割り込み

mbedが受信した文字をそのまま返す。

#include "mbed.h"
DigitalOut led1(LED1);
DigitalOut led4(LED4);
Serial pc(USBTX, USBRX); // tx:送信, rx:受信
void rxCallback()
{
led4 = !led4;
pc.putc(pc.getc());
}
int main()
{
pc.attach(rxCallback, Serial::RxIrq);
while (1) {
led1 = !led1;
wait(0.5);
}
}
view raw main.c hosted with ❤ by GitHub


2014年1月20日月曜日

PWM の確認

#include "mbed.h"
PwmOut pin21(p21);
Serial pc(USBTX, USBRX); // tx, rx
DigitalIn dIn(p20);
int main()
{
//pc.baud(115200); //921600
//pin21.pulsewidth_us(10); //パルス幅0.08us
//pin21.period_ms(0.1); //Pwm の周期を100[mS]に設定 //pwm繰り返し周期=1ms => 周期=1kHz
pin21.write(0.5f); //デューティサイクル
Timer timer;
timer.start();
int iMicroSec_prev = timer.read_us();
int iState_prev = NULL;
while (1) {
int iState = dIn; //High or Low
if( iState != iState_prev ) {
iState_prev = iState;
int iMicroSec = timer.read_us();
pc.printf( "%d, ", iMicroSec - iMicroSec_prev );
iMicroSec_prev = iMicroSec;
}
}
}
view raw main.cpp hosted with ❤ by GitHub


デューティサイクルの値をいろいろ変えて値を調べてみた。
テスターでpin21の電圧を測っみた。
pin21.write(0.3f) の時 0.994v
pin21.write(0.5f) の時 1.657v
pin21.write(1.0f) の時 3.314v



計測をミリ秒で取得

pin21.period_ms(10);
pin21.pulsewidth_ms(6);


2013年12月25日水曜日

シリアル通信

受信したデータをそのまま送り返す。

#include "mbed.h"
Serial pc(USBTX, USBRX); // tx, rx
int main() {
pc.printf("Hello World!");
while(1) {
pc.putc(pc.getc());
}
}
view raw gistfile1.c hosted with ❤ by GitHub