编程绘画 安卓编程软件 废旧安卓变废为宝
编程绘画 是一款 可单机可在线的编程系统,轻松的编程体验,终身免费。通过ID 绑定即可实现 在线web 编程 一键运行到安卓端
使用模式:
- 在线编程 安卓端绘画
- 安卓端编程,安卓端绘画
- A安卓端编程,B安卓端绘画
安卓端下载地址
程序截图
在线编程截图
【编程绘画】触摸的使用
编程绘画 是一款 可单机可在线的编程系统,轻松的编程体验,终身免费。通过ID 绑定即可实现 在线web 编程 一键运行到安卓端
使用模式:
安卓端下载地址
程序截图
在线编程截图
【编程绘画】触摸的使用
检测文件发生变化 启动脚本并传入 变化的文件名用于 修改同步 文件到ftp adb linux 等 代码同步修改
源码下载地址
FileMonitor2.0exe
使用时 把 需要执行的脚本拖动到 fileMonitor 即可
需要执行的代码 通过%1%获取 变动的文件路径 具体干什么看具体需求
mac端 稍后更新上来
代码贴出来
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Threading;
using System.Diagnostics;
namespace FileMonitor
{
class Program
{
static void Main(string[] args)
{
string File2;
if (args.Length<1)
{
Console.WriteLine("请输入要执行的文件....");
File2 = Console.ReadLine();
}
else File2 = args[0];
Console.WriteLine("监控目录[" + AppDomain.CurrentDomain.BaseDirectory + "]" + "执行文件[" + File2 + "]");
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = AppDomain.CurrentDomain.BaseDirectory;
watcher.NotifyFilter =NotifyFilters.LastWrite |NotifyFilters.FileName;
watcher.Changed += (object source, FileSystemEventArgs e) =>
{
Console.WriteLine("文件{0}已经被修改,修改类型{1}", e.FullPath, e.ChangeType.ToString());
//System.Diagnostics.Process.Start(File2);
exec(File2, e.FullPath);
};
watcher.Created += (object source, FileSystemEventArgs e) =>
{
Console.WriteLine("文件{0}被建立", e.FullPath);
};
watcher.Deleted += (object source, FileSystemEventArgs e) =>
{
Console.WriteLine("文件{0}已经被删除", e.FullPath);
};
watcher.Renamed += (object source, RenamedEventArgs e) =>
{
Console.WriteLine("文件{0}的名称已经从{1}变成了{2}", e.OldFullPath, e.OldName, e.Name);
};
watcher.EnableRaisingEvents = true;
while (true) Thread.Sleep(1000);
}
public static void exec(string exePath, string parameters)
{
Process process = new System.Diagnostics.Process();
process.StartInfo.FileName = exePath;
process.StartInfo.Arguments = parameters;
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.RedirectStandardOutput = true;
process.Start();
process.BeginOutputReadLine();
process.OutputDataReceived += new DataReceivedEventHandler(processOutputDataReceived);
process.WaitForExit();
process.OutputDataReceived -= new DataReceivedEventHandler(processOutputDataReceived);
Console.WriteLine("执行完毕");
}
public static void processOutputDataReceived(object sender, DataReceivedEventArgs e)
{
Console.WriteLine(e.Data);
}
}
}
用i2cdetect -F 0 来查看I2C 0号总线启用的功能
root@Widora:/# i2cdetect -F 0
Functionalities implemented by /dev/i2c-0:
I2C yes
SMBus Quick Command yes
SMBus Send Byte yes
SMBus Receive Byte yes
SMBus Write Byte yes
SMBus Read Byte yes
SMBus Write Word yes
SMBus Read Word yes
SMBus Process Call yes
SMBus Block Write yes
SMBus Block Read no
SMBus Block Process Call no
SMBus PEC yes
I2C Block Write yes
I2C Block Read yes
查看I2C 0号总线上挂载的设备
root@Widora:/# i2cdetect -y 0
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- UU -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- UU -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- 48 -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
其中标识为UU的设备(地址分别为0x1a和0x34)表示内核已经加载了相应的驱动,而地址为0x48的I2C设备尚未被内核所驱动。
在sysfs文件中可查看已被内核驱动的I2C设备的名称
root@Widora:/# ls /sys/bus/i2c/devices
0-001a 0-0034 i2c-0
root@Widora:/# cat /sys/bus/i2c/devices/0-001a/name
wm8960
root@Widora:/# cat /sys/bus/i2c/devices/0-0034/name
codec_wm8960
root@Widora:/# i2cdump -y 0 0x48 W
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: 1e 00 4b 00 ff ff ff ff 1e 00 4b 00 ff ff ff ff ?.K.....?.K.....
10: 1e 00 4b 00 ff ff ff ff 1e 00 4b 00 ff ff ff ff ?.K.....?.K.....
20: 1e 00 4b 00 ff ff ff ff 1e 00 4b 00 ff ff ff ff ?.K.....?.K.....
30: 1e 00 4b 00 ff ff ff ff 1e 00 4b 00 ff ff ff ff ?.K.....?.K.....
40: 1e 00 4b 00 ff ff ff ff 1e 00 4b 00 ff ff ff ff ?.K.....?.K.....
50: 1e 00 4b 00 ff ff ff ff 1e 00 4b 00 ff ff ff ff ?.K.....?.K.....
60: 1e 00 4b 00 ff ff ff ff 1e 00 4b 00 ff ff ff ff ?.K.....?.K.....
from machine import I2C
i2c = I2C(I2C.I2C0, freq=100000, scl=28, sda=29)
devices = i2c.scan()
print(devices)
from machine import Timer,PWM
import time
tim = Timer(Timer.TIMER0, Timer.CHANNEL0, mode=Timer.MODE_PWM)
ch = PWM(tim, freq=500000, duty=50, pin=board_info.LED_G)
duty=0
dir = True
while True:
if dir:
duty += 10
else:
duty -= 10
if duty>100:
duty = 100
dir = False
elif duty<0:
duty = 0
dir = True
time.sleep(0.05)
ch.duty(duty)
import sensor
import image
import lcd
lcd.init()
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.run(1)
while True:
img=sensor.snapshot()
lcd.display(img)
import sensor
import image
import lcd
import time
lcd.init()
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.run(1)
green_threshold = (0, 80, -70, -10, -0, 30)
while True:
img=sensor.snapshot()
blobs = img.find_blobs([green_threshold])
if blobs:
for b in blobs:
tmp=img.draw_rectangle(b[0:4])
tmp=img.draw_cross(b[5], b[6])
c=img.get_pixel(b[5], b[6])
lcd.display(img)
import sensor
import image
import lcd
import time
clock = time.clock()
lcd.init()
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.run(1)
sensor.skip_frames(30)
while True:
clock.tick()
img = sensor.snapshot()
fps =clock.fps()
img.draw_string(2,2, ("%2.1ffps" %(fps)), color=(0,128,0), scale=2)
lcd.display(img)
import sensor
import image
import lcd
import time
clock = time.clock()
lcd.init()
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.set_vflip(1)
sensor.run(1)
sensor.skip_frames(30)
while True:
clock.tick()
img = sensor.snapshot()
res = img.find_qrcodes()
fps =clock.fps()
if len(res) > 0:
img.draw_string(2,2, res[0].payload(), color=(0,128,0), scale=2)
print(res[0].payload())
lcd.display(img)
人类拥有第三只眼,称为松果体,早在7万多年前就开始进化出现,松果体不仅有控制激素分泌生物钟等功能,还可以观看眼睛看不到的东西,例如磁场能和量子能 红外能 等等,而灵魂也是某种能量物质的一种呈现方式,松果体在人类出生后的几个月发育到最大,随后越长大越萎缩,得到开发的人便有了预知能力,像 袁天罡 诸葛亮刘伯温爱因斯坦特斯拉等都是松果体开发比较好才会拥有平常人没有的超能力,松果体作为唯一与灵魂连接的地方,过度开发如果控制不好容易被鬼魔缠身,现在伟人少 是因为 人类过于忙碌 加上不规律的生活及各种垃圾食品导致松果体钙化或变质导致无法感知宇宙世界。
刚出生的小孩和一些动物都能感受到人类感受不到的惊吓也是源于此。
明太祖一日身居内殿,食烧饼,方啖一口,内监忽报刘基进见,太祖以碗覆之,始召基入。
帝问曰:“先生深明数理,可知碗中是何物件?”
基乃捏指轮算,对曰:“半似日兮半似月,曾被金龙咬一缺,此乃饼也。”
开视果然。帝即问以天下后世之事若何。
基曰:“茫茫天数,我主万子万孙。何必问哉。”
帝曰:“虽然自古兴亡原有一定,况天下非一人之天下,惟有德者能享之。言之何妨?试略言之。”
基曰:“泄漏天机,臣罪非轻!陛下恕臣万死,才敢冒奏。”
帝即赐以免死金牌,基谢恩毕。
基曰:“我朝大明一统世界,南方终灭北方终,嫡裔太子是嫡裔,文星高拱日防西。”
帝曰:“朕今都城竹坚守密,何防之有?”
基曰:“臣见都城虽巩固,防守严密。似觉无虞,只恐燕子飞来。
随作歌三首:
“此城御驾尽亲征,一院山河永乐平;
秃顶人来文墨苑,英雄一半尽还乡。
北方胡虏残生命,御驾亲征得太平;
失算功臣不敢谏,旧灵遮掩主惊魂。
国压瑞云七载长,胡人不敢害贤良;
相送金龙复故旧,灵明日月振边疆。”
帝曰:“此时天下若何?”
基曰:“天下大乱矣。”
帝曰:“朕之天下,有谁乱者?”
基曰:
“天下饥寒有怪异,栋梁龙德乘婴儿;
禁宫阔大任横走,长大金龙太平时;
老拣金精尤壮旺,相传昆玉继龙堂;
阉人任用保社稷,八千女鬼乱朝纲。”
帝曰:“八千女鬼乱朕天下者何?”
基曰:
“忠良杀害崩如山,无事水边成异潭;
救得蛟龙真骨肉,可怜父子难顺当。”
帝曰:“莫非父子争国乎?”
基曰:“非也!
树上挂曲尺,遇顺则止。
至此天下未已。”
帝曰:“何谓未已?”
基曰:
“万子万孙层叠层,祖宗山上贝衣行;
公侯不复朝金阙,十八孩儿难上难。”
基又曰:
“木下一了头,目上一刀一戊丁;
天下重文不重武,英雄豪杰总无春;
戊子已丑乱如麻,到处人民不在家;
偶遇饥荒草寇发,平安镇守好桂花。”
帝曰:“偶遇饥荒,平常小丑!天下已乎?”
基曰:
“西方贼拥乱到前,无个忠良敢谏言;
喜见子孙耻见日,衰颓气运早升天;
月缺两二吉在中,奸人机发去西东;
黄河涉过开金阙,奔走梅花上九重。”
帝曰:“莫非梅花山作乱乎?从今命人看守何如?”
基曰:“非也!
‘迁南迁北定太平,辅佐帝王有牛星;
运至六百半,梦奇有字得心惊。’”
帝曰:“有六百年之国祚,朕心足矣。尚望有半乎?”
帝又曰:“天机卿难言明,何不留下锦囊一封,藏在库内。世世相传勿遗也,急时有难,则开视之。可乎?”
基曰:“臣亦有此意。
‘九尺红罗三尺刀,劝君任意自游遨;
阉人尊贵不修武,惟有胡人二八狄。’
臣封柜内,俟后开时自验!
基又曰:
“桂花开放好英雄,拆缺长城尽孝忠;
周家天下有重复,摘尽李花枉劳功。
黄牛背上鸭头绿,安享国家珍与粟;
云盖中秋迷去路,胡人依旧胡人毒;
反覆从来折桂枝,水浸月宫主上立;
禾米一木并将去,二十三人八方居。”
帝曰:“二十三人乱朕天下?八方安居否?”
基曰:“臣该万死,不敢隐瞒,至此大明天下亡之久矣。”
帝大惊,即问:“此人生长在何方?若何衣冠?称何国号?治天下何如?”
基曰:
“还是胡人二八秋,二八胡人二八忧;
二八牛郎二八月,二八嫦娥配土牛。”
帝曰:“自古胡人无百年之国运,乃此竟有二百余年之运耶?”
基曰:
“雨水草头真主出,赤头童子皆流血;
倒置三元总才说,须是川水页台阙;
十八年间水火夺,庸人不用水火臣;
此中自己用汉人,卦分气数少三数;
亲上加亲又配亲。”
帝曰:“胡人至此,用人水夺火灭,亲上加亲,莫非驸马作乱乎?”
基曰:“非也!胡人英雄,水火既济,安享太平,有位有势。时值升平,称为盛世,气数未尽,还有后继。
‘宝剑重磨又重磨,抄家灭族可奈何;
阉人社稷藏邪鬼,孝弟忠奸诛戮多;
李花结子正逢春,牛鸣二八倒插丁;
六十周甲多一甲,螺角倒吹也无声;
点画佳人丝自分,一止当年嗣失真;
泥鸡啼叫空无口,树产灵枝枝缺魂;
朝臣乞来月无光,叩首各人口渺茫;
一见生中相庆贺,逍遥周甲乐饥荒。’”
帝曰:“胡人到此败亡否?”
基曰:“未也!虽然治久生乱,值此困苦,民怀异心,然气数未尽也。
‘廿岁力士开双口,人又一心度短长;
时俺寺僧八千众,火龙渡河热难当;
叩首之时头小兀, 娥虽有月无光;
太极殿前卦对卦,添香禳斗闹朝堂;
金羊水猴饥荒岁,犬吠猪鸣汨两行;
洞边去水台用水,方能复正旧朝网;
火烧鼠牛犹自可,虎入泥窝无处藏。
草头家上十口女,又抱孩儿作主张;
二四八旗难蔽日,辽阳思念旧家乡;
东拜斗,西拜旗,南逐鹿,北逐狮;
分南分北分东西,偶逢异人在楚归;
马行万里寻安歇,残害中女四木鸡;
六一人不识,山水倒相逢。
黄鬼早丧赤城中,猪羊鸡犬九家空;
饥荒灾害皆并至,一似风登民物同;
得见金龙民心开,刀兵水火一齐来;
文钱斗米无人要粜,父死无人兄弟抬;
金龙绊马半乱甲,二十八星问士人;
蓬头少女蓬头嫁,揖让新君让旧君。’”
帝曰:“胡人至此败亡否?”
基曰:“手执钢刀九十九,杀尽胡人方罢休;
可怜难渡雁门关,摘尽李花灭尽胡;
黄牛山下有一洞,可投拾万八十众;
先到之人得安稳,后到之人半路送;
难恕有罪无不罪,天下算来民尽瘁。
火风鼎,两火初兴定太平;
火山旅,银河织女让牛星。
火德星君来下界,金殿楼台尽丙丁;
一个胡子大将军,按剑驰马察情形;
除暴去患人多爱,永享九州金满盈。”
帝曰:“胡人此时尚在否?”
基曰:“胡人至此,亡之久矣。
‘四大八方有文星,品物咸亨一样形;
琴瑟和谐成古道,左中兴帝右中兴;
五百年间出圣君。
周流天下贤良辅,气运南方出将臣,
圣人能化乱渊源,八面夷人进贡临,
宫女勤针望夜月,乾坤有象重黄金,
北方胡掳害生灵,更会南军诛戮行,
匹马单骑安国外,众君揖让留三星,
上元复转气运开,大修文武圣主裁,
上下三元无倒置,衣冠文物一齐来,
七元无错又三元,大开文风考对联,
猴子沐盘鸡逃架,犬吠猪鸣太平年,
文武全才一戊丁,流离散乱皆逃民,
爱民如子亲兄弟,创立新君修旧京。’
千言万语知虚实,留与苍生长短论。”
#encoding=utf-8
import cv2
import time
from poster.encode import multipart_encode
import urllib2
import os,shutil
import sys
from urllib2 import Request, urlopen, URLError, HTTPError
from poster.encode import multipart_encode
from poster.streaminghttp import register_openers
import datetime
import socket
import time
DATAMARK=1
TLINK=2
GIZWITS=3
print "open video0"
cap=cv2.VideoCapture(0)
print cap
pre_frame = None
def post(file):
register_openers()
f=open(file, "rb")
datagen, headers = multipart_encode({"myFile": f})
request = urllib2.Request("http://trtos.com/web/datamark/upload.php", datagen, headers)
try:
response = urllib2.urlopen(request)
print response.read()
except URLError,e:
print e.reason
print e.code
def send(context,name,id):
if name==DATAMARK:
context=context+"\n"
ss=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
ss.connect(('trtos.com',80))
msg="POST /php/api.php?id="+id+" HTTP/1.1\n"+ \
"Content-Type: application/x-www-form-urlencoded\n"+ \
"Host: trtos.com\n"+ \
"Content-Length: "+str(len(context))+"\n"+ \
"Expect: 100-continue\n"+ \
"Connection: Keep-Alive\n\n\n"+context
ss.sendall(msg)
ss.close()
print msg
elif name==TLINK:
ss=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
ss.connect(('tcp.tlink.io',8647))
time.sleep(1)
ss.sendall(id)
time.sleep(1)
ss.sendall(context)
ss.close()
print id,context,name
elif name==GIZWITS:
print "机智云"
while(1):
ret,frame=cap.read()
curframe=frame.copy()
k=cv2.waitKey(1)
gray_img=cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
gray_img=cv2.resize(gray_img, (500, 500))
gray_img=cv2.GaussianBlur(gray_img, (21, 21), 0)
if pre_frame is None:
pre_frame = gray_img
else:
img_delta = cv2.absdiff(pre_frame, gray_img)
thresh = cv2.threshold(img_delta, 25, 255, cv2.THRESH_BINARY)[1]
thresh = cv2.dilate(thresh, None, iterations=2)
thresh,contours, hierarchy = cv2.findContours(thresh.copy(),cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)
for c in contours:
if cv2.contourArea(c) < 3000:
print cv2.contourArea(c)
continue
else:
(x,y,w,h) = cv2.boundingRect(c)
cv2.rectangle(curframe,(x,y),(x+w,y+h),(0,255,0),2)
cv2.imwrite("5uT5zGTG.jpg",curframe)
post("5uT5zGTG.jpg")
shutil.move("5uT5zGTG.jpg","/home/pi/record/"+datetime.datetime.now().strftime('%Y_%m_%d_%H_%M_%S')+".jpg")
send("area:"+str(cv2.contourArea(c)),DATAMARK,"5uT5zGTG")
pre_frame = gray_img
time.sleep(1)
cap.release()`
使用ubuntu18.2 系统或者其他系统
默认会安装python2.7
sudo apt install python
sudo apt install python-opencv
sudo apt install python-pip
JSON 操作 DataMark 数据项
地址:http://dm.trtos.com/php/json.php
Post 添加数据
{"action":"add","id":"y9JM9Rd","content": [{"name": "项目1","value": "5555"},{"name": "项目2","value": "1234"}]}
返回
{"action":"add","status":"succeed"}
Post 删除所有数据
{"action":"del","id":"y9JM9Rd"}
返回
{"action":"del","status":"succeed"}
Post 获取分配ID
{"action":"getid"}
返回
{"action":"getid","id":"y9JM9Rd"}
Post 获取记录(必要参数id,可选参数name,value)
{"action":"get","id":"y9JM9Rd"}
{"action":"get","id":"y9JM9Rd","name":"项目1"}
{"action":"get","id":"y9JM9Rd","name":"项目1","value":"5555"}
返回
[{"Name":"Name1","Value":"xiaowu"},{"Name":"Name2","Value":"Xiaotian"}]
上传背景图代码 可用于监控
#!usr/bin/python
# image.py
# -*- coding=utf-8 -*-
from poster.encode import multipart_encode
import urllib2
import sys
from urllib2 import Request, urlopen, URLError, HTTPError
from poster.encode import multipart_encode
from poster.streaminghttp import register_openers
register_openers()
f=open("4UTmPcpw.jpg", "rb")
datagen, headers = multipart_encode({"myFile": f})
request = urllib2.Request("http://trtos.com/web/datamark/upload.php", datagen, headers)
try:
response = urllib2.urlopen(request)
print response.read()
except URLError,e:
print e.reason
print e.code
修改数据标签 指定选项内容
这种方式比较简单 直接通过浏览器访问方式操作
eg:设置名和值 http://dm.trtos.com/web/datamark/update.php?id=5oOeooHz&index=149717&name=使用率&value=99%
eg:设置名 http://dm.trtos.com/web/datamark/update.php?id=5oOeooHz&index=149717&name=使用率
eg:获取名和值 http://dm.trtos.com/web/datamark/update.php?id=5oOeooHz&index=149717
下例 是使用python 上传 ip地址
import requests
import datetime
import socket
def get_host_ip():
"""
查询本机ip地址
:return: ip
"""
try:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(('8.8.8.8', 80))
ip = s.getsockname()[0]
finally:
s.close()
return ip
hostname = socket.gethostname()
ip = socket.gethostbyname(hostname)
ip="0.0.0.0"
ip=get_host_ip()
date=datetime.datetime.now()
response = requests.get('http://dm.trtos.com/web/datamark/update.php?id=5oOeooHz&index=149717&name=树莓派IP&value='+ip+":"+str(date))
print(response.text)
共享变量
设置值 http://www.trtos.com/php/value.php?name=my_value&value=123456
读取值 http://www.trtos.com/php/value.php?name=my_value
15年的一个众筹项目,失败了。
https://github.com/tongjinlv/TRTOS.git
原理图
PCB截图
代码地址 https://github.com/tongjinlv/TRTOS.git
硬件下载地址 使用Altium Designer 16 开发 https://github.com/RTOS-Developers/Geekinsect-Handware.git
GeekInsect(IDE).zip
1、项目背景
对于目前市面上的智能玩具功能单一,不具备扩展性,多以几个可选动作或循环几个动作为主,很古板单调,玩一段时间就疲倦乏味,这就是我们要开发这款可编程极客虫的原因,在玩的同时对提高编程思维能力有所帮助,并且非常适合用来开发儿童的创意性思维,极客虫也是一套极适合用来开发仿生机器人的硬件,携带的传感器完全可以实现趋光跟随避障和循迹等动作。
2、我想要做什么
极客虫是我们的第一款硬件产品既可以用来做编程练习又可以增加乐趣,我们已经尽可能的把体验做到极致。
1、灵活:两侧一对空心杯电机提供整只虫子的动力,极其灵活,可以实现原地旋转和任意方向爬行。
2 小巧:整体尺寸仅为3.9cm6.2cm2cm,大概只有两个多硬币大小,放置在大小刚刚好的碳化竹收藏盒内,刚好合适,方便随身携带。
3、方便:固件更新、应用下载、调试、充电等都通过尾部的micoUSB接口,内部固化的BOOT引导程序加上usb复位重启机制使之不可能死机。配套的固件开发环境支持F5一键下载固件,免去了使用stlink下载的繁琐,配套的拖拽式开发环境可以一键下载应用无需重启直接运行,无需任何设置。
4、集成化设计:所有传感器均集成到主板,保证了体积小高可靠性。
4、非常容易上手的集成拖拽式开发环境。
3、产品面向的用户群体
我们的用户群体:所有对仿生机器人、玩具开发有兴趣的人或以教学为目的的组织机构。
极客虫涉及到的软硬件都是我们自己研发的,没有使用任何开源组件:
极客虫运行的是我们自主开发的开源操作系统TRTOS,一直应用于工业设备开发,稳定性和灵活性很高,上手也非常容易。并已经开发出成熟的深度应用us级别解析器,多任务动态创建,配合拖拽式编程开发环境Geekinsect(IDE),就算你不会编程也能分分钟写出应用,Geekinsect(IDE)集成了固件和应用联网同步共享功能,联合MDK开发环境实现编译完成即刻共享。
4、产品的亮点、如何使用产品
我们的宗旨就是体验,质量,美感一个也不能少,始终把体验放在第一位,尽量保证在不需要说明书的前提下都能够直接使用。
用户在收到极客虫后登陆收纳盒上的网址,下载拖拽式开发环境并连接极客虫到电脑即可进行拖拽式开发,想了解更多或对其进行深层次的开发请加技术支持群或访问TRTOS主页。
5、项目的困难和风险