电子邮件:flashindream[AT]gmail[DOT]com
略懂Flash的天文爱好者
ARM导星系统摆拍
Post by indream, 2010-6-10, Views:嘿嘿

ARM导星系统开发笔记(二)
Post by indream, 2010-6-6, Views:今天给系统加入了串口通讯,可以发送字符指令控制Autostar。从Usart出来的电平需要先转换成TTL电平再能跟PC串口通讯。折腾大半天,终于搞定Autostar的连接线,实现整个回馈系统。
void USART_GPIO_Init(void){
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd (RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO|RCC_APB2Periph_USART1 ,ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //推挽输出-TX
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空输入-RX
GPIO_Init(GPIOA, &GPIO_InitStructure);
USART_Configuration();
}
void USART_Configuration(void){
USART_InitTypeDef USART_InitStructure;
USART_ClockInitTypeDef USART_ClockInitStructure;
USART_StructInit(&USART_InitStructure);
USART_ClockStructInit (&USART_ClockInitStructure);
USART_ClockInit(USART1, &USART_ClockInitStructure);
USART_Init(USART1, &USART_InitStructure);
USART_Cmd(USART1, ENABLE);
}
void USART1_Puts(char * str)
{
while(*str)
{
USART_SendData(USART1, *str++);
while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
}
}
ARM导星系统开发笔记(一)
Post by indream, 2010-6-4, Views:GetLightZone函数主要实现获取整个屏幕最亮的区域(通过按键中断调用), GetPixelPos函数在图像刷新之后获取锁定亮区域的星点中心坐标.
void GetLightZone(void){
int i=0,j=0,ii=0,jj=0;
long totalLight=0,maxLight=0,pixel=0;
for(i=0;i<24;i++){
for(j=0;j<32;j++){
totalLight = 0;
for(ii=0;ii<10;ii++){
for(jj=0;jj<10;jj++){
pixel=GetLight(LCD_RD_PIXEL(i*10+ii,j*10+jj));
totalLight+=pixel;
}
}
if(totalLight>maxLight){
maxLight=totalLight*1;
posBlock[0] = (int)(i/3)*w;
posBlock[1] = (int)(j/3)*w;
}
}
}
}
void GetPixelPos(void){
unsigned int i=0,j=0,w2=w/2;
unsigned long maxI = 0,maxJ=0,tempI=0,tempJ=0;
for(i=0;i<w;i++){
tempI = 0;
tempJ = 0;
for(j=0;j<w;j++){
tempJ+=GetLight(LCD_RD_PIXEL(posBlock[0]+i,posBlock[1]+j));
tempI+=GetLight(LCD_RD_PIXEL(posBlock[0]+j,posBlock[1]+i));
}
if(maxJ<tempJ){
maxJ = tempJ;
centerX=posBlock[0]+i;
}
if(maxI<tempI){
maxI = tempI;
centerY=posBlock[1]+i;
}
}
posBlock[0]=centerX-w2;
if(centerX<w2){
posBlock[0]=0;
}
if(centerX>224){
posBlock[0]=209;
}
posBlock[1]=centerY-w2;
if(centerY<w2){
posBlock[1]=0;
}
if(centerY>304){
posBlock[1]=289;
}
}
这是用70mmF5抓取的星点,天蝎座某星


开发基于ARM(CORTEX M3)自动导星系统
Post by indream, 2010-6-3, Views:上周买了一块基于stm32的camera开发板,花了一周时间学习ARM.在多个嵌入式高手的帮助指导下,终于在昨晚理解了整个系统,今天终于实现了图像数据的采集功能.
图像采集的大问题已基本解决,接下来就是要开发通讯协议控制goto或者通过PWM控制电机驱动.哈哈

基于Python for S60的自动导星程序(四)
Post by indream, 2010-3-10, Views:今天又用手机导星系统拍了10几张照片,只有两张尚可,这两张均为天狼星作导星,用猎户座episode星(1.7等)做导星基本上有不规则运动.
除了导星的亮度问题还有一个是机械问题,好几次是因为相机在球台上滑动了位置,另外一个问题是程序自动关闭,初步判断是电量变化提醒造成的
600秒,镜头焦距210mm@f22,iso100

M41,600秒,镜头焦距210mm@f22,iso100

手机导星工作照

正面
基于Python for S60的自动导星程序(三)
Post by indream, 2010-3-9, Views:很久没有在南方的三月份看见下雪了,这次冷空气也带来了久违的晴天.下班回家后就开始把flash版的自动导星程序移植到python,没花多少时间把程序调试运行在手机上.
终于到了实际拍摄验证效果的时刻.目标依旧是天狼星
依次拍了60秒(F8),180秒(F22),900秒(F22),ISO均是100,镜头焦距135mm,机身EOS 300D,手机N6120C,赤道仪LXD75(朝南卧室,没有对极轴,仅通过指南针估计一下方向)
图像均为RAW转JPG,100%裁切

60秒

180秒

900秒

最后一张是手机在第一次拍900秒到一半的时候,程序自动退出
基于Python for S60的自动导星程序(二)
Post by indream, 2010-3-6, Views:手机键盘在使用viewfinder的时候不能用keyEvent检测,从pycamera的例子找到利用viewfinder.getEvents()方法获取键盘按下事件的检测
for ev in viewfinder.getEvents():
keyHandleEvent(ev)
星点中心的判断,是通过灰度最大值来确定高亮区的中心位置,程序如下
maxY=0
posx = 0;
posy = 0;
p255 = math.pow(255,5)
for i in xrange(0,aCols):
line=0
for j in xrange(0,aRows):
(r,g,b) = Image.GetPixel(i,j)
gy=(r * 0.30 + g * 0.59 + b * 0.11);
line+=math.pow(gy,6)/p255
if maxY<line:
maxY = line
posx = i
maxX=0
for i in xrange(0,aRows):
line=0
for j in xrange(0,aCols):
(r,g,b) = Image.GetPixel(j,i)
gy=(r * 0.30 + g * 0.59 + b * 0.11);
line+=math.pow(gy,6)/p255
if maxX<line:
maxX = line
posy = i
基于Python for S60的自动导星程序(一)
Post by indream, 2010-3-3, Views:从irxon购入一个bt5701的蓝牙串口,今天到了.刚到家就迫不及待开始写手机蓝牙通讯的代码.
import appuifw
import socket
import e32
def bt_connect():
global sock
sock=socket.socket(socket.AF_BT,socket.SOCK_STREAM)
target=''
if not target:
address,services=socket.bt_discover()
print "Discovered: %s, %s"%(address,services)
if len(services)>1:
import appuifw
choices=services.keys()
choices.sort()
choice=appuifw.popup_menu([unicode(services[x])+": "+x for x in choices],u'Choose port:')
target=(address,services[choices[choice]])
else:
target=(address,services.values()[0])
print "Connecting to "+str(target)
sock.connect(target)
print "OK."
bt_typetext()
def bt_typetext():
global sock
test = appuifw.query(u"Type words", "text", u"")
if test == None:
exit_key_handler()
else:
sock.send(test)
bt_typetext()
def exit_key_handler():
script_lock.signal()
appuifw.app.set_exit()
appuifw.app.title = u"bt mob to PC"
script_lock = e32.Ao_lock()
appuifw.app.exit_key_handler = exit_key_handler()
bt_connect()
script_lock.wait()
依次发送指令(区分大小写)给LXD75
:RM#
:Ms#
:Qs#
成功实现16倍速,向南转动,向南转动停止
Python for S60开发入门
Post by indream, 2010-2-28, Views:(1)Python for S60是Python在Nokia S60平台上的解释器,功能相对于flash要强大,比java开发更简单
PyS60安装文件可以在http://sourceforge.net/projects/pys60/files/
需要安装2个文件,PythonScriptShell.SIS和PythonForS60.SIS
如果不需要在PC模拟调试的话,可以用记事本写好脚本直接放手机Python文件夹运行,作者一般是用nokia的pc套装连接手机进行程序调试
手机上也有个python编辑器叫PED,http://code.google.com/p/ped-s60/
(2)NokiaCV LIB是Nokia为Symbian平台提供的开源图像处理扩展库 http://research.nokia.com/research/projects/nokiacv
下载安装NokiaCV for python,
ncvlib11.rar
pyncvlib11.rar
(3)补充一个lightblue是Python蓝牙API
http://lightblue.sourceforge.net/
sis,sisx安装时如果提示证书过期,请先调小手机日期年份到2009年再安装
我的目标是手机摄像头采集图像->python处理图像->通过蓝牙发送命令控制外部蓝牙串口,就差蓝牙控制的程序验证了
猎户座大星云
Post by indream, 2009-3-18, Views:
第一次拍深空
Hot Articles
Friend Connect
New Articles
- [09/08]PID的小故事
- [08/27]Calculating Stellar Positions
- [08/17]GB2312乱码问题的终极解决
- [08/16]天荒坪测试之旅
- [08/05]导星程序继续优化
- [08/01]结果不太理想
- [06/30]终于上ED了
- [06/27]06/26月偏食
- [06/18]将基于AVM1Movie的SWF编码成AS3的MovieClip类
- [06/10]ARM导星系统摆拍
- [06/06]ARM导星系统开发笔记(二)
- [06/04]ARM导星系统开发笔记(一)
- [06/03]开发基于ARM(CORTEX M3)自动导星系统
- [05/27]跳啊,跳吧
- [05/23]汉字转拼音_AS3
Archives
- 2010 September (1)
- 2010 August (5)
- 2010 June (7)
- 2010 May (10)
- 2010 April (2)
- 2010 March (4)
- 2010 February (3)
- 2010 January (3)
- 2009 December (2)
- 2009 November (7)
- 2009 October (8)
- 2009 September (6)
- 2009 August (11)
- 2009 July (9)
- 2009 June (2)
- 2009 May (9)
- 2009 April (8)
- 2009 March (6)
- 2009 January (2)
- 2008 December (6)
- 2008 November (4)
- 2008 October (1)
- 2008 August (3)
- 2008 July (2)
- 2008 June (9)
- 2008 May (8)
- 2008 April (20)
- 2008 March (4)
- 2008 January (1)
- 2007 December (3)
- 2007 November (7)
- 2007 October (6)
- 2007 September (1)
- 2007 August (10)
- 2007 July (11)
- 2007 June (5)
- 2007 April (4)
- 2007 March (10)
- 2007 February (4)
- 2007 January (10)
- 2006 December (17)
- 2006 November (11)
- 2006 October (6)
- 2006 September (19)
- 2006 August (22)
Favorite
Links
Statistics
- 文章总数:313
- 评论总数:194
- 引用总数:0
- 浏览总数:2000
- 留言总数:1
- 当前主题:sean
- 当前样式:Sean_Sim
