前面的方法可以参照(一)来配置GPIO口。

下面是代码。。。仅供参考,转载请注明出处。

1.  先输入以下指令,再复制代码,Ctrl+X  输入Y  回车  保存。

sudo nano start.c
#include "car.h"
#include <stdio.h>
#include <stdlib.h>
#include <wiringPi.h>
#include <sys/time.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#define IN1 0 // wiringPi GPIO0(pin11) car.GPIO
#define IN2 1
#define IN3 2
#define IN4 3
#define IN5 4 //Ultrasound module.GPIO send
#define IN6 5 // accept
/* Write By ITJoker
Time:2.18.2.4
Version:1.0
*/
int up()
{
wiringPiSetup() ;
pinMode (IN1, OUTPUT) ;
pinMode (IN2, OUTPUT) ;
pinMode (IN3, OUTPUT) ;
pinMode (IN4, OUTPUT) ;
digitalWrite(IN1, HIGH) ; delay () ;
digitalWrite(IN2, LOW) ; delay () ;
digitalWrite(IN3, HIGH) ; delay () ;
digitalWrite(IN4, LOW) ; delay () ;
}
int down()
{
wiringPiSetup() ;
pinMode (IN1, OUTPUT) ;
pinMode (IN2, OUTPUT) ;
pinMode (IN3, OUTPUT) ;
pinMode (IN4, OUTPUT) ;
digitalWrite(IN1, LOW) ; delay () ;
digitalWrite(IN2, HIGH) ; delay () ;
digitalWrite(IN3, LOW) ; delay () ;
digitalWrite(IN4, HIGH) ; delay () ;
}
int right()
{
wiringPiSetup() ;
pinMode (IN1, OUTPUT) ;
pinMode (IN2, OUTPUT) ;
pinMode (IN3, OUTPUT) ;
pinMode (IN4, OUTPUT) ;
digitalWrite(IN1, LOW) ; delay () ;
digitalWrite(IN2, HIGH) ; delay () ;
digitalWrite(IN3, HIGH) ; delay () ;
digitalWrite(IN4, LOW) ; delay () ;
}
int left()
{
wiringPiSetup() ;
pinMode (IN1, OUTPUT) ;
pinMode (IN2, OUTPUT) ;
pinMode (IN3, OUTPUT) ;
pinMode (IN4, OUTPUT) ;
digitalWrite(IN1, HIGH) ; delay () ;
digitalWrite(IN2, LOW) ; delay () ;
digitalWrite(IN3, LOW) ; delay () ;
digitalWrite(IN4, HIGH) ; delay () ;
}
int stop()
{
wiringPiSetup() ;
pinMode (IN1, OUTPUT) ;
pinMode (IN2, OUTPUT) ;
pinMode (IN3, OUTPUT) ;
pinMode (IN4, OUTPUT) ;
digitalWrite(IN1, LOW) ; delay () ;
digitalWrite(IN2, LOW) ; delay () ;
digitalWrite(IN3, LOW) ; delay () ;
digitalWrite(IN4, LOW) ; delay () ;
}
int main(int argc, char *argv[])
{
int fd, new_fd, struct_len, numbytes,i;
struct sockaddr_in server_addr;
struct sockaddr_in client_addr;
char buff[BUFSIZ];
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons();//port 8888
server_addr.sin_addr.s_addr = INADDR_ANY;
bzero(&(server_addr.sin_zero), );
struct_len = sizeof(struct sockaddr_in); fd = socket(AF_INET, SOCK_STREAM, );
while(bind(fd, (struct sockaddr *)&server_addr, struct_len) == -);
printf("Bind Success!\n");
while(listen(fd, ) == -);
printf("Listening....\n");
printf("Ready for Accept,Waitting...\n");
new_fd = accept(fd, (struct sockaddr *)&client_addr, &struct_len);
printf("Get the Client.\n");
// numbytes = send(new_fd,"Welcome to my server\n",21,0);
while((numbytes = recv(new_fd, buff, BUFSIZ, )) > )
{
buff[numbytes] = '\0';
printf("%s\n",buff);
if(send(new_fd,buff,numbytes,)<)
{
perror("write");
return ;
}
//txtz=find(buff,sizeof(buff),'u')
//strcmp(buff,'u')==0
if(buff[]=='u')
up();
else if(buff[]=='d')
down();
else if(buff[]=='r')
right();
else if(buff[]=='l')
left();
else if(buff[]=='s')
stop();
}
close(new_fd);
close(fd);
return ;
}

2.为了编写方便,建立makedile。

sudo nano makefile

编写内容如下:

start:start.o
gcc start.c -o start -lwiringPi
clean:
rm -f start start.o

3.最后  输入指令:

make

  

