用Arduino 制作双轮(玩具)自平衡车(八,切割与焊接) / DIY Arduino Two wheeled self balancing vehicle (8: Cutting and welding)

IMG_20161231_180558c3f73.jpg

继续我们的玩具自平衡车DIY之旅。
前段时间我在各种纠结如何在厚铝板上打孔,最头疼的是打孔如何能不偏,以及打完孔之后如何摆放。
这真是个大难题啊。

我终日冥思苦想,对待难题,我们要么攻克它、要么知难而退、或者绕过它。
于是乎,一日突然开窍,我为何非得纠结在铝板上打孔呢,换个思路是不是会更简单?

于是我发现我还有一些洞洞板。

  • 双面洞洞板
    IMG_20161229_0748056e187.jpg
    发现这个洞洞板之后,我发觉我完全可以想办法把洞洞板固定在铝板上,这样岂不是事半功倍!
    但是洞洞板比铝板宽出好多,我要首先把它切掉。
    切掉使用的工具,就是我上篇文章中介绍的琢美电磨机啦。
    可以参考这里:用Arduino 制作双轮(玩具)自平衡车(六,手工工具之一) / DIY Arduino Two wheeled self balancing vehicle (6)

  • 为了便于切割,我先把洞洞板的一边与铝板固定
    IMG_20161229_08115019294.jpg

  • 背边看起来是这样的啦
    IMG_20161229_08113657351.jpg
    这样我沿着铝板切割就可以啦
    加工的过程乌烟瘴气,我带着3M的口罩防止被毒气熏晕。终于有惊无险的切好了,然后用砂纸打磨光滑。
    顺便用钻头打了两个孔,这样就正好可以固定到铝板上了。

  • 切割完成后是这个样子,我要在这个位置放置一个底座,这样万一我的控制板坏了,可以随时替换主控
    IMG_20161231_181108ed79f.jpg

  • 请出我的渣渣电烙铁,其实之前我有一个昂贵的大黄花烙铁,可惜不知为何牺牲了。
    这个又老又破的烙铁伴随我20多年了,然而它还好用,看来也不是越贵越好
    IMG_20161231_1807343327a.jpg

  • 把洞洞板固定在面包板上,这样会比较好操作。焊接的手艺落下了,焊的东西挺难看的
    IMG_20161231_180558c3f73.jpg

  • 焊完之后的正面图。
    IMG_20161231_1810566658f.jpg

还有好多东西要焊。
任重而道远啊。
还是搞软件好,一台电脑足矣。现在我乱七八糟的东西已经几个大箱子了。抓狂啊。

相关帖子列表


This page is synchronized from the post: 用Arduino 制作双轮(玩具)自平衡车(八,切割与焊接) / DIY Arduino Two wheeled self balancing vehicle (8: Cutting and welding)

用Arduino 制作双轮(玩具)自平衡车(七,说一下电机驱动板L298N) / DIY Arduino Two wheeled self balancing vehicle (7)

继续我们的玩具自平衡车DIY之旅。

在前前文中,我们介绍了直流减速电机
用Arduino 制作双轮(玩具)自平衡车(五,直流减速电机) / DIY Arduino Two wheeled self balancing vehicle (5)
这一节我们介绍一下电机的驱动板

做平衡车比较常用的电机驱动板有L298N以及TB6612FNG
这里我们将先介绍一下L298N

以下内容为以前原创,乾坤大挪移过来了

关于L298N

L298N是ST公司一种高电压、大电流电机驱动芯片,其中最高工作电压可达46V,持续工作电流为2A,瞬间峰值电流更是可达 3A。该芯片内含两个H桥的高电压大电流全桥式驱动器,可以直接驱动两个直流电动机。

  • 这款红色的是比较常见的(这是我以前在别的论坛上发的图)
    L298N

  • 这款蓝色的多了一个按钮开关,用起来更方便一些。
    IMG_20161223_12041168cc3.jpg

模块接口介绍

已红色模块为例
如图所示,模块上共有7个接线柱
底侧的三个接线柱,分别是VCC, GND, 5V,两侧分别为(OUT1, OUT2), (OUT3, OUT4), 两两一组,可以控制两个电机。

上边靠近OUT1处,有一处跳线(JP1),控制是否使用板载供电。

