本帖最后由 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进程。监护?~~~
|