云南土土 发布的文章

  • Arduino的开发板是拿来搞开发的,不是拿来搭建应用系统的,nano这样小体积的板子除外。批量应用用ATMEGA328P或ATMEGA2560单片机最小系统搭建即可。

    • 网上找的电路图注意看是对应哪种封装的,DIP封装和TQFP封装的管脚定义不同。PU是DIP封装,AU是TQFP封装。
    • 用ICSP接口灌装bootloader,之后用UART0灌装程序。UART0接口要附带reset,否则无法成功烧录。
    • 如果自制的板子不工作,在电路本身无错误的情况下,大概率是ATMEL芯片引脚出现虚焊、短连等焊接质量问题。
    • 不能盲信嘉立创的自动布线,布线完成后一定要仔细核查DRC,可能出现短连等非正常情况。
    • 绝对不要把系统的复位电路和其他模块的复位电路直接并联,如果电平或复位逻辑不一致会导致复位管脚电平处于浮动状态,会导致一系列匪夷所思的故障。
    • D0口要做外部上拉。会大幅提升供电可靠性。
  • Arduino的内存没那么容易用完。如果编译时提示动态内存太低,肯定是哪个地方没弄对。

    • 用自定义函数,函数内使用局部变量,减少全局变量使用。
    • Serial.print语句用到的固定字符串用F()包起来,这样固定字符串就只占用程序空间而不会占用内存空间。
  • 串口读取数据语法升级。按照一般的Arduino教材(包括中文互联网中)说明,串口读取只能采用read()方法,一次读取一个字节,如果需要读取字符串需要人工构建算法,但实际上现在Arduino已有readString()方法,可直接读取串口接收到的字符串,无需人工构建算法。用英文在google中搜索可以找到相应信息。
  • 有关Arduino扩充串口缓冲区的设置。当一次接收串口数据数百个字节时,因Arduino串口默认发送、接收缓冲区各只有64字节,如接收到的字节数超出64字节,其后的将会被舍弃。因此,必须在Arduino的HardwareSerial.h中设置发送、接收缓冲区尺寸,将字节数扩充到450字节。需要注意的是,必须修改以下目录中的HardwareSerial.h才有效!C:\user\xxxx\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.23\cores\arduino\HardwareSerial.h
    (其中XXXX为所安装机器的用户名) 修改方法:在HardwareSerial.h中开头增加两个宏定义:

    #define SERIAL_RX_BUFFER_SIZE 450
    #define SERIAL_TX_BUFFER_SIZE 450
    两个缓冲区尺寸必须一样,否则无法通过编译。 Arduino IDE如果升级了,一定要再次进入该目录进行修改,否则串口响应会出现问题。
    *《ARDUINO技术内幕》是本好书,深度开发必看。

本记录持续更新中。

        《碧海蓝天》不是一部人人喜欢的电影。The Big Blue,如果它契合了你的心境,你会理解它,会因它而感动,会因它沉默不语,但不会因它而消沉。你会知道这个世界上有人和你一样,你并不孤独。
        人很难被理解,但如果一个人说他喜欢《碧海蓝天》,你可以瞬间了解他。

_P1M0022_小.jpg

_P1M0034_小.jpg

_P1M0040_小.jpg

_P1M0042_小.jpg

_P1M0046_小.jpg

_P1M0053_小.jpg

_P1M0064_小.jpg

_P1M0070_小.jpg

_P1M0071_小.jpg

        这个季节的轿子雪山没有雪,有的只是从山谷蔓延至山巅的水汽,高山草甸中肆意流淌的小溪,漫山遍野抽出新芽的杜鹃花,树干上石头上绿得不真实的青苔,以及那条连绵不绝穿行在林间延伸到山巅的木头栈道。游人很少,青年人很多,呼朋唤友的笑闹声传出很远。海拔四千二的空气,凛冽而清新,连起飞无人机都会提醒你空气稀薄,但是我喜欢。
        我喜欢登高,喜欢任何一个季节,哪怕站在山巅,被满天的云雾遮住远方,看不到天边的群山,看不到脚下的森林与草原。你知道它们就在远方,你知道你就在云里。

_P1M0283_小.jpg

_P1M0285_小.jpg

_P1M0292_小.jpg

DJI_0330_小.jpg

DJI_0341_小.jpg

DJI_0347_小.jpg

DJI_0357_小.jpg

DJI_0358_小.jpg

DJI_0360_小.jpg

DJI_0363_小.jpg

DJI_0367_小.jpg

DJI_0371_小.jpg

_P1M0270_小.jpg

_P1M0277_小.jpg

“弥留之际请为我播放此曲。”

        帕格尼尼,小提琴鬼才,24首小提琴随想曲尤其是第24首是耳熟能详的名曲。拉赫玛尼诺夫所做帕格尼尼主题狂想曲第18变奏,却完全是另一风格,情真意切,深情无比,恰如人之老后,夕阳西下之时眺望远山,不喜不悲,不悔不怨,坦然接受必然到来的命运。如我有幸,请于我弥留之际,为我播放此曲,死亡不是结束,而是新的开始。

        初识AI绘画,是谷歌的在线AI程序深度梦境Deep Dream,一个上传照片后选择一个滤镜对照片进行处理从而形成梦幻效果的在线程序。名字叫深度梦境,但是要作出一张真正梦境般的图片并不容易,处理后的照片能够明显看出原来的图案是什么,是应用了什么样风格的滤镜进行的处理,是一种显而易见的融合及结合。比如下面这张照片,无印良品里的杯碟架子变成高楼林立的都市:
