从零开始打造一个GOTO系统(1)
论坛上讨论的大神很多,贴出来的代码也很多,但是我压根就看不懂,往往看到这么大一串代码就觉得非常难,因为本人小白一个,往往看到这么大一串代码就觉得非常难,要学什么中断 时间 等等。为了让自己有个更好的积极性,就一步一个脚印由浅到深慢慢学习吧。至目前为止我只才学了两三句单片机语句,还望有大神指点。软件需求:Stellarium,Device Monitoring Studio(监听端口用),audunio 1.6.7 (写程序用),teensyduino(因为我用的是TEENSY所以要加装)
硬件需求:TEENSY 2.0 ++ (之所以用这个,是我很早前就有了的直接拿来用) 同好可以在网上购 ardunio pro micro
1、安装ardunio
2、设置Stellarium
在设置Stellarium的时候就遇到一小问题,插件---望远镜控制----配置按钮灰色无法点击。解决方法。勾选启动时加载后关闭Stellarium重新开启就可以了。
想看日志的可以在选项勾上记录至文件。
3、分析LX200协议,这里直接复制论坛上的资料。
1、 stellarium 在没有任何操作的时候会不停的发送
#:GR# (询问现在望远镜指向的RA值)
2、当正确回复 stellarium时,会发送
#:GD#(询问现在望远镜指向的DEC值)
3、 当正确回复 GD时,stellarium中会出现一个黄色圆圈
4、 当没有正确回复 GD时, stellarium 重复发送 GR# 来询问
以上 1-4 是 不停止的, 回复 GR GD 是需要按照一定格式进行回复的,参看LX200串口协议
4、在stellarium显示赤道仪的位置
代码:
String inputString = "";
void setup() {
Serial.begin(9600);//端口波特比
}
void loop() {
while (Serial.available()>0){
char inChar = Serial.read();//读取端口数值
inputString += String(inChar);
delay(5);
}
if (inputString == "#:GR#"){ //stellarium询问现在望远镜指向的RA值
Serial.print ("02:31:50#"); //返回赤道仪AR值给stellarium 取的是北极星的值
inputString = "";
}
if (inputString == "#:GD#"){//stellarium询问现在望远镜指向的DEC值
Serial.print ("+89*15:51#"); //返回赤道仪DEC值给stellarium 取的是北极星的值
inputString = "";
}
}效果图:
不明觉厉啊! 不错,使用audunio开发的 别用if,用switch case 不懂单片机,学不来 xiaoguilink 发表于 2016-3-9 16:01
别用if,用switch case
有分别吗?
open 发表于 2016-3-10 11:17
有分别吗?
从功能上,都可以。从优化上说,分支项多的话,switch case 快很多。
xiaoguilink 发表于 2016-3-10 11:39
从功能上,都可以。从优化上说,分支项多的话,switch case 快很多。
到最后再考虑做优化。
不懂的人问一下,没有这块板子,直接电脑USB转232串口连接赤道仪不行吗?
页:
[1]