开发日志 170227

昨天装工具链又浪费了一天,今天也没什么进度,GG。

今天重新温习了一下STM32的基本开发。使用Win+STM32CubeMX+Keil v5,做了LED Blink,按键控制LED,PWM变占空比输出。都是以前做过的东西,今天再回顾一下。

统计了一下动力板的IO,感觉STM32F103RBT6就差不多了,ZET6简直大的丧心病狂,似乎没这个必要。上周末买的SPI-CAN总线模块(MCP2515+TJA1080)也到了,明天可以开始搞树莓派驱动了。

不过想到要从GitHub上Clone工具链和内核源码,头瞬间又大了一圈

再想想反正还要再看一遍CAN总线协议,边拖边看吧

继续阅读“开发日志 170227”

开发日志 170224

因为折腾电脑,进度停滞了好几天。今天初步定下了主控板和外设。

主控板就用树梅派3B,不要屏幕。

UART分给GPS-GPRS复合模块,模块使用安信可A7,定位速度1次/s,我觉得这个速度有点扣脚……实在不行就换个专用GPS模块,然后USB-3G吧(反正驱动是内核里现成的)。
ISP分给CAN模块,独占(实时性要求),控制芯片MCP2515,驱动芯片TJA1050,先用成品模块。
IIC目前只有MPU9250姿态传感器在用。RTC芯片感觉没啥用,后期有必要再挂吧。
WiFi板载,Blink-LED板载。摄像头就用USB的好了,反正现在大多都符合UVC规范,我手上也有。
超声波测距和测深目前应该要占用掉四个GPIO。
485总线先搁置,如有必要,直接上一个USB-TTL-485好了。
需要注意的是,USB-TTL只能用一个,否则ttyUSB0和ttyUSB1可能会混淆。

另外,把小船的电机拆下来看了看,没写型号参数,估计是杂牌的。杨老师简单测量了一下,12V空转0.7A左右,堵转1.3-1.5A左右,说12V应该问题不大。

等下周CAN模块来了,先把CAN总线开起来吧。

开发日志 170216

今天还在做那个遥控器,UI基本上弄完了。昨天做到按住按键后连续触发事件,今天编写了具体的事件处理逻辑,比如引擎功率+1,顺手更新一下UI。目前有个问题在于,表示方向的SeekBar能拖动,但拖动了并没有用,再次点击转向会被打回去。已知的解决方案是继承SeekBar然后重写掉onStartTrackingTouch、onStopTrackingTouch和onProgressChanged这三个方法,不过今天就先不折腾了。

UDP包也能发送,就差填好具体发送的内容了。明天做这个。

今天踩到了一个坑,是关于Integer, int, Double, double的,虽然Double是double的内建引用类型,但不能把它简单理解成一个“指针”,因为它没有提供修改内容的方法。

继续阅读“开发日志 170216”

开发日志 170215

第二天写开发日志,嗯……

今天还是在做那个智能小船的控制器。昨天做完了消息队列,今天处理了长按按钮连续触发事件的问题。目前长按已经可以连续触发事件了,具体消息处理还没有写。

连续触发主要是用OnTouchListener来监听MotionEvent.ACTION_DOWN和MotionEvent.ACTION_UP事件。当监听到按钮按下时启动一个新线程,持续作出响应,然后当监听到抬起事件后把这个线程结束掉。

线程的创建和结束可以使用Thread类来处理,不过使用ScheduledExecutorService也是个不错的方案。

这是我的主要参考链接:http://blog.csdn.net/u010983881/article/details/49927411

继续阅读“开发日志 170215”

开发日志 170214

恩,第一次写开发日志。

安卓的项目,毕设的一部分,智能小船遥控器。目前两边已经可以ping通了,延迟计算也可以了,消息队列也实现了。目前一个没解决的问题是:如何优雅的用int变量标识消息类型。另外,ping测试的代码有点简单。

还有就是一个数据校验的问题。安全性应该是不太需要担心,因为WiFI有WPA2保护了,因此我没用加密。不过信号很差的时候,可能会GG,因此可能需要进行完整性校验?

zhc说不需要,因为WPA保证了物理层传输的完整性。此事暂且留待以后解决(实在不行就在最后加上1Byte的累加和校验)。

继续阅读“开发日志 170214”