微信图片_20220509084214.jpg
        或者是这样,丛林里的城市只是房屋后院的梦呓:
微信图片_20220509084239.jpg
        五彩缤纷的效果是容易形成的效果:
微信图片_20220509084201.jpg
        或是电子游戏争霸战的赛博朋克风格:
微信图片_20220509084257.jpg
        深度梦境真正给我惊喜的,是这样一张照片,这是一张银河的星野照片,能想象经过滤镜后变成另外这样一种星空的样子吗?
微信图片_20220509084245.jpg
        在祛除了不切实际的梦幻设想后,深度梦境其实更能给我们一些例如油画、水粉画这样的处理效果:
deepdream1.jpg

        然后,我遇到了谷歌的深度学习算法Disco Diffusion,用Tensorflow训练模型,在线运行可使用谷歌的在线GPU提高运行速度,也可以下载到本地机器运行,但由于我的电脑的硬件性能远远无法达到跑这个模型的需求,所以始终只能在线上进行运行。DD的特点,是用一句包含若干关键词的话来告诉程序想要一幅什么样的画。不做修改时,默认的关键词是这样的:
        "A beautiful painting of a singular lighthouse, shining its light across a tumultuous sea of blood by greg rutkowski and thomas
kinkade, Trending on artstation.", "yellow color scheme”
这样画出来的是灯塔:
TimeToDisco(0)_0.png

        一直想要画一张赛博朋克风格的画,所以我用了这句关键词:"A sense of awe of a steampunk Industrial City,filled with holograms by M.C. Escher, Trending on surreal.","silver color scheme"
        结果挺出人意料:
TimeToDisco(2)_1.png
TimeToDisco(2)_2.png
TimeToDisco(2)_5.png
TimeToDisco(2)_6.png

        另一个想要的场景是帆船在波涛汹涌的大海上,所以我用了这句关键词: "A beautiful painting of a ultrawide shot of a sailboat ,sailing in rough sea by greg rutkowski and thomas kinkade, trending on artstation."结果不满意。
TimeToDisco(5)_1.png
TimeToDisco(6)_2.png
TimeToDisco(6)_7.png

        这句关键词:"A sense of awe of the end of time ,a desire for knowledge by Hiroshi Yoshida and Marc Simonetti, trending on futuristic."第一张就非常好,但是后面的图画就每况愈下,所以只保留了这一张:
TimeToDisco(7)_0.png

        由于末世流的风格效果很好,于是我又调整了关键词:"A sense of awe of the end of civilization by Ivan Aivazovsky and Peter Mohrbacher, trending on futuristic."至于效果......只能说不好,嫁接的痕迹太严重。
TimeToDisco(8)_0.png
TimeToDisco(8)_3.png
TimeToDisco(8)_6.png
TimeToDisco(8)_8.png

        AI绘画的程序还有很多,AI绘画到底能不能代替人类的绘画呢?其他的程序我不知道,DD我看难。用一句话来告诉程序想要画什么,这其中的不确定性太多,按理说不确定性是灵感的来源,可偏偏这程序的程式化还是太严重,这就造成了画作的移花接木和可以理解的混合。对于抽象艺术而言,能够理解便落了下乘,更何况能把自己的幻想明白说出来的话,那幻想还是幻想吗?

        抬头望天不需要教,是人的天性,只要看到每个孩子看到星空时的那份兴奋,谁都能从心中自然而然浮现出这样一句话。在我小的时候,出了环城路的滇池路两遍都是农田和旷野,骑单车不用多长时间就能看到满天星斗与跨越其间的银河,但是现在城市里的孩子已经无此幸运,要想看到如我们小时候那样的星空,必须精心筹划,开车远行,望天变成了如同其他旅游一般的事情。与此同时,天文爱好也同样发生着巨大的变迁,从我们小时候淳朴的抬头观天,逐渐演变成了需要大量金钱堆积设备的军备竞赛,天文爱好者在电脑屏幕之前的时间越来越长,但是目视观天的时间却越来越少。每位新加入这个爱好的人都会问两个问题:我该买一架什么样的天文望远镜,我要花多少钱才能拍摄出网上那些美轮美奂的星云照片。少有人在四季的星夜里体会辨识星座的乐趣,少有人只是单纯地躺在引擎盖上静静地看流星划过星际。星空是巨大的黑暗,但并不令人绝望,因为星星点点的光明给了你目标和希望。正如我们短暂而漫长的一生,纵有无数自己不想做而不得不做的事情,终归会有一些事、一些人,让你觉得不虚此生。

20200621日偏食蒙德里安拼图
玫瑰星云
日偏食的过程
月半弯