KittenBot评测之树莓派篇-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4480|回复: 0

KittenBot评测之树莓派篇

[复制链接]
发表于 2017-7-12 02:50 | 显示全部楼层 |阅读模式
前言
KittenBot 的结构设计为方便接插到树莓派上,以便利用树莓派强大的计算能力来弥补 328p 的不足。通过串口与树莓派通信。这里我们就来测试一下吧。

正文
0. 恢复固件
首先使用 KittenBlock 恢复固件,参考前文,这里从略。

1. 树莓派准备
用什么版本都没什么影响,只要接口能正确插上就可以。我用的是 2B。使用官方的 Pixel 系统,系统也没什么关系,我们测试只用了最基本的 bash 功能以及 httpd 网页服务,基本上所有的系统都支持。
安装 web 服务,配置好 cgi 等环境,这个大家根据自己的系统因地制宜就可以了。

2. 测试串口通信
将 kittenBot 和树莓派接插好,H 桥一接上 LED 后 ssh 登录树莓派,在控制台下测试串口功能,如下语句先根据 kittenBot 的串口配置信息进行设置波特率、校验位等参数。第二三四行就是发送串口命令了。
piSerialTest.jpg

测试情况看:
A 绿灯亮:
serial1.jpg
B 红灯亮(虽然命令参数与上面一致但接线反过来了,所以就亮了不一样的灯):
serial2.jpg
B 绿灯亮:
serial3.jpg

3. 呼吸灯
上面测试完了,那么继续我们的呼吸灯吧,为什么这么偏爱呼吸灯?有呼吸就有生命嘛
bash 脚本参考:
[mw_shl_code=bash,true]#!/bin/bash
# breathing.sh
# Created by seesea @ 2017-07-11
# 测试树莓派与 kittenBot 的串口通信的呼吸灯实验

# 设置串口参数
stty -F /dev/ttyAMA0 ispeed 115200 ospeed 115200 cs8 -parenb -cstopb

# 渐亮渐暗的步进
step=5

# kittenBot 板的 H 桥端口
HPort=A

serialToKitten()
{
    cmd=$1
    para=$2

    echo "$1 $para" > /dev/ttyAMA0
}
# 呼吸灯循环
while true
do
    for i in `seq 1 $step 255`
    do
        echo $i
        serialToKitten M200 $HPort$i
    done

    for i in `seq 255 -$step 1`
    do
        echo $i
        serialToKitten M200 $HPort$i
    done
done[/mw_shl_code]

视频:


4. 页面控制全彩 LED
树莓派来当服务器给 kittenBot 增加远程控制的能力!
网页代码参考:
[mw_shl_code=html,true]<!--
colorLed.html
Created by seesea @ 2017-07-11
树莓派与 kittenBot 的全彩 LED 远程控制
-->

<!DOCTYPE>

<style type="text/css">
html,body {
    margin:0;
    height:100%;
}
</style>

<html>
<head>
<script>

    function setColor(r, g, b)
    {
        var request = new XMLHttpRequest();
        request.open("GET", "/cgi-bin/setColor.sh?r=" + r + "&g=" + g + "&b=" + b);
        request.send(null);
    }

    function createTable()
    {
        var table = document.createElement("table");
        var tbody = document.createElement("tbody");
        for (var r = 0; r <= 0xFF; r += 0x33)
        {
            for (var g = 0; g <= 0xFF; g += 0x33)
            {
                var row = document.createElement("tr");

                for (var b = 0; b <= 0xFF; b += 0x33)
                {
                    var col = document.createElement("td");
                    col.style.background = "rgb(" + r + "," + g + "," + b + ")";
                    col.onmouseover = new Function("setColor(" + r + "," + g + "," + b + ")");

                    row.appendChild(col);
                }

                tbody.appendChild(row);
            }
        }

        table.appendChild(tbody);
        table.height = "100%";
        table.width  = "100%";
        document.getElementById("divTable").appendChild(table);
    }
</script>
</head>

<body>
    <div id="divTable" style="border:3px solid black;position:absolute; left:0; top:0; width:100%; height:100%" />
    <script>
        createTable();
    </script>
</body>
<html>[/mw_shl_code]

cgi 代码参考:
[mw_shl_code=bash,true]#!/bin/bash
# setColor.sh
# Created by seesea @ 2017-07-11
# 树莓派与 kittenBot 的全彩 LED 远程控制的 CGI 脚本
# 仅实验使用,脚本中使用 eval 来执行远程发来的参数是危险的
# 使用字符串截取操作更安全但更麻烦,作为实验就不讲究了

echo -e "Content-type: text/html\n\n"

# 设置串口参数
stty -F /dev/ttyAMA0 ispeed 115200 ospeed 115200 cs8 -parenb -cstopb

# kittenBot 板的 H 桥端口
RPort=A
GPort=B
BPort=C

# $QUERY_STRING 的格式:r=xx&g=xx&b=xx
eval "${QUERY_STRING//&/;}"

serialToKitten()
{
    cmd=$1
    para=$2

    echo "$1 $para" > /dev/ttyAMA0
    echo "$1 $para" >> /tmp/a.txt
}

serialToKitten M200 $RPort$r
serialToKitten M200 $GPort$g
serialToKitten M200 $BPort$b[/mw_shl_code]

注意:由于 apache2 不允许使用 root 权限运行,从而 cgi 程序对串口的写入操作受到限制,简单处理就是把串口文件设置成 777 权限,咱就是个实验嘛,不用太注意安全方面。
参考语句:
[mw_shl_code=bash,true]chmod 777 /dev/ttyAMA0
[/mw_shl_code]

截图:
接线:
wire.jpg
红:
red.jpg
黄:
yellow.jpg
蓝:
blue.jpg
绿:
green.jpg
白:
white.jpg

视频:


总结
1. kittenBot 的接口充分适应树莓派的扩展,接上后无需处理电源,使用方便
2. 配套固件与树莓派使用串口通信,简单易用,容易写代码操作
3. 使用时发现 kittenBot 与 hdmi 接口接触就会发生短路,官方如果后续有改进建议处理一下。用户则简单拿个透明胶做绝缘即可。我实验的时候更是拿一张纸垫上就将就过了
4. 虽然说 5 6 9 10 引脚接到一号 H 桥上,但如果能引出的话,偶尔有用到比较多引脚的时候也会更自由一些

后记
今天加班加点终于完成了,拖延症犯了一阵,放松一段时间总算是又勤快了。写完帖子,也算是放下包袱了。kittenBot 的评测到此告一段落,谢谢小喵科技的板子,总体来说感觉很不错,主流操作系统的PC软件,主流移动平台的app,固件,硬件质量及配套模块都很全,小喵科技的技术真是没得说。嗯,不得不说官方文档还不够全的问题,这也是所有的技术人员不爱写文档的通病哈,估计也是太忙没时间,经常大半夜好多次官方技术人员居然都在线及时回复我遇到的问题,惊讶于大家的拼劲,也感叹创业的辛苦啊。

参考文档
1. 恢复固件:http://www.arduino.cn/thread-46208-1-1.html
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-9-20 16:37 , Processed in 0.075280 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表