チーム132B
課題名
小型扇風機
研究者名
2-15-12 甲斐 悠奨
2-15-22 工藤 達也
概要
キーボードで出力を操作できる扇風機を作成した。
風の強さは2段階で、それぞれ逆回転にも対応している。
現在の状態はLCDに表示される。
風力の操作は以下の通りである。
S:弱風(正回転)
D:強風(正回転)
F:弱風(逆回転)
G:強風(逆回転)
A:停止
使用器具
・PSoC評価基盤 1個
・PSoC MiniProg 1個
・モーター 1個
・プロペラ 1個
・ジャンパ線 10本
・モータドライバ 1個
・単3乾電池 3本
・シリアルポート通信ケーブル 1本
ソースコード
#include <m8c.h> // part specific constants and macros
#include "PSoCAPI.h" // PSoC API definitions for all User Modules
int PW = 125;
void main(void)
{
// M8C_EnableGInt ; // Uncomment this line to enable Global Interrupts // Insert your main routine code here. char*strPtr; UART_CmdReset(); UART_IntCntl(UART_ENABLE_RX_INT); Counter8_WritePeriod(155); Counter8_WriteCompareValue(77); Counter8_Start(); PWM8_1_Start(); PWM8_2_Start(); PGA_Start(PGA_HIGHPOWER); UART_Start(UART_PARITY_NONE); M8C_EnableGInt; UART_CPutString("\r\nWelcome to PSoC UART program. \r\n"); while(1) { if(UART_bCmdCheck()) { if(strPtr = UART_szGetParam()) { UART_CPutString("Found valid command\r\nCommand =>"); UART_PutString(strPtr); UART_CPutString("<\r\nParamaters:\r\n"); if(*strPtr == 'a') { // 停止 PWM8_1_WritePulseWidth(0); PWM8_2_WritePulseWidth(0); } else if(*strPtr == 's'){ // 正回転(弱風) PWM8_1_WritePulseWidth(120); PWM8_2_WritePulseWidth(0); } else if(*strPtr == 'd') { // 正回転(強風) PWM8_1_WritePulseWidth(249); PWM8_2_WritePulseWidth(0); } else if(*strPtr == 'f') { // 逆回転(弱風) PWM8_1_WritePulseWidth(0); PWM8_2_WritePulseWidth(120); } else if(*strPtr == 'g') { // 逆回転(強風) PWM8_1_WritePulseWidth(0); PWM8_2_WritePulseWidth(249); } } UART_CmdReset(); } }
}
考察
授業中に学んだラボ hello_world、motor、pwm_uart_2を組み合わせ制作した。
モータドライバを使って電池からも電源をもらうことによってより大きなものをモータで動かせるようにした。
過去の作品を参考にし、赤外線を使用してリモコンを作成することを試みたが、文字データを送受信することが困難だったため実装することができなかった。
また、ボタン入力で回転数や回転の向きを変える方法もあったが、ボタンの数が少なく実装しなかった。
- 最終更新:2013-06-11 16:52:08