打印
[四轴原创DIY]

11月13日更读到电压3775mV-ST18i旧手机主板。做4轴飞行器航

[复制链接]
10558|46
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
290399937|  楼主 | 2013-9-24 19:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 290399937 于 2013-11-17 21:45 编辑

-?

哈哈。业余爱好。一个好想法总是一个项目开始

曾经(少数人认为)经典的不能再经典的手机ST18i。服务半年被我摔无数次之后读不出内存卡了!那时大屏刚开始流行。高配+小巧。CPU1.5GHz(应该能运行很多复杂一点的算法)。宽度60mm以下高性能的除了iPhone和st18i真是不多啊! 一直放着不想扔掉。  
这个没法读内存卡 就不能拍照和刷第三方系统!
能干嘛呢?主板小巧!!做远程wifi监控摄像头?安装pps当看看电影?那能不能做4轴飞行器的主控板呢?
还没开始做。找到了身st18的电路图pdf格式!

正在研究。除了。hdmi和usb图上就没有对外接口?我是没找到!几个nc的网络标号 ?是电池触片吗?

但是能找到i2c有2条!2条总线!
接上mpu6050。?然后再研究android 可执行文件去打开i2c设备文件读取?方向是这样的!?希望有经验的。一起讨论.

-----------------------------------------------------------------分割线------------------------------------------------------------------------------------------
2013-10-26:
     没人帮忙吗?一个人好难的。
      linux系统太庞大了。。。  这几天都是在折腾linux下的c语言。。open函数之类的。
     总结一下这几天的成果。。
    1:/sys/class/gpio目录可以操纵io口。。然后通过sd 卡槽输出pwm。。。有6路。。也就是6路IO口。。MSM8255-CPU的58,59,60,61,62,63这6个口
          未发现 主板上的几十个金属圆点对应的io口、。。
   2:  fd = open("/dev/input/event7",O_RDWR);     然后可以read();  可以得到AK8975的三轴数据.
            10HZ 更新速度,360度/24000分辨率(方老师对不起了, 忘记是分辨力还是率)   ..感觉不够快。。。好似MPU6050可以达到8KHZ??
  3 : fd = open("/dev/input/event3",O_RDWR);    然后可以read();    可以得到BMA150的三轴加速度数据 。。。没仔细看,,大概10位分辨率


很多时间花在 fd = open("/dev/i2c-4",O_RDWR);  因为/sys/devices/i2c-4/4-0038下的name文件内容是bma150  ,跑去 折腾res = ioctl(fd,I2C_SLAVE_FORCE,0x38);//设置I2C从设备地址[6:0]  

结果就是就是读不到数据  无意间l搜到adb shell getevent  才发现 /dev/input/event X  也能。。。。纠结了


-----------------------------------------------------------------分割线------------------------------------------------------------------------------------------
2013-11-03:
    电机好贵啊~~~~~西四市场一个老头卖给我的。5块钱一个。型号是FP180-kw2854。。。螺旋桨是105mm的 。2正2反。1块2


   
  图上 电池是3节旧华硕笔记本上拆下来的IRC18650-22E  sansung-SDI-574..看上去像是2200mah的意思,感觉3*50g吧。没保护板
2节并联7.8V 。拖4个马达后是5.1V6A。没飞还要抬着。
然后是3节电池11.3V 拖4个马达降到6.2V9A。感觉快要飞起来了。

电流电压是分2次测的,只有一个便宜万用表。可能有点误差。噪音么 没仪器测 反正不小。小侄女睡觉听见了,眼睛一开又睡着了。
如果是航模电池的话
2S/7.4V
3000mah
放20C
冲5C
147g
90*35*25mm
算15A工作电流 只能飞12分钟????这么短啊~纠结。。

-----------------------------------------------------------------分割线------------------------------------------------------------------------------------------
2013-11-07:





有刷马达驱动部分。。如上图。。

TPC8107是笔记本电池控制板上的。。貌似电流电压都够了 ,P管应该也能用。。。
3A的续流管FR309是西四5毛钱:curse:。。。。8050。2K2。1K。都是DVD机主板上拆的。
用18650-2节跑了一下  电机居然发热了(pwm范围是1/2000  -  1999/2000。。 T=2000us大概 500hz?)~~~不烫。。有待测试。。。

新电池还在路上。3节1300mah。25C的锂电池。第一次买航模电池。不知道会不会和之前的18650一样,一通电压就下降很多,,
保险起见买3节,如果多了,留着下次用在烈火班主的ARM平台吧(感谢版主,觉得还是先弄一个算一个吧。。)。