树莓派小车By 树莓派爱好者ITJoker(通过C socket通信实现树莓派视频小车)(二)的更多相关文章

  1. 树莓派小车By 树莓派爱好者ITJoker(通过python socket通信实现树莓派视频小车)(一)

    本文由树莓派爱好者ITJoker 编辑,转载请注明出处.本人也有新浪博客同样是树莓派爱好者ITJoker 所需材料:树莓派2B或者2B以上,L2985n驱动板,若干排线,电池及电池盒,usb无线网卡( ...

  2. StarRTC , AndroidThings , 树莓派小车,公网环境,视频遥控(二)小车端

    原文地址:http://blog.starrtc.com/?p=94 1 创建工程IDE:Android Studio 3.1:File>New>New Project>输入项目名& ...

  3. GL-inet路由器当主控制作WIFI视频小车

    以前也用单片机做过WIFI小车,但是单片机没有自带WIFI,仍然需要用到小路由器作为图传和控制信号传输.既然肯定要用到路由器,那何不直接用路由器作为主控呢,这样就省掉了单片机.这次作为主控的GL-in ...

  4. 树莓派与Arduino Leonardo使用NRF24L01无线模块通信之基于RF24库 (二) 发送自定义数据

    在我的项目里,树莓派主要作为中心节点,用于接收数据,Arduino作为子节点,用于发送数据,考虑到以后会有很多子节点,但又不至于使得代码过于繁琐,因此所有的传输数据添加一个头部编号用于区分不同节点. ...

  5. 树莓派个人实测 Q&A(最新修改使用Manjaro连接远程桌面) (二)

    以下内容使用和http://www.eeboard.com/bbs/thread-5191-1-1.html所在的帖子一样的风格,不过原作者是window下的操作,本人的都是在manjaro linu ...

  6. 树莓派和荔枝派,局域网socket 通信

    在虚拟机上面实现了socket 之间的通信之后,突发奇想,想要实现树莓派和 荔枝派zero之间的通信. 1.直接将虚拟机下面的程序复制过来,重新编译并且运行.发现是没有办法进行通信的.客户端一直报错: ...

  7. stm32 视频小车

    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 ...

  8. StarRTC , AndroidThings , 树莓派小车,公网环境,视频遥控(三)手机端

    原文地址:http://blog.starrtc.com/?p=111 这篇来介绍一下整个项目的手机端部分.在上一篇里我们已经将sdk导入到项目中了,下边直接用即可. 1 登录StarRTC的服务跟小 ...

  9. StarRTC , AndroidThings , 树莓派小车,公网环境,视频遥控(一)准备工作

    原文地址:http://blog.starrtc.com/?p=48 啥也不说,先来个视频看看效果 视频播放器     00:00   00:54     概述为了体现StarRTC的实时音视频传输能 ...

随机推荐

  1. spring官方学习地址

    1.http://projects.spring.io/spring-framework/ 2.https://github.com/spring-projects/spring-mvc-showca ...

  2. IntelliJ IDEA 教程(1)

    过完年,新的学习阶段又开始了.星爷的电影票还没还,国民岳父(韩寒)的礼钱也没送,王老板说再立一个小目标,马老板说我不在乎钱...学习还得继续. IntelliJ Idea 简称IDEA,是java语言 ...

  3. 更换HomeBrew源

    比较少用brew,只有之前安装Opencv的时候用过一次,后面有人问我怎么装,于是帮他研究了一下.MacOS的brew其实就是通过两个git仓库(brew和homebrew-core)来实现的源更新机 ...

  4. Gym 100952E&&2015 HIAST Collegiate Programming Contest E. Arrange Teams【DFS+剪枝】

    E. Arrange Teams time limit per test:2 seconds memory limit per test:64 megabytes input:standard inp ...

  5. Gym 100952D&&2015 HIAST Collegiate Programming Contest D. Time to go back【杨辉三角预处理,组合数,dp】

    D. Time to go back time limit per test:1 second memory limit per test:256 megabytes input:standard i ...

  6. 微信小程序使用字体图标的方法

    一.先到阿里巴巴矢量图标库(http://iconfont.cn/),用微博帐号登录,搜索你想要的图标,然后添加入库 从项目里下载下来并解压,找到ttf格式文件 二.到这个平台https://tran ...

  7. UEP-按钮控制及时间

    按钮的判断 var record = ajaxgrid.getAllRecords(); if(record.length>0){ var isPack=record[0].get(" ...

  8. 同一台电脑使用 gitlab 和 github 配置

    Git 客户端与服务器端的通信支持多种协议,ssh 最常用.ssh的公钥登录流程,用户将自己的公钥存储在远程主机,登录时,远程主机会向用户发送一条消息,用户用自己的私钥加密后,再发给服务器.远程主机用 ...

  9. web框架前言与学生数据库系统(附1.0源码)

    对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. import socket def f1(request): ""&quo ...

  10. dedecms织梦自定义表单发送到邮箱-用163邮箱发送邮件

    https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=monline_3_dg&wd=dedecms 邮箱&oq=d ...