底侧信号输入部分,可以分为两组(ENA, IN1, IN2) (ENB, IN3, IN4),对应2个电机的控制。
底侧信号输入部分上边,一排针,分别是(5V, 5V, GND), (GND, 5V, 5V)

接线方式

以红色模块为例:
跳线JP1闭合(使用板载7805 5V供电电路板)。
(如果不使用板载7805供电电路板,那么ENA上方的5V接Arduino的5V)
接线柱VCC接电源(+),接线柱GND接电源地(-).
ENA 接Arduino PWM调速信号(我接的3, 如果不需要调速,则可以直接将ENA与上边的5V用跳线帽连接)
IN1, IN2接Arduino的数字针(我接的是5, 6)
信号GND,接Arduino的GND (*:共地非常重要)
OUT1, OUT2接电机的正负极

  • 来张以前做的实物图
    L298N

    如何控制

通过ENA来控制电机使能,当ENA为低电平时,电机停转
可以通过对ENA输出PWM对电机进行调速
通过给IN1, IN2高低电平,来控制电机旋转
IN1, IN2 = LOW, HIGH 正转
IN1, IN2 = HIGH, LOW 反转
IN2, IN2 = LOW, LOW 或HIGH, HIGH 刹车

关于调速

我们可以通过给ENA,PMW信号来对电机进行调速
ENA低电平范围:0.3V<= VIN <= 1.5V (这个区间控制信号无效,所以电机停转)
ENA低电平范围:2.3V<= VIN <= VSS (这个区间控制信号有效)
所以原则上,我们输入的PWM信号等效电压应该在2.3V以上,如果VSS等于5V,那么我们应该输入118以上的量
(在1.5V至2.3V这个区间,我测试100左右还是有效的,再低的值电机嗡嗡响,不转动,实际情况与电机,电源等相关,应该略有不同)

Arduino代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
    // Example by Joytag
// http://forum.godpub.com/thread-33-1-1.html
#define ENA 3
#define IN1 5
#define IN2 6

void setup() {
pinMode(ENA, OUTPUT); //PWM
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
}