程序测试:
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
#include <string.h>
#include <linux/i2c.h>
#include <linux/i2c-dev.h>

int main() {
printf("\n");
printf("---------------------------------------------------\n");

    FILE *p=NULL;
    int fd;

    int i=0;
    p = fopen("/sys/class/gpio/export","w");
    fprintf(p,"%d",58);
    fclose(p);
    p = fopen("/sys/class/gpio/gpio58/direction","w");
    fprintf(p,"out");
    fclose(p);
    i=0;
    while(1)
    {
                i++;
                if(i==2000)i=0;
               
                p = fopen("/sys/class/gpio/gpio58/value","w");
                fprintf(p,"%d",1);
                printf("==%d",i);
                usleep(i);
                fclose(p);
                p = fopen("/sys/class/gpio/gpio58/value","w");
                fprintf(p,"%d",0);
                printf("==0\n");
                usleep(2000-i);
                fclose(p);
        }
printf("\n----------------------------------------------------\n");
printf("-18-------------------------------------------------\n");
close(fd);
return 1;
}


手机主板上SD卡电路图   就这这坏了 。。。才读不出卡的。。。。。现在58,59,60,61,62,63教都是好的。。。测试是用58脚


-----------------------------------------------------------------分割线-----------------------------------------------------------------------------------------------------------------------------------------------
2013-11-10:
...
正在充电。(ps201311-12:冲了一晚上没冲进去多少~~·只有3.2v。高科技的就是高科技,电池是3线的。原电池中间T脚内部对地有个热敏电阻27K样子~~~索性在主板电池接口中间脚到地串了20k+10k~~)。。
2节新买的航模电池一次冲一个。板载管理充电器,, 通过下面图的插头切换,冲上节3.7-7.4V的时候拔出来插边上那针前,要把边上的电机总开关 断开,
打算飞行时主板取电 来自下面一节,好像有欠压保护。放电到2.8V 自动关机了 ,无征兆。。
板载PM8058 OVP, Charger.。貌似这个模块在运行(电池没保护板),看来要找到电池电量文件在哪。飞的时候看着电量。不然嘿嘿~~~~~


sd卡槽被摧毁了。。。4路pwm通过3个5K1。。1个4k7  。引到8050的B级。。。。。
测试了一下4个电机全速。能飞起来~~升力还可以。。。
2节电池7.6V下降到7.2V.....26A放电的航模电池果然不一样啊~
7.8V是12.5A
6.1V是9A
那7.2V电流可能是11A。。。0.4/11/2??这样算吗?那内阻大概 是18*2毫欧???~~
至于店家 某X宝多多。(搜索“高倍 锂电”。建议买单体的,不是2s3s之类很贵。。我买的12元1300mah 20c,店家描述是相比10元以下的上乘。。他家高倍15-20C的1200mah,1800mah都只要7-8元)

接下来是~最难的飞空程序了。应该会比较纠结 大概一年半载样子吧。。
在这个之前要解决2个问题。。。
之前测试过:  
       手机adb模块配置为wifi模式,“无视”有线连接(有线usb线无效了),电脑通过wifi连接adb shell(连接android系统的超级终端,带root),可以无线下载程序,各种命令。运行飞控程序,
       但是不插显示屏启动的话,手机是“不完全的”,意思是 它不连接路由器。不连接wifi了呀。
     办法是:显示屏插着 启动好了拔掉~~。。
然后我觉得奇怪,,就把显示屏拆了。。。就剩一点点:排线到玻璃板那里,屏的玻璃一点点拨碎到到剩一点点。。那一点好像是显示控制器所在位置 ,排线总成这样子不重了。

下午焊接电池的时候~~最后的一点点 显示屏玻璃断了。一启动就发热。。。~~~
所以问题就是,在没有屏幕的情况下  重新刷了系统(回到有线超级终端模式),,想办法配置wifi   连接上路由器~~~
.。目前是在弄
wpa_supplicant                                   前者系统自带了,
wpa_cli                                                这个网上下载了 ,
/system/etc/wifi/wpa_supplicant.conf                wifi配置文件
/data/misc/wifi/wpa_supplicant.conf                  wifi的配置文件备份
,,,看能不能连接上wifi、。。。不然没有无线就白搭~~~
弄来弄去的时候 有看到路由器页面的“无线状态”有出现手机的物理地址,90:----。接受7数据包  发送2数据包  这是什么征兆啊?~~~但是怎么弄出来的  不知道~~~
-----------------------------------------------------------------分割线-----------------------------------------------------------------------------------------------------------------------------------------------
2013-11-11:
# /etc/wifi/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
network={
  ssid="TP-LINK_41E8XX网络名字"        带引号
  scan_ssid=1
  psk="密码"             带引号
  key_mgmt=WPA-PSK
  priority= 1
}

