Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1837|回复: 0
打印 上一主题 下一主题

用树莓派发挥你的想象力

[复制链接]

165

主题

269

帖子

957

积分

认证用户组

Rank: 5Rank: 5

积分
957
跳转到指定楼层
楼主
发表于 2017-6-29 13:45:49 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 firemail 于 2017-6-29 13:50 编辑

https://mp.weixin.qq.com/s?__biz ... uSleY1ilnnRcQWsM#rd
引言
当我们手里有一个树莓派的时候,就可以发挥自己的想象力。创造出与众不同的各种东西。搭建网络服务器、私有云、网络监控器、无人机航模、行走机器人等等等等。今天呢,教大家如何把手里的树莓派用起来。玩转树莓派嘛 怎么可能让你的树莓派放在角落里吃灰呢。
软件
我将提供大家三种不同语言的小车控制程序所以运行环境请根据需要搭建。系统版本可以是树莓派Raspbian Jessie或者Ubuntu等。视频网络传输Mjpgstreamer.
我配置好运行环境之后制作的镜像系统
C语言版
树莓派官方系统自带Gcc编译器 , 只需安装编译WiringPi库。
Python版
最近的系统已经默认安装了python-RPi.GPIO ,进行无线网络远程遥控的时候需安装pip,flask。
Scratch
什么都不用动 打开Scratch软件 设置GPIOSERVER ON就可以了。
  • 青少年可以从SCRATCH编程中学习编程思想,以及算法基础并养成良好的逻辑思维。
  • 高中到大学可以进阶初步学习Python/C语言编程,Python语言是一种较为容易入门的机器学习语言。
  • 对于有C语言基础的同学学习用WiringPi控制树莓派的GPIO,掌握C语言并应用到自己的实践中。

硬件

树莓派3代B型主板
部分配件
别小看树莓派 相信出色的你能玩出更多新花样 先看一下我制作的哪些功能
红外避障
黑线循迹
手机软件控制
Scratch编程 红外跟随
下面开始进入主题
为了节省工作量呢 我从C语言版本开始说。
系统配置中文环境和拼音我就不罗嗦了
sudo apt-get install ttf-wqy-zenhei (安装中文字体库)
sudo apt-get install scim-pinyin (安装中文输入法 当然了你也可以全装其他的输入法)
我建议最好用远程桌面的方式连接,以便小车运行时方便修改代码。
树莓派安装xrdp 就可以直接用笔记本自带的远程桌面工具进行远程操作了。最新的系统安装步骤:
sudo apt-get install xrdp
sudo apt-get install tightvncserver
然后在windows打开远程桌面连接 打开对应的IP地址,即可连接成功
远程桌面界面

C语言安装wiringPi库
WringPI库介绍
wiringPi 安装
  • 方案 A——使用 GIT 工具,通过 GIT 获得 wiringPi 的源代码。

git clone git://git.drogon.net/wiringPi
测试一下是否安装成功:
$gpio -v先来搭建手机远程控制的功能,稍后再进行与传感器的结合。
简单看一下树莓派上即 服务端代码:carserver.c
几种初始化wiringPi的函数
首先在程序的开始的时候需要调用上面的任意的函数来对wiringpi 进行初始化,否则你的程序不能正常工作。wiringPiSetup() 该函数初始化wiringPi,幵假定程序将使用wiringPi的管脚定义图。具体管脚映射,可以通过gpio readall命令来查看。该函数需要root权限。驱动电机使用四个引脚。1、4控制一侧,5、6另外一侧。编码方式为wPi。
引脚定义
pinMode函数
原型 void pinMode (int pin, int mode) ;使用该函数可以将某个引脚配置为INPUT(输入)、 OUTPUT(输出) 、PWM_OUTPUT (脉冲输出) 或者GPIO_CLOCK(时钟)。在我们的小车C语言控制程序中我们分别设置了GPIO1,GPIO4,GPIO5,GPIO6这四个引脚来控制左右两侧的电机。此时我们是通过GPIO的输出来实现的,所以这里设置mode为OUTPUT。
digitalWrite函数
函数原型void digitalWrite (int pin, int value) ;使用该函数可以向指定的管脚写入HIGH(高)或者LOW(低)写入前,需要将管脚讴置为输出模式。wiringPi将任何的非0值作为HIGH(高)来对待,因此,0是唯一能够代表LOW(低)的数值。如下图,定义小车前进时,将GPIO1置为高GPIO4置为低(左侧前进),将GPIO5置为高GPIO6置为低(右侧前进)。
通过接收到的字符进而控制小车动作
全部代码占用篇幅。完整代码稍后评论区
组装小车
树莓派引脚接线
整体供电使用两节3.7V的18650锂电池。树莓派需要5V供电,所以需要使用一个转5V的降压模块Lm2596模块。编译carserver.c然后等组装好之后运行。
安卓软件APP源码就不贴出来了。需要的话可以给我留言。
Scratch控制版
Python版
部分源码
好累 ,,能不能偷个懒。python代码原理大同小异。初始化GPIO,定义小车点后左右停止的函数。然后通过GET POST方法发送接收信号。然后控制树莓派进行响应。
如需全套配件 请回复“小车配件”

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-4-20 16:38 , Processed in 0.062630 second(s), 22 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

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