写了许多篇树莓派Pico的文章,经常要画逻辑电路连接示意图,首先我想到的是PPT,画一张图会累得半死。
当然专业的工具是Fritzing,我也试过,里面有很多现成的模具可以直接拿来用,但鼠标拖来拽去还是不方便。
程序员还是用程序员的办法来画图,用代码生成图形是最理想的,将来维护很方便,稍微修改一下,就可以生成另一张图。最后,我选中了Graphviz。因为我只想用它直观展示各个引脚的连接关系,而不是实际的连线位置。
Graphviz是一个非常有名的做图工具,非常适合做有向图、无向图,几行简单的代码可以自动排版生成你想要的图形,图形元素越多越复杂,它的威力越大。
它的绘图语言为DOT,语法还是相当强大的,如果你想精细地调整形状、线条、颜色和布局的话,需要认真看它的用户手册,尝试各种组合。
Graphviz自身带的gvedit.exe程序不太好用(在Windows10里直接找不到它了,只有在2.38版本里能找到它),对中文支持不太友好,编辑它也有些麻烦,最好在Notepad++安装一个Graphviz插件和语法高亮显示,然后按"F9"就可以随时预览图形。
我在写《读取MPU6050加速度和陀螺仪传感器数据》这篇文章时用到的绘图源代码:
digraph G {
graph[rankdir = LR]
node[
shape=record
fontname="Consolas"
]
pico[
label="
{
{
{<gp0>GP0|1}|
{<gp1>GP1|2}|
<gnd3>GND|
{<gp2>GP2|4}|
{<gp3>GP3|5}|
{<gp4>GP4|6}|
{<gp5>GP5|7}|
<gnd8>GND|
{<gp6>GP6|9}|
{<gp7>GP7|10}|
{<gp8>GP8|11}|
{<gp9>GP9|12}|
<gnd13>GND|
{<gp10>GP10|14}|
{<gp11>GP11|15}|
{<gp12>GP12|16}|
{<gp13>GP13|17}|
<gnd18>GND|
{<gp14>GP14|19}|
{<gp15>GP15|20}
}
| Raspberry Pi\nPico |
{
{40|<vbus>VBUS}|
{39|<vsys>VSYS}|
<gnd38>GND|
{37|3v3_en}|
{36|<v3>3v3_out}|
{ 35|} |
{34|<gp28>GP28}|
<gnd33>GND|
{32|<gp27>GP27}|
{31|<gp26>GP26}|
{30|RUN}|
{29|<gp22>GP22}|
<gnd28>GND|
{27|<gp21>GP21}|
{26|<gp20>GP20}|
{25|<gp19>GP19}|
{24|<gp18>GP18}|
<gnd23>GND|
{22|<gp17>GP17}|
{21|<gp16>GP16}
}
}"
]
imu
[
label="
{
{
<vcc>VCC|
<gnd>GND|
<scl>SCL|
<sda>SDA|
<xda>XDA|
<xcl>XCL|
<ad0>AD0|
<int>INT
}
| MPU-6050
}"
]
pico:v3 -> imu:vcc:w[color=red]
pico:gnd28 -> imu:gnd [color=black dir=both arrowhead=dot arrowtail=dot arrowsize=0.5]
pico:gnd28 -> imu:ad0[color=black dir=both arrowhead=dot arrowtail=dot arrowsize=0.5]
pico:gp16 -> imu:sda[color=green]
pico:gp17 -> imu:scl[color=blue]
}
如果你有更好的绘图工具,也欢迎留言。
推荐阅读:
树莓派Pico开发系列文章