2022年12月29日星期四

2022年读完的第24本书——美丽的京剧

 


《美丽的京剧》读后感

 

奥北社区的邻居朋友们,大家好。我是咱社区芳清园小区的居民, 今年41岁。我是北京城建智控公司的一名软件工程师。我平时很喜欢读书,适逢社区举行“青春礼赞,阅享风华”读书分享活动,我也来参加一下。

2011年,我之前所在的单位从上地搬到温泉镇附近,每天上班路上要花费一个多小时。为了充分利用这宝贵的时间,我养成了在上班路上读书的习惯。十多年过去了,工作换了,上班地点换了,但这个习惯我还在坚持,每年能读书20本左右。这次活动开始时,恰好我读完了《美丽的京剧》这本书,感觉非常不错,那就把这本书推荐给大家吧。

这本书的作者是吴钢。之前我没有听说过这个人。翻开这本书后我才知道,他就是知名戏剧家吴祖光和评剧艺术家新凤霞的长子。他从小跟着父母听戏,文革期间学了摄影和汽车驾驶技术。粉碎四人帮后他利用这些技能成为了《人民戏剧》(后更名为《中国戏剧》)杂志的摄影记者,拍摄了大量的剧照。这本书就是他30年摄影作品的精选集,以及照片背后的故事。

传统的戏曲摄影都是演员全身的静态照片。吴钢先生开创性的发明了“动态”的拍照方法,即通过照片展现戏曲中的动态动作。我归纳起来分为两种方法。一是延长快门时间,让演员的运动部分模糊,静止部分清晰,观众一看就知道拍照时身体的哪个部位有动作。比如京剧《闹龙宫》的剧照,在孙悟空的前后各有四名演员手持蓝色丝绸上下舞动,用以表示海浪的翻滚。用这种手法拍出来的照片,看上去孙悟空前后有两层朦胧的蓝雾,视觉效果极佳。另一种拍摄手法是同一张底片多次曝光。很多京剧都有演员“亮相环节,即演员随着锣鼓声做着动作或翻着跟头出来,最后定格在一个姿势上。通过多次曝光,在一张照片上同时呈现出几个人像,模糊的人像是做动作时的影像,清晰的人像是最后定格时的影像。稍微看过一点京剧的人,看了照片之后都能联想到演员的一系列动作。因此这些照片受到包括我在内的欣赏者的一致好评,曹禺老师对其“流动着音乐的美”的评价更是高度概括了这些照片的特点。不可否认的是,吴钢能够取得这些艺术成就和他的家庭是分不开的,但更重要的是他自身的努力和突破创新的精神。这也正是我们中青年人在各自的工作岗位上需要展现的。

我和大多数80后一样,从小听流行音乐长大,对京剧了解很少。通过这本书,我第一次对京剧和地方戏曲有了一些初步的认识。全书分为五章——生、旦、净、丑和台前幕后。生旦净丑作为京剧四大行当,以前在电视上也经常听到这种说法,但一直不知道有什么区别。这本书虽然也没有讲这些入门知识,但把他们分在不同的章节,他们之间的区别就很清晰了。在我看来,生就是一般的男性人物;旦是一般的女性人物(但不一定由女性演员扮演);净特指“花脸”,一般都是戏曲中的英雄人物;丑就是小丑,是戏曲中的诙谐角色。在日常的生活中,大多数人都是“听”戏。我一直以为戏曲就是和歌曲一样,通过声音和曲调带给人愉悦。读过这本书后,我才知道戏曲除了唱腔,还有跌宕起伏的剧情、鲜艳华丽的服装和脸谱、精彩绝伦的武打动作、节奏鲜明的锣鼓伴奏,川剧还会加入“变脸”特技。方方面面拿出来都有深奥的学问。

和国画一样,中国的戏曲也采用了抽象的表现手法,舞台上只有很简单的道具,大多没有布景,侯宝林相声中说的四个人代表千军万马就是这个道理。因此除了唱腔,演员的动作和表情至关重要。戏曲演员并不仅仅是唱,更重要的是演,演员常说自己“浑身都是戏”就是这个原因。比如京剧《夜审潘洪》,饰演潘洪的演员通过一个眼神,表现了他内心的恐惧。如果没人点拨,普通观众也未必能注意到。由于吴钢对这些曲目非常熟悉,他的照片总能抓住演员最关键、最精彩的那个瞬间。