新建wpa_supplicant.conf文件内容在上.....下载到   /system/etc/wifi/wpa_supplicant.conf    和   /data/misc/wifi/wpa_supplicant.conf  覆盖原文件
创建/var          权限777
创建/var/run   权限777
/system/bin命令:wpa_supplicant -d -Dwext -iwlan0 -c/system/etc/wifi/wpa_supplicant.conf
/system/bin命令:dhcpcd wlan0

连接 WIFI,,,,可以ping路由器了~~~~纠结啊。。。
------------------
wpa_supplicant 指令执行后 路由器的“无线状态”页面就有手机的物理地址出现了,发送包10个以内  接受也10个以内。。 但是 DHCP目录又没有 给手机分配IP、、、
快要不想弄 了。。。
不小心看到/system/bin/dhcpcd。眼前一亮啊有没有~~~~。都是前辈们的路啊,。。。分配ip  了  ~~~
这些都是在USB连接好后  adb shell超级终端下执行的。。。


下一步是放到自启动文件里面开机执行。。。
弄/system/etc/hw_config.sh ???
之前adb模式改到wifi就是加在这个文件末尾的  
setprop service.adb.tcp.port 5555
stop adbd
start adbd

表示以前能用 开机自动进入adb-wifi模式。。通过wifi连接adb
这里 吧启动wifi 的shell指令 放着但是不起作用了~~~没有连接上 非要手动执行爱~~~~~~·
-----------------------------------------------------------------分割线-----------------------------------------------------------------------------------------------------------------------------------------------
2013-11-12:
不想弄连接问题了~~~~自启动就是不行~~~放sh脚本执行自动执行没效果

找到一个简单点的办法 先将就下吧~~~

开机 插usb。~~等一会设备连接的声音

C:\Users\Administrator>adb shell
root@android:/ wpa_supplicant -d -Dwext -iwlan0 -c/system/etc/wifi/wpa_supplicant.conf   //连接路由
ctrl+c   //执行wpa_supplicant后  不回shell了
C:\Users\Administrator>adb shell    //再次进shell
root@android:/  dhcpcd wlan0   //分配IP  看到有ip  要记住
ctrl+c 回去
C:\Users\Administrator>adb tcpip 5555   //不知道哪位大神发明这个adb tcpip 5555~执行adb tcpip后,备进入WIFI模式~~刚发现的。
                    这一步相当于在设备上执行3条指令  (这就是为什么要放sh脚本的问题,原因就是第二条 stop一执行终端就关闭了 第三条没法发送,,)
                    setprop service.adb.tcp.port 5555                    
                    stop adbd
                    start adbd
C:\Users\Administrator>adb connect 192.168.1.100:5555   //之前看到的IP,忘记了去路由器看。。哈哈 连接上了~~~把usb拔掉吧~~没用了 下载调试程序通过WIFI。。。。充电的时候用一下。。、、、开机的时候重复上面的
-----------------------------------------------------------------分割线-----------------------------------------------------------------------------------------------------------------------------------------------
2013-11-13:
电池的电压值/sys/devices/i2c-0/0-0055/power_supply/bq27520/uevent。。3775000单位uV。后面一直是000。。应该是3775mV有效吧~
网上很多说航模电池放电到3.6V就要充电了~~。。。这个是说要损失一半的电量吗?1300mah~~感觉只有600mah了、、、
刚才测试的时候。。不注意ctrl+c。程序关闭了 好像是强制关闭了。。对io口操作没有复位。有一路pwm输出1~一个电机狂转。螺旋桨脱出去 打飞了。。机子还好

个不知道有没有什么办法避免ctrl+c强制结束程序的后果~~另为开独立的线程or进程。监护?~~~

评分
参与人数 1威望 +3 收起 理由
pywmiss + 3 很给力!佩服!@!!!!!1

相关帖子

沙发
290399937|  楼主 | 2013-10-26 10:25 | 只看该作者
本帖最后由 290399937 于 2013-11-19 09:16 编辑

