企业网站建设成功的要素—Google技术工种程师:教你用树莓派

导语:在Google,倘若你觉得本身不能不从零一开始写某项功效,只是你需要没有找寻相对性的专用型专用工具罢了。在开源系统系统软件住宅小区也是如此

雷锋网(手机微信微信公众号:雷锋网)按:原文中写作者赵智沉,Google手机上手机软件工程项目新项目师。
[标识:內容1]
来源于于频道:。雷锋网获授权转截。

从买第一个Arduino套服一开始,我碰触机器设备人要有好多年了,但直到最近才一开始干了整的课题研究科学研究。期限内有二项技术专业专业技能为打过开过新世界的大门口口:Python和Linux。他们背后,是强悍的开源系统系统软件住宅小区。掌握了这二种专用型专用工具的专用型专用工具(元专用型专用工具),你感觉在网络上遍地是趁手的武器装备。

上周在公司内部程序撰写学习培训学习培训时,有一句话深得我心:大伙儿是手机上手机软件工程项目新项目师,其实不是程序员。大伙儿的工作中中其实不是写程序,仅仅合理运用专用型专用工具解决难点。在Google,倘若你觉得本身不能不从零一开始写某项功效,只是你需要没有找寻相对性的专用型专用工具罢了。在开源系统系统软件住宅小区也是如此。

它是一个遥控小小汽车,依据红外线线遥控或无线网络互联网电脑上电脑键盘可以控制小小汽车的行动和拍攝头的角度。TensorFlow及时检验拍攝头拍摄到的页面,视頻视频语音载入它辨别出的物品。所有编号都放进我的上。

这一想法其实不就是我的原创,来源于于Lukas Biewald去年九月写的。重要一一部分,TensorFlow辨别拍攝头图像并视頻视频语音输出,便是我厂人力资源智能化化工厂程新项目师Pete Warden的。和原blog不一样的是,制作整个过程中我加上了Arduino作为机械设备机器设备总控,也把握了Arduino和树莓派对话的方法(串口通信)。期限内选用了许多合理的技术专业专业技能和专用型专用工具,在这里里里整理一下,热情热烈欢迎同喜好们留言板留言板留言板留言沟通交流沟通交流!

所有课题研究科学研究在命令行当然自然环境开展,没有图形网页页面。倘若你没懂Linux系统软件手机软件,可能一些费力。但是,你都一开始玩机器设备人了,怎样能不学Linux呢?我是依据《》根据通过自学Linux的,以后又尝试,终于解决在Windows系统软件手机软件当然自然环境长大了了导致的对命令行的排斥心理状态情况。确信我,解决这一阻拦,你将打开新世界的大门口口。何况,用命令行工作中中才看上去更酷更极客,其实不是吗?除开Linux,你需要要懂C++和Python来开展这一课题研究科学研究。

另外,文中重要详尽详细介绍电子器件器件一一部分,不讲机械设备机器设备温暖工。如你看看见到的,这一小小汽车丑破了我的审美观观社会道德道德底线,我没滥情思外出观上。期待以后做一些兼具造型艺术艺术美学和功效的电子器件器件课题研究科学研究,或许会和设计方案计划方案师小伙子伴们合作!

一、树莓派

最开始,你务必一个全新升级款的,安装好定制的Linux系统软件手机软件,连上无线网络互联网网。你需要务必一个,并在树莓派中。你可以以以将树莓派依据HDMI连接到显示信息信息内容器,但更方便快捷的做法是ssh远程控制操纵登录,那般你也就不用在调整整个过程中持续地把树莓派自小轿车里拔线、取下、连显示信息屏、接着安装回小小汽车了,你可以以以及时远程控制操纵修改小小汽车的关键。甚至,我的Arduino程序也是依据树莓派编写、递交、通信的,因而也免去了电脑上上连接Arduino的步骤,让一切更畅顺无缝拼接拼凑。