弘扬京剧等国粹艺术,不能靠喊口号,也不能靠强迫年轻人去听去唱去考试。首先应该让年轻人愿意接触它,了解它,认识它,然后才可能爱上它。这本书除了给老一辈京剧艺术家留下了珍贵的影像资料,更重要的是以普通百姓喜闻乐见的形式,向读者们介绍了京剧,推广了京剧。我把这本书推荐给您,希望您能喜欢并有所收获。

2022年11月7日星期一

duagon D013模块的调试及串口不通问题的解决

duagon D013模块(下文简称“模块”)是一款MVB通信模块。它对外是MVB接口,对内是并口、串口、SPI接口中任选一种,相当于给“电脑”接了一个“MVB网卡”。而这个“电脑”,既可以是PC机,也可以是嵌入式设备。近期我就接了一个活,在一块以NXP i.MX6ULL为CPU的板子上,对接这个模块。而我们选择的内部接口是串口。

模块的三种内部接口具体用哪一种,通过模块上2个Mode管脚的高低电平来设置,具体参见这个模块的规格书。选中串口后,串口是TTL电平的UART口,可直接接在CPU的UART口上。波特率、校验位等也通过给对应管脚设置高低电平配置到模块上,具体参见规格书。这里要注意的是,这个模块的串口是有硬件流控的。它有个MVB_TX_HOLD管脚和一个MVB_RX_HOLD管脚。TX和RX是站在模块的立场上说的。如果MVB_TX_HOLD是高电平,那么模块就认为电脑一方已经处理不过来数据了,让模块不要发送,所以模块就不会发送。而如果模块自己处理不过来数据了,会把MVB_RX_HOLD拉高,告诉电脑不要再发送数据了。因此,你既可以把这两个管脚接在CPU的硬件流控管脚上,也可以忽略流控功能,但前提是不要把MVB_TX_HOLD管脚拉高,也不要让它处于浮空状态,而应该把它拉低。否则该管脚的电平一旦变成高电平,那模块就不给串口发数据了。我就因为这个地方耽误了很长时间,也是决心写这篇文章的原因。

我们用的这款CPU支持多个串口,但是默认的设备树可能只打开了一两个。如果与模块通信的串口在/dev目录下找不到的话,还需要修改设备树把对应的串口打开。具体方法网上有很多文章,这里就不赘述了。需要注意的是Linux代码树中这款CPU的UART5的寄存器配置有个BUG,如果使用UART5的话要注意避坑,网上讲这个的也很多,这里就不赘述了。

自认为串口没问题了,可以写个程序尝试给连接D013的串口发送0x43 0x01 0x23 0x53四个字节. 如果串口工作正常,模块没有损坏,那么可以立即收到模块返回的0x01 0x23.到此为止,CPU和D013模块之间的串口就调通了。下一步可以移植厂家提供的api了。

duagon厂家提供的api分为devel和app两个目录,均是以C语言源代码的形式提供的。devel目录下的源代码编译后,执行make copy生成api目录下的头文件和库。用于app目录下demo程序的编译,以及自己开发的程序的编译。

devel目录下又分为common和target两个子目录. common中是对duagon模块接口的封装函数,比较复杂,移植过程中几乎不需要做改动,厂家也在文档中注明需要改的话联系厂家,不要自行修改。target是针对不同软硬件平台进行适配的代码,移植也主要是改这里。target/inc下有两个头文件,里面是接口类型、调试打印等级等信息,使用串口访问D013时波特率等参数也在这里配置。target/src下有几个osl_开头的源文件,其中osl_ser.c是用串口访问duagon模块的代码,需要注意的是原始代码中的串口文件名是针对PC上的USB转串口线的,大多数情况下需要改成和所用平台一致的文件名。osl_spi.c是SPI接口访问duagon模块所用的代码,是针对FTDI的一款USB转SPI线写的。在我的嵌入式Linux使用场景下,这套代码是完全无法使用的。我目前也正在开发Linux下SPI接口的驱动,这部分调通了再具体说。

