Floyd最短路算法

核心代码只有5行

#include 
int main()
{
    int e[10][10],k,i,j,n,m,t1,t2,t3;
    int inf=99999999; //用inf(infinity的缩写)存储一个我们认为的正无穷值
    //读入n和m,n表示顶点个数,m表示边的条数
    scanf("%d %d",&n,&m);
                              
    //初始化
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
            if(i==j) e[i][j]=0;
              else e[i][j]=inf;
    //读入边
    for(i=1;i<=m;i++)
    {
        scanf("%d %d %d",&t1,&t2,&t3);
        e[t1][t2]=t3;
    }
                              
    //Floyd-Warshall算法核心语句
    for(k=1;k<=n;k++)
        for(i=1;i<=n;i++)
            for(j=1;j<=n;j++)
                if(e[i][j]>e[i][k]+e[k][j] )
                    e[i][j]=e[i][k]+e[k][j];
                              
    //输出最终的结果
    for(i=1;i<=n;i++)
    {
     for(j=1;j<=n;j++)
        {
            printf("%10d",e[i][j]);
        }
        printf("\n");
    }
                              
    return 0;
}

火鸟2年忌

第一个四轴,我叫他火鸟,摔过无数次,修过无数次。曾创下过掉下水1个钟头捞上来只坏了一个数传模块的奇迹。当时在寒冬脱了衣服下水去捞,冻得要死。直到最后失控提控回家。有些事情不该被忘记。

F450机架+云台脚架
好盈乐天电调20A*4
F4006电机(1.4KG/个*4
1047桨(正反各2支)
APM2.6 6mGPS飞控
5200毫安电池3S 35C
B6充电器:
天地飞2.4Ghz7通道遥控器及接收
3dr数传一套

IMG_20141127_144325
继续阅读“火鸟2年忌”

监听飞机塔台ADS-B协议通讯

玩这个时初涉SDR,不过到了现在还是不得其门而入。OsmocomBB,Hackrf模拟GPS等信号……犹如黑箱,能否有效work靠的是天意。也许我的智商只适合去调用API。

言归正传,关于ADS-B协议:

就是每个飞机回主动的报告自己的位置等信息,而不是被动的去探测,这样会增加安全性,作为雷达技术的一种补充

因为这个技术的信号信息等都是公开的,所以我们要做的就是接收信号并解码,这样我们就能获取附近飞机的信息了。

基于国外的开源DUMP1090项目,自己尝试了一遍,加上了点启动整合的脚本,做了点不值一提的微小工作。

关于ADS-B详细的协议与SDR的概念,调制解调过程详见文尾网盘链接中的文档。之前写过一个加了注释的版本文档,可是现在怎么也找不到了。时间过去有点久了。

项目地址http://www.satsignal.eu/raspberry-pi/dump1090.html

硬件采用的是国内常见的R820T

附上一张芯片对比:

Tuner 芯片 频率范围
Elonics E4000 52 – 2200 MHz, 其中1100 MHz to 1250 MHz无法覆盖
Rafael Micro R820T 24 – 1766 MHz
Fitipower FC0013 22 – 1100 MHz
Fitipower FC0012 22 – 948.6 MHz
FCI FC2580 146 – 308 MHz, 438 – 924 MHz

 

bbbb
继续阅读“监听飞机塔台ADS-B协议通讯”

NE555+CD4017计数/流水灯

之前有个学妹问我如何不用单片机编程控制IO来做一个流水灯。第一反应就是NE555(工作在无稳态时基)+CD4017(译码/十进制计数)

好久没焊洞洞板,手也痒了,就把过程记录一下

首先先确定一下NE555无稳态输出方波的频率与占空比。

Screenshot_2016-08-03-00-25-16

毕竟人眼看。0.5-3hz都行,占空比最好50%。不过也不用太精确。我用的参数如图所示。

这电路过于简单我就不画电路图了。NE555输出接入CD4017的CP脚,数字输出脚分别接LED。注意CMOS芯片由于高阻态千万不能让input引脚悬空就行。都根据实际接上拉电阻或者下拉到Gnd就行。

IMG20160803201708
继续阅读“NE555+CD4017计数/流水灯”

DIY MWC小四轴_flyshit1.0版本

去年做了玩的,基本抄的MWC,今天又翻出来看看。

SI2302MOS管模拟电调,720空心杯,陀螺仪和加速度计用的MPU6050。主控AVR328P,直接用了Arduino mini核心板粗暴的粘在了底板上。控制本来打算用蓝牙,最后接了个接收机(逃

代码和算法全部抄袭MWC,config中改了I^C通信速率与启用空心杯电机的控制,别的也没什么了

dwew

继续阅读“DIY MWC小四轴_flyshit1.0版本”

MWC config文件(部分说明)

/*************************************************************************************************/
/****           CONFIGURABLE PARAMETERS                                                       ****/
/*************************************************************************************************/

/* this file consists of several sections
 * to create a working combination you must at least make your choices in section 1.
 * 1 - BASIC SETUP - you must select an option in every block. 基础设置-每部分必须选择一项。
 *      this assumes you have 4 channels connected to your board with standard ESCs and servos.假设你有四通道连接到控制板,具有标准的电调和舵机。
 * 2 - COPTER TYPE SPECIFIC OPTIONS - you likely want to check for options for your copter type 直升机细节选项-为你的直升机选择具体细节选项。
 * 3 - RC SYSTEM SETUP 遥控系统设置
 * 4 - ALTERNATE CPUs & BOARDS - if you have 备份CPUs和控制板-如果你有
 * 5 - ALTERNATE SETUP - select alternate RX (SBUS, PPM, etc.), alternate ESC-range, etc. here 备份设置-选择备份方案(SBUS、PPM等),备份电调控制范围等,
 * 6 - OPTIONAL FEATURES - enable nice to have features here (FlightModes, LCD, telemetry, battery monitor etc.) 可选项-具备各种特征(飞行模式、LCD、遥测、电池监测等)
 * 7 - TUNING & DEVELOPER - if you know what you are doing; you have been warned 调教和开发
 */
 继续阅读“MWC config文件(部分说明)”

《梦之安魂曲》

曲至癫狂,终归绝望

暴风截图201510810368531  暴风截图201510810683359

人生,只是无数的姿势而已。爱恨情仇,聚散沉沦,悲欢离合等等都列于其中。有的向上,有的向下,有的拼命挣扎,还有的随遇而安。但当这些所有一切都分崩离 析了,建立之后到消亡这个过程里面,倘若给予的压力太多到生命难以承受的重量,身处其中的人或许便会回归到一切宛如初见的状态。犹如在母亲的子宫当中,无 助而脆弱地蜷缩成为弓的形状,是安抚自己的有效姿势。亦能够感觉到一些虚构出来的却是主观存在的温度。

继续阅读“《梦之安魂曲》”

编程语言的分类与选择

  1. 机器语言 VS 高级语言
  2. 动态语言 VS 静态语言
  3. 命令式 VS 函数式 VS 逻辑式语言
  4. 强类型定义语言 VS 弱类型语言
  5. 面向对象 VS 面向过程
动态语言:运行期间才去做数据类型检查的语言
——PERL,Python,Ruby……可视为超级脚本语言
——脚本语言:JS,ASP,PHP,bat,shell,VBscript,Tcl
(脚本语言需要解释器来运行)
——宏语言(可视为脚本语言的分支)
——HTML,内嵌网页的脚本语言,解释器就是浏览器

继续阅读“编程语言的分类与选择”