void loop() {

// Speed
analogWrite(ENA, 100);

//
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
delay(5000);

digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
delay(5000);

// STOP
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
delay(5000);


// Forward
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
delay(5000);

// Forward in high speed
analogWrite(ENA, 255);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
delay(5000);
}
`

以上代码,实现
正转5秒
反转5秒
停止
正转5秒
高速旋转5秒

控制两路电机

控制两路电机与控制一路电机没啥本质区别,就不多写了。

相关帖子列表


This page is synchronized from the post: 用Arduino 制作双轮(玩具)自平衡车(七,说一下电机驱动板L298N) / DIY Arduino Two wheeled self balancing vehicle (7)

用Arduino 制作双轮(玩具)自平衡车(六,手工工具之一) / DIY Arduino Two wheeled self balancing vehicle (6)

IMG_20161229_11454923178.jpg

继续我们的玩具自平衡车DIY之旅。
俗话说,工欲善其事,必先利其器。 所以什么台锯、台钻、3D打印机、激光雕刻机、CNC呀的啥的,我是统统—-没有的。
开个玩笑,不是我不想有,而且人民币太难求。

但是做些手工也不能完全徒手不是嘛。于是有一天心血来潮,一狠心,买了套高端设备琢美(DREMEL) 3000

不多废话,开始上图啦

  • 装工具的箱子,是不是看起来挺高端的,呃,怎么拍反了?DREMEL倒过来了。摄影师呢!过来,我保证不打死你。
    IMG_20161229_114624eb54c.jpg

  • 箱子打开之后的样子
    IMG_20161229_11454923178.jpg

  • 专用软轴,对于直接操作不方便或难以触及的地方,可以用这个来传导
    IMG_20161229_114415ac67c.jpg

  • 来看主体了,10000到32000转的转速还不错吧?
    IMG_20161229_1141472dbaf.jpg

  • 大大的标识
    IMG_20161229_114229ac5e5.jpg

  • 调速按钮
    IMG_20161229_11424583ffd.jpg

  • 常用附件,什么切割、研磨、钻孔、雕刻、抛光,都不在话下啦。
    IMG_20161229_1143385b523.jpg

  • 研磨/砂磨专用引导器,有了它,事半功倍呢。
    IMG_20161229_1144065d1d2.jpg

  • 呃,这个不再套件内,是我自己买的博世钻头啦。有了它,就可以在金属上钻孔啦。
    IMG_20161229_11443950f79.jpg

图发完了,是不是看起来不错。
我准备用这货帮忙完成DIY双轮(玩具)自平衡车啦。

相关帖子列表


This page is synchronized from the post: 用Arduino 制作双轮(玩具)自平衡车(六,手工工具之一) / DIY Arduino Two wheeled self balancing vehicle (6)

在雾霾中被毒害了多天的我们,终于又迎来了一场雪/The another snow

IMG_20161223_094444da244.jpg

在雾霾中被毒害了多天的我们,终于又迎来了一场雪。
呼吸着久违了的新鲜空气,觉得活着还是很好的。


IMG_20161223_0944342c61a.jpg
一楼阿姨家的小院,门栏杆上积了厚厚的一层雪。
凌乱的葡萄架以及果树,看起来别有一番滋味。


IMG_20161223_0945070aeca.jpg
转角处的杨树。
夏天的暴风雨,将其的根部拽出来好多一片,所以现在它是倾斜的。
暴雨过后,我向物业报告了这个问题,希望我们处理一下。然而一直没有动静。
现在看起来,夏天、秋天、冬天,近乎三个季节,它的根部应该又重新扎实了吧,这就是顽强的生命力。


IMG_20161223_094533c84fc.jpg
我很想配上:大雪压青松,青松挺且直;要知松高洁,待到雪化时。
然而这不是大雪,这也不是青松。也不用等到雪化,风一吹,雪就会落静。


IMG_20161223_094605_123828.jpg
地下车库和儿童乐园。
寒冷的天气小朋友们都没有出来玩。
稍晚一些时候,就会有打雪仗的了。


感谢大自然,一次次的为我们涤净尘埃。
雾霾也好,污秽也罢,一场大雪都销声匿迹,再现银装素裹,玉宇澄清。


This page is synchronized from the post: 在雾霾中被毒害了多天的我们,终于又迎来了一场雪/The another snow

如何远程访问cPanel中的MySQL数据库?

写下这个标题后,突然有一种穿越了感觉。
上一次写类似的内容是多少年前?
十年前还是五年前?太久远的事情,记忆的不是很清楚,但至少可以确定的是,3年以内我肯定没写过。

cPanel中添加MySQL数据库

在cPanel中创建MySQL数据库,想必用过的朋友都很熟悉。其实步骤也是相当的简单。
1) cPanel->MySQL中添加数据库
2) cPanel->MySQL中创建数据库用户
3) cPanel->MySQL中将数据库以及数据库用户建立起来关联
4) PHP等程序中用对应信息连接并使用数据库,数据库主机名用localhost

远程访问cPanel中的MySQL数据库

当需要在其它主机上使用cPanel中创建的MySQL数据库,则有一些额外的工作要做。
大致需要三个步骤:
1) 将MySQL服务绑定到指定的公网IP
2) 设置服务器的防火墙规则
3) 在cPanel中允许数据库远程连接

下面我们分别讲解:

  • 将MySQL服务绑定到指定的公网IP

MySQL默认绑定到0.0.0.0默认监听所有的IP。
这样很不安全,一般的服务商出于安全考虑,会设置只绑定至localhost
即在/etc/my.cnf设置bind-address=127.0.0.1
而这样会导致无法在远程访问,所以我们首先要将MySQL服务绑定到指定的公网IP
即在/etc/my.cnf设置bind-address=x.x.x.x 将x.x.x.x替换成你的IP

(1) MySQL无法绑定到多个IP,如果需要绑定到多个IP,则需要设置绑定至0.0.0.0监听所有IP,然后配合防火墙规则实现相同的效果。
(2)绑定至指定IP后,本地依然可以通过localhost访问。

  • 设置服务器的防火墙规则

A: 如果事先不清楚那个远程主机要访问,那么就允许所有的IP访问我们绑定IP的3306端口
以CSF为例,添加如下规则: tcp|in|d=3306|d=x.x.x.x

B: 如果已知远程主机地址,出于安全考虑,我们应该只允许远程主机访问服务器的3306端口
以CSF为例,添加如下规则: tcp|in|d=3306|s=y.y.y.y 其中y.y.y.y为远程主机IP

  • 在cPanel中允许数据库远程连接

我们还需要在cPanel中允许数据库被远程连接。
简单来讲就是在Home >> Databases >> Remote MySQL中添加你要允许的IP或主机名即可
详情可以参考:Remote MySQL

测试访问

当设置完成后,可以用以下代码测试是否访问正常。
代码来源: http://php.net/manual/en/mysqli.construct.php
请将’host’, ‘my_user’, ‘my_password’, ‘my_db’换成对应的信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

<?php
$mysqli = new mysqli('host', 'my_user', 'my_password', 'my_db');

/*
* This is the "official" OO way to do it,
* BUT $connect_error was broken until PHP 5.2.9 and 5.3.0.
*/
if ($mysqli->connect_error) {
die('Connect Error (' . $mysqli->connect_errno . ') '
. $mysqli->connect_error);
}

/*
* Use this instead of $connect_error if you need to ensure
* compatibility with PHP versions prior to 5.2.9 and 5.3.0.
*/
if (mysqli_connect_error()) {
die('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}

echo 'Success... ' . $mysqli->host_info . "\n";

$mysqli->close();
?>

如果一切正常,那就恭喜喽。


This page is synchronized from the post: 如何远程访问cPanel中的MySQL数据库?

用Arduino 制作双轮(玩具)自平衡车(五,直流减速电机) / DIY Arduino Two wheeled self balancing vehicle (5)

继续我们的玩具自平衡车DIY之旅。

上篇帖子中提及的铝合金板上打孔的问题,暂时还没解决。
偶尔在同学群里提了一句,结果各路大神纷纷给我建议: 有的建议让我买个台钻,有的让我去他家取金属麻花钻头,有的让我提供图纸给我用CNC机床加工,有的要去给我问问他们实验室都有啥设备可以让我使用…
真是一堆亲同学啊。

然而我最主要的问题,还是要确定到底用什么样方案以及如何摆放。

先来说说直流减速电机吧。

电机的组成

我们这次DIY平衡车用的是这款电机。
全称应该叫做带霍尔编码器的直流减速电机
所以从逻辑上,可以分为三个部分

  • 霍尔编码器
  • 直流电机
  • 变速箱

霍尔编码器

有关编码器的话题相对复杂一点点,我会在后续的帖子中单独介绍。
这里暂时略过。

直流电机

去掉霍尔编码器部分后,就变成了直流减速电机。
为了方便说明,我用另外一款直流减速电机来说明。其实是一样的,只是我DIY用的电机没有更详细的参数。
IMG_20161223_1203002596a.jpg
大致这个样子,后边是电机,前边是变速箱。

这款电机相对比较正规,印有详细的参数,我们弄个大点的图片来看。
IMG_20161223_120332f070f.jpg
可以看到电机的电压是12V,转速是3500转每分钟。

而加上变速箱后,是12V下是60转每分钟。

直流电机就需要两根线。分别接电源的正负极,对调接线则电机更换转动方向。
另外,电压决定电机的转速。比如这个电机12V下3500转,如果我们给更高的电压,它的转速就会提高,反之则会降低。
根据这个原理,我们可以控制电源的正负极来控制电机转向,通过调制电压来控制转速。
(需要注意的是,电压有一定范围,太高了会导致电机烧毁,太低了可能不转)

变速箱

变速箱的作用就是通过一系列的齿轮传动,来达到增加或者降低转速的目的。

此款电机的变速箱为减速齿轮,来张特写。
IMG_20161223_120127cae2f.jpg

降低转速的目的是提高电机转矩,简单的说让它有更大的力气。
比如电动窗帘电机,汽车车窗升降电机,后视镜调整电机,都用的减速电机。

增加速度的齿轮,最常见的是老式钟表的发条机制,小时候总拆着玩,现在很少见到了。

关于电机驱动

讲了这么多,但是也不能手动更换电源极性,也不能手动调节电压不是?
所以要用到电机驱动板,这样我们就可以通过单片机程序控制啦。
接下来的文章,我会详细介绍,这里先放个图喽。
IMG_20161223_12041168cc3.jpg

相关帖子列表


This page is synchronized from the post: 用Arduino 制作双轮(玩具)自平衡车(五,直流减速电机) / DIY Arduino Two wheeled self balancing vehicle (5)

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×