![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式
AI手工星
心中有涡轮,干啥都带T
展开
-
DIY人脸跟踪电风扇送女朋友(2)
接着之前的内容,我们来编写一下云台控制的代码。实际上由于安装了开源的Adafruit_Python_PCA9685模块,操作舵机非常的简单。这里我们把舵机的控制分成x轴和y轴,x轴可以像左或者向由旋转一定的角度。y轴可以向上或者向下旋转一定的角度。所以舵机控制的接口定义为:# channel 控制x轴还是y轴# direction 控制方向,对应x轴的left或者right, y轴的up和down# angle 为旋转的角度,0 - 45 度之间def ServoControl(channel,原创 2020-09-23 22:18:47 · 415 阅读 · 0 评论 -
哇靠靠,这也行?零基础DIY无人驾驶小车(三)
原理:之前在教程(一)中我们讨论了制作无人驾驶小车的方案,结论是当小车采集到图片之后,通过网络传给笔记本,然后笔记本通过深度学习推理,得出结果,反馈给小车。但是目前通过一些优秀的开源库,将cnn网络优化之后在手机或者树莓派这样的终端上面也有比较好的效果。所以这里真正开始实践的时候,我采用了树莓派的方式,摒弃了笔记本,直接通过树莓派进行图片的采集和深度学习推理,并实时的控制小车的运动。这样的话极...原创 2020-02-06 17:03:40 · 3205 阅读 · 4 评论 -
短信远程开机
短信远程开机 元旦假期马上结束了,大家一定玩的很开心吧。很久没有写点什么了,但又不知写些什么,只能把自己这几天的所作所为略述一二,似乎我的生活从来离不开这些,也只有这些,哈哈。 先说说做这个东西的想法吧,前段时间经常出差,有时候需要远程连接自己公司的电脑,可是总是麻烦同事帮忙开机,有时候同事不在就一点办法也没有了。于是乎,便有了这个远程原创 2013-01-03 21:03:30 · 987 阅读 · 0 评论 -
QT 文字字体和颜色设置
QT中的字体(比如QLabel中的字体)有时需要在程序中进行动态的设置。其中字体和颜色是分开设置的。设置字体主要使用的是QFont对象。设置颜色主要使用的是QPalette(调色板)来进行。所以要包含这两个头文件。#include <QFont> 和 #include<QPalette>设置字体包含头文件<QFont> 。设置方法,以QLineEdit li...原创 2012-04-19 14:37:36 · 9089 阅读 · 0 评论 -
QT 定时器的使用
在QObject中有定时器的实现方法,所有的控件都继承自QObject,所以所有控件都继承了这一方法。首先是启动一个定时器(可以考虑在构造函数中使用)intQObject::startTimer(intinterval)返回值是一个标示定时器序号的整形。可以同时启动多个定时器,用该返回值来进行标识。参数interval以毫秒为单位,表示定时器每隔interval毫秒时间就出发一次...原创 2012-04-19 13:34:13 · 924 阅读 · 1 评论 -
Qt 常用类介绍
转载自:暮云秋草 wmyan2010@163.com1.QChar 表示一个字符的类,包含于 QtCore判断:bool isDigit() const;//判断是否是十进制数字('0'-'9')bool isLetter() const;//判断是否是字母bool isNumber() const;//判断是否是数字,包括正负号,小数点等bool isLetterOrNumbe...转载 2012-04-19 12:48:25 · 2521 阅读 · 0 评论 -
QT编程中遇到的问题总结
一:在使用connect绑定信号与槽函数时,信号函数只写参数类型,不能带具体的变量名称。比如QLineEdit 有一个信号叫做 void QLineEdit::textChanged(const QString &text).如果connect这么写就会报错。connect(lineEdit , SIGNAL(textChanged(QString &text)) , this...原创 2012-04-19 12:42:01 · 583 阅读 · 0 评论 -
VS_QT中配置qDebug输出
在使用qt_create时可以使用qDebug进行调试输出。在VS中也可以使用。但需要配置。配置过程如下图所示:一、首先右击工程名,选择最后一个选项“Properties”二、然后选择Linker-System-Console即可。运行程序时,会另外弹出一个dos命令框。如下:...原创 2012-04-19 12:36:26 · 5371 阅读 · 4 评论 -
Linux底层网络编程--ARP,PING等
一linux系统中获取网卡信息 获取网卡信息有两种方法。一种是读取系统文件。另外一种是通过系统API进行获取。 1、 读取系统文件 程序中通过读取/proc/net/dev文件即可以读取到系统中的所有网卡信息。该文件的内容大致如下: 容易发现左边红的方框中的就是主机的所有网络接口。然后读取该文件,解析出这些接...原创 2012-10-14 17:09:05 · 4894 阅读 · 1 评论 -
gsoap搭建WebService服务
WebService、soap、gsoap基本概念WebService服务基本概念:就是一个应用程序,它向外界暴露出一个可以通过web进行调用的API,是分布式的服务组件。本质上就是要以标准的形式实现企业内外各个不同服务系统之间的互调和集成。soap概念:简单对象访问协议,是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息。从这里的概念可以看得...原创 2012-10-12 10:27:13 · 12034 阅读 · 3 评论 -
TCP/IP 中的二进制反码求和算法
对于这个算法,很多书上只是说一下思路,没有具体的实现。我在这里举个例子吧。以4bit(计算方便一点,和16bit是一样的)做检验和来验证。建设原始数据为 1100 , 1010 , 0000(校验位)那么把他们按照4bit一组进行按位取反相加。 1100取反0011 , 1010取反是0101,0011加上0101 是1000,填入到校验位后...原创 2012-04-01 20:02:51 · 2158 阅读 · 2 评论 -
《TCP/IP详解》笔记----第四章 ARP协议
第四章ARP地址解析协议1、概述ARP地址解析协议为IP地址和物理地址之间提供动态的映射。2、以太网中ARP请求包的具体格式以太网目的地址:这里是ARP请求,这里填写FF:FF:FF:FF:FF:FF,表示的是广播地址。以太网源地址帧类型:若是ARP请求或应答,则填充0X0806。硬件类型:填充1表示的是以太网,也就是...原创 2012-03-22 18:56:45 · 447 阅读 · 0 评论 -
《TCP/IP详解》笔记----第二章 链路层
第二章链路层1、链路层的作用TCP/IP的四层模型中,处于最下层的是链路层。它的主要作用是:接收和发送IP模块的数据报;为APR模块发送ARP请求和接收APR应答;为RAPR模块发送RAPR请求和接收RAPR应答。2、以太网协议和IEEE802.3协议。以太网协议时先提出来的,采用CSMA/CD(载波接听多路访问及差错控制)技术。I...原创 2012-03-22 18:50:17 · 487 阅读 · 0 评论 -
嵌入式概念
嵌入式概念相关一:嵌入式微处理主要有:ARM, PowerPc, MIPS等。1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。二:嵌入式操作系统概念:嵌入式操作系统是是嵌入式应用软件的基础和开发平台。基本功能:进程调度,内存管理,设备管理,文件管理,操作系统接口(API调用)常见的嵌入式操作系统:Vxworks , WINCE , 嵌入式Li原创 2012-03-22 18:59:58 · 463 阅读 · 0 评论 -
S3C2440
S3C2440寄存器图 s3c2440 gpio (内核中的定义) gpio(general purpose i/o ports)即通用输入/输出口。我们在实际应用中,不管是接lcd、接键盘,控制流水灯等等应用,都离不开对i/o的操作。可以说,gpio的操作是所有硬件操作的基础。 s3c2440共有130个i/0端口,共分九组,分别为:gpa、原创 2012-03-22 19:02:40 · 1077 阅读 · 0 评论 -
S3C2440 汇编指令
arm汇编指令集算术和逻辑指令adc : 带进位的加法(addition with carry)adc{条件}{s} , , dest = op_1 + op_2 + carryadc 将把两个操作数加起来,并把结果放置到目的寄存器中。它使用一个进位标志位,这样就可以做比 32 位大的加法。下列例子将加两个 128 位的数。12转载 2012-03-22 19:04:37 · 2040 阅读 · 0 评论 -
linux应用之----多线程
多线程编程线程理论:线程(thread)技术早在上世纪60年代就已经提出来了,但真正应用到多线程操作系统当中是在80年代中期。线程想比与进程的两大优势:一是创建和维护一个线程的开销比创建和维护一个进程的开销要小的多。另外一个时线程间的通信比进程快速高效的多。具体来说就是,不同的进程有独立的进程空间,要进行数据传输必须依靠进程间的通信方式进行。这种方式不仅费时,而且很不方便。线程则不同,由于原创 2012-03-22 19:21:45 · 446 阅读 · 0 评论 -
linux应用之--网络编程
linux网络编程 一:网络参考模型参考模型,如下图所示: 二:TCP/IP协议TCP协议(传输控制协议)和UDP协议(用户数据包协议)是工作在传输层的。 其中TCP协议是面向连接的,UDP是面向无连接的。以太网协议是工作在网络接口层的,应用程序(像tftp,dns等)是工作在应用层的。IP协议工作在网络层。一个以太网包里面含有一个IP包,一个IP原创 2012-03-22 19:21:02 · 442 阅读 · 0 评论 -
linux应用之----进程通信
进程间通信基础进程间通信的英文缩写: IPC 为什么需要进程间通信?数据传输,资源共享,通知事件,进程控制等。Linux进程间通信方式(6种):管道,信号,消息队列,共享内存,信号量,套接字。各种进程间通信方式详解 1 :管道通信 int pipe (int name[2]) 1):成功返回0;失败返回-1; 2)原创 2012-03-22 19:19:47 · 408 阅读 · 0 评论 -
linux应用之----进程控制理论
进程理论基础进程的定义:进程是一个具有特定功能的程序的一次运行活动。它和程序的区别在于:程序是存储在硬盘上的,是静态的;而进程是程序的执行。进程特点:动态性 ,并发性 ,独立性 , 异步性 。进程三态:就绪态,执行态,阻塞态。进程的标识:用进程ID号来区分不同的进程。进程ID用PID表示,父进程ID用PPID表示,用户ID用UID表示。进程互斥:是指当多个进程都要使用某一共享资原创 2012-03-22 19:19:04 · 547 阅读 · 0 评论 -
linux应用程序之----时间类编程
时间编程类函数 1:秒数获得函数 time_t time(null) 该函数用于获得从???至此刻的时间,用秒来表示。 2: 当地时间转换函数。首先得明白一个有关时间的结构 struct tm ={原创 2012-03-22 19:17:34 · 383 阅读 · 0 评论 -
linux应用程序之----文件操作
文件操作 文件操作有两种方式,一种是利用Linux系统调用,它依赖于操作系统;另一种是利用C语言库函数,它不依赖于操作系统,在所有操作系统下面都是一样的。首先来看系统调用方式的文件操作。 1:创建文件 int creat (const char* pathname , mode_t mode) 1) mode_t 解释 :1 执行;2:可写:4:可原创 2012-03-22 19:16:41 · 833 阅读 · 0 评论 -
linux 头文件汇总
linux头文件 头文件目录中总共有32个.h头文件。其中主目录下有13个,asm子目录中有4个,linux子目录中有10个,sys子目录中有5个。这些头文件各自的功能如下。:a.out头文件,定义了a.out执行文件格式和一些宏。:常数符号头文件,目前仅定义了i节点中i_mode字段的各标志位。:字符类型头文件,定义了一些有关字符类型判断和转换的宏。:错误号头文件,包含原创 2012-03-22 19:15:54 · 1519 阅读 · 0 评论 -
linux GCC、GDB、Makefile
GCC,GDB和MAKE GCC 入门 前面已经提到过,linux的发展离不开GNU计划,而GNU的贡献就在于推出了很多高质量的免费的软件。而其中的GNU(全称为:GNU C Compiler)又是具有卓越贡献的软件。GCC 的一般命令为 gcc [-选项1] 源文件名 [-选项2] 目标文件名gcc hello.c -o hello 直接一步原创 2012-03-22 19:15:08 · 580 阅读 · 0 评论 -
linux SHELL脚本编程
shell脚本编程 shell定义:简单来讲就是命令解析器,将用户输入的指令转换为相应的机器能够运行的程序。 shell种类:bourne shell (sh);korn shell(ksh) bourne again shell(bash)等 shell脚本:是一个包含一系列命令序列的文本文件。当运行这个文本文件时,里面的命令序列将得到执行。:shell脚本原创 2012-03-22 19:13:42 · 406 阅读 · 0 评论 -
嵌入式基础之----C++
一:构造与析构为什么需要构造函数:因为类是一个集合的东西,里面包含了很多的数据。当定义了一个类的具体对象时,初始化就显得是必须的了。如果是全局的对象,那么其数据会被初始化为零,但往往不会去定义全局的对象。所以就迫切的需要一个成员函数专门进行初始化的工作,这就是构造函数,它以人们预期的方式对对象进行初始化。如果一个类中没有显示的定义构造函数,那么系统会提供一个默认的构造函数,它没有参数,什么原创 2012-03-22 19:12:51 · 558 阅读 · 0 评论 -
嵌入式基础之----C语言
一:数据类型●枚举类型 (整形数据的集合)声明举例: enum DAY{ mon=1 , tue , wen , thu , tue , fri , sat , sun }; enum DAY today , tomorrow ; 或者 enum DAY{ mon =1, tue , wen , thu原创 2012-03-22 19:09:42 · 535 阅读 · 0 评论 -
S3C2440中断跳转分析
2440init.s中断跳转分析 最近准备自己写一个S3C2440的启动代码。参阅了一下2440init.s这一启动代码。发现有很多人对于这个启动代码中的异常,特别是像外部中断这样的异常,到底在2440init.s中是如何实现跳转的这一问题有很大的疑惑。现在就我的理解对这个过程做一下解说。说的不一定很好,呵呵,权当消遣吧。另外,这里面的错误肯定会有,大家尽管给我提吧。 首先原创 2012-03-22 19:05:43 · 539 阅读 · 0 评论 -
linux内核编译与内核模块
linux内核简介、配置编译与内核模块Linux系统架构主要分为用户空间和内核空间。用户空间包括应用程序和C库等。内核空间包括系统调用接口,linux内核以及体系结构相关代码。关于linux要区分内核空间和用户空间的原因。首先要明白,内核空间与用户空间是程序运行的不同状态。现代的处理器往往有很多工作模式,以ARM9为例就有7中工作方式:(管理模式,系统模式,用户模式,外部中断模式,快速中断原创 2012-03-22 19:23:09 · 745 阅读 · 0 评论