自己动手做一台计算机(一)

前言

概述

        了解了前面的一些模拟电路的基础知识,接下来我们要通过自己动手做一台计算机来了解学习数字电路等其他的一些知识。要想自己动手做一个计算机,首先需要知道什么是计算机?计算机分为哪些模块?计算机的组成原理是什么?以及计算机是怎样工作的?带着这些问题,我们一起开启接下来的学习!

自己做一台计算机步骤

        其实做一台计算机就像盖房子一样,上面步骤看起来很复杂,实际上很轻松,总结如下:

1. 学习数字电路和计算机的基础知识,先了解了解盖房子用什么砖。

2. 设计出一个计算机的结构,就像盖房子需要先设计图纸一样。

3. 用电子元件(比如电线、电路板、芯片等)制作出计算机的电路,开始搬砖砌墙了。

4. 设计出计算机的指令集(比如加减乘除、取数存储等),就像是设计每个房屋的功能,这是客厅,这是书房,这是健身房,这是卫生间,水源电源和排水怎么设计

5.  开发出计算机的软件,测试是否能够正常工作,房屋里面放上家具,看看好不好用。

什么是计算机

        计算机是一种能够执行计算的设备,1946年2月14日世界上第一台数字计算机ENIAC在美国宾夕法尼亚大学被制造出来,这标志着人类社会进入了信息化时代。

计算机核心原理

        要学习计算机核心原理,从自己动手制作一个简单的CPU开始是最佳的途径。所以要实现一个简易的CPU,配合一些外设组成一个完整的计算机。这是个图灵完备的8位CPU的计算机,支持汇编语言,可以用我们自己的汇编器生成机器指令。因为预算有限,后期我会用到电路仿真软件进行仿真,通过模拟器运行你设计的计算机;当然如果预算充足,可以把基于原理图把真正的计算机制造出来。

CPU-中央处理器

        CPU中央处理器是指挥计算机工作的核心部件,在计算机中相当于大脑的地位,承载了计算机中最基本的原理。近70年来,从早期ENIAC计算机的CPU, 到现在的手机中超大规模集成电路CPU,CPU变化的只是制作工艺,其根本的工作原理基本没有变。

电子计算机发展历史

 ●1945年 哈佛马克1:使用继电器,用电磁效应,控制机械开关,缺点为有磨损和延迟。

最早还因为有虫子(bug)飞进去导致故障,引申出bug=故障的意思。

● 1943年 巨人1号:使用真空管(三极管),制造出世界上第一个可编程的计算机。

● 1946年 ENIAC:第一个电子数值积分计算机,为第一台通用计算机。

● 1947年 晶体管出现,使用的是固态的半导体材料,相对真空管更可靠。

● 1950年代空军ANFSQ-7: 真空管到达计算极限。

● 1957年 IBM 608: 第一个消费者可购买的晶体管计算机出现

数字电路与二进制

二进制

数和数字

        简单来说,数是一个抽象的概念,而数字是用来表示数的符号。数 (number) 是一种数学抽象概念。数字 (digit) 是表示数量的符号,如 0, 1, 2, 3, 4, 5, 6, 7, 8, 9。二进制没那么神秘,只不过是人们又发明出来一种新的组合符号来表示数字。

bit位

        计算机中的一位二进制表示:单个数字1或0,1位二进制数字命名为位(bit),也称1比特。

byte字节

        1byte=8bit,即1byte代表8位数字。最早期的电脑为八位的,即以八位为单位处理数据。为了方便,将八位数字命名为1字节(1byte)。

十进制与二进制

        十进制有10个数字,0-9,逢10进1(不存在10这个符号),则每向左进一位,数字大10倍。二进制有2个数字,0-1,逢2进1,(不存在2这个符号),则每向左进一位,数字大2倍。我们可以用8421码将二进制与十进制连接起来,进行转换。比如二进制的1011:1*2^0 + 1*2^1 + 0*2^2 + 1*2^3= 11

二进制用途

         二进制可以表示文字,如ASCII 美国信息交换标准码表

        二进制也可以表示图片,下边是个6x6大小的显示屏,由36个白色LED组成,只有黑和白两种颜色,我们可以用0表示黑,用1表示白。

        led灯可以通过PWM等技术去调节亮度,这样就可以表示不同的亮度,从黑(不亮)到白色(最亮),每个像素点通过一个0到255的8bit的数字(1byte)来表示, 所以28x28像素的灰度图图片需要784个byte来表示。

        用0 ~ 255*255*255表示颜色数据,每一个像素点由RGB三种颜色组成。

        二进制也可以表示声音

        当然,二进制也可以表示视频,无非就是图片+声音。在数字视频中,视频帧被分解为数字像素,并将每个像素表示为二进制数。每个像素通常由三个分量表示:红色、绿色和蓝色分量,即RGB值。每个分量通常使用8位二进制数(即一个字节)表示,因此每个像素由24位二进制数(即三个字节)表示。视频的每一帧都由一系列像素组成。如果视频的分辨率为1920 x 1080(高清1080p),则每一帧将包含1920 x 1080 = 2,073,600个像素。对于每个像素,计算机将RGB值编码为二进制数字,并将所有像素编码成一长串二进制数字序列。这个序列被存储在计算机的硬盘驱动器中,以便以后可以被读取和播放。

逻辑门

        逻辑门是一种电路元器件,它能够执行一种或多种逻辑运算。常见的逻辑门有:与门(AND gate)、或门(OR gate)、非门(NOT gate)、异或门(XOR gate)等。这些逻辑门通过接受一些输入信号,并根据逻辑运算规则产生一个输出信号。这些逻辑运算可以用来构建复杂的逻辑电路,实现各种各样的功能。