代码改好后,可在devel目录下运行make程序对代码进行编译。如果要使用交叉编译器,需要修改build_env.mk文件中的工具链名称。编译成功会生成libhost.a静态库文件。需要注意的是,如果改动了头文件,重新编译时,make检测不到需要重新编译相关的源文件(Makefile写得不好),所以libhost.a也不会更新,对头文件所做的修改无法生效。这时候要运行make clean把.o文件和listhost.a全部删掉重新编译。编译好后,执行make copy, 会将编译好的静态库文件和一些头文件复制到api目录下,不过复制的头文件不全,后文再说。

刚才说的厂家提供的代码,除了devel目录还有个app目录。这里面就是厂家提供的demo程序。涉及MVB和D013模块的就是一个叫tcn_pd_demo的目录,还是老办法,直接make就行了。这时可能会报找不到头文件的错误。要注意在Makefile中把头文件的路径指向刚刚提到的api目录。不过即使指过去也还是会报错误,这时就要把devel/common/inc下的头文件复制过去,也可以把devel/common/inc加到头文件路径中。当然最好还是改一下devel/Makefile文件,把漏复制的头文件加上,我就是这样做的,可以一劳永逸,而且以后只发布api目录,不用带着devel目录。

tcn_pd_demo编译成功后运行,这个程序会反复给D013模块发送和读取数据,如果失败了会报错并退出,没有失败就一直持续运行下去,没有尽头。千万不要像我一样,第一次傻傻地盯着屏幕半个多小时在想怎么还没运行完。另外需要说明的是,这个程序成功执行,也只能说明CPU到D013模块之间的通信是正常的,并不能说明D013模块对外收发正常。这后面还有一段路要走。

以上是我调试D013模块的一点心得,目标读者是嵌入式软件开发经验和我差不多的朋友,所以没有写一些过于细节的东西。如果您哪里没有看明白,欢迎和我交流,我们互相学习。

2022年10月9日星期日

2022年读完的第21本书——生殖

 




2022年读完的第20本书——爷爷一定有办法

 


2022年读完的第12~19本书——How's the Weather?, Where Is It?, Jack the Hero, Lost Kitten以及对应的Activity Book

 这套书是女儿小学低年级的时候某一次寒暑假,出版社以组织阅读比赛为名卖的书。书本身还不错,但是这种卖书手段令人反感。

还有一个值得注意的点,这套书的书号是978-7-5213-1093-1. 外语教学与研究出版社此前使用978-7-5600开头的书号, 维基百科上记载的也是5600,5213还是第一次见到。









我收到的第204张QSL卡——BG6LH

 BG6LH虽然是B6区的呼号,但是在北京设台时并未使用B1/BG6LH, 使用呼号不规范。




2022年10月5日星期三

Linux下bind()失败,errno为99的原因

 我遇到过两次这种情况,每次在网上搜索原因,中文网上众说纷纭。后来经过我自己研究,发现原因很简单,就是传给bind()函数的IP地址,在本机上不存在。

2022年8月14日星期日

西门子BCD-630W电冰箱不制冷问题的解决方法

 我家于今年年初买了一台西门子BCD-630W电冰箱。5月初的一天突然就不制冷了。当时真是心急如焚。那时北京的疫情正严重,之前上海封城网上曾出现过有些人家中没有食物储备导致生活艰难的情况,所以我家冰箱了储备了很多很多食物。冰箱不制冷,那些食物很快就会变质。同时我所住的小区也进行了封闭管理,上门修理电冰箱的师傅,甚至买一台新冰箱送货的师傅都很难进来。

好在联系西门子客服后,问题很快得到了解决。修理的师傅让我们拔掉电源,30分钟之后再插回去。照做后果然就好了。其实之前我们也尝试过拔掉电源再插回去以重启冰箱,但是没有等待那30分钟而是立即插上了,所以没有效果。

2022年读完的第9本书——汉文化启蒙教育读本 韵律拼音

 该出版社还有一本《汉文化启蒙教育读本-能力训练之成语接龙(上下)》用的也是这个书号。


2022年读完的第8本书——5分钟玩出专注力3

 


2022年读完的第7本书——人体的奥秘

 


2022年读完的第6本书——同步学练测 数学 一年级下册