树莓派的Linux系统软件手机软件可用图形桌面上上,你可以以令其用RealVNC(用于Windows)或TightVNC(用于Mac)远程控制操纵登录图形桌面上上。(这一课题研究科学研究里无需)

二、TensorFlow

它是课题研究科学研究的重要一一部分,反倒具体实际操作起来十分简易,因为一切都是写清楚了,墨守陈规便可以了。运行编号在。

注意:这儿用了训练好的实体线实体模型,即TensorFlow中事前给定了训练好的关键主要参数集,训练相片库是。也就是说,小小汽车辨别出的物品仅有是相片库里包含的labels,也没有“学习培训学习培训”的整个过程。

三、小小汽车

小小汽车控制模块(robot chassis)很多,选你钟爱的一款。标准的控制模块包括一个基座,2组电动机+车轱辘子,一个万向轮,一个电池充电充电电池盒。这一课题研究科学研究无需四驱,而且之后要选用的电动机控制器可能只可用两个电动机。我用的是张尧姐赠送给我的第一个DIY控制模块:一个戳了很多洞的木匠板和三d打印出来的车轱辘子和连接预制构件。这一或许是萝卜太辣最初的控制模块,来源于于英国美国硅谷的创客房间内室内空间。

现如今,公布殊荣荣誉出品的“起源”控制模块已很完善,在网上也是有健全的课堂教学课堂教学资源。这一课题研究科学研究里选用的舵机和金属材料原材料连接预制构件都来源于于尧姐赠送给我的第二个控制模块——“起源”控制模块。但从感情上来讲,那套不仅滑的木匠板控制模块要我更亲密无间触碰,符合“用十分简易的原料进行原型”的关键核心理念。

电源开关开关电源:树莓派务必5V、2A电源开关开关电源,放进小小汽车上的话务必一个电流量量充裕大的充电电池电池充电宝。连接树莓派和Arduino的连接线同时也为Arduino供电系统系统软件。但是,电动机我用了外部电源开关开关电源(电池充电充电电池盒)。你可以发现就算没有外部电源开关开关电源,充电电池电池充电宝依然可以促进电动机(尽管较为慢)。但是,好的习惯性性是机械设备机器设备一一部分独立供电系统系统软件;逻辑性性开关电源电源电路一一部分由充电电池电池充电宝提供。

下一步,控制小小汽车。这儿有两个方案计划方案,第一个无需Arduino。我运用的是第二个。

3.1 树莓派作为机械设备机器设备总控

我认为片式机的精华,其实不是规格型号小,仅仅丰富多彩五彩缤纷的GPIO(General Purpose Input-Output),她们是程序与外部全世界对话的会话框。你看看见到的各种各样各种各样电子器件器件预制构件、拍摄头、电焊电焊焊接、吐司吐司面包板,都是在和GPIO交往。你务必把握基本的开关电源电源电路技术专业专业知识,也务必掌握她们在片式机上的。树莓派有一个十分作用强劲的GPIO Python库:,运用方法一目了然。

一般用四个端口号号控制电动机,各有连接两个电动机的正负级,依据每个电动机的顺接/反方向旋转来进行小小汽车的向前/后退/变为。进行双向电流量量的标准开关电源电源电路实体线实体模型是H桥接。你可以以以选购一款最基本的H-bridge操纵控制模块。

因为我手头没有,因而这一方案计划方案都没有进行。

3.2 Arduino作为机械设备机器设备总控

都没有H桥接,可是一个用于Arduino的Motor stacking shield,即Arduino上的H桥接。因而我干了了脆用Arduino担负机械设备机器设备(电动机+舵机),十分于身体;树莓派只担负图像辨别,十分于人的人的大脑。

Arduino其实不是Linux系统软件手机软件,不能以马上ssh进去写程序,务必外出写好后编译程序程序递交。我用数据信息信息内容线连接了树莓派和Arduino,在树莓派上写好程序后递交。发过现一个十分作用强劲的命令行IDE:PlatformIO(也是有十分好的图形网页页面撰写器)。Linux上的依据Python 2.7。你务必一些初始化,倘若像我一样是Arduino Uno电脑上电脑主板,输入以下命令便可以:

pio init -b uno

Arduino的C++源代码在。进入后,输入以下命令便可以递交:

pio run –target upload

以后发过现PlatformIO对于Arduino电脑上电脑主板好像兼容问题C++11,倘若让你这一务必,可以考虑到到。

四、无线网络互联网遥控

一样有两个方案计划方案:无线网络互联网电脑上电脑键盘,红外线线遥控。两个方案计划方案我都进行了。

4.1 无线网络互联网电脑上电脑键盘

倘若你一直在上一步用了3.1,无线网络互联网电脑上电脑键盘控制操纵控制模块即可以马上嵌入到机械设备机器设备控制编号中(都没有进行)。倘若你一直在上一步用了3.2,那么务必在树莓派上把作用键具体实际操作变成机械设备机器设备控制数据信息数据信号(文本方法),依据串口通信(Serial Port)控制Arduino。

python编号在,选用了我,用以检测电脑上电脑键盘作用键。这一库将一次作用键匹配到向前/后退/转/停止等本人个人行为;但期待进行的是长作用键向前/后退/转,不作用键时停止。但我从始至终没有找寻目前的库(Update:听闻在PyGame里有)。

以后我试着依据状况过程(threading)和系统软件手机软件廷时的方法,但具体实际效果不太理想化化,系统软件手机软件廷时和程序运行时间造成的误差一直匹配不大好,就放弃了。现如今编号里用的是一次作用键行动/停止的方案计划方案。倘若阅读文章者有好的库,请明显强烈推荐!

有一点要注意,运用串口通信前务必disable login(即然你早就ssh远程控制操纵登录了),描述比较清楚。

4.2 红外线线遥控

红外线线的长按返回的是一个单独的值(REPEAT),这一点即可以要我十分非常容易进行“长按-车动,不按-车停”。此外,红外线线遥控的编号马上写在Arduino的C++编号里,无需依据树莓派和串口通信,更符合Arduino作为机械设备机器设备总控的设计方案计划方案规范。

PlatformIO不内嵌红外线线的库,我用的是。PlatformIO运用第三方库的确太简单了,无需完全免费免费下载安装,马上在配置中放上GitHub联接便可以,参考我的。

也是有一点,每一个红外线线遥控都不一样。家里的电视机机机、音响、中间中央空调遥控都可以以以用,你只务必在运用前匹配好作用键和相符合的码。我都在里define的一堆KEY只能用于我的操纵器。你可以以以用以获得键码。注意:红外线线遥控有几种方法,我的遥控用的是最常常见的NEC方法,倘若你匹配出来一堆错码,可以考虑到到库里的其他许多个方法。

恰当了,倘若你用红外线线遥控,你需要务必轿车上用一个IR Receiver。我装在Arduino上,用六号端口号号。

倘若你用了方案计划方案3.1,你要能够马上将IR Receiver装在树莓派的GPIO上。

五、其他

这类早就够你开车上道了。我都在车内装了舵机(Servo),控制拍攝头的上下转动。具体实际操作很品牌形象化,看编号便可以掌握。都没有装超声拍摄头,这一可以帮助你检测阻拦,在撞墙前强制性停止。

倘若你需要远程控制操纵看拍攝头的及时页面,VNC不能以出任。可以考虑到到。但那般的话TensorFlow都不能再用拍攝头了。理应有一个同用的方案计划方案,都没有科学研究。

相近就这类了,我的编号没有过量注释,等有时候间往上添。倘若让你疑虑,可以留言板留言板留言板留言告诉我。

褔利:有一个廷时拍攝的简单程序,我都在crontab里设置为每过一分鐘拍一张照,接着每天深更半夜将当天拍的照转成录像。下周提前准备送至公司里,寻个风景好的位置,放几天,拍纽约市市的二十四钟头风景。

雷锋网经典著作权文章内容內容,没承受权禁止转截。详尽信息内容见。

相关阅读