自杀了~~~~~~~人工置顶
2013-11-19:附件 ST18i 主板原理图。 st18_schematics.pdf (929.46 KB)

使用特权

评论回复
板凳
dictionary| | 2013-10-28 09:40 | 只看该作者
这个一定要要顶,这才是做技术的

使用特权

评论回复
地板
huangqi412| | 2013-10-28 10:06 | 只看该作者
  直接用手机做控制板,外加4个IIC接口电调+IIC接口传感器?

使用特权

评论回复
5
290399937|  楼主 | 2013-11-3 14:28 | 只看该作者
人工置顶 继续努力。。

使用特权

评论回复
6
chinakuobu| | 2013-11-4 01:30 | 只看该作者
手机USB接口和耳机是可以利用的吧

使用特权

评论回复
7
hwk612167| | 2013-11-4 15:59 | 只看该作者
顶,早点飞起来

使用特权

评论回复
8
290399937|  楼主 | 2013-11-4 16:16 | 只看该作者
huangqi412 发表于 2013-10-28 10:06
直接用手机做控制板,外加4个IIC接口电调+IIC接口传感器?


先用板载的bma150和ak8975试试看!4路pwm输出用8050放大,后驱动tpc8107,p-mos?主板还是用原配电池。 电机用航模电池!

使用特权

评论回复
9
huangqi412| | 2013-11-4 17:47 | 只看该作者
290399937 发表于 2013-11-4 16:16
先用板载的bma150和ak8975试试看!4路pwm输出用8050放大,后驱动tpc8107,p-mos?主板还是用原配电池。  ...

原来用的有刷电机

使用特权

评论回复
10
yeyo| | 2013-11-4 20:56 | 只看该作者
加油!做出来

使用特权

评论回复
11
duhemayi| | 2013-11-5 08:23 | 只看该作者

使用特权

评论回复
12
烈火狂龙| | 2013-11-5 09:40 | 只看该作者
这么好的一个盘,就被你这样用掉了,哈哈。破手机不具备研究价值啊。

使用特权

评论回复
13
290399937|  楼主 | 2013-11-5 09:53 | 只看该作者
烈火狂龙 发表于 2013-11-5 09:40
这么好的一个盘,就被你这样用掉了,哈哈。破手机不具备研究价值啊。

说的也对。。。这个主板跑了android的c        就算真的弄好了,学到的也不具有大的实用价值。。反而在高速CPU的环境下,忽略了“算法”的低效率,在普通ARM下无法流畅运行。对以后也是误导  ,,
现在只是没事做做玩的,,,所以就没想那么多了。。。。

使用特权

评论回复
14
烈火狂龙| | 2013-11-5 22:09 | 只看该作者
290399937 发表于 2013-11-5 09:53
说的也对。。。这个主板跑了android的c        就算真的弄好了,学到的也不具有大的实用价值。。反而在高 ...

看样子,你也是个折腾狂,:lol,如果想玩我做的STM32微型四轴,可以免费送套PCB给你,不含元件哦,全套送不起,呵呵。折腾的过程可以与大家分享.......

使用特权

评论回复
15
a20084666| | 2013-11-5 23:42 | 只看该作者
niubi   好牛X

使用特权

评论回复
16
290399937|  楼主 | 2013-11-7 17:53 | 只看该作者
烈火狂龙 发表于 2013-11-5 22:09
看样子,你也是个折腾狂,,如果想玩我做的STM32微型四轴,可以免费送套PCB给你,不含元件哦 ...

嗯,谢谢,其实我比较喜欢迷你的,,先弄这个好了,再弄迷你的的.

使用特权

评论回复
17
dirtwillfly| | 2013-11-10 12:11 | 只看该作者
楼主才是牛人啊

使用特权

评论回复
18
louyj| | 2013-11-11 16:11 | 只看该作者
给牛人顶一个哈。

使用特权

评论回复
19
qzc13457| | 2013-11-12 13:59 | 只看该作者
怎么给主板烧的程序……

使用特权

评论回复
20
290399937|  楼主 | 2013-11-12 19:31 | 只看该作者
qzc13457 发表于 2013-11-12 13:59
怎么给主板烧的程序……

插USB线。或者adb connect 192.168.1.100:5555   //手机地址

然后adb devices 看到有手机连接上了
然后C:\Users\Administrator>adb push hello /  下载当前命令目录C:\Users\Administrator\hello文件到设备的根目录/

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

354

帖子

2

粉丝