チーム1846
課題名
ラジコンカー
研究者名
藤田 智哉
櫨 翔佑
中山 和也
野木 拓夢
概要
キーボード入力の内容に合わせて動作を行う四輪車を作成した。
コマンドの種類は二種類:①「a」で前進
②「s」で停止
③「d」で後退
ソースコード
#include <m8c.h>
#include "PSoCAPI.h"
void main(void)
{
// M8C_EnableGInt ; // Uncomment this line to enable Global Interrupts // Insert your main routine code here.char * strPtr; // Parameter pointer char *strPtr; UART_CmdReset(); UART_IntCntl(UART_ENABLE_RX_INT); Counter8_WritePeriod(155); Counter8_WriteCompareValue(77); Counter8_Start(); UART_Start(UART_PARITY_NONE); M8C_EnableGInt ; PRT1DR=0b00000000; UART_CPutString("\r\nWelcome \r\n"); while(1) { if(UART_bCmdCheck()) { if(strPtr = UART_szGetParam()) { UART_CPutString("\r\nCommand =>"); UART_PutString(strPtr); // Print out command UART_CPutString("\r\n"); if(*strPtr=='a') { //Start PRT1DR=0b00000010; } else if(*strPtr=='s') { //Stop PRT1DR=0b00000011; } else if(*strPtr=='d') { //Stop PRT1DR=0b00000001; } } UART_CmdReset(); // Reset command buffer } }
}
配線
回路図
考察
PSoCの電力でダブルギアボックスを動かすことはできないため、モータードライバを用いることで外部から電力を供給し目的を実現させた。 モータードライバは、対応した端子の列にモーターや電池、動作を制御するための出力をつなぐ必要がある。 動作を制御する出力は、キーボードで入力された内容に応じて、port10とport11の値を変更することで、対応させる。 その内容が、前進させるときにはport10に0をport11には1を、停止させるときにはport10とport11に1を、後退させるときにはport10に1を
port11には0を与えることで、その値がモータードライバの動作を制御する部位に入力され希望の動作を行わせることを可能にした。
本来ラジコンは前後に進むだけでなく左右にも曲がれる必要があるが、モータードライバの仕様として3つの処理しか行う事が出来ないので
今回のような1つのモータードライバでは前進、後退、停止の3つの処理が限界であると考えた。
二つのモータードライバで左右のモーターを制御すれば、片方のモーターのみを動かしたりすることで左折や右折を実現することが可能であると
考えられる。
今回は有線での処理を実現したが、シリアルポートのみならば赤外線通信などの無線通信を用いて取り除くことが可能であると感じた。
参考:チーム1758
- 最終更新:2018-10-23 16:09:44