【粤嵌教育讯】近日,粤嵌实验室传来了喜讯,一款集多种功能于一体的无线智能小车已研发成功,将作为粤嵌实验室新一代产品隆重推出并上线。
(无线智能小车)
据介绍,粤嵌实验室设计的这款无线智能小车具有自动避障、智能寻径、无线遥控、无线图像传输等多功能,采用GEC实现小车的控制机检测,用光电探测器实现小车的循迹功能,由两个直流电机做动力部分,通过控制脉冲占空比对直流电机进行调速,利用两电机的差速实现小车的转向。另外小车还留有很多的接口,有良好的扩展性,以后可以根据具体情况增加相应的功能。
此外,小车可由用户自行设置无人驾驶与手动驾驶模式,当小车在人的视野范围内时,可以设置为手动驾驶模式,在手动驾驶模式下可以根据实际情况来遥控小车的运动;而在小车脱离人们视线时,可以把小车设置为无人驾驶模式,小车通过自动循迹和红外避障功能正常工作。该智能小车的创新之处在于它还具有无线图像传输功能,利用无线图像传输来实现处理器和遥控器之间的通信。小车从前端摄像头处把信息采集过来,通过无线图像传输模块把图像传输到控制端,这样用户可以更直观地了解到前方信息,进而采取最合理的措施。小车的控制端可以直接和计算机终端相连接,把采集过来的信息通过终端显示在计算机上,并能通过计算机实现数据的共享。
近二十年来,微电子技术、计算机技术、集成技术、网络技术等高新技术得到了迅猛发展,在这一背景形势下,工业生产和管理进入了自动化、信息化和智能化时代,如果将无线智能小车应用于流水生产线,仓库,厂房等一些不易人们进入或直接人工操作的场所,通过智能小车的探测功能,可以实现省去人力、物力,在保障人的生命安全的同时免去物资的消耗,因此,无线智能小车的研发具有很大的现实意义。而经过特殊的设计的无线智能小车更是可应用于广泛的领域,像汽车无人驾驶,家具智能清洁,危险环境的探测工作等等,无线智能小车极大的市场价值正等待更多的人去挖掘!
本帖最后由 白西 于 2012-11-2 15:24 编辑
如何获得当前机器上的设备ID,名称以及缩略图,我们需要用到一个类——DeviceInformation类(位于 Windows.Devices.Enumeration命名空间)。
使用方法是这样的:
1、通过DeviceInformation.FindAllAsync静态方法获得一个DeviceInformationCollection集合。
2、将这个集合foreach一下就可以访问其中各成员,这个相信不难明白。
3、DeviceInformation对象的Id属性获取设备的标识符。
4、Name属性获取设备名称。
5、GetThumbnailAsync方法获取设备的缩略图。
看起来是不是很简单呢?下面,我们用一个实例来深化一下。
1、启动VS,新建项目(此处省略38个字)。
2、在主页的根Grid中声明一个ListView,用来显示获取到的设备信息。XAML如下:
- <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
- <ListView Name="lvDevices" Margin="10" SelectionMode="None">
- <ListView.ItemsPanel>
- <ItemsPanelTemplate>
- <WrapGrid Orientation="Horizontal" MaximumRowsOrColumns="3" ItemWidth="420"/>
- </ItemsPanelTemplate>
- </ListView.ItemsPanel>
- </ListView>
-
</Grid>
- protected async override void OnNavigatedTo(NavigationEventArgs e)
- {
- DeviceInformationCollection dcl = await DeviceInformation.FindAllAsync();
- this.lvDevices.Items.Clear();
- foreach (var item in dcl)
- {
- // 项内容布局
- Grid itemRoot = new Grid();
- itemRoot.Margin = new Thickness(15);
- itemRoot.ColumnDefinitions.Add(new ColumnDefinition { Width = GridLength.Auto });
- itemRoot.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) });
- // 取得图标
- DeviceThumbnail thumb = await item.GetThumbnailAsync();
- BitmapImage bmp = new BitmapImage();
- thumb.Seek(0);
- bmp.SetSource(thumb);
- // 显示图像
- Image myImage = new Image();
- myImage.Width = 80;
- myImage.Height = 80;
- myImage.Stretch = Stretch.Uniform;
- myImage.Margin = new Thickness(10);
- myImage.HorizontalAlignment = Windows.UI.Xaml.HorizontalAlignment.Center;
- myImage.VerticalAlignment = Windows.UI.Xaml.VerticalAlignment.Top;
- myImage.Source = bmp;
- Grid.SetColumn(myImage, 0);
- itemRoot.Children.Add(myImage);
- // 显示文本
- TextBlock textbl = new TextBlock();
- textbl.TextWrapping = TextWrapping.Wrap;
- Run myRunTitle = new Run();
- myRunTitle.Text = item.Name;
- myRunTitle.FontSize = 20;
- myRunTitle.FontWeight = FontWeights.Bold;
- textbl.Inlines.Add(myRunTitle);
- textbl.Inlines.Add(new LineBreak());
- Run runID = new Run() { Text = item.Id };
- textbl.Inlines.Add(runID);
- Grid.SetColumn(textbl, 1);
- itemRoot.Children.Add(textbl);
- ListViewItem lvItem = new ListViewItem();
- //lvItem.Width = 600;
- lvItem.Content = itemRoot;
- // 将项添加到ListView中
- this.lvDevices.Items.Add(lvItem);
- }
-
}
面代码我简单说一下,如果熟悉WPF的朋友,相信下面的内容你不用看了。由于要显示的内容
有点复杂,包含缩略图和文本,因此用一个Grid作为ListViewItem的内容。
这个Grid划分为两列,第一列放Image控件,第二列放一个用显示文本信息的TextBlock控件。
在TextBlock中,用到了Document对象,两块文本均为Run对象,中间通过一个LineBreak换行。
第一个Run显示设备名称,加粗;第二个Run没有任何修饰,普通文本,显示ID。下图是运行结果。
1楼ygzk123前天 15:55回复napo0yn好的 差点忘了哈
开发界面时textbox是很常用的,当点击textbox时,系统会弹出一个软键盘,但有时候文本框的内容只做展示用,不需要进行编辑,那么就需要屏蔽掉这个键盘。我搜索了很多的资料,都无法将其屏蔽。其实是非常简单的。在textbox的属性里有一项是isHitTestVisiable,只要将其置为false,键盘就不再出现了。