OpenHarmony开源社区
直播中

jf_25674040

2年用户 109经验值
擅长:可编程逻辑 MEMS/传感技术 接口/总线/驱动 控制/MCU
私信 关注
[经验]

【九联科技Unionpi Tiger开发板试用体验】ros noetic gpio控制TC214B 驱动 6100空心杯电机

1.硬件连接

image.png
image.png

2. 部分软件代码

void Tc214bGpio::updateDiagnostics()
{
  int max_count = output_hz_;
  diag_count_++;
  if (diag_count_ >= max_count)
  {
    diag_count_ = 0;
    diagnostic_updater_.update();
  }
}

void Tc214bGpio::update(const ros::TimerEvent& e)
{
  updateDiagnostics();
}

void Tc214bGpio::tc214b_callbcak(const tc214b::Tc214bCmdConstPtr& msg)
{
  switch (msg->cmd) {
    case tc214b::Tc214bCmd::TC214B_WAIT:
      um_gpio_->UM_GPIO_SetValue(UM_GPIO_02, UM_GPIO_LOW_LEVE);
      um_gpio_->UM_GPIO_SetValue(UM_GPIO_03, UM_GPIO_LOW_LEVE);
      break;
    case tc214b::Tc214bCmd::TC214B_BACK:
      um_gpio_->UM_GPIO_SetValue(UM_GPIO_02, UM_GPIO_LOW_LEVE);
      um_gpio_->UM_GPIO_SetValue(UM_GPIO_03, UM_GPIO_HIGH_LEVE);
      break;
    case tc214b::Tc214bCmd::TC214B_BRAKE:
      um_gpio_->UM_GPIO_SetValue(UM_GPIO_02, UM_GPIO_HIGH_LEVE);
      um_gpio_->UM_GPIO_SetValue(UM_GPIO_03, UM_GPIO_HIGH_LEVE);
      break;
    case tc214b::Tc214bCmd::TC214B_HEAD:
      um_gpio_->UM_GPIO_SetValue(UM_GPIO_02, UM_GPIO_HIGH_LEVE);
      um_gpio_->UM_GPIO_SetValue(UM_GPIO_03, UM_GPIO_LOW_LEVE);
      break;
    default:
      ROS_WARN("cmd error");
      break;
  }
  ROS_INFO("cmd: %d" , msg->cmd);
}

3. 操作方式

image.png

更多回帖

发帖
×
20
完善资料,
赚取积分