与门

        与门是计算机里面一种很特殊的门,它有两个输入,叫做A和B。如果A和B两个输入都是1,那么与门的输出就是1,否则输出就是0。与门的作用就像是一个开关,它能够根据两个输入的情况来决定是否让电流通过。

或门

        或门是计算机里面一种很特殊的门,它有两个输入,叫做A和B。如果A和B两个输入有一个是1,那么与门的输出就是1,否则输出就是0。或门的作用就像是一个开关,它能够根据两个输入的情况来决定是否让电流通过。

非门

异或门

        异或门是一种特殊的非门,它可以把两个电信号进行比较,如果这两个信号相同,它的输出就是0;如果不同,它的输出就是1。

小结

        与或非是计算机逻辑门的最基础的部件,其他任意的部件都可以通过与或非三种门来表示。

案例

        用EDA绘制各种门电路:继电器:C35449,按钮:C2834896,发光二极管:C3097768,电阻:C714232,电源接头:C8404。

原理图如下:

pcb图如下:

3D效果图如下:

算数逻辑单元

ALU

        ALU(Arithmetic Logic Unit)是计算机CPU中的算术逻辑单元,它负责处理计算机中的数学运算和逻辑运算。它可以执行基本的算术运算(加减乘除)和逻辑运算(与或非),并且根据运算结果产生相应的输出。ALU是CPU中最重要的部分之一,负责实现计算机的基本运算功能。

半加器

        半加器,只能完成一半功能的加法器,这里说的一半功能就是他不能接收到进位。

全加器

        如果一个加法器能接收进位,还能完成加法,那他就是一个全加器,一个全加器由两个半加器组合而成。

8位二进制加法器

溢出

        计算的结果超过了数据的容量时,就会出现数值溢出,计算机溢出的概念:在有限的空间内,无法存储位数过大的数,则称为溢出。

补码

        把一个正数的二进制按位取反,然后再加一就是负数的补码表示方法。使用补码表示法的优点在于,补码还可以避免在数值0上的两种表示方式(+0和-0),因此更加方便和精确。有了补码的表示方法,计算机就可以用加法电路来完成减法运算。

锁存器

        与门可以存储下来0, 或门可以存储下来1,我们把与门和或门进行一个组合,就能做出来第一个有用的电路结构。

上升沿生效的的锁存器

下降沿生效的锁存器

寄存器

寄存器=8/16/32位锁存器

CPU中的8位寄存器

说明

        后续内容会陆续发布!

  • 19
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 自己动手制作一台SLAM导航机器人是一项非常具有挑战性的项目,需要一定的机械、电子、计算机编程等综合技能。首先需要设计机器人的整体结构,包括底盘、轮子、控制电路等等,并进行适当的加工和组装。 其次,机器人需要配备激光雷达、相机等传感器,以获取周围环境的数据,并使用SLAM算法实现地图构建和自主导航。这涉及到深度学习、计算机视觉等技术的应用,需要有一定的专业知识和实践经验。 最后,机器人的控制和调试也是项目中非常关键的一步。需要对机器人的控制器编程,以实现自主导航、避障等功能,并不断对其进行调试,使其性能最优化。 自己动手制作一台SLAM导航机器人是一项极具挑战性的任务,但也会带来非常有趣和有意义的经历。能够通过自己的努力和创造力,实现一个自主导航机器人,不仅是一种技术上的成就,更体现了自己不懈追求的精神和自我超越的力量。 ### 回答2: 自己动手做一台SLAM导航机器人需要一定的相关知识和技能,并且需要进行步骤繁琐的操作。首先需要了解SLAM技术原理、机器人硬件结构、编程语言和相关软件等基础知识。其次需要购买所需的硬件器材,包括一个基于ROS系统的移动底盘、LIDAR传感器、IMU传感器、控制器、电源和其他所需材料。接着需要进行硬件组装和连接,把所有的硬件器材和传感器按照设计要求进行组装和连接。 接下来需要完成编程部分,对机器人进行代码编写和程序调试。编程需要涉及ROS系统、C++等多种编程语言,需要进行程序设计、实现、调试,以确保机器人顺利工作,并能实现SLAM导航功能。此外,还需要进行传感器校准,以确保机器人获取到的传感器数据准确无误。 最后,需要进行实地测试和调试,检验机器人的导航、避障等功能是否正常运作。整个过程复杂繁琐,需要耗费大量时间和精力。自己动手做一台SLAM导航机器人可以锻炼自己的技能和动手能力,同时也可以满足个人的爱好和需求,但需要投入足够的精力和耐心。 ### 回答3: 建造一台 slam 导航机器人需要计划、材料和技能。首先,您需要确定您的机器人将运行的环境类型,并为其选择合适的传感器和控制器。一般来说,您需要使用激光雷达扫描环境,并安装摄像头和微控制器等设备以控制机器人的运动。其次,您需要设计、打印或制造机器人的外壳,并组装电气元件和机器人控制器。最后,您需要编写软件以使机器人能够感知其环境、规划路径并导航至目标。 然而,这并不是一项简单的任务。要建造高效的 slam 导航机器人需要一定的电子、机械和编程技能。因此,新手建议始于初级项目,例如制造追踪线的机器人或机械臂。这些项目将帮助您熟悉机器人技术,同时也提高了您的技能和信心,为进一步建造 slam 导航机器人做好准备。 如果您决定 DIY 一台 slam 导航机器人,提前做好计划和准备工作很重要。购买正确的材料、学习机器人编程和构建的技能,是这个过程中最关键的部分。当您完成了这个项目时,您将拥有一台能够感知、规划和导航的机器人,并且这个项目还能提高您的技能并激发您的创造力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

'Magic'

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值