当前位置:首页>文档>高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本

高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本

  • 2026-03-25 20:06:32 2026-03-25 18:57:26

文档预览

高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本
高中选修六信息技术_教资初高中_教资面试2025教资面试备考资料合集_教资面试资料合集_3、教资面试资料包大全_45大圣中小幼面试资料包_高中_信息技术_高中信息技术电子课本

文档信息

文档格式
pdf
文档大小
8.045 MB
文档页数
154 页
上传时间
2026-03-25 18:57:26

文档内容

普 普通 ® 高 通 普 通 高 中 教 科 书 中 高 课 中程 标 教 准 科 教 书科 信息 书 信 息 技术 技 术 PUTONG GAOZHONG JIAOKESHU 选择性必修 6 选 择 XINXI JISHU 性 必 开源硬件 修 6 项目设计 开 源 硬 件 项 目 设 计 中 国 绿绿色色印印刷刷产产品品 地 图 出 中国地图出版社 版 社 信信息息技技术术封封面面的的选选修修本本部部副副本本..iinndddd 22 22002200//77//2233 上上午午1111::2200信息 普 通 高 中 教 科 书 技术 选择性必修 6 开源硬件项目设计 人民教育出版社课程教材研究所信息技术课程教材研究开发中心 编著 中国地图出版社教材出版分社 总主编 祝智庭 樊 磊 中国地图出版社 ·北京·总 主 编:祝智庭 樊 磊 副总主编:高淑印 郭 芳 李 锋 本册主编:张 金 周茂华 编写人员:于旭珩 吴俊杰 李 琦 管雪沨 张敬云 责任编辑:杨聪晖 朱从娜 美术编辑:李 媛 徐海燕 普通高中教科书 信息技术 选择性必修6 开源硬件项目设计 人民教育出版社课程教材研究所信息技术课程教材研究开发中心 编著 中国地图出版社教材出版分社 出 版 (北京市海淀区中关村南大街17号院1号楼 邮编:100081) 中国地图出版社 (北京市西城区白纸坊西街3号 邮编:100054) 网 址 http://www.pep.com.cn http://www.ditu.cn 版权所有·未经许可不得采用任何方式擅自复制或使用本产品任何部分·违者必究 如发现内容质量问题,请登录中小学教材意见反馈平台:jcyjfk.pep.com.cn 如发现印、装质量问题,影响阅读,请与出版社联系调换。电话:010-83543867前言 同学们,欢迎探索信息技术这个神奇而充满魅力的世界。 在以往的学习、生活中,你们已经积累了许多信息技术方面的知识与技能,例如: 在网上查阅资料,用手机与亲朋好友保持联系,使用移动终端、自动柜员机等设备…… 你们知道这些应用中都包含哪些关键技术,涉及哪些领域吗?怎样有效地利用这些技 术帮助我们培养信息意识,提升计算思维,进而通过数字化学习与创新,承担起信息 社会责任呢?即将开始的这门课程,会帮助你们对信息技术有更多的认识和思考,获 得更丰富的体验和感受。 为了很好地掌握信息技术,希望同学们按以下三个要求去努力。 1. 认真阅读教科书,理解基本概念和原理。信息技术发展非常迅猛、各类信息系 统不断涌现,但信息系统的基础和运行体系相对稳定,离不开算法的设计及对数据的 利用。只有夯实基础,才能学好本领,跟上时代发展的步伐。 2. 敢于动手,勤于实践。信息技术是一门实践性较强的课程。实践能帮助同学们 熟练操作技能,进一步掌握知识。因此,要认真阅读理解每章的主题学习项目,并逐 步完成“实践活动”“思考活动”“技术支持”“阅读拓展”等栏目的学习内容,在实践 中获取知识和经验。 3. 要有积极探究、锲而不舍的精神。掌握信息技术的知识与技能需要一个过程, 不可能一蹴而就。信息技术学科内容非常丰富,各知识点之间联系密切,但名词术语 多,有可能令人感到繁杂,甚至产生畏难情绪。学习新知识,首先要知其然,接着通 过不断学习,积极动手操作,大胆请教,加深对知识的理解,然后才能知其所以然, 在不断的探索过程中取得进步。 本书中涉及的配套资源,可在教科书配套教学资源平台的信息技术栏目中获得。 让我们开始一段信息技术新旅程,成长为信息社会中合格的中国公民!目录 第1章 开源硬件及其特征 1 主题学习项目:开源硬件推介会 2 1.1 认识开源硬件 3 1.1.1 开源与开源软件 4 1.1.2 开源硬件与开源协议 5 1.1.3 常见的开源硬件 7 1.2 开源硬件的发展 14 1.2.1 发展背景 15 1.2.2 用户群体与影响力 17 1.3 开源硬件的特征 22 1.3.1 开源与开放 23 1.3.2 分享与协作 24 1.3.3 模块与复用 25 1.4 开源硬件与创新 29 1.4.1 激发创新兴趣 30 1.4.2 培养实践能力 30 1.4.3 助力创新型社会 31 总结评价 34 第2章 开源硬件项目剖析 35 主题学习项目:走进创客空间 36 2.1 设计工具与编程语言 37 2.1.1 设计工具 38 2.1.2 编程工具 402.2 开源硬件开发基础 45 2.2.1 引脚控制 46 2.2.2 输入模块 50 2.2.3 输出模块 52 2.3 通信模块与扩展板 56 2.3.1 通信模块 57 2.3.2 扩展模块 60 2.4 项目开发流程剖析 64 2.4.1 媒体艺术作品 65 2.4.2 不断迭代的3D打印机 66 2.4.3 快速原型 69 2.4.4 项目开发基本流程 71 总结评价 74 第3章 开源硬件创意设计 75 主题学习项目:创想未来生活 76 3.1 分析事物特征 77 3.1.1 需求分析 78 3.1.2 创意与创新 80 3.2 项目设计方案 84 3.2.1 功能设计 85 3.2.2 外观设计 86 3.2.3 交互设计 89 3.3 选择硬件方案 94 3.3.1 核心板选择 95 3.3.2 周边模块选择 973.4 审查并优化方案 102 3.4.1 方案审查 103 3.4.2 方案优化 104 总结评价 108 第4章 开源硬件项目制作 109 主题学习项目:智造美好生活 110 4.1 实现功能 111 4.1.1 启动项目 112 4.1.2 外形制作 113 4.1.3 技术实现 116 4.1.4 实现原型 127 4.2 调控测试 129 4.2.1 测试环境与仪器 130 4.2.2 项目测试 132 4.2.3 调控执行 134 4.2.4 完善项目 135 4.3 开源与知识产权保护 137 4.3.1 项目分享 138 4.3.2 知识产权保护的意义 141 总结评价 143 项目评价 144第 1 章 开源硬件及其特征 “半亩方塘一鉴开,天光云影共徘徊。问渠那得清如许?为有源头活水 来。”宋代哲学家朱熹这首《观书有感》充满了辩证与哲思。只有广开源头活水, 才能保证方塘池水永不枯竭、永不陈腐、永不浑浊;只有不断吸收新知识, 个人才能进步;只有不断锐意创新,社会才能发展。其实,整个人类历史就 是一个不断创新、不断进步的过程。没有创新就没有人类的进步。如何鼓励 创新、保护创新者的权利、保障创新成果,是人们需要长期思考的话题。 早在17世纪,英国议会颁布了世界上第一部现代意义的专利法——《垄 断法规》。英国专利制度的实施,以商业垄断的形式保护和激励了技术创新。 进入 21世纪后,随着技术平民化的进程和互联网传播的快速发展,技术的迭 代周期越来越短,用户参与技术或者产品创新的意愿越来越强烈,人们开始 反思专利或者版权的制度是否需要更新。加上对高科技领域容易出现垄断的 担忧,越来越多的人开始思考,利用开放源代码、开放原始技术这一类的方式, 是否能更加有效地促进创新和协作。 本章将通过主题项目开展学习,了解开源硬件的发展历程、常见开源软 硬件平台及相关模块功能,认识开源硬件的特征及其对社会的影响与作用, 体会知识分享的意义与价值。  11 主题学习项目:开源硬件推介会 项目目标 本章围绕“开源硬件推介会”主题开展项目学习,在了解了什么是 开源硬件之后,通过实际操作简单的开源硬件项目,感受开源硬件的魅 力。了解开源硬件的发展,及其对于创新发展的意义。以小组为单位组 织开源硬件推介会,传播开源硬件及其背后的开源文化和开源思想。 1. 认识开源硬件,了解其发展历程,总结开源硬件的特征。 2. 体验简单的开源项目,了解常见开源硬件平台和相关功能模块。 3. 体会学习开源硬件对于个人和社会创新的意义和价值。 项目准备 为完成项目,需做如下准备。 ● 全班分成若干小组,每组3~5人,各组设计组名和小组标志徽章。 ● 准备好本项目将要用到的3种开源核心板以及废旧纸箱、彩纸和彩笔等布展材料。 ● 收集开源硬件的相关社区和开源项目的网址,建立小组数字收藏夹。 在学习本章内容的同时开展项目活动。为了保证本项目顺利 项目过程 完成,要在以下各阶段检查项目的进度。 制作小组项目徽章 绘制开源硬件发展图 剪辑开源项目短片 完成开源项目推介 1 2 3 4 了解常见开源硬 根据对开源硬件 收集各类利用开 完成《开源硬件 件,体会开源软硬件 发展的了解,选择感 源硬件完成的项目,选 推介报告》,以多种 的配合关系,小组制 兴趣的领域,制作开 择一个角度,剪辑开源 形式展示小组成果, 作发光的项目徽章。 源硬件发展展板。 硬件项目主题短片。 交流讨论。 P12 P21 P28 P33 完成本章项目后,注意汇总各组原始文档,回看推介会上各小组的 项目总结 展示视频,总结并反思各组的工作,提交一份小组学习总结报告。通过 校园网、校园电台、科技节和校园文化节等多种渠道展示小组成果。整 理学习资源时,根据个人兴趣有意识地选择一个特定视角或方向。 2 第1章 开源硬件及其特征1.1 认识开源硬件 学习目标 ● 理解开源、开源软件、开源硬件和开源协议相关概念,能说明它们之间的关系。 ● 了解常见开源硬件平台,能简单操作开源硬件平台。 体验探索 情景照明 灯,源自人类对光明的追求,是我们最熟悉的一种电器。不同颜色的 灯光给人们以不同的心理感受:低色温给人以温馨、舒适和轻松的感觉, 适合休闲、聊天;中色温给人以清爽、激情和时尚的感觉,适合阅读、用 餐;高色温给人以纯洁、清新和明快的感觉,适合工作。 情景照明以场所为出发点,旨在营造一种漂亮、绚丽的光照环境,烘 托场景效果和氛围。随着人们生活水平的提高,情景照明从商业空间逐渐 延伸到家居空间。物联网灯泡是一种能联网的智能情景照明产品,通过网 络,可对其进行远程控制,如图1.1.1所示。这个物联网灯泡可以用手机控 制灯泡的颜色,借助互联网甚至可以在回家前就设计好家里的灯光氛围。 事实上,情景照明产品化之前,就已经有了很多类似的开源项目,这些项 目很多是通过开源硬件配合开源软件编程完成的。 图1.1.1 物联网灯泡与情景照明 思考: 1. 物联网灯泡会给我们的生活带来哪些方便?它可以营造哪些主题情 景照明环境? 2. 查阅物联网灯泡使用说明书,猜想物联网灯泡由哪些部分组成。 1.1 认识开源硬件 31.1.1 开源与开源软件 开源,英文全称是Open Source,就是程序员们常说的“开放源代码”,最初指软件的 作者将原始代码对外公开,后来拓展到开放项目所需的所有原始设计资料。 在计算机发展的早期阶段,软件几乎都是开放的,任何人在使用软件的同时都可以 查看软件的源代码,并且可以根据自己的需求去修改它。程序员相互间分享软件,共同 提高程序设计水平。 后来,一些商业化、专业化软件公司的出现改变了这种自由、开放的环境,它们着 力开发专有的软件。一方面,商业化公司的出现,繁荣了软件市场;另一方面,出于商 业与市场竞争的考虑,这些公司在发布软件的时候,隐藏了程序的源代码,软件开发主 体从开源走向了闭源。 但仍有很多程序员积极倡议开放软件的源代码,尤其是在互联网兴起之后,网络远 程协作使得组建开源软件开发团队更加容易,基于开源软件的项目日益增多。Linux操作 系统就是一个著名的开源项目。由于开放源代码安全性和易用性的不断提高,它在网络 服务器市场占有很高的比重,并衍生出安卓操作系统。 实践活动 体验开源硬件上的Linux操作系统 虚谷号是本书项目中默认使用的三种开源核心板之一,即V型板。在 虚谷号上,可独立运行Ubuntu操作系统(Linux的一种发行版)。另两种核 心板默认为A型掌控板(A型板)和B型掌控板(B型板)。 将V型板连接鼠标、键盘和显示器,接通电源后,V型板自动启动板载 Linux操作系统(图1.1.2),体验V型板板载的Linux操作系统与Windows操 作系统有哪些相同点和不同点。 图1.1.2 V型板操作系统界面 安全注意事项提醒:连接过程中,不要将核心板的电路板放置在金属 或其他导体表面上,以防短路。 1. 尝试在V型板板载的Linux系统上输入文字、编写Python代码、浏览 网页、观看视频、播放音乐,比较其和Windows系统的差别。 2. 查看V型板的系统说明,确认其Linux版本。 4 第1章 开源硬件及其特征开源软件使得人人都可以根据需求修改原始代码,因此,一个开源软件可能会发展 出很多版本。例如,国内很多手机厂家基于安卓操作系统开发了各自的手机操作系统。 开源思想起源于“知识是人类的共同财富”的朴素认识 。因为开源和开放,所以能 不断进步。在互联网出现之后,对信息安全和协作分享的要求越来越高,开源愈发成为 一种分享知识、创新协作的普遍方式。 1.1.2 开源硬件与开源协议 开源硬件 开源硬件是基于开源软件发展而来的,但它涉及硬件设计图、物料清单和制作工艺等 方面,比开源软件更加复杂。目前,人们对开源硬件尚未取得统一的认识,对开源硬件的 定义也有很多种。例如,开源硬件协会(The Open Source Hardware Association,OSHWA) 对开源硬件的界定如下:开源硬件指可以通过公开的渠道(如开源社区)获得其硬件设 计,并允许任何人进行学习、修改、发布、制作和销售的硬件。开源硬件项目包括开源硬 件核心板的设计、扩展板和周边模块的设计以及具体的开源硬件应用项目。 Arduino是一个非常典型的开源硬件项目,其最流行的硬件型号UNO的印刷线路板 图,可以在其网站下载。图1.1.3中三个文件链接分别对应Arduino UNO的印刷线路板图、 电路原理图和电路板设计图。单击并下载第一个文件“EAGLE FILES IN.ZIP”,解压缩后 出现文件名为“arduino_Uno_Rev3-02-TH.brd”的印刷线路板图源文件,可以使用电路板 设计软件Eagle打开它。用同样的方法也可以找到虚谷号的印刷线路板图。 印刷线路板图 电路原理图 电路板设计图 图1.1.3 获取开源硬件的源文件 1.1 认识开源硬件 5实践活动 LED灯闪一闪 在V型板上运行教学资源平台提供的“vvB_blink.py”文件,阅读其中 的Python代码及其注释。 import time # 导入time模块 from xugu import LED # 从xugu库中导入LED类 led = LED(13) # 初始化LED类 # 循环持续开灯、关灯,达到闪烁的效果 while 1: led.on() # 点亮连接D13引脚的LED灯 time.sleep(1) # 持续1 s led.off() # 关闭LED灯 time.sleep(1) # 持续1 s 运行Python程序,会发现V型板上的一个灯开始闪烁,如图1.1.4所示。 图1.1.4 V型板点亮LED灯 1. 阅读其中的Python程序代码及其注释,试说出代码的意义。 2. 使用编程控制硬件,在生活中还有哪些类似的应用实例? 开源硬件通过代码程序来实现具体的控制功能,控制一个发光二极管和控制一个水 闸有相似之处。开源硬件的使用极大扩展了人们对于编程改变物理实体世界的想象力,让 真实世界更加智能。 开源协议 开源软件最初称为自由软件(Free Software),但其英文文意容易被误解为“免费软 件”,后来人们开始转而使用“开源软件”一词,强调“开放源代码”。开源不等于免 费,也不等于没有约束。开源软件同样具有知识产权,同样需要保护著作权人依法享有 的权利。 开源协议是开源项目开发者选择的一种保护自身权益的声明形式,是开源项目开发 者和使用者共同遵循的行为规范。开源协议始于开源软件领域,之后才拓展到了硬件领 域。Arduino的编程环境就来自于开源软件Processing,后经改造并移植到开发微控制器, 6 第1章 开源硬件及其特征其第一款电路板的设计则使用Eagle软件开放了所有的设计资料。 开源作为一种知识分享和交流的方式,与开源软件、开源硬件、开源项目以及开源 社区一起构成了一种文化认同的体系。开源协议可以保护开源作者的权益,它常常会规 定使用开源内容的过程中,使用者对于开源作者的各种责任。 以设计领域的知识共享协议(Creative Commons,CC协议)为例,它包括保留原作者 的署名(BY)、非商业用途(NC)、禁止修改(ND)和相同方式共享(SA)等四种权利。 这四种权利可以自由组合,例如CC-BY-SA,要求使用者保留署名并在修改后仍然用同样 的开源协议进行分享。 思考活动 认识Arduino的开放生态 通过在线商店搜索“Arduino”,能够发现不同规格和功能的兼容 Arduino的核心板、扩展板和功能模块。根据Arduino社区的开源协议,“任 何人都可以在未经告知的情况下改进和生产这个电路板”,但“Arduino” 是注册商标。这意味着在不标注“Arduino”商标的前提下,任何按照开源 设计图的生产和改进以及销售都是合法的。甚至,从Arduino设计规范的全 球推广和协作的角度来看,上述行为是被鼓励的。 思考: 1. 查找一些生产Arduino兼容产品的企业,判断其是否符合开源协议 的要求。 2. Arduino开源硬件项目的原始开发团队是如何保护自身权益的? 合理地使用开源协议,可以保障开发者权益,使开源硬件项目更具活力,参与度更 高。例如,在遵循开源协议的前提下,各生产商的参与,使得Arduino规范有了丰富的兼 容产品生态,这些复制和演绎的兼容版本使得更多人有机会接触和使用开源硬件。 1.1.3 常见的开源硬件 在开源硬件的网络分享社区中,常常可以看到各种各样的开源项目,这些项目所使 用的硬件类型可以分为核心板、扩展板以及周边模块。一般认为,核心板、扩展板及编 程软件共同构成开源硬件平台。开源硬件平台为硬件开发提供基础环境,其中,核心板 是开源硬件平台的核心,是区分不同开源硬件平台的重要依据。 核心板是以运算处理器、存储器及电源等为主要构成的电子系统。不同的核心板在 运算能力、实时性能、应用领域和开放程度等方面都有所不同。为了保证最大限度的通 用性,一些核心板除具有运算功能外,并不提供过多的功能,而是通过不同功能的扩展板 来实现个性需求的。例如,Arduino通过种类繁多的扩展板来满足不同行业、不同领域应 1.1 认识开源硬件 7用的需求。 具有典型开源特征的硬件核心板有很多,常见的有:基于单片机的Arduino,基于轻 量级Python嵌入式操作系统的micro:bit和掌控板,基于Linux操作系统的BeagleBoard、树 莓派和虚谷号,以及面向人工智能开发的Jetson Nano和Khadas VIM3等。 扩展板也称开发板,是对核心板的扩展,一般不能单独使用,需要与核心板配合使 用。不同的扩展板可以实现不同的功能,具备不同特定功能的扩展板可以针对不同的应 用场景。扩展板大多具有丰富的接口。 周边模块是模块化的输入输出功能器件,具备相对简单的特定功能或功能组合,一 般通过扩展板与核心板连接。常见的周边模块有传感器、执行器、显示器和通信模块等。 开源硬件领域中,常见的传感器有光线传感器、声音传感器、温度传感器、湿度传感器、 气压传感器、触摸开关、震动开关和霍尔开关等,用于实现非电信号的物理量到电信号 的转变;常见的执行器有蜂鸣器、电机、继电器和可控硅等,用于实现小信号控制大功 率器件;常见的显示器有各色发光二极管(LED)、LED灯带、发光线、数码管、LED点 阵屏、OLED点阵屏和LCD屏等,用于指示状态或显示信息;常见的通信模块有RS-232 通信模块、RS-485通信模块、蓝牙模块和WiFi模块等,用于有线或无线通信。 目前,传感器、执行器、显示器和通信模块等周边模块已经形成了一些通用接口规 范,因此,多数周边模块可以适用于不同的核心板。 Arduino Arduino主要应用于一些小型、简单的控制项目。Arduino硬件中没有操作系统,只能 存储一段特定功能的控制程序。在计算机上编写的控制代码,经编译后烧写到Arduino控 制器中。 受到接口数量的限制,Arduino拓展功能往往需要通过层层堆叠的扩展板来实现。例 如,Arduino UNO板的运算能力不足以实现类似语音识别一类的高级功能,往往需要换用 其他型号的Arduino板或者选用专用的扩展板。图1.1.5所示是Arduino板和具有语音播放 功能的扩展板。 图1.1.5 Arduino核心板和扩展板 树莓派 树莓派可以当作是一台小型的卡片式计算机,外接存储介质并手动烧写操作系统镜 8 第1章 开源硬件及其特征像后,可以运行Linux系统,如图1.1.6所示。树莓派运算性能高于Arduino,能够实现人 脸识别一类的高级功能,本身具备网络功能和多种接口。 图1.1.6 树莓派 虚谷号 虚谷号是一个面向人工智能教学和Python编程学习的中国原创开源硬件平台,运 行Ubuntu操作系统。板内集成高性能处理器和通用单片机,内置多功能扩展接口和多种 通信接口(包括蓝牙和WiFi),如图1.1.7所示。虚谷号能够流畅运行Python、Arduino、 Processing和Blockly等开源软件。虚谷号扩展接口的引脚资源兼容Arduino,所以,可以直 接使用Arduino的各类扩展板。 图1.1.7 虚谷号 掌控板 掌控板是一款为学习Python编程和物联网应用而设计的开源硬件,内置轻量级Python 开源嵌入式操作系统,采用国产高性能处理器,集成蓝牙和WiFi功能。掌控板分A和B 两种型号,如图1.1.8所示。A型掌控板为5×5全彩LED点阵显示,通过编程可以显示数 字、英文和表情图案等。B型掌控板的输出为一块128×64点阵的小型液晶显示屏,通过 编程能显示中文和相对复杂的图形图像,甚至还可以播放一段视频。 A型掌控板 B型掌控板 图1.1.8 A型和B型掌控板实物图 1.1 认识开源硬件 9掌控板内置加速度传感器、声音传感器、光线传感器、蜂鸣器、轻触按键和触摸按 键等交互器件,通过组合触摸按键和蜂鸣器,能够直接演奏音乐,比较适合制作入门级 趣味作品,也可用于一些物联网应用及可穿戴电子设备。 比较不同硬件的开放程度 对于一个开源硬件项目,除了比较其硬件的基本性能和社区资源之外, 还可以从它对开源文化的认同角度进行研究。可以按照是否使用开源软件 编程、是否开放电路原理图、是否开放印刷线路板图、操作系统是否开源、 是否商标保护、是否允许修改以及是否允许商用等方面对这些核心硬件做 一些比较。不同开源硬件的开放程度如表1.1.1所示。除了表中的硬件之外, 还可以自选开源硬件进行研究。 表1.1.1 比较不同硬件的开放程度 是否开放 对创始团队的保护 开源硬件项目 电路 印刷线 底层操 编程软件 注册商标 允许修改 允许商用 原理图 路板图 作系统 Arduino UNO √ √ √ × √ √ √ 树莓派 √ × × × √ × × 虚谷号 √ √ √ √ √ √ √ 掌控板 √ √ √ √ √ × √ 10 第1章 开源硬件及其特征 … 思考活动 思考: 1. 开源硬件开放程度对硬件的使用有哪些影响? 2. 查找表1.1.1中的开源硬件相关信息,了解其研发背后的故事。 使用开源硬件是对开源文化的一种推动手段,对于具体项目而言,其功能、社区资 源、对开源文化的契合度,都是选用开源硬件核心板时需要考虑的因素。 倡导自主、开放、共赢的中国开源硬件也愈加成为国际创新链条中的重要一环。据 不完全统计,截至2017年底,国内至少出现了上百种开源硬件。这些开源硬件各自的功 能不同,开发者要根据自己的需求来做出合理的选择。实践活动 安装B型板的驱动并下载示例程序 打开教学资源平台中的“zkBqudong.exe”文件,安装B型板的驱动程 序。将B型板连接到计算机,系统会自动提示驱动设备的安装步骤,按照 提示步骤完成驱动安装后,通过计算机的设备管理器查看端口(COM和 LPT)新增设备,如图1.1.9所示,记下端口(COM和LPT)下的COM数 字编号。 图1.1.9 在计算机设备管理器中查看端口号 图1.1.9中的端口号为5(COM5),表明串口驱动安装成功。双击5号端 口(COM5),弹出5号端口的属性对话框,选择“端口设置”选项卡,在 “位/秒”列表中选择“115200”,如图1.1.10所示,单击“确定”按钮,完 成串口配置。 图1.1.10 设置串口波特率 1. 打开教学资源平台中的“zkB.py”文件,下载到B型板中,并查看 其显示效果。 2. 将“zkB.py”文件中的“创新中国”文字修改为“有你有我”,下载 到B型板中,并查看其显示效果。 1.1 认识开源硬件 11项目实施 制作小组项目徽章 一、项目活动 1. 为小组确定一个组名,完成小组徽章的设计,填写表1.1.2。注意合 理分工,成员可先分别绘制草图,再形成小组意见。 表1.1.2 小组项目徽章设计表 小组名称 姓名 分工 姓名 分工 小组成员 姓名 分工 姓名 分工 姓名 分工 项目徽章设计图 技术储备 了解V型板、A型板和B型板的基本程序控制 2. 结合开源硬件技术,完成徽章的制作。 二、项目检查 1. 项目徽章的设计是否发挥了集体的作用。 2. 硬件设备的使用是否合理。 3. 是否挑战了技术难度,例如,更改闪烁的频率,改换图案和文字等。 12 第1章 开源硬件及其特征练习提升 1. Linux操作系统中还有很多开源软件,请根据目标功能搜索出它们的名称,并了解 其各自的应用特点,填写表1.1.3,也可以自选软件完成分析。 表1.1.3 开源软件分析 功能 软件名称 应用特点 打开和编辑文档 浏览网站 播放视频 编辑图片 编写Python程序 2. 一位老师撰写了一个开源硬件使用教程,并使用CC-BY-NC-SA协议将其分享到 开源社区,请解释开源协议的意义,并判断表1.1.4中列举的行为是否违反了开源协议。 表1.1.4 开源协议行为分析 行为 是否违反开源协议 某学校的老师使用该课程开展教学,保留了作者的署 名,并将改进后的教案以同样的开源协议进行分享 某公司联系了该老师,将该教程放在了公司产品的宣 传网站上,并支付了相应的费用 某课外辅导班用该课程开展暑期夏令营,收取了相关 的费用,但并未联系该老师 一位高中生用该课程自学开源硬件的使用 3. 查找更多关于Arduino核心板版本的信息,并思考各种版本在性能、资源、功能与 应用定位等方面的差异(参考检索词:Arduino Leonardo、Arduino Nano、Arduino LilyPad 和Arduino Yun等)。 1.1 认识开源硬件 131.2 开源硬件的发展 学习目标 ● 了解开源硬件的发展背景和简单历程,能说明开源硬件发展的动因。 ● 了解开源硬件的用户群体及社会影响力,能列举生活、学习中的开源硬件项目和创作背景。 体验探索 从洗印照片到腐蚀电路板 传统的洗印照片技术是用化学的手段将底片的灰度或色彩信息还原出 来,目前,这种技术已经被喷墨打印技术替代。但是,洗印照片的方式同 样可以用于电路板的制作,这种技术称为腐蚀电路板,如图1.2.1所示。基 本流程为使用打印机在透明胶片上打印出电路图像,然后将胶片粘接在感 光板上进行光照感光,经过显影和腐蚀之后,电路板就被制作了出来。 图1.2.1 传统腐蚀电路板 与洗印照片类似,腐蚀电路板只能算是传统的手工制作方式。在大工 业生产中,专业电路板生产企业有更为快速高效的方法。但与使用电子文 档印制出一本书类似,拥有一个开源电路板的电子文档,使用腐蚀电路板 的方法,自己也可以制作出一个电路板。 思考: 1. 自制电路板适合哪种应用场景?有哪些利弊? 2. 在实际应用中,自制电路板和工业生产电路板两种方式如何相互补 充、相互配合? 14 第1章 开源硬件及其特征1.2.1 发展背景 开放硬件可以追溯到很久以前,随集成电路的发展经历了几个不同的发展阶段。早 在20世纪六七十年代,电子爱好者就已开始互相交流电路设计和电路板图,形成了开放 硬件的雏形。与此同时,在国内出现了很多以业余无线电和电子设计为主题的书刊和杂 志,组装矿石收音机、晶体管收音机甚至电视机在当时非常流行。 可编程控制器的出现,使电子行业出现了软件和硬件的分工。硬件厂商大规模生产 具有微处理器指令集架构的芯片,以取得芯片生产的规模效应。软件企业进行软件开发, 以适应不同应用之间个性化的需要。 20世纪90年代,随着互联网以及开源软件的盛行,人们很自然地想到,也可以利用 开源软件的理念进行硬件设计,此时才出现了开源硬件的概念。到20世纪90年代末,出 现了许多开源硬件项目,但没有引起更多人的关注,它们中的大多数都很快消失了。那么, 后来开源硬件又是如何发展起来的呢? 思考活动 开源硬件的百度搜索指数 在百度指数平台中可以查询开源硬件相关词的百度搜索指数数据,如 图1.2.2所示是2011—2016年关键词“Arduino”的百度搜索指数曲线。 图1.2.2 2011—2016年度关键词“Arduino”的百度搜索指数曲线 思考: 1. 分析曲线后,能得出什么结论?能否通过搜索得到这些数据的原始 资料,挖掘数据背后的规律呢? 2. 查询关键词“Arduino”2017年以后的百度搜索指数曲线。 3. 查询与开源硬件相关的其他关键词的百度搜索指数曲线,比较各关 键词的曲线之间的差别,并思考原因。参考关键词可以是开源、树莓派、 Eagle、Python、创客、人工智能…… 2005年,Arduino的出现,是开源硬件发展的一个标志性事件。Arduino项目是由意 大利米兰互动设计学院的教师马西莫·班兹(Massimo Banzi)等人发起的,项目的目的 1.2 开源硬件的发展 15是设计一款价格便宜且应用简单的控制器,用于设计机器人和具有交互功能的艺术作 品。Arduino研制成功后,很快应用到学院的设计互动媒体作品中,并在网上快速传播。 Arduino的创造者们决定公开Arduino的硬件设计图和软件程序代码,并申明任何人都可以 复制、重设计甚至出售Arduino。于是,越来越多的人加入到Arduino的改进工作中,甚至 一些大公司也发布了各自版本的Arduino兼容产品。大量以Arduino为基础的项目和社区蓬 勃发展。今天, Arduino已成为具备全球影响力的开源硬件。 Arduino快速发展后,开源硬件再次成为焦点,更多人开始以更大的热情研发开源硬 件和传播开源文化,陆续出现了树莓派和micro:bit等优秀开源硬件项目。开源硬件发展至 今,已经形成性能从低到高比较完整的体系。 开源硬件在国内发展迅速,首先应用于高校艺术与媒体院系师生的艺术创作。2007 年,互联网上开始出现开源硬件中文教程。2010年10月,国内第一个创客空间“新车间” 在上海成立,创客空间中广泛使用开源硬件研制机器人、3D打印机等作品,推动了国内 开源与创客文化的发展。同时,一批国际化程度很高的企业在开源硬件的带动下得到成 长,优秀、高效的中国制造给开源硬件的传播插上了翅膀,这些企业不光生产Arduino兼 容的核心板、扩展板和周边模块,还生产独自研发的品牌产品。国内开源硬件爱好者在 互联网上开展线上交流,逐渐形成了国内的开源社区。近几年,开源硬件开始应用于国 内高等教育机构和中小学校的教学活动,并取得了较好的教学效果。 实践活动 以U盘形式向V型板下载程序 通过数据线将V型板连接到计算机的USB 接口上,系统会自动增加一 个U盘存储空间,只需将计算机端编写的Python程序下载到U盘中即可执 行并控制V型板,如图1.2.3所示。 图1.2.3 V型板U盘模式下连接与显示效果 1. 将教学资源平台中的“vvB_blink.py”文件复制到U盘模式的V型板 上,观察13 号灯的闪烁效果。 2. 将教学资源平台中的“vvB_suiji.py”文件复制到U盘模式的V型板 上,观察13 号灯的随机闪烁效果。 3. 比较V型板的U盘模式和计算机模式各有什么优点? 16 第1章 开源硬件及其特征从开源硬件的发展过程可以看出:一个开源硬件是否能够流行,不仅仅取决于其技 术是否领先,最主要的因素是它能否被开源社区普遍认可和广泛接纳。Arduino能够从一 块简易电路板发展到具有多个系列、性能从低到高、功能从单一到集成多种模块的丰富 多样的平台,这就是一个很好的例子。 国产开源硬件的发展应该是“众人拾柴火焰高”的过程。改善用户体验、扩展用户 群体和积累社区资源都非常重要,这些都是构成一个开源硬件平台影响力的重要因素。 1.2.2 用户群体与影响力 在开源社区中,可以看到各种各样的开源硬件应用项目。这些分享项目案例的作者 是介于专业开发者和普通消费者之间的传播载体。交流和分享使得开源硬件用户群体不 断扩展,从最初的媒体艺术领域扩展到快速原型、教育应用等多个领域的用户群体,最 终扩展到普通消费者。 随着开源硬件的发展,其用户群体也在不断壮大,这里选择比较有代表性的媒体艺 术、快速原型和教育应用领域的用户进行介绍。 媒体艺术 媒体艺术是用多种媒体形式表现艺术家主张的一种互动艺术形式。开源硬件的兴起 与媒体艺术紧密相关。开源硬件使得硬件开发的门槛降低,媒体艺术家乐于将开源硬件 应用到自身的艺术作品中。搜索互动媒体艺术展,能看到很多与装置艺术相关的开源硬 件作品。很多艺术家也将开源硬件项目进行改进,赋予作品更多的交互功能和艺术元素, 使其更容易被公众接受,或者传递更丰富的艺术理念。例如,一位艺术家改进了开源的 高压放电装置,制作了一个用闪电演奏音乐的大型乐器,如图1.2.4所示,用于一场音乐 会的伴奏,以表达对世界和平的期待。 图1.2.4 特斯拉线圈乐器 媒体艺术领域是一个将个人兴趣和公众参与很好地融合起来的开源硬件应用领域。 1.2 开源硬件的发展 17制作一件发光的衣服,举办一场智能乐器的演奏会,都体现了科学、技术、工程、艺术 和数学等多学科融合的时代特点。 快速原型 原型指具备目标作品或产品的核心功能的演示或测试的样品,常用来测试一个创意、 想法的可行性,确定其技术难度和目标用户的需求。电子产品的原型制作往往需要很长的 时间,但因为利用开源硬件可以应用很多现成的模块和开源程序,这一过程被大大缩短, 因而产生了快速原型的概念。 快速原型方法也常常用于科学研究和项目测试阶段,由于实现迅速、成本低,开发 者可以更为迅速地确定项目的方向,节省研发成本。原型开发还可以和网络社群结合起 来。例如,某公司的“智能音箱”项目,在研发阶段就开源了部分代码和设计,使得产 品未经发布,就有很多爱好者发表了自己的创意设计,引发了网络上对“智能音箱”产 品的好奇,这样有助于促进公众对智能音箱产品更多的了解。 完成了原型测试后,项目很有可能还需要重新优化方案,自行生产或者寻找代工, 完成大规模生产。很多众筹项目都是通过代工完成的,这充分体现了中国制造业的优势。 通过快速原型技术,提升制造的创新程度,也是开源硬件的一个应用方向。 实践活动 闪亮的广州塔 使用开源硬件的各种模块,可以迅速完成一个作品外围电路的搭建。 某小组学生想要制作一个“闪亮的广州塔”模型,设想在一个瓦楞纸剪出 来的广州塔模型中从下往上安装红、黄、蓝、绿、白五种颜色的发光二极 管,并能依次快速闪亮,如图1.2.5所示。 (a)闪亮的广州塔 ( b)二极管模块安装示意 图1.2.5 搭建闪亮的广州塔快速原型 将扩展板插到V型板上,然后将五个发光二极管模块的连接线插入扩 展板的13、12、11、10和9五个端口,如图1.2.6所示。注意,扩展板的引脚 18 第1章 开源硬件及其特征要和核心板的引脚孔对齐,垂直插拔,连线的颜色要和扩展板端口的颜色 保持一致。 图1.2.6 广州塔模型硬件连接 打开教学资源平台上的“vvB_liushuideng.py”文件,复制到U盘模式的 V型板上,观察五个彩灯依次点亮的效果。 思考: 1. 快速原型技术的优点在“闪亮的广州塔”项目中是如何体现的? 2. 如果修改程序让广州塔可以闪烁得忽快忽慢,可以怎么做? 教育应用 很多大学生使用开源硬件来完成毕业设计、日常习作,或是参加一些创业和科技类 的竞赛。随着技术门槛的降低,以及开源硬件的普及,越来越多的中小学生也开始使用 开源硬件来完成科技作品。 2011年左右,开源硬件开始进入国内部分高校(如清华大学、浙江大学和同济大学 等),成为受大学生欢迎的课程内容。 从2016年开始,在国内中小学科创类、创客类赛事中增加了基于开源硬件的创客竞 赛项目,如图1.2.7所示,来自不同地区的中小学生使用开源硬件现场制作开源硬件项目, 激发创新兴趣,培养创新能力。 图1.2.7 中小学创客竞赛 1.2 开源硬件的发展 19在开源社区中,常常有一些流行的开源项目,得到了很多人的欣赏,他人也希望获 得这个项目所需要的开源硬件器材包,这样就产生了一些生产套件的小规模生产需求。例 如,某开源网站上的一个物联网浇花项目(图1.2.8)引起了大家的关注,开发者以套件 方式小规模生产项目作品,并将套件信息发布到开源网站的“心愿单”功能区,对该项目 作品有兴趣的人可在“心愿单”功能区购买套件。这样,在满足其他爱好者需求的同时, 开发者也因此获得了一些知识产权收入。 图1.2.8 物联网浇花项目 “物之所在,道则在焉,物有止,道无止也。”开源硬件是一个不断发展的技术领域, 随着用户群体不断扩展,影响力也不断扩大。开源精神、开源文化和开源协议就是其中 的“道”,是保证开源硬件能够不断发展并造福于社会的内在动力。 阅读拓展 RISC-Ⅴ开源架构 芯片是电子信息行业的基石。开源模式正在从外围电路设计拓展到芯 片内核架构领域。长期以来,全球CPU指令集架构被ARM和Intel x86垄 断,2010年诞生的开源RISC-V指令集,有望打破这一格局。 RISC-Ⅴ是基于精简指令集计算(Reduced Instruction Set Calculation, RISC)原理建立的开源指令集架构,Ⅴ代表第五代,表示此前已发展了四 代RISC处理器原型芯片。与大多数指令集架构垄断的做法不同,RISC-Ⅴ 可以免费用于所有设备中,允许任何人设计、制造和销售RISC-Ⅴ芯片和 软件。基于RISC- Ⅴ指令集架构的CPU可以用于服务器、人工智能、家用 电器、工业控制和嵌入式、低功耗型传感器、物联网等多个领域。 现在,许多学校已经开始将RISC-Ⅴ用于教学,知名科技企业纷纷宣 布支持RISC-Ⅴ架构,并涌现出了一批创新、创业型科技公司。RISC- Ⅴ 架构已成为开源硬件的重要发展方向之一。 思考: 对于国产芯片自主发展,开源的RISC-Ⅴ架构有哪些借鉴价值和意义? 20 第1章 开源硬件及其特征项目实施 绘制开源硬件发展图 一、项目活动 1. 根据对开源硬件发展的了解,各组选取一个角度,设计开源硬件发 展历程图,填写并完成表1.2.1。 表1.2.1 开源硬件发展历程图设计表 小组名称 小组成员 开源硬件开发工具( ) Arduino( ) 开源硬件的生产企业( ) 国产开源硬件( ) 选取角度(分类) 艺术应用( ) 产品原型( ) 教育应用( ) 自选角度_________ 开源硬件发展历程图的 开源硬件发展历程图的设计依据 设计 2. 使用瓦楞纸等结构材料,通过多种形式呈现开源硬件的发展历程图, 并用其布置教室,也可使用LED闪烁等硬件丰富效果,使教室的整体环境 更加体现开源精神。 二、项目检查 1. 能收集有效信息,选取一个角度描述开源硬件的发展历程。 2. 是否选用了多种表现形式完成实物作品。 练习提升 1. 如果你打算利用假期去某开源硬件公司实习,进一步学习开源硬件,在初步了解 国内开源硬件公司情况的前提下,选择一家适合自己的公司,尝试进一步了解。 2. 搜索一位媒体艺术家的网络空间,查看其作品中都用到了哪些开源硬件。 3. 以下为某开源硬件公司三个年度的销售额(表1.2.2)。从这些数据当中,你能够感 受到开源硬件市场的哪些信息? 表1.2.2 年度销售情况 年度 国内销售额/万元 国外销售额/万元 2014 500 1 700 2015 1 100 2 200 2016 2 400 3 500 1.2 开源硬件的发展 211.3 开源硬件的特征 学习目标 ● 理解开源硬件特征,能列举分析一些广泛传播、有影响力的开源硬件项目。 ● 领会开源硬件特征与其快速发展之间的关系,能简单使用开源硬件周边模块。 体验探索 开源玩具正流行 各种各样的玩具伴随人们度过了快乐的时光,很多开源硬件项目也以 制作玩具为主题。很多人喜欢搭积木,并购买各种积木玩具。开源结构件 项目“乐造模块”使用激光切割机自己加工积木,只需一台激光切割机, 通过开源图纸就可以制作出很多“乐造模块”。如图1.3.1所示,“乐造模 块”可用来搭建各种结构,甚至可用来搭建机器人,受到很多爱好者的欢 迎。开源软件、开源硬件、开源结构件共同配合起来,一件件“开源玩具” 就被设计出来了。 图1.3.1 使用“乐造模块”搭建作品 思考: 1. 积木式的模块设计有什么优点? 2. 如果你是“乐造模块”项目团队的负责人,你会通过哪些途径推广 开源结构件? 22 第1章 开源硬件及其特征1.3.1 开源与开放 创新、协调、绿色、开放、共享的发展理念,作为中国创新驱动发展的新指导思想, 贯彻到新阶段经济社会发展的方方面面。开源硬件的发展也高度契合了国家当前的这一 发展理念。 开源与开放是开源硬件平台的核心特征。因为开放源代码和电路板设计图,其他开 发者可以不断修改原始设计,使得开源硬件的功能不断完善。开放的态度能让全世界范 围内的开发者都基于开源协议,开展专业协作,使得各方都受益。 实践活动 建立开源硬件平台资料库 虚谷号是中国的一个开源硬件项目。如果要向一个项目开发者介绍如 何使用虚谷号,需要为其准备哪些开发资料呢? 请查询虚谷号的开源资料并填写表1.3.1。 表1.3.1 开源硬件平台资料库 开源硬件平台 虚谷号 基本配置 操作系统 程序编写环境 典型程序案例 拓展模块接法 典型应用案例 小组分工收集、整理并保存更多开源硬件平台的资料,建立小组开源 硬件平台资料库。 思考: 1. 虚谷号相对于其他开源硬件平台有什么优点,有哪些不足? 2. 比较不同开源硬件平台,它们如何体现开源硬件的开源与开放特征? 开源硬件的开源与开放特征,保证了好的开源项目能够不断改进。随着越来越多的 用户参与平台开发,开源硬件平台不断完善且使用更加简便,即使没有技术基础的人,也 能便捷地利用这一平台来实现自己的创意。公开创意成果又会吸引更多人参与进来,从 而在设计、开发和应用等环节形成良性循环,快速推动技术的普及和应用。 每个人都会有好的想法,都有实现创意的冲动,但不一定能有持续的精力和兴趣去 1.3 开源硬件的特征 23维护这个想法。因为开源与开放,一个具有好想法的开源硬件项目,即使创始人出于某 些原因不再维护该项目,仍会不断地有新的力量加入项目的开发。因此,开源与开放的 特征保证了好的开源项目能够持续运行。 1.3.2 分享与协作 浏览开源社区的各种开源项目,不难发现很多开源硬件平台都是通过爱好者分享开 源应用才流行起来的。图1.3.2是一个中文开源硬件社区的项目界面。开源社区的作用是 促进开源硬件用户之间的分享与协作。分享与协作是开源硬件平台的基本特征,来自不 同技术背景、不同地域、不同年龄的人之间的分享和协作,推动了开源硬件的蓬勃发展。 分享与协作的特征保证了开源社区能不断创新出好的内容。 图1.3.2 开源社区中的分享与协作 开源社区的存在使得一个项目在入门阶段就可以试图寻求社区支持,让好的想法能 通过他人的支持更快地变成现实,让更多有好的想法但技术不足的人,能够从社区中获 得支持。分享与协作的特征保证了开源社区的多样性。图1.3.3所示为一位老师在开源社 区中寻求技术支持。 我想做一个开源的气象站项目 我是一名科技教师,学生游学带回来了一个校园气象站,能够测量温度、湿度、风力、风向等气象信息,但是我想 指导学校的科技社团对这个气象站做一些改进。 (1)有测量空气质量的功能 (2)能够将检测的效果放在网页上 此外我还想改进这个校园气象站,看看能不能做一个适合更多学校的气象站,并且对数据进行汇总,我做了一些尝 试,但是还是期望有其他的朋友提出一些改进意见。 图1.3.3 在开源社区中寻求技术支持 24 第1章 开源硬件及其特征实践活动 建立开源项目资料库 开源社区使得人们能够超越地域的限制开展分享和协作,图1.3.4所示 是以“instructables”为检索词搜索到的一些开源项目。 (a)开源的水槽波动演示装置 (b)3D打印制作逼真的卡通人物 (c)制作简易的手机支架 图1.3.4 开源项目资源实例 利用开源硬件应用项目资料,分组整理开源硬件应用项目资料库,注 意结合组内各成员的个人兴趣和优势领域合理分工。 思考: 1. 如何尽可能全面地收集信息,并确定用怎样的载体整理这些信息? 2. 这些开源硬件应用项目是如何体现开源硬件分享与协作的特征的? 我国幅员辽阔,存在地域发展不均衡的问题,因而需要协调发展、共享资源。开源 硬件的分享精神使硬件的开发制作成本和开发难度降低,可促进开源硬件的普及,便于生 成大量的学习资源。不同地域的学生参与在线学习,当学生水平提高之后,还可以成为 开源项目的发布者,和开源硬件的开发者、爱好者共同提高,形成正反馈激励机制,实 现终身学习。 1.3.3 模块与复用 大多数开源硬件设计都是模块化的,可以被拆分成一个个小的模块,一个硬件模块、 一段程序甚至一个作品都可以被视为一个模块。 模块化的设计要求各种功能模块具有统一的接口或者通信方式。模块化设计的开源 硬件可以方便地在其他项目中复用,从而使得模块可以单独维护,并易于使用。模块化 也有助于提升系统的稳定性,降低系统维护成本,体现了绿色发展的设计理念。 模块化的开源硬件有助于节约技术开发时间,将通用的功能打包成硬件模块,减少 1.3 开源硬件的特征 25底层技术开发时间。将项目的主要时间放在真正的教学目标和应用目标上,而不是重复 翻越基础的技术门槛。通过模块之间的组合,易于快速理解和搭建复杂电子信息系统。 模块化的设计不用搭建底层电路,可以重复使用,节约总成本。 实践活动 建立开源硬件周边模块资料库 在V型板扩展板A0引脚接入一个旋钮模块,D10引脚接入一个发光二 极管模块,连接V型板到计算机上,将教学资源平台上的“vvB_zengjia.py” 文件复制到V型板中。可以观察到旋钮旋动能控制发光二极管的亮度,根 据这个效果可以制作一个可调亮度的台灯,如图1.3.5和图1.3.6所示。这 里,旋钮为输入模块,发光二极管为输出模块。 图1.3.5 可调亮度的台灯的接线图 图1.3.6 台灯作品示意图 在开源硬件在线商城中搜索一些感兴趣的电子模块,按照输入模块、 输出模块和其他模块进行分类,通过阅读说明文档,将感兴趣的模块加入 到自己的开源硬件收藏夹中,并整理成如表1.3.2的资料记录表。注意保留 模块的接线图、例程等相关资源。 表1.3.2 周边模块资料 输入模块 输出模块 其他模块 思考: 1. 之前了解的开源硬件项目都使用了哪些功能模块? 2. 将接入A0端口的旋钮模块换成声音传感器模块,交互效果有什么变 化?这个效果有什么实际应用?还能接入哪些传感器模块? 26 第1章 开源硬件及其特征技术支持 V型板使用简介 V型板源于信息技术学科的教学需求,是一个面向人工智能教学和 Python编程学习的开源硬件平台,板内集成高性能64位处理器和通用8位 单片机,硬件方面可以看成是树莓派和Arduino UNO的合体。 V型板运行完整的Linux系统,提供音视频接口、USB接口,具备蓝牙 和WiFi功能,接上鼠标键盘和显示器,就是一台完整的计算机,可以运行 标准的Python程序和常见的人工智能应用。V型板内置的存储空间为人工 智能和Python编程教学提供完整课程资源包,便于高效完成教学任务并快 速搭建简易信息系统。 V型板板载的单片机与Arduino的软硬件兼容,引脚布局与尺寸也兼 容Arduino,提供14个通用数字输入输出引脚和6个模拟输入引脚,用于 连接各种数字或模拟输入输出设备、集成传感器等各种硬件模块。现有的 Arduino扩展板可以直接在V型板上使用,并直接运行现有的Arduino程序。 这种应用模式下,V型板可被视作集成计算机功能的Arduino开发系统。 改变开源硬件作品的输入输出模块的种类,可以产生多种不同的应用效果。开源硬 件模块可复用的特征使得利用自己或他人之前的技术成果非常方便,大大节省了研发成 本和时间。 开源与开放、分享与协作、模块与复用作为开源硬件的典型特征,体现了开发者、 爱好者、学习者、生产者与消费者在“一个好想法”变成现实过程中的分工协作,很多流 行的开源项目也从小众的实验室走出来,成为大众的消费品,体现了创新驱动发展的时 代要求。一个优秀的开源硬件项目,不完全是技术实现的问题,还涉及产品设计、传媒 推广、时代背景等多重因素,还需要在开源硬件项目设计和实施过程中反复实践和体会。 思考活动 开源硬件与制造业革命 当前,国家在大力推进互联网和制造业的融合发展,数字化技术越来 越多应用到制造业中,快速成型技术在制造业中得到广泛应用,众筹等一 些新理念相继出现。小组内选读几本与互联网、创客、创新、新工业革命 以及数字化设计与制造等相关书籍。 思考: 1. 数字设计与快速成型技术如何促进个人发明创造的发展? 2. 互联网、众筹和开源硬件对科技行业会产生哪些影响? 1.3 开源硬件的特征 27项目实施 开源项目集锦短片 一、项目活动 开源硬件的发展是通过开源硬件项目积累完成的,开源硬件各方面的 特征均可通过相关的具体项目进行呈现。硬件项目的效果展示和制作过程 描述等内容可以用视频方式进行整理,效果比较好。请选择一个角度进行 研究,并用视频短片的形式描述开源硬件的特征,填写完成表1.3.3。 表1.3.3 开源项目集锦短片素材 小组名称 小组成员 开源硬件的特征 开发者视角:开源与开放 Arduino( ) 虚谷号( ) 自选角度_________ 网络社区视角:分享与协作 中文开源社区( ) 自制3D打印机( ) 自选角度_________ 硬件设计视角:模块与复用 输入模块( ) 输出模块( ) 自选角度_________ 视频剪辑思路 视频资源库 二、项目检查 1. 视频短片是否有观赏性,节奏紧凑。 2. 视频是否能够从某一个角度体现开源硬件的特征。 练习提升 1. 很多流行的软件和媒体作品丰富了我们的生活,但同时也存在着开发者为了流行 而忽视社会公德的现象。请举例说明如何自觉抵制这种现象,维护网络空间的安全稳定 和繁荣。 2. 思考家里的各种功能区可以划分成几个模块,每个模块具有怎样的功能以及模块 之间的相互关系。如果细化装修和家电的各种功能模块,又有哪些新的发现?这些模块 的复用性如何?如何改进? 28 第1章 开源硬件及其特征1.4 开源硬件与创新 学习目标 ● 理解利用开源硬件促进信息技术创新的价值与意义,具备鉴别信息技术创新的能力。 ● 理解开源硬件对于构建创新型社会的意义,能列举开源硬件促进创新的案例。 体验探索 神奇的旋转LED显示 旋转LED显示是一种利用人眼的视觉暂留原理制作的,用少数(一般 是一列)LED加一只电机代替点阵进行字符显示的显示屏。当电机稳定转动 时,用计算机程序精确控制每一个LED的亮和灭,即可产生预设的字符或 图案效果,如图1.4.1所示。 图1.4.1 旋转LED显示实例 思考: 1. 为什么人们会喜欢旋转LED显示?这种显示方式有哪些优劣? 2. 旋转LED显示还可以应用在哪些领域? 1.4 开源硬件与创新 291.4.1 激发创新兴趣 随着电子硬件技术的迅猛发展,硬件结构和控制逻辑变得愈加复杂,设计开发难度 也在不断增加,对开发人员基础知识的要求也大幅度提高。 开源硬件的出现,有效降低了硬件系统的开发门槛,开发者可以聚焦在自己关心和 擅长的工作部分,其他工作可以利用他人已公开的成果,以加快开发速度,提高生产效 率。开发者和消费者之间的界限正在变得愈加模糊。 什么是创新?哪些人擅长创新?如何鼓励持续创新?这些问题一直以来都没有明确的 答案,但是比较一致的观点认为“兴趣是创新的一个关键因素”。由于工业品的大规模制 造,满足消费者的突破性创新需求也变得越来越困难,而且通用的公共需求也难以满足所 有人的个性化需要。开源硬件让更多的人可以自己动手满足需求,借助开源社区并向开源 社区反馈项目,从而构成一种既能满足个性化需求又能丰富社会创意方案的创新组织形式。 实践活动 数字骰子 A型板和B型板都板载了一个加速度传感器,能够感 知外界环境的加速度变化。例如,摇动核心板或者核心 板掉落时,该加速度传感器都可以感受到变化。 借助加速度传感器,可以制作一个数字骰子,每当 摇动A型板时,都会使其随机显示一个1 ~ 6的数字,如 图1.4.2所示。 图1.4.2 数字骰子 1. 从教学资源平台下载“zkA_touzi.py”文件到A型 板中,运行程序,查看数字骰子的实验效果。 2. 阅读源代码,并用流程图的形式描述代码的程序结构。 思考: 1. A型板和B型板的显示方式不同,哪个更适合做这个项目? 2. 从提升趣味性的角度考虑,如何改进数字骰子? 1.4.2 培养实践能力 随着信息时代的发展,每个人都可以通过网络表达自己的想法,不仅可以在开源社 区中为自己喜欢的项目点赞,甚至可以直接成为一个开源项目的发起者。实践能力既来 自于知识的积累,又来自于项目经验,并通过各种正向的评价积累生成自信。培养实践 能力也是一个循序渐进、反复思考的过程。通过开源硬件项目的学习,用开源硬件来改 善我们的学习和生活,是提升实践能力的一个很好的切入点。 30 第1章 开源硬件及其特征创新和实践是相互影响的,新技术需要寻找其应用领域,实践中提出的问题也需要 通过创新的方法来解决。学习开源硬件,除了获得一些具体的技术之外,还可以体会创 新和实践的乐趣。在学习和生活中努力养成用创新和分享服务大众的习惯,是一个终身 学习的过程。 阅读拓展 开源硬件怎么学 伴随着开源硬件的普及,越来越多的学生开始使用开源硬件来完成科 技作品。2018年6月,创客教育社区的记者采访了某中学的于老师,请她对 开源硬件的学习方法做一个指导。 记者:“于老师,您指导开源硬件项目这么多年,有没有印象比较深的 学生项目呢?” 于老师:“今年就有一个关注校园噪音污染的项目案例,很多物联网传 感器被安装在校园的各个角落,并且能够进行信息汇总。去年,还有一个 教室空气污染检测的项目,这些跟校园生活相关的项目我都很喜欢。还有 一些有趣的互动项目也很好,例如去年有一个用脑电波传感器控制小球迷 宫的项目,这个项目源自于一个开源项目,但是我们给它做了改进。” 记者:“您觉得做这些开源项目的孩子有哪些好的习惯,能够帮助到后 面学习开源硬件的同学么?” 于老师:“我觉得首先在于观察生活,主动地关注自己或者他人的需 求。然后要有比较扎实的基本功,能够做到熟能生巧。再就是多看看网络 社区上别人的分享,打开视野。像我从初中带起来的一名学生,一直在网 络社区中学习,不但学别人的项目还分享自己的项目,这种正向的激励, 让学生学得特别主动,持续创新,一年能有好几个项目,效果特别好。此 外,还要具备一定的自我学习能力,因为一个项目涉及的知识技能是多方 面的,要养成一种整合知识的思维方式。” 看了于老师的分享之后,你对开源硬件的学习有了哪些新的认识? 1.4.3 助力创新型社会 创新型社会的营造,需要每个人都付出努力。如何积聚全社会的力量,开源硬件的 发展历程给了一个很好的范例:开源硬件核心板开发、开源硬件项目案例和开源硬件周边 模块开发等参与者构成技术参与方;开源网络社区、线下的创客空间和大众传媒构成传 播参与方;案例和教程出版机构、课程开发以及各种竞赛评价平台构成教育参与方。技 1.4 开源硬件与创新 31术参与方、传播参与方和教育参与方三方面共同的努力成为开源硬件发展的基础。 随着技术水平的不断进步,智能化工厂将更为便捷地满足人们差异化的需求。开源 硬件和周边模块的使用,使得新的产品创意设计可以快速地转换为真实产品,完成虚实 之间的转化。人人都是发明家,人人都是创新者。这些美好的想象并不完全取决于技术 本身的进步,还有赖于人们为美好生活付出更多的智慧。 思考活动 开源与正义 请阅读新闻材料并思考问题: 某网站2018年7月19日报道“外媒称,据一位知情官员称,欧盟决定 对美国‘字母表’公司旗下谷歌处以创纪录的43.4亿欧元罚款……欧盟的 反垄断监管部门一直在研究,谷歌是否滥用了安卓操作系统的主导地位, 以及是否通过这一全球逾80%智能手机都在使用的系统来推销和巩固谷歌 自己的移动应用程序和服务,尤其是谷歌搜索引擎这一服务。” Makezine新闻网站2015年某日曾报道,开源硬件核心板项目Arduino的 创始团队与Arduino的意大利生产商之间爆发了关于Arduino商标所有权之 间的国际诉讼。这场诉讼甚至一度引起了开源社区的分裂,并引起了人们 对于开源文化的重新思考。 思考: 1. 安卓系统是谷歌的一个开源系统,有人认为“没有开源就没有谷 歌”,但为什么欧盟担忧谷歌将形成垄断?思考各国反垄断法案出台的历史 背景和意义。 2. 查询Arduino商标诉讼的后续结果,思考该事件带给我们哪些方面的 启示,以及如何避免类似的纠纷。 开源或不开源、公益或营利、个人与社会这些矛盾及其转化成为推动社会进步的动 力。从协调发展的角度来看,开源是一种手段而不是目的。技术创新的目标仍是促进人们 美好生活的实现、促进全社会的创新和分享、促进全世界范围内协作和公平正义的实现。 “以义制利”的传统中国智慧,对于建立全球开源硬件治理体系,仍具备时代的借鉴意义。 早在明末清初时期,科学家宋应星总结了历代的科学、技术和工程知识,撰写了《天 工开物》,其中包含了各行各业的造物技巧,被誉为“中国17世纪工艺百科全书”。 开源 文化的内核源于知识的分享属性,一个能极大提高生产效率的产品,其制作秘密被分享 出来以后,将会促进社会生产力的发展。目前,甚至在芯片领域也出现了类如RISC-Ⅴ的 开源芯片内核架构。从外而内,由表及里,开源硬件领域将会更开放透明,让全世界分 享其创新成果。 32 第1章 开源硬件及其特征项目实施 完成开源项目推介 一、项目活动 1. 小组采用思维导图的形式完成对《开源硬件推介报告》整体结构的 梳理,如表1.4.1所示。注意,报告中既要有宏观的体会,还要有具体的开 源硬件项目实例。 表1.4.1 开源硬件推介报告 小组名称 小组成员 报告题目 报告中重点推介的开 源硬件项目 小组报告思维导图 报告注意事项 (安全、流程等方面) 2. 小组准备开源硬件项目推介会的演示文稿、视频和展板等展示资料。 3. 召开开源硬件项目推介会,拍摄推介会视频。利用学校科技节、校 园网等多种渠道推广开源硬件。 二、项目检查 1. 是否集体佩戴了项目徽章,用展板或者实物辅助开源硬件项目推介。 2. 是否有效收集了开源硬件项目资源,甄选推介项目的过程是否有具 体依据。 3. 整体展示是否达到预期效果,团队分工是否合理。 4. 是否考虑了开源硬件背后的社会、文化因素,是否已将推介会资料 分享至开源社区。 练习提升 1. “ 兴趣是最好的老师。”请搜索一些少年创客的成长故事,谈一谈自己的体会。 2. 2015年,政府工作报告提出“大众创业、万众创新”的号召。推动大众创业、万众 创新,“既可以扩大就业、增加居民收入,又有利于促进社会纵向流动和公平正义”。在论及 创业创新文化时,强调“让人们在创造财富的过程中,更好地实现精神追求和自身价值”。 请结合开源硬件知识的学习,谈一谈对上面材料的理解。 1.4 开源硬件与创新 33总结 评价 1. 下图展示了本章的核心概念与关键能力,请同学们对照图中的内容进行总结。 用户群体 激发 培养 助力创新型 发展背景 与影响力 创新兴趣 实践能力 社会 开源硬件 开源硬件 的发展 与创新 开源与开源软件 开源与开放 认识 开源硬件 开源硬件 开源硬件 及其特征 的特征 开源硬件与 分享与协作 开源协议 开源硬件 模块与复用 常见的开源硬件 相关能力 操作开源硬件平台 识别硬件开源程度 简单使用周边模块 2. 根据自己的掌握情况填写下表。 学习内容 掌握程度 开源的概念 □不了解 □了解 □理解 开源软件 □不了解 □了解 □理解 开源硬件 □不了解 □了解 □理解 开源协议 □不了解 □了解 □理解 常见的开源硬件平台 □不了解 □了解 □理解 开源硬件的发展背景 □不了解 □了解 □理解 开源硬件的用户群体 □不了解 □了解 □理解 开源硬件的特征 □不了解 □了解 □理解 开源硬件与创新的关系 □不了解 □了解 □理解 34 第1章 开源硬件及其特征第 2 章 开源硬件项目剖析 2011 年 12 月,一个名为“浙大 CCNT 实验室饮水机”的微博,开 通才一天就吸引了上万粉丝,博主自称“浙大饮水机娘”,在水开和没热 水的时候会发微博。“浙大饮水机娘”所引发的关注,反映了技术的呈现 可以是多元的,有趣的数字化表达方式能吸引公众的关注。借助于便利的 开源硬件,中学生也完全有能力完成创意作品。 技术创新与社会进步的协同发展催生了创新形式的不断演变。新时期, 信息技术与生产技术进一步融合,重构了传统制造业与信息技术创新的边 界。各种形式的“创客空间”在其中扮演着重要角色,并显示出以创新、 开源和分享为特征的新型创新模式。在“大众创业、万众创新”的国家战 略规划下,各地创客空间蓬勃发展。校园创客空间也随着这阵春雨进入中 小学校园,在这里,同学们寻找志同道合的伙伴,把奇思妙想变成现实, 并有机会展示自己的个性作品。 从国内外的发展来看,开源社区与创客文化互为共生、相互促进。校 园创客空间不仅仅是制造的车间、开放的场所、共享的资源,更是基于开 源硬件开展项目学习的理想场所,是培养协作、分享的开源精神的良好环 境。同时,开源硬件以其开源与开放、分享与协作、模块化与可复用的鲜 明特征,被誉为创客空间的“造物神器”和“创客利器”。 本章将以“走进创客空间”为主题,系统学习开源硬件的相关知识与 技能,通过剖析使用开源硬件完成作品的实例,体验基于开源硬件完成项 目的基本流程,感受创意物化的过程与乐趣。 1.4 开源硬件与创新 352 主题学习项目:走进创客空间 项目目标 本章围绕“走进创客空间”主题开展项目学习。通过对设计工具与 编程语言、硬件开发基础、通信与扩展模块的学习以及对开源硬件项目 的剖析,体验开源硬件项目开发的基本流程,知道常用开源硬件的功能 与用法。 1. 了解创客空间中常用开源硬件设计工具与编程平台。 2. 熟悉开源硬件常用输入输出模块、通信与扩展模块,知道常用开 源硬件的基本功能与用法。 3. 剖析使用开源硬件完成项目作品的实例,体验基于开源硬件完成 项目的基本流程。 项目准备 为完成项目,需做如下准备。 ● 全班分成若干小组,建议每组3~5人,明确分工,协作互助,完成项目任务。 ● 器材准备:B型板、V型板、LED模块、旋钮模块、舵机模块以及一些常用传感器。 ● 安装必要的数字化设计工具、编程平台和测试工具等。 在学习本章内容的同时开展项目活动。为了保证本项目顺利 项目过程 完成,要在以下各阶段检查项目的进度。 构建小组工具档案 构建小组硬件档案 完善小组硬件档案 剖析开源硬件项目 1 2 3 4 以小组为单位, 以小组为单位, 以小组为单位, 以小组为单位, 分工收集设计工具与 分工收集不同功能的 分别从通信、驱动和 参观创客空间,剖析 编程语言,构建小组 硬件设备,构建小组 扩展等方面收集整理 一个感兴趣的开源硬 工具档案。 硬件档案。 硬件设备,完善小组 件项目实例,体验一 硬件档案。 个完整开源硬件项目 P44 P55 P63 的一般流程。 P 7 3 完成本章项目后,各小组提交项目学习成果,开展项目交流与评 项目总结 价,体验小组合作、项目学习和知识分享的过程,体验基于开源硬件完 成项目的基本流程。 36 第2章 开源硬件项目剖析2.1 设计工具与编程语言 主题学习项目:走进创客空间 学习目标 ● 了解开源硬件常用数字化设计和加工工具,能够利用设计工具绘制简单平面设计图。 ● 了解不同的开源硬件集成开发环境和编程平台, 具备基本的开源软件编程能力。 体验探索 探索核心板内置资源 将V型板连接鼠标、键盘和显示器,接通电源,系统启动后,可以发 现已经内置了不少应用软件和学习资源,如图2.1.1所示,有些用于设计建 模,还有些用于编程开发。在开源硬件项目的开发中,设计建模类软件与 编程开发类软件必不可少。创客空间里有很多设备、器材都需要这些软件 的支持。 图2.1.1 V型板操作系统内置的软件 思考: 1. 尝试打开V型板内置的软件,了解这些软件有哪些功能。 2. V型板内置软件有哪些共同点?为什么会选择这些软件? 2.1 设计工具与编程语言 372.1.1 设计工具 人类通过劳动改造世界,创造文明。造物是最基础、最主要的创造活动。设计是对 造物活动预先进行的规划。传统制造中,工匠的加工水平、工艺的复杂程度等因素均会 影响成品的质量,且制造效率相对较低。计算机辅助设计(Computer Aided Design,CAD) 催生了数字化制造,相对于传统制造,数字化制造具有制造精度高、人为干预少和文件 易修改等优势。借助计算机辅助设计、计算机程序控制等数字化制造手段可以较好地解 决传统制造中的相关问题。随着科技的发展,数字化制造技术已广泛应用于社会生产生 活的各个领域。 在开源硬件项目的开发过程中,大部分项目的结构实现都可以采用数字化制造技术。 数字化制造技术主要包括数字化设计工具和数字化加工工具。 数字化设计工具 数字化制造过程中,首先需要使用数字化设计工具设计制作模型,与手绘设计相比, 使用数字化工具设计制作模型更加精确、快捷,且便于后期修改。一般来说,数字化设 计工具包括平面(二维)设计工具与立体(三维)设计工具。 ■ 平面设计工具 平面设计是相对于立体设计而说的,也称视觉传达设计,是以“视觉”作为沟通和 表现方式,透过多种方式来创造,结合符号、图片和文字,借此作出用来传达想法或讯 息的视觉表现。设计师使用平面设计工具把设计意图转化为图形图像。常用的开源数字 化平面设计工具有Inkscape等,如图2.1.2所示。 图2.1.2 开源的平面设计工具 ■ 立体设计工具 使用立体设计工具可以构建作品的三维模型。相 对于平面设计,三维模型能更加直观、形象地表现设 计者的意图。开源硬件项目设计中,常用的立体设计 工具有SketchUP、Blender和OpenSCAD等。例如,使用 OpenSCAD构建一个长方体的方法如图2.1.3所示。 图2.1.3 使用OpenSCAD构建长方体 38 第2章 开源硬件项目剖析数字化加工工具 数字化加工制造是在加工制造过程中采用数字化的描述并在数字空间中完成产品的 制造过程。数字化加工工具是对传统加工工具的数字化升级和改造。数字化加工工具可 以实现根据平面设计图或三维模型制造实物。在开源硬件项目开发中,常用的数字化加 工工具有3D打印机、激光切割机等。 ■ 3D打印机 3D打印,又称三维打印,本质是一种增材制造技术,以三维数字模型为基础,通 过层层黏合的方式制造三维物体。3D打印机是采用增材制造技术的快速成型机器(图 2.1.4),是创客空间中常见的制作工具。不同的3D打印机支持使用不同的打印材料。例 如,最常见的熔融层积技术打印机支持使用聚乳酸(PLA)、工程塑料(ABS)等材料; 光固化成型技术打印机主要以光敏树脂为打印耗材;选择性激光烧结(SLS)打印机以金 属粉末为材料,可以直接打印出金属结构。有意思的是,中小学创客空间中常用的3D打 印机大多源于开源的3D打印机方案。 图2.1.4 3D打印机 ■ 激光切割机 激光切割机主要用于平面板材的切割加工,是一种在数字化控制下利用大功率激光 将材料切割成特定形状的设备,如图2.1.5所示。常见的激光切割机有二氧化碳激光切割 机、金属激光切割机等。创客空间中的切割机以二氧化碳激光切割机为主,常用于项目 设计中的结构搭建和快速成型。主要切割材料有亚克力(有机玻璃)、木制板材和瓦楞纸 等非金属材料。 图2.1.5 激光切割机 2.1 设计工具与编程语言 39实践活动 绘制矢量图形 利用互联网下载并安装Inkscape软件,尝试使用Inkscape软件按照V型 板的尺寸绘制一个图形,并将结果保存为SVG格式文件。 技术支持 Inkscape软件 Inkscape软件是一款简单易用、功能强大的开源矢量图形编辑制作软 件,它支持节点编辑,可以绘制复杂的路径和图形,并支持符合W3C标准 的SVG文件格式。图2.1.6所示是Inkscape软件的界面。 菜单栏 操作工具栏 绘图工具栏 命令栏 绘图区 状态栏 图2.1.6 Inkscape软件界面 2.1.2 编程工具 开源硬件项目不仅需要外观设计和各种硬件设备,还需要有编程软件支持,通过软 件使各模块协同工作,实现所需功能。 编程语言 不同开源硬件平台使用的编程语言各不相同。在这些编程语言中,有些比较通用,可 以支持多种不同的开源硬件平台,有些则是为某类开源硬件平台量身定制的,只支持特定 的开源硬件平台。 ■ Arduino语言 Arduino语言是针对Arduino核心板上微控制器编程的一种高级语言,建立在C/C++基 础上,保留了C/C++的语法规范,并对Arduino主控芯片底层进行了二次封装,使开发者 无须考虑芯片的底层操作,只通过编写简单的代码就可以实现对Arduino核心板的控制。 Arduino语言常用于兼容Arduino的开源硬件的编程,是目前最流行的开源硬件编程语 言之一。下面是Arduino读取模拟接口并打印的示例代码。 40 第2章 开源硬件项目剖析void setup() { # 初始化函数,只在上电时运行一次 Serial.begin(9600); # 设置串口通信波特率,启动串口通信 } void loop() { # 循环函数,在初始化函数之后一直循环运行 int sensorValue = analogRead(A0); # 设置变量,变量值为模拟接口A0的输入 Serial.println(sensorValue); # 通过串口打印变量sensorValue的值 delay(1); # 延时1 ms } ■ Processing Processing是一种基于Java的编程语言,保留了C/C++的语法规范,主要用于艺术、 影像和音频的设计与处理。Processing擅长创作图像,无论是静态或是动态,二维或是三 维,甚至可以通过软件编程来创作游戏和音乐。此外,Processing还可以与开源硬件配合 开发许多互动媒体项目。图2.1.7所示是使用Processing编程绘制一个立方体。 图2.1.7 Processing互动媒体效果图 ■ Python Python 是一种面向对象的解释型程序设计语言,是纯粹的开源软件,源代码和解释 器CPython 遵循 GPL(GNU General Public License) 协议。 Python语法简洁、清晰、自由、灵活,具有丰富和强大的库,常被称为“胶水语言”, 能够把其他语言(尤其是C/C++)编写的各种模块很轻松地“黏合”“联结”在一起。 轻量级Python是针对微控制器移植开发的Python编程语言,其语法规范与Python3基 本一致。目前,越来越多的开源硬件使用轻量级Python进行编程,如掌控板、micro:bit 等。下面两段Python代码分别使用虚谷号和掌控板控制引脚的高低电平,让连接在引脚上 的LED灯闪烁。对比两段控制代码,可以看出,除导入了不同的程序包外,其他代码基 本相同。 虚谷号控制代码: import time # 导入time模块 from xugu import LED # 从xugu库中导入LED类 2.1 设计工具与编程语言 41led = LED(13) # 初始化LED类 while True: # 用循环实现持续地开灯关灯,达到闪烁的效果 led.on() # 点亮连接D13引脚的LED灯 time.sleep(1) # 持续1 s led.off() # 关闭LED灯 time.sleep(1) # 持续1 s 掌控板控制代码: from mpython import * # 导入mpython模块所有对象 p13 = MPythonPin(13, PinMode.PWM) # 初始化Pin类,P13引脚设置为PWM模式 while True: p13.write_analog(1023) # 点亮连接P13引脚的LED灯 sleep_ms(1000) # 持续1 000 ms p13.write_analog(0) # 关闭LED灯 sleep_ms(1000) # 持续1 000 ms ■ 图形化编程 图形化编程方式支持用户通过类似搭积木的方式进行编程,实现编程工作可视化, 然后将图形化的程序块转换为代码,如图2.1.8所示。目前,很多开源硬件平台使用图形 化编程方式编写程序。例如,Blockly是一款开源的可视化编程平台,基于Blockly又开发 出米思齐(Mixly)等可视化编程工具。 图2.1.8 图形化编程软件界面 集成开发环境 集成开发环境(IDE)是一种辅助程序开发的应用程序,通常包括代码编辑器、编译 器、调试器和图形用户界面工具,集成代码编写、分析、编译和调试等功能。 ■ Arduino IDE Arduino IDE是为Arduino核心板量身定制的集成开发环境,如图2.1.9所示。它不仅支 持Arduino程序的编辑、编译、烧写和串口通信等,还提供一个功能强大的库管理器。通 过该库管理器,开发者可以快速搜索到Arduino 支持的各种外围设备的驱动库。 42 第2章 开源硬件项目剖析图2.1.9 Arduino 集成开发环境 ■ mPython mPython是一款为Python编程教学而设计的集成开发环境,可对掌控板及其兼容硬件进 行编程,它支持代码编程和图形化编程,还具备快速查看代码效果、板卡代码读取、自定 义库和串口调试等功能。mPython用户界面如图2.1.10所示。 图2.1.10 mPython用户界面 实践活动 SOS求救信号灯 SOS是国际通用的求救信号,并不是任何英文的缩写,纯粹只是因为 当时的无线电抗干扰技术差,S与O是莫尔斯电码中少有的连续码,分别是 全点与全横,SOS这个字母组合的莫尔斯电码为“…”“---”“…”,方便 识记且较易使用。 将LED灯或者LED模块接在A型板或B型板引脚上,通过控制引脚的 高低电平来实现SOS求救信号灯显示。观察并分析两种核心板显示方式的 异同和各自的特点,比较并思考哪种显示方式更适用于信号灯的制作。 2.1 设计工具与编程语言 43项目实施 构建小组工具档案 一、项目活动 同学们在创客空间中会了解到很多的制造工具与编程语言,收集并记 录这些信息,为之后的学习和创作积累知识和技能。 1. 以小组为单位,分工收集各种制造工具与编程语言的相关信息资料。 2. 根据表2.1.1清单内容,构建小组工具档案。 表2.1.1 工具清单 类别 名称 数字化设计工具 数字化加工工具 编程语言 二、项目检查 完成本组的项目工具档案,并进行全班交流。 练习提升 1. 选择合适的数字化设计工具设计一枚团队徽章。 2. 选择一款立体设计工具,为A型板设计保护外壳。 44 第2章 开源硬件项目剖析2.2 开源硬件开发基础 学习目标 ● 掌握开源硬件引脚控制的方法和常用的输入输出设备,能够编写相应的控制程序。 ● 掌握开源硬件项目中的信息获取与执行过程,能够使用开源硬件搭建简单的信息系统。 体验探索 分析“智能垃圾箱” 外形新颖的垃圾箱常常成为创客空间的一个关注焦点。如果走近它, 还会发现垃圾箱不仅造型可爱,还很智能(图2.2.1)。当有人想要丢垃圾 时,只要靠近垃圾箱它就及时感应到,从而自动打开盖子;当人扔完垃圾 后,“智能垃圾箱”又能自动把盖子合上。另外,当垃圾箱内的垃圾堆满之 后,它还能发出报警声音,提示需要及时清理垃圾。 图2.2.1 智能垃圾箱 思考: 1. “智能垃圾箱”用什么开源硬件模块检测旁边是否有人?它是如何 感受外界信息输入并作出判断的? 2. “智能垃圾箱”向外界输出哪些信息?它用什么开源硬件模块发出 警报? 2.2 开源硬件开发基础 452.2.1 引脚控制 引脚又称管脚,是从微控制器(芯片)内部引出与外围电路的连接部分,一般分为 电源引脚、振荡器引脚、复位引脚、输入输出引脚四类。 输入输出引脚 开源硬件项目中,核心板与外界交换信息主要通过输入输出引脚实现。核心板的输 入输出引脚一般可细分为数字输入引脚、数字输出引脚、模拟输入引脚、模拟输出引脚、 通信总线引脚等。开源硬件核心板上的每个输入输出引脚都有特定的编号,外部模块通 过引脚与核心板连接。 不同的核心板有不同数量和功能的引脚。例如,Arduino UNO中有14个数字输入输出 引脚和6个模拟输入引脚;掌控板有20个数字输入输出引脚和6个模拟输入引脚。 同一核心板引脚可以具备多种功能。例如,虚谷号的D3、D5、D6、D9、D10、D11 这6个数字引脚还具有脉宽调制(PWM)功能,可用于模拟输出;D13数字引脚连接了一 个LED指示灯,可用于状态显示;6个模拟输入引脚也可复用为数字输入输出引脚,其中 A4和A5又可复用作I2C通信。 核心板的引脚 不同的核心板,其引脚的数量和功能不尽相同,下面以V型板和B型板 为例介绍核心板的引脚。 V型板内置多功能扩展接口和多种通信接口。图2.2.2所示是V型板的 引脚分布图,V型板的引脚资源与Arduino UNO兼容,包括14个数字输入 输出引脚(编号D0 ~D13)和6个模拟输入引脚(编号A0 ~A5)。 46 第2章 开源硬件项目剖析 KM RL OD ID KS LCS ADS 2XR 2XT TSR 3V3 0V5 0V5 0A 1A 2A 3A 4A 5A GND 5V SDA SCL RI NDG 31D 21D 11D 01D 9D DNG 8D DNG 7D 6D 5D 4D 3D 2D 1D 0D 技术支持 图2.2.2 V型板引脚分布图除兼容Arduino的引脚外,V型板还设置了I2S、I2C等其他功能引脚, 如表2.2.1所示。 表 2.2.1 V型板其他功能引脚介绍 引脚名称 引脚功能介绍 MK/LR/ I2S 音频接口,用于数字音频设备之间的数据传输,兼做SPI总线和通用输入输出引脚 DO/DI/SK SCL/SDA I2C总线接口,用于I2C通信 TX2/RX2 调试接口与开发接口,也可用于系统信息的打印接口 IR 红外遥控信号的输入接口,可接收常用红外遥控器信号 B型板通过底边“金手指”实现外部扩展,正面六大金属焊盘,既可作 为触摸按键,也可作为通用输入输出引脚;背面较细的“金手指”是B型 板的其他引脚资源,具体引脚如图2.2.3所示。A型板和B型板的扩展引脚 完全相同。 (a)正面 (b)背面 图2.2.3 B型板引脚分布图 B型板主要引脚资源功能如表2.2.2所示。 表2.2.2 B型板主要引脚介绍 引脚名称 引脚功能介绍 P0/P1 模拟/数字输入,模拟/数字输出 P2/P3 模拟/数字输入 P4/P5/P6/P7/P10/ 板载输入输出设备:光线传感器、按键A、蜂鸣器、RGB LED、声音传感器 P11 和按键B 2.2 开源硬件开发基础 47续表 引脚名称 引脚功能介绍 P8/P9/ 数字输入,模拟/数字输出 P13~P16 P19/P20 数字输入,模拟/数字输出,I2C总线SCL、SDA 1. 板载触摸按键,P、Y、T、H、O、N按键; P23~P28 2. 外部扩展引脚,数字输入输出 有些核心板内置了一些传感器、执行器、显示器或通信模块等器件,这时,在核心 板内部,一些特定的输入输出引脚与这些器件相连接。例如掌控板中,P4引脚连接到一 个板载光敏电阻(光线传感器);P10引脚连接到一个板载微型麦克风(声音传感器);P6 引脚连接到一个板载蜂鸣器;I2C总线连接到板载加速度传感器和OLED显示屏 。 输入输出控制 开源硬件核心板上的每一个输入输出引脚都是一个可编程对象,通过编程核心板可 实现对外部信息的采集、处理以及对外部模块的控制等。不同核心板的输入输出引脚都 有与其相对应的控制函数。一般情况下,编程时需先设置引脚的输入输出状态,如果引 脚设置为输入,那么核心板就可以通过输入控制程序读取该引脚所连外部模块采集的信 息;如果引脚设置为输出,则核心板就可以通过输出控制程序控制外部模块。 例1 :判断按键是否按下。 (1)将一个按键连接在V型板的D2引脚上,如图2.2.4所示。 图2.2.4 V型板与按键的连接示意 (2)输入程序代码,测试运行程序读取D2引脚采集的信息,判断按键是否按下,关 键代码如下: from xugu import Pin, SerialMgt # 从xugu库中导入Pin、SerialMgt类 import time # 导入时间模块 p = Pin(2, Pin.IN) # 初始化D2引脚,设置为数字输入模式 ser = SerialMgt() # 初始化串口 48 第2章 开源硬件项目剖析while True: value=p.read_digital() # 读取D2引脚电平信息,赋值给value print(value) # 将value的值打印到终端上 ser.write(str(value).encode()) # 将value的值写入到串口 time.sleep(0.1) # 持续0.1 s 例2 :读取旋钮的电平值。 (1)将一个旋钮电位器连接在V型板的A0引脚上,如图2.2.5所示。 图2.2.5 V型板与旋钮连接示意 (2)输入程序代码,测试运行程序,通过读取A0引脚采集的信息来获取旋钮的电平 值,代码如下: from xugu import Pin, SerialMgt # 从xugu库中导入Pin、SerialMgt类 p = Pin("A0", Pin.ANALOG) # 初始化A0引脚,设置为输入模式 ser = SerialMgt() # 初始化串口 value = p.read_analog() # 读取A0引脚的电压值 ser.write(str(value).encode()) # 将value的值写入串口 如果引脚设置为输出,那么核心板就可以通过输出控制程序输出不同形式的信号。 例3 :点亮LED灯。 (1)将一个LED灯连接在V型板的D10引脚上,如图2.2.6所示。 图2.2.6 V型板与LED连接示意 (2)输入程序代码,测试运行程序,程序通过将D10引脚置为高电平,来点亮LED 2.2 开源硬件开发基础 49灯,代码如下: from xugu import Pin # 从xugu库中导入Pin类 p = Pin(10, Pin.OUT) # 初始化Pin类,将D10引脚设置为输出模式 p.write_digital(1) # 设置D10引脚为高电平 程序也可以通过将D10引脚设置为0~255的数值,调整灯的亮度,代码如下: from xugu import Pin # 从xugu库中导入Pin类 p = Pin(10, Pin.OUT) # 初始化D10引脚设置为输出模式 p.write_analog(128) # 给引脚设置模拟值128 实践活动 改变LED灯闪烁的频率 上章中,已经通过V型板输出引脚控制了一盏灯,如图2.2.7所示,阅 读下面一段代码,尝试使用旋钮改变LED灯闪烁的频率。 from xugu import Pin # 从xugu库中导入Pin类 p = Pin("A0",Pin.ANALOG) # 创建Pin对象,并初始化A0引脚 p10 = Pin(10,Pin.PWM) # 创建Pin对象,并初始化D10引脚 p10.write_analog(int(p.read_analog()/4)) # 根据A0的模拟电位值,设置引脚的电位值 图2.2.7 V型板与LED和旋钮连接示意 A0引脚的模拟值为0 ~1023,而p10的模拟值为0 ~255。 思考: 设置p10电位值的代码中,为何将A0的数值除以4? 2.2.2 输入模块 在开源硬件项目中能够完成信息采集任务的模块可以称为输入模块。例如,电子秤 中对压力的感知模块、体温计中对温度的感知模块都是开源硬件的输入模块。 数字与模拟检测 传感器是输入模块的主要组成部分,用于检测周围环境的信息,并将信息按照一定的 规律进行数字化处理,然后输出电信号或其他形式的信号到开源硬件核心板等电子设备。 根据输出方式的不同,传感器可分为数字传感器和模拟传感器。 50 第2章 开源硬件项目剖析数字传感器主要用于检测非连续变化的数据。例如,在“智能垃圾箱”开源硬件项 目中用于感应周边是否有人的功能是通过红外避障传感器实现的,红外避障传感器输出 的数据就是一个高低电平信号。 实践活动 测试红外避障传感器 运行教学资源平台上提供的红外避障传感器监测程序,测试传感器检 测周围环境及输出信号的功能。 1. 从教学资源平台下载“vvB_hongwaibz.py”文件到V型板中。 2. 将V型板连接到计算机的串口,打开教学资源平台提供的串口调试 软件,设置串口波特率为115 200。 3. 将红外避障传感器连接到V型板,在串口调试软件界面下,观察从 红外避障传感器获取到的数据信号在有障碍和无障碍时的变化。 技术支持 红外避障传感器 红外避障传感器由一对红外线发射和接收二极管组成。发射管发射红 外线,遇到障碍物时,红外线会被反射回来并被接收管接收,从而使传感 器检测到障碍物。红外避障传感器有效检测距离一般为3 ~ 80 cm。需要注 意的是,红外线遇到黑色物体时被吸收无反射,所以红外避障传感器对黑 色物体检测的效果不太好。 模拟传感器主要用于检测连续变化的数据,如光线、温度和声音等。例如,在第1章 旋钮控制灯亮度的案例中,旋钮输出的就是一些连续变化的数据。 实践活动 测试旋钮 测试运行教学资源平台上提供的旋钮监测程序,感受旋钮的输出信号。 1. 从教学资源平台下载“vvB_xuanniu.py”文件到V型板中。 2. 将V型板连接到计算机的串口,打开教学资源平台提供的串口调试 软件,设置串口波特率为115 200。 3. 旋转按钮,在串口调试软件界面下,观察旋钮值的变化。 传感器的种类 传感器的工作原理和使用条件各不相同,为了在开源硬件项目中更好地使用传感器, 可以将传感器按照功能进行分类,如距离传感器、环境传感器、动作传感器、触碰传感 器和电磁传感器等。 2.2 开源硬件开发基础 51实践活动 收集传感器资料 上网收集常用的传感器资料,将表2.2.3中的内容补充完整。 表2.2.3 常用传感器 传感器类别 传感器名称 功能 输出信号 距离传感器 超声波传感器 距离检测 数字量 烟雾和气体传感器 环境传感器 光敏传感器 光线检测 模拟量 动作传感器 触碰传感器 声音传感器 身份识别传感器 电磁传感器 2.2.3 输出模块 一般情况下,能接收开源硬件输出数据的部件都可以称为开源硬件的输出模块。输 出模块是开源硬件项目中的重要组成部分,它能向外界发出相应行为,是开源硬件功能 的最终体现。 思考活动 信息表达 人们日常交流时,常常会利用声音、手势和眼神等传送信息。分析 “智能垃圾箱”的功能,思考“智能垃圾箱”具有哪些输出模块,并将输出 信息填入表2.2.4中。 表2.2.4 “智能垃圾箱”的信息输出 序号 输出 说明 1 声音输出 当垃圾充满垃圾箱时 2 3 52 第2章 开源硬件项目剖析常用的开源硬件输出模块包括显示模块、声音模块和电机类设备等。 显示模块 显示模块是实现人机对话的主要工具。如图2.2.8所示,常用显示模块包括LED灯模 块、数码显示管、LCD液晶屏和OLED显示屏等,其中,LED灯模块可用于表现艺术效 果,数码显示管可用于显示数据的动态变化,显示屏可用于呈现数据处理的结果。 ( a)段码LED( b)OLED显示屏( c)点阵LED 图2.2.8 显示模块 声音模块 声音模块是一种把电信号转换为声音信号的转换器件,能将输出的数据转换成声音。 如图2.2.9所示,常用声音模块包括有源蜂鸣器、无源蜂鸣器和语音播放模块等。 (a)蜂鸣器 (b)语音播放模块 图2.2.9 声音模块 阅读拓展 蜂鸣器——有源与无源 蜂鸣器是产生声音信号的装置,广泛应用于计算机、打印机、复印机、 报警器和电子玩具等电子产品中。从驱动方式上,蜂鸣器可以分为有源蜂 鸣器和无源蜂鸣器。有源蜂鸣器工作的理想信号是直流电,内部有一个简 单的振荡电路,能将恒定的直流电转化成一定频率的脉冲信号。无源蜂鸣 器内部没有驱动电路,是通过连续脉冲信号驱动的。 电机类设备 电机是一种能够将电能转换为机械能的输出设备,主要用于产生驱动转矩,作为电器 或机械的动力源。开源硬件项目中经常会用到的电机有伺服舵机、步进电机和直流电机等。 2.2 开源硬件开发基础 53■ 伺服舵机 伺服舵机(Servo),也称舵机,是将数字控制信号转换成 位置(角度)和力矩的闭环控制电机,最早用于自动飞行驾驶 中操纵飞机舵面,并因此得名,如图2.2.10所示,它可以旋转 0~180°的任意角度。在“智能垃圾箱”开源硬件项目中用 于打开和关闭垃圾箱盖的控制驱动就是通过伺服舵机实现的。 伺服舵机通过脉宽调制信号(PWM)控制位置(角度)。 脉宽调制是一种对模拟信号电平进行数字编码的方法,与单纯 图2.2.10 伺服舵机 的输入输出控制相比较为复杂,因此,在实际控制时,通常需 要预先构建库函数,通过调用库函数的方式实现对伺服舵机的 控制,参考代码如下: from xugu import Servo # 从xugu库中导入Servo类 servo = Servo(4) # 初始化D4引脚,并连接到伺服舵机 servo.write_angle(150) # 将伺服舵机旋转150° 实践活动 编程实现舵机控制 测试运行教学资源平台上提供的旋钮控制舵机角度程序,掌握舵机的 控制方法。 1. 从教学资源平台下载“vvB_duojikongzhi.py”文件到V型板中。 2. 旋转按钮,观察舵机角度的变化。 ■ 步进电机 步进电机是将电脉冲信号转换为角位移或线位移的开环控 制电机,可以实现电机转速和位置的精确控制,如图2.2.11所 示。通常,步进电机的误差在步进角度的5%之内。步进电机 必须通过接收脉冲信号获得驱动,才能以一定的角度(称为步 图2.2.11 步进电机 距角)转动,转动的速度和脉冲的频率成正比。没有脉冲信号 的时候,步进电机静止。打印机、绘图仪和机器人等设备都以步进电机为动力核心。 ■ 直流电机 直流电机指能将直流电能转换为机械能或将机械能转换 为直流电能的旋转电机,如图2.2.12所示,它实现电能和机械 能的相互转换。直流电机被当作电动机运行时,称为直流电动 机,将电能转换为机械能;直流电机被当作发电机运行时,称 图2.2.12 直流电机 为直流发电机,将机械能转换为电能。 54 第2章 开源硬件项目剖析项目实施 构建小组硬件档案 一、项目活动 同学们在创客空间中看到了很多开源硬件设备,不仅有核心板,还有 各种输入输出模块。将它们收集并记录下来,作为自己今后的学习资源。 1. 以小组为单位,组内分工收集不同功能的硬件设备。 2. 结合本节实践活动中收集的常用传感器资料信息(表2.2.3),构建 小组硬件档案,完成表2.2.5。 表2.2.5 设备清单 设备名称 设备功能 设备图片 参考代码 二、项目检查 完成本组的硬件档案,并进行全班交流。 练习提升 在“智能垃圾箱”工作过程中,当垃圾箱装满垃圾时,垃圾箱会发出警报。请为“智 能垃圾箱”另选一些输入和输出设备,完善并提升垃圾箱的智能水平。 2.2 开源硬件开发基础 552.3 通信模块与扩展板 学习目标 ● 了解开源硬件常用的扩展模块、通信方式及调用方法,能列举串口、蓝牙等通信的工 作方式。 ● 了解开源硬件项目中数据通信的过程,具备调用函数库的能力。 体验探索 参观创客空间 同学们在参观创客空间(图2.3.1)的过程中,由于参观的人数较多, 会导致屋内的气温越来越高,当气温高到一定程度时,空调会自动启动;随 着窗外的阳光越来越强,屋内的光线也越来越强,这时窗帘会自动合上;如 果创客空间的盆栽缺水,还会给创客空间的管理者发送消息“主人,我渴 了”。创客空间的各种环境信息都可以实时地传送到管理者的智能手机上。 图2.3.1 创客空间场景 思考: 1. 创客空间中的哪些设备具有与智能手机进行通信的功能? 2. 你是否可以用学过的知识制作出创客空间中的作品? 56 第2章 开源硬件项目剖析2.3.1 通信模块 现代通信是以电话、电报、传真和互联网等方式进行的。这些通信方式具有传输速 度快、信息承载形式多样化、信息传递量大和不受空间地域阻碍等特点。在开源硬件项目 中,通常采用串口通信和I2C接口两种通信方式。 思考活动 选择适合的信息通信方式 以小组为单位讨论:两部手机之间通常采用哪种方式进行信息传送? 这种方式有什么好处? 串口通信方式 串口通信是一种相对简单的串行通信方式,它把要传送的数据逐位发送,通过串口 实现两个模块之间的数据交换,是一种点对点的通信方式。通过一些转换模块,能够通过 串口实现无线数据传输。常见的转换模块有蓝牙、WiFi等(图2.3.2),模块对应的功能是 将串口信号转化成蓝牙信号和WiFi信号。 ( a)蓝牙模块 ( b) WiFi模块 图2.3.2 无线串口通信硬件模块 蓝牙通信模块(通常为蓝牙串口模块)可以在蓝牙设备之间创建无线通信连接,为 一些开源硬件增添无线通信功能。例如,将蓝牙串口模块连接核心板,通过手机与开源硬 件之间的通信,可实现手机控制常见开源硬件,如图2.3.3所示。 核心板 串口 蓝牙传输 载有蓝牙 蓝牙串口模块 模块的手机 图2.3.3 蓝牙通信示意 核心板上有两个引脚TXD和RXD,有时也简写成TX和RX,其中TXD代表串口的发 2.3 通信模块与扩展板 57送端,RXD代表串口的接收端。核心板与蓝牙模块就是通过这两个引脚连接在一起的, 如图2.3.4所示。 RXD RXD TXD TXD 蓝牙 核心板 图2.3.4 核心板与蓝牙模块的连接示意 实现串口通信时,除硬件连接外,还需要设置串口的通信频率,即波特率。例如, 在智能家居中,各设备可能会需要多个不同的核心板。要实现各个设备之间的通信,就 要在编写控制程序时,将各个设备的波特率设置一致,参考代码如下: import serial # 导入串口库 ser = serial.Serial() # 声明串口对象 ser.baudrate = 115200 # 设定串口波特率 阅读拓展 波特率 在单片机互相通信的过程中,串口的波特率是一个必须给定的参数。 波特率指每秒钟可以发送或接收数据位的数量,也就是1 s传输0或1的个 数。若波特率是9 600,那么它传输一位0或1的时间就是1/9 600 s。常用波 特率有4 800、9 600、19 200、38 400、43 000、56 000、57 600和115 200等。 I2C通信方式 I2C接口是一种串行通信方式,它与串口通信有两点不同:一是I2C中数据的发送和 接收是在一条线上完成的,谁需要发送数据谁就占用这条线;二是I2C接口不用设置波特 率,I2C接口中有一个时钟线用来协调数据的传送。由于这些特点,I2C接口允许同一总线 上的多个外设间进行信息交换,如图2.3.5所示。 V DD I2C总线 SDA SCL SDA SCL SDA SCL SDA SCL … 温湿传感器 显示屏 加速度传感器 图2.3.5 I2C通信示意 在开源硬件项目中,可以将很多设备连接在I2C总线上。同一总线上最多可以有127 个不同设备,每一个连接到I2C总线上的设备都会有自己固定的地址,核心板通过地址访 问不同的外部设备。例如,“智能垃圾箱”中用于检测距离的超声波传感器,就是通过I2C 58 第2章 开源硬件项目剖析数据总线连接到掌控板,掌控板使用的加速度传感器、液晶显示屏也都是通过I2C数据总 线集成在核心板上。 模块的I2C接口上通常都有明确的标识,数据引脚的标识为SDA,时钟引脚的标识为 SCL,如果在开源硬件上看到了这两个标识,就表示该模块采用的是I2C通信方式, 如图2.3.6所示。 图2.3.6 I2C接口的数码管模块 实践活动 I2C接口温/湿度计 下面的程序代码通过I2C总线读取环境温度和湿度,并在OLED 屏幕上 显示,实现简单的温/湿度计功能,其中温度和湿度信息的检测采用外接温 湿度传感器模块。阅读代码,小组讨论,归纳总结实现以上功能的库函数, 并填写到表2.3.1中。 from mpython import * # 导入mpython模块中的所有对象 import time # 导入time模块 def temperature(): # 函数:取得温度值,返回:温度 i2c.writeto(0x40, b'\xf3') # 请求温度数据 time.sleep_ms(70) # 测试出温度数据需要等待70 ms t = i2c.readfrom(0x40, 2) # 读取2字节的温度数据存入变量t # 对读取数据进行转换处理,并返回该数据 return -46.86 + 175.72 * (t[0] * 256 + t[1]) / 65535 def humidity(): # 函数:取得湿度值,返回:湿度 i2c.writeto(0x40, b'\xf5', False) # 请求湿度数据 time.sleep_ms(25) # 测试出湿度数据需要等待25 ms t = i2c.readfrom(0x40, 2) # 读取2字节的湿度数据存入变量t # 对读取数据进行转换处理 return -6 + 125 * (t[0] * 256 + t[1]) / 65535 while True: # 进入重复循环 oled.fill(0) # oled清屏 # 显示温度值 oled.DispChar((str('温度:') + str(round(temperature(), 2))), 0, 16) # 显示湿度值 oled.DispChar((str('湿度:') + str(round(humidity(), 2))), 0, 32) oled.show() # oled显示生效 time.sleep_ms(1000) # 延迟1 000 ms 表2.3.1 库函数及功能 I2C设备 类名 对象名 功能 2.3 通信模块与扩展板 59技术支持 开源硬件的基础库 很多开源硬件平台从底层开始,会将微控制器的各种操作抽象成一个 个函数,再把这些函数封装成函数库供外部调用。编程时只需要调用库中 的函数,而不需要再考虑微控制器底层具体是如何工作的。 通常情况下,具有特定功能的扩展板或功能模块也都提供相应的库文件 和示例代码,在开源硬件程序代码中添加相应的库可以增加对硬件的支持。 通过调用库文件,开源硬件可以轻松连接并使用各种传感器、显 示屏和执行器模块等。可以说,硬件与相应的配套库文件是共生关 系。开源硬件的一个显著特征就是开放第三方库接口。例如,V型板 配有基础库xugu.py,库中包含Pin、ADC、Servo、SerialMgt和I2C 等类,用于控制V型板板载的硬件资源和系统信息调试。 1. Pin类。Pin类用于控制I/O引脚,可以设置引脚模式(IN、OUT) 和读写电平状态。 2. ADC类。ADC类用于读取传感器等模拟信号的转换结果。 3. Servo类。Servo类用于控制舵机转到指定角度。 4. SerialMgt类。SerialMgt类用于V型板和PC之间的串口通信。 5. I2C类。I2C类用于读写I2C从设备。 2.3.2 扩展模块 扩展板 扩展板的主要作用是扩充核心板的功能和引脚数量。扩展板通常具有和核心板一样 的引脚布局,扩展板可以堆叠接插到核心板上,以实现特定功能的扩展。 核心板上的引脚数量是有限的,同时,多个模块无法连接同一个引脚。而扩展板可 以实现将核心板上的一个引脚扩展成多个引脚,这样核心板就能连接更多的设备。 开源硬件中,传感器扩展板是开源硬件项目中最常 用的外围模块之一。核心板可以扩展连接不同类型的传 感器模块。 开源硬件开发过程中一般均遵循统一的规范,因 此很多扩展板具有良好的兼容性。例如,虚谷号的引 脚与Arduino具有很好的兼容性,因此大部分的Arduino 扩展板都可以插接到虚谷号上,如图2.3.7所示是一个 Arduino的扩展板。 图2.3.7 Arduino扩展板 60 第2章 开源硬件项目剖析扩展板通常都可以插到核心板上,但有些核心板需要采取其他方式连接扩展板。例 如,掌控板侧边的接口可以引出并用于输入信号或者产生控制信号,但由于其接口比较 特殊,采用直接插拔的方式连接到传感器扩展板,如图2.3.8所示,再通过连接线,把各 种模块接插到扩展板上。 图2.3.8 掌控板的扩展板 大功率驱动模块 核心板的引脚可以输出高、低电平,但不能改变引脚的输出电流。核心板每个引脚 输出的电流为0~20 mA。因此,对于一些大功率的外部设备来说,需要使用一些特殊的 模块才能驱动。开源硬件中常用的驱动模块有继电器、电机驱动等。 ■ 继电器 继电器是一种弱电驱动强电的器件,如图2.3.9所示。该模块常用在控制电源通断的 情况下。例如,智能家居中的照明系统使用的电压是220 V交流电,但是核心板引脚的工 作电压仅为5 V,因此需要通过继电器控制电灯的开关。 图2.3.9 继电器 技术支持 继电器的工作原理 继电器的输出回路一般有三个触点,中间的触点是动触点(公共端), 其他两个触点是静触点。输入回路不通电时,动触点总是和一个静触点断 开(称为常开),与另一个静触点闭合(称为常闭);输入回路通电后,原 来闭合的变为断开的,即动触点与常开触点闭合,与常闭触点断开。 2.3 通信模块与扩展板 61■ 电机驱动 在开源硬件项目制作中,电机是一个非常重要的执行部件。电机上有两个触点,给 这两个触点通电就能够实现其转动,改变其电源极性可以实现换向。但是,电机的驱动 电流相对较大,直接通过核心板引脚是无法驱动的,需要添加一个电机驱动模块。 例如,L298电机驱动模块是一款可以和多种开源硬件核心板兼容的大电流电机驱动 模块,如图2.3.10所示。它采用H桥电路,电路内部采用三极管以增大驱动电流。L298电 机驱动模块控制端口有4个,可直接驱动2个直流电机,驱动电流最大达2 A。 图2.3.10 L298电机驱动模块 实践活动 智能小车测试 各种类型的智能小车,即是有趣的益智玩具,又可以作为很好的教具。 根据前面章节学习到的知识和技能,从A型板、B型板或V型板中选择一 款合适的开源硬件核心板,并选择配套的扩展板、大功率驱动模块、减速 电机等器件,快速搭建智能小车简易原型,编写代码实现小车前进、后退、 左转、右转、急刹车、慢刹车等功能。在实验室里搭建一个智能小车简易 测试环境,测试小车的最大速度、最大加速度、最小转弯半径等性能指标, 交流项目收获与心得。 思考: 1. 在具体开源硬件项目设计中,选择核心板有哪些指标? 2. 想要精准地控制小车的运行速度和行进路线,需要怎样的反馈机制? 软硬件之间需要做哪些配合? 62 第2章 开源硬件项目剖析项目实施 完善小组开源硬件档案 一、项目活动 回顾上一节的内容,并对创客空间中的开源硬件设备进行进一步整理, 同时增加一些特殊功能的部件,扩充本小组的开源硬件档案。 1. 以小组为单位,分工协作,收集并整理核心板、输入输出、通信和 驱动等类型硬件设备的资料。 2. 按照表2.3.2中所列的栏目,扩充本小组硬件档案,填写在表格中。 表2.3.2 硬件设备资料 硬件类型名称 设备名称 功能 使用方法 图片 应用实例 二、项目检查 完成自己小组的项目资源档案,并进行全班交流。 练习提升 以小组为单位,查找相关资料,并交流、讨论以下问题:多个开源硬件之间如果采 用无线通信方式,可以使用哪些通信技术?各种通信技术对应哪些应用设备?无线通信 的优缺点有哪些?填写表2.3.3。 表2.3.3 无线通信设备 无线通信技术 传输距离 应用设备 成功案例 WiFi技术 2.3 通信模块与扩展板 632.4 项目开发流程剖析 学习目标 ● 了解开源硬件的基本功能和特征,能解释具体的开源硬件在项目中起到的功能和作用。 ● 了解具体开源硬件项目作品的设计过程,能说明基于开源硬件项目的基本流程。 体验探索 体验创客活动 创客嘉年华和Maker Faire活动是全世界最受欢迎的创客交流活动,它 是一个展示创意、创新与创造的舞台,如图2.4.1所示。在这里,你可以与 不同领域的创客欢聚一堂,尽情释放对科学和创造的热情;在这里,你可 以参与各种有趣的工作坊,倾听大咖的论坛演讲,还可以现场动手创作属 于自己的创客作品。 图2.4.1 “创客嘉年华”现场 上网搜索并观看创客嘉年华、Maker Faire等创客活动的相关视频,感 受充满激情与惊艳的创客作品。 思考: 1. 创客活动中哪些项目作品给你留下了最深刻的印象?这些作品运用 了哪些开源硬件?试举例说明。 2. 还有哪些与创客相关的国内或国际活动?以小组为单位交流讨论。 64 第2章 开源硬件项目剖析2.4.1 媒体艺术作品 开源硬件的发展与新媒体艺术家有着重要关联。艺术家们一直在尝试使用不同的工 具或材料,寻找创作空间。不同的胶卷和冲洗药水、废旧的金属、各色的泥巴和不同材 质的纸张等,都可以成为艺术家们使用的材料。随着电子技术和数字媒体的普及,2005 年,一群意大利媒体艺术家在使用Processing创作新媒体作品时,终于找到了一种新的电 子交互工具——Arduino。事实上,正是这些媒体艺术家们创造了Arduino。Arduino可以解 决艺术创作过程中的数字媒体与传感器之间的交互需求,并以此展现更具创意的艺术创 作。到2010年左右,Arduino几乎成了“互动新媒体”的代名词。 互动装置艺术作品:最美丽的时候遇见你 “最美丽的时候遇见你”是国内一个多媒体工作室的作品,由一位纸艺师和一位多媒 体艺术家合作完成。这个作品是一面由8把扇子组成的墙,墙上装饰着各种漂亮的叶子, 如图2.4.2所示。每当有观众从作品旁走过,一把把纸扇缓缓展开,形成一朵朵红色的花。 随着观众的离开,纸扇缓缓闭合,回归原貌。当两人面对面走来时,花开,然后花谢, 耐人寻味。 图2.4.2 互动装置艺术作品 ■ 装置原理 “最美丽的时候遇见你”作为一个装置艺术作品,由8把纸艺扇子组成,通过扇子的 开合变化与观众产生互动。每把扇子都由步进电机控制,用红外测障传感器判断是否有 观众靠近,其核心控制器使用Arduino。当观众接近装置时,触发感应装置,驱动电机争 相正向转动,纸扇自动展开。当观众离开作品时,电机反向转动,纸扇自动闭合。8把扇 子通过8个传感器控制,每把扇子各自独立运行。 这个装置艺术作品将传统纸艺与数字媒体相结合,由开源硬件Arduino实现电子部 分,用科技诠释了自然与生活,实现了艺术与科技的完美融合。 Arduino为艺术家创作带来了新的设计灵感,也为创作提供了便利的工具。Arduino等 开源硬件出现前,要实现类似“最美丽的时候遇见你”的功能,需要有硬件工程师的配 2.4 项目开发流程剖析 65合,而在创作过程中因工程师难以理解艺术家的设计思维,最终导致创作“难产”的案 例屡见不鲜。开源硬件Arduino出现后,这类问题有了更好的解决途径。艺术家有了最初 的设计灵感之后,选用成本低、易操作的Arduino作为控制器,通过红外传感器模块和步 进电机的组合,能够快速实现原型的搭建以及交互和控制功能,得以把更多精力放在艺 术创作上。 思考活动 传感器与交互功能 “最美丽的时候遇见你”这个互动装置依靠红外测障传感器来感知是否 有观众经过。 思考: 1. 还有哪些传感器可以实现类似的功能? 2. 还可以选用哪些不同的传感器用以实现各种奇妙的交互功能? 2.4.2 不断迭代的3D打印机 MakerBot项目简介 MakerBot是一台开源的桌面3D打印机(图2.4.3),诞生于2009年,由布里·佩蒂斯 (Bre Pettis)和他的朋友们创造。这款3D打印机从软件到硬件的各种资料(包括电路与机 械部分,以及软件的源代码等)全部是免费和开源的。用户可通过MakerBot的网站下载 设计资料,并在此基础上设计出符合自己需求的3D打印机。 图2.4.3 MakerBot开源桌面3D打印机 MakerBot是一款经典的盒子型3D打印机,目前,在很多创客空间中都还可以看到它 的影子。很多人正是通过它认识和了解3D打印技术的,也有很多人通过它体验开源与分 享的乐趣。从某种意义来说,MakerBot促进了创客文化的传播与创客运动的进程。 ■ 装置原理 MakerBot 3D打印机是用挤压的方式把耗材从加热头挤出来,被挤压出来的液态材料 将模型的一层“画”出来,打印完一层后再打印下一层,直到把实体模型全部打印出来。 66 第2章 开源硬件项目剖析整个过程是通过打印机的各个组件相互配合完成的,这些组件包括电子部件、固件、控 制软件和分层软件。 MakerBot项目源自于布里·佩蒂斯和他的朋友们想买一台价格便宜的3D 打印机,但 当时市场上3D打印机价格较贵,于是他们萌生了自己造一台3D打印机的想法。其实,早 在2005年,便有了第一个开源的3D打印项目——RepRap项目,由英国巴斯大学机械学院 的Adrian Bowyer 等人设计制作,而后RepRap被广泛传播。 MakerBot项目团队决定在开源的RepRap基础之上研发自己的3D打印机。他们把 RepRap三角形设计改成更稳定的立方盒子设计,并改进早期只能通过计算机串口才能打印 的不便性,在打印机的机身上增加了液晶显示、旋钮、按键和SD卡槽等模块,使用时通 过这些按键直接进行打印操作。就这样,MakerBot横空出世了,其创作团队继承发扬开源 的精神,将所有硬件和软件全部开源,使任何人都可以在此基础上创造自己的3D打印机。 阅读拓展 3D打印机 2015年,国务院印发的《中国制造2025》行动纲要中多次提及3D打印 技术。作为具有代表性的新兴技术,3D打印技术从概念模型构建到数字化 制造的过程都符合现代数字化构造的理念,因此它在传统工业转型升级的 过程中扮演着愈发重要的角色。 计算机端的打印控制软件控制3D打印机完成工作。例如,启动分层软 件,控制打印头在三维坐标系内的移动,设置并监控打印头、打印托盘的 温度,以及控制打印任务的开始、暂停和取消等。 3D打印机上的控制系统 需要多部分协同工作,包括核 心板、扩展板、电机驱动、步 挤出头 电机驱动 电机驱动 X轴步进电机 核心板 进电机、加热头、打印托盘、 末端限位开关 末端限位开关和温度传感器 加热头 等,如图2.4.4所示。核心板中 电机驱动 运行的控制程序被称为“固件” 温度传感器 Y轴步进电机 扩展板 (Firmware)。核心板在3D打印 湿度传感器 末端限位开关 固件的调度下获取传感器信息、 控制电机驱动实现打印头的运 电机驱动 Z轴步进电机 动以及控制加热头或可加热托 盘的开关等。目前,常见教学 打印托盘 电源 末端限位开关 用3D 打印机的核心板一般采用 图2.4.4 3D打印机结构示意 开源硬件,所用固件也以开源固件为主。 2.4 项目开发流程剖析 673D打印技术可以实现虚拟世界与实体世界的有机结合,这使得3D打印 机进校园成为一件非常有意义的事情。 3D打印机可以快速将概念转化为实体模型,使学生的个性化创意得以 实现,有助于激发学生的创意兴趣,提升实践创新能力。3D打印机具有快 速成型的特点,可以用于各学科教具制作,例如,打印身体各器官的组织 结构、复杂的分子结构、古代的文物和重要事件的器具、独特的地貌等, 如图2.4.5所示。 图2.4.5 3D打印作品样例 3D打印机派生出很多类似的开源设备。例如,一种在蛋壳上绘画的设 备——画蛋机,画蛋机的结构和3D打印机的结构相比有所变化,该设备通 过一个旋转的机构将打印机中Y方向的移动变成了旋转,而对于加热头位 置送料的控制变成了对马克笔的控制。 3D打印的流程从一个完整的3D模型开始。3D模型可以从网上下载, 也可使用建模程序,如Blender或OpensCAD进行设计,只要保证模型的文 件格式是“.STL”即可。准备好模型,下一步就是利用分层软件把模型分 层,并生成路径文件。3D打印机能识别对应的路径文件,并“告诉”打印 头该如何运动和吐料。 68 第2章 开源硬件项目剖析实践活动 打印实体3D模型 1. 上网下载或者利用3D建模软件自己构建3D模型。 2. 为B型板设计一个外壳3D模型,并使用3D打印机打印出来。 2.4.3 快速原型 作品:智能鸟蛋 “智能鸟蛋”开源硬件项目是国际猛禽中心的秃鹫保护公益项目,旨在获取秃鹫孵化 过程的数据信息。研究人员把一个能够以假乱真的“智能鸟蛋”放在秃鹫巢里,如 图2.4.6所示,然后“智能鸟蛋”就可以自动采集秃鹫蛋孵化时周围环境的温度、湿度以 及秃鹫蛋孵化时的姿态数据,并将数据实时保存到云端,供研究人员研究并采取行动, 以确保秃鹫圈养繁殖时处于最佳的孵化环境中,从而保障秃鹫的安全繁殖。 图2.4.6 “智能鸟蛋”作品 ■ 装置原理 “智能鸟蛋”的外壳由3D打印完成。整个项目由蛋内采集端、数据中继端及服务器云 端三部分组成,如图2.4.7所示。蛋内采集端使用了Microduino控制板,连接了温度传感 器、湿度传感器以及姿态传感器来采集秃鹫蛋孵化时的温度、湿度和姿态数据,并将这 些数据通过蓝牙通信方式发送到数据中继器——手机端。数据中继端作为数据处理、存 储以及连接网络的管理单元,将采集到的数据存储到云端,并以网页的形式显示出来, 如图2.4.8所示。 蛋内 中继 云端 蛋内姿态 中继 蛋内气象 最新数据 UUID 中继 蛋内 (手机端) 云端 BLE协议 中继 串口 互联网 (Microduino) 鸟蛋 蛋内 UUID 互联网 互联网 互联网 姿态 气象 服务器 数据库 网页显示 时间轴 环境 本地 气象 数据库 温度 湿度 温度 湿度 照度 气压 图2.4.7 “智能鸟蛋”项目功能组成 2.4 项目开发流程剖析 69Microduino智能鸟蛋 天气 鸟蛋姿态 蛋内温度 动画 透视图 温度: xACC: -0.6 g 温度: 19.6 ℃ yACC: 0.7 g 30.0 ℃ 湿度: zACC: 0.4 g 36.7 ℃ 54.3% 34.5 ℃ 22.9 ℃ 气压: xGYRO: -6.7 38.9 ℃ 14.8 kPa 30.8 ℃ yGYRO: -16.6 35.5 ℃ 光照度: zGYRO: -17.8 27.3 ℃ 653.8 Lux 40.6 ℃ 32.5 ℃ 35.7 ℃ 45.7 ℃ 42.0 ℃ 22.4 ℃ 平均 温度:[ ] ℃ 湿度:49.7% 温度:34.0 ℃ 图2.4.8 “智能鸟蛋”项目采集的数据 “智能鸟蛋”团队试图设计一个记录数据的装置,在人工饲养秃鹫的过程中监视鸟巢 的环境条件。那么,通过何种方式来观察秃鹫的孵蛋过程呢?“智能鸟蛋”团队想到了可 以做一个假鸟蛋,放在猛禽窝里,借此获取孵化鸟蛋所需的温度、湿度以及姿态等信息。 想法确定后,便开始考虑器材选择问题,考虑到假鸟蛋中的空间狭小,最终选择了体积 较小的开源硬件Microduino。 “智能鸟蛋”是一个复杂的项目,凭借几个人的力量很难完成,于是“智能鸟蛋”团 队把这个项目变成了一个社区项目,试图让更多的人参加进来,共同完成这个项目。项 目发布后,全球范围的很多志愿者加入到项目开发中,有电子硬件电路设计爱好者,有 专注于蓝牙产品的设计人员,有Web开发爱好者,有喜欢树莓派和编程的高中生,有喜 欢Microduino的电子爱好者,有富于开源精神的资深工程师,有专注智能硬件、大数据分 析的老程序员,这些志愿者通过互联网分工合作。 项目研发过程中,很多不了解技术但对项目很感兴趣的人也积极参与项目的开发, 他们希望为公益项目作出贡献,提出了很多有价值的意见。例如:鸟蛋孵化大概需要70 天,如何保证电池能够续航至少70天;为了不被秃鹫识破假蛋,智能鸟蛋的重量必须和 其他秃鹫蛋一样,等等。 众多志愿者的分工协作使这个项目得以顺利完成。开源硬件、开源社区的优势就在 于开放式的协作与分享,它能够将一个项目不断的迭代优化,直至获得问题的最优解。开 源硬件为我们解决现实生活中的问题提供了一条便捷途径。 思考活动 “智能鸟蛋”扩展 “智能鸟蛋”的数据记录装置系统能否扩展成一个大平台系统,服务于 全世界的濒危猛禽的保护工作?试分析其可能性。 70 第2章 开源硬件项目剖析2.4.4 项目开发基本流程 创客空间中的有些开源硬件项目比较复杂,为保证复杂项目的顺利完成,有必要规 划设计一个完整的项目方案。通过体验与剖析“最美丽的时候遇见你”“3D打印机”“智 能鸟蛋”三个开源硬件项目,不难发现:开源硬件项目开发一般要经历创意与项目来源、 项目设计与制作、项目测试与运行、分享等流程。 创意与项目来源 有价值的创作活动都需要围绕创意点展开,那么创意又从何而来呢? 创意可能依托于个人对生活或周围环境的感悟,或是满足自己的好奇和需求等。“最 美丽的时候遇见你”也许就是艺术家脑海中灵光一现、诗一样的梦幻想法。 开源硬件项目的来源,可以是工作和生活需求。像MakerBot的发明者一样,因为想 要一台价格比较适合的3D打印机而不可得,索性自己造符合自己要求的3D打印机。 开源硬件项目的创意,还可以来源于社会公益责任。像“智能鸟蛋”的发起者一样, 看到鸟类重要物种濒临灭绝,想要做点什么以避免悲剧的发生。 简而言之,开源硬件的丰富和发展,为创意的实现提供了便利的物质基础。不要让 问题和困难限制了我们的想象,多见、多闻、多思,勤于观察、大胆思考、勇于尝试,做 个生活的有心人。 项目设计与制作 有了创意之后,有必要制订详细、周密的实施方案。梳理项目的实施思路,有助于 将创意一步步变为现实。这个阶段是项目进行的具体计划环节,直接决定了项目的可执 行性。在这一阶段,我们需要考虑整个项目过程中,需要采集什么样的信息数据、使用 何种开源硬件及软件,以及如何处理采集的数据等。 在“最美丽的时候遇见你”作品中,需要考虑:用何种方式判断人是否经过,选取什么 硬件采集相应的信息,设计何种形式,采用哪种技术方法创造出令人惊艳的作品表现效果。 在MakerBot开源3D打印机项目中,想要制造一台自己的3D打印机,首要需要了解 3D打印机的组成,然后考虑设计最佳的打印机外壳,还需进一步对电子电路和控制算法 进行改造。 在“智能鸟蛋”项目中,需确定要获取鸟蛋孵化过程中的哪些信息,需考虑如何制 造出秃鹫能够接受的鸟蛋外壳,还需考虑如何将获取的信息向外传送以及信息发布的技 术和途径。由于该项目规模较大,还需考虑以何种方式组织项目的研发。 有了较为详尽的设计后,就要进入具体的项目制作环节。这个过程,一定要按照事 前设计好的项目方案进行实践操作,包括外观的设计、硬件的连接、作品的组装以及代 码的编辑等,只有这样才能保证项目的顺利实施。 2.4 项目开发流程剖析 71项目测试与运行 项目原型制作完成后,就需要搭建必要的测试环境,做好项目功能调试准备工作。 在“最美丽的时候遇见你”项目中,可以先将一片扇叶与步进电机进行连接,然后 上传代码进行测试,如果满足预期的效果,就可以把其他步进电机全部装配好与扇叶一 起联合测试,然后进行艺术绘画和装饰创作,完成一个完整的艺术作品,展示出来供大 家体验与分享。 在MakerBot开源3D打印项目中,将打印机改造成立方盒子结构后,要对电路、机械 结构等各个功能进行测试。例如,喷头及打印平台能否正常移动,出丝是否正常,然后 测试并改进打印的精度。3D打印长时间工作的稳定性测试是一个漫长的过程,工程技术 的进步是一步一个脚印走过来的。 在“智能鸟蛋”项目中,要对鸟蛋的外壳尺寸和重量进行反复调试,直到两者都符 合项目要求。要测试鸟蛋采集端与手机中继端的通信,以保障系统能在户外长期稳定工 作。要测试手机中继端与云端服务器的通信,如果测试结果没有问题,便可在真实的环 境中实施项目。 项目结束后,需向大家展示作品。另外,还可以继承发扬开源精神,将项目作品的 全部资料(包括硬件、软件和代码等)全部开源。 需要注意的是,每个项目的完成不都是一蹴而就的,经常需要经过反复的改进才能 完成。并且,待作品与用户见面后,根据用户体验实际情况,还可能需要进一步修改和 完善作品。 开源硬件项目开发的基本流程如图2.4.9所示。 创意 设计 创作 分享 测试与运行 图2.4.9 开源硬件项目开发的基本流程 72 第2章 开源硬件项目剖析项目实施 剖析一个开源硬件项目 一、项目活动 通过对本节三个开源硬件项目的剖析,深入了解开源硬件项目开发的基 本流程。 1. 收集创客空间中开源硬件项目,并以开源硬件项目开发的基本流程为 标准,对项目进行剖析。 2. 以小组为单位,交流讨论,并完成表2.4.1的内容。 表2.4.1 开源硬件项目剖析 小组名称 开源硬件项目名称 项目创意与来源 项目制作 开源硬件项目剖析 项目测试与运行 分享 二、项目检查 完成开源硬件项目的剖析,总结出开源硬件项目设计的基本流程,并在 全班交流。 练习提升 以小组为单位,上网搜索周边的创客空间,然后实地考察。收集创客空间中有趣的 开源硬件作品,并与作品的创作者进行交流沟通,了解作品完成的基本流程,完成《开 源硬件项目分析报告》。 2.4 项目开发流程剖析 73总结 评价 1. 下图展示了本章的核心概念与关键能力,请同学们对照图中的内容进行总结。 大功率驱动 引脚控制 输入模块 输出模块 通信模块 扩展板 模块 开源硬件 通信模块 开发基础 与扩展板 数字化设计工具 媒体艺术作品 设计工具与 开源硬件 项目开发 数字化加工工具 3D打印机项目 编程语言 项目剖析 流程剖析 编程语言 快速原型项目 开源硬件 集成开发环境 相关能力 开源硬件项目 基本流程 搭建简单硬件系统 编写数据采集程序 编写数据输出程序 2. 根据自己的掌握情况填写下表。 学习内容 掌握程度 数字化设计及加工工具 □不了解 □了解 □理解 编程语言及开发环境 □不了解 □了解 □理解 输入输出引脚及控制 □不了解 □了解 □理解 输入输出模块 □不了解 □了解 □理解 传感器的种类 □不了解 □了解 □理解 串口及I2C通信方式 □不了解 □了解 □理解 大功率驱动模块 □不了解 □了解 □理解 扩展模块 □不了解 □了解 □理解 开源硬件项目开发的基本流程 □不了解 □了解 □理解 74 第2章 开源硬件项目剖析第 3 章 开源硬件创意设计 创新驱动发展是国家战略和全民共识。2015 年,国务院印发《关于大 力推进大众创业万众创新若干政策措施的意见》,要求各地改革完善相关体 制机制,构建“双创”氛围。每年十月,全国“大众创业万众创新活动周” 都会在神州各地拉开帷幕。得益于开源硬件近些年来的蓬勃发展和广泛传播, 每年的“双创周”上都能看到基于开源硬件开发设计的各类创意十足的展品 和项目。自由开放的交流氛围像是一片肥沃的土壤,滋养观众心中创新的种子, 促进创新与合作。 创意是人类独有的高级思维活动,是创新的意识与思想,也是人们日常 所说的“点子”“主意”“想法”等。其实,创意并没有那么高深莫测,它 是一个“人人可为”的大众化行为。设计是人们为了实现创意、想法、意图 的创造性活动。通过合理的设计,可以把创意、设想通过合理的规划和周密 的计划,以多种感觉形式表达出来。开源硬件的开源与开放、模块化设计等 特征大大降低了人们学习、使用硬件进行创意设计的门槛。 通信与半导体技术的飞速发展促使我们进入到一个全新的万物互联的世 界,基于物联网技术的创新、创意设备将成为我们生活、学习和工作的重要 伴侣。在本章的学习中,我们从创意引导开始,寻找创意项目来源,通过需 求分析,合理选用恰当的开源硬件及配套模块,以“创想未来生活”为主题, 设计一款属于自己的创意作品,开启从创意到实现的精彩旅程。  753 主题学习项目:创想未来生活 项目目标 本章围绕“创想未来生活”主题开展项目学习,设计一个未来的叫醒 体验作品。从创意构思、确定设计方案、确定硬件方案和审查优化这几个 方面逐步深入,最终以项目立项书的形式进行展示并全班交流。 1. 理解同理心的内涵,学习用户画像等工具的使用方法,从生活中 挖掘出需求作为创意源泉。 2. 理解外观设计与交互设计的概念,学习对应的设计方法,并利用 所学方法完成设计方案。 3. 分析产品功能,确定产品硬件,选择对应的平台与周边模块,并 尝试搭建产品原型。 项目准备 为完成项目,需做如下准备。 ● 全班分成若干小组,建议每组3~5人,明确目标和分工。 ● 准备B型板等硬件,搜索互联网中相关资料,了解叫醒体验产品市场情况。 ● 安装必要的数字化设计工具。 在学习本章内容的同时开展项目活动。为了保证本项目顺利 项目过程 完成,要在以下各阶段检查项目的进度。 分析事物特征 项目设计方案 选择硬件方案 审查并优化方案 1 2 3 4 确定用户需求, 根据项目需求, 选择项目适用的 从外观设计、交 通过用户画像工具分 细化项目设计方案, 开源硬件平台和周边 互设计、硬件选择等 析用户需求,确定项 确定作品功能,完成 模块,并验证平台与 方面审查并优化项目 目作品类型,完成小 外观设计与交互设计 周边模块的实用性。 方案,完成小组项目 组创意汇总表。 并完善小组项目草案。 立项书。 P83 P92 P100 P106 完成本章项目后,各小组提交项目立项书,并在班级中开展项目交流 项目总结 和评价,体验用户研究、头脑风暴和项目细化的过程,认识从创意到成形 方案之间的实现途径。 76 第3章 开源硬件创意设计3.1 分析事物特征 学习目标 ● 了解需求分析的一般方法,具备一定的生活和社会观察能力和换位思考能力。 ● 掌握团队头脑风暴的技巧,具备提取事物特征的能力和一定的信息技术创新能力。 体验探索 从生活中寻找需求 日常的生活、学习、工作中,我们会遇到各种各样的事情,也会接触 到各式各样的人和物,因而会有不同的感受,其中不乏一些不尽如人意、 有待改善的地方,而这往往就是需求产生的地方。 需求可能源于很多小事。例如:夜里,在灯光昏暗的地方,想要打开 背包找点东西,却发现什么都看不清;推着婴儿车的母亲,找不到垂直电 梯,只能搬着婴儿车爬楼梯,此时就会对照明和辅助升降设备产生需求, 如图3.1.1所示。 图3.1.1 发现生活中的需求 思考: 1. 高龄老人在生活中可能遇到哪些不方便的地方? 2. 观察家里的电器,有哪些亟待改善的地方? 3.1 分析事物特征 773.1.1 需求分析 了解了开源硬件的特征和功能,掌握了一些基本技能,感受到开源社区内交流和分 享的热烈氛围,接下来需要把心中的创意、创想变成现实,完成一件属于自己的作品。 将创意变成现实,仅靠开源硬件技术还远远不够,还需要深入了解、挖掘出使用者 最根本的需求,对需求进行分析,这样的开源硬件项目才具有真正的现实意义。 在项目的最初阶段,可以借鉴设计师们的工作方法,发掘出生活中的需求。设计师 较多采用的方法是用户画像法。用户画像法是一种勾画目标用户、联系用户诉求与设计 方向的有效方法,其目的是要求设计师设身处地为用户考虑,体会他们的感受,了解他 们做一件事的方式和理由,从而获取他们的深层次需求和最关心的问题。 图3.1.2所示是某高一学生的用户画像,从左侧可以看到该学生的典型特征:喜欢运 动、学习压力较大等。从右侧可以看到该学生的日程安排,曲线的高低起伏代表了情绪 变化,文字部分标明了他所遇到的事件。 姓名:小北 回家吃饭、 下午下课、 下晚自习、 年龄:15岁 情 午睡 吃饭 回家 性别:男 绪 11:50 18:00 21:00 睡觉 22:00 早读 7:30 19:20 14:30 晚自习 21:20 爱好:跑步、打篮球、看电影、 7:00 下午上课 到家 8:00 吃美食 起床 生活描述:日常学习生活很紧 上课 张,但总会留出一些时 间去运动和看好电影、 时间 读好书 图3.1.2 用户画像 实践活动 高中生用户画像分析 回顾自己的日程安排,与图3.1.2的同学进行对比,完成以下任务: 1. 参照图3.1.2,画出自己一天的情绪变化图,并标出主要事件。 2. 收集小组成员的用户画像,找出小组成员情绪较为低落的时间点,分 析这一时段发生了什么事情,是否存在共性? 3. 思考如何改善情绪低落的情况,并记录下来。 在实践活动中,我们还可以采用另一个发现需求的方法——用户调查法。该方法通 常直接对用户进行采访调查,询问对方需求。需要注意的是,使用该方法需要掌握一定 技巧,否则很难获得真正需要的信息。 78 第3章 开源硬件创意设计思考活动 要一匹更快的马 100多年前,福特公司的创始人亨利·福特先生四处询问客户:“您需要 一个什么样的更好的交通工具?”几乎所有人的回答都是:“我要一匹更快的 马。”听到这个回答,很多人直接的反应可能是去研究如何获得跑得更快的 马,满足客户的需求。福特先生却没有立刻行动,而是接着往下问。 福特:“你为什么需要一匹更快的马?” 客户:“因为可以跑得更快!” 福特:“你为什么需要跑得更快?” 客户:“因为这样我就可以更早地到达目的地。” 福特:“所以,你要一匹更快的马的真正用意是什么?” 客户:“用更短的时间到达目的地!” 于是,福特最终得到用户的根本需求,选择制造汽车以满足用户的这一需求。 思考:分析福特先生询问客户的过程,小组讨论获得用户根本需求的询 问技巧,并记录讨论成果。 通过用户画像法和用户调查法,可以收集到许多与目标用户需求相关的信息。根据 这些信息,可以进一步分析出用户最根本的需求,这个需求被称作核心需求。核心需求 对之后的项目设计起到指导性作用。 同时,在分析用户信息时,还会得到许多其他的需求,这些需求被称作附加需求。 核心需求是用户的根本需求,满足附加需求可以作为提升用户满意度的途径。但若只解 决了附加需求,却没有解决用户的核心需求,是不能使用户完全满意的。 例1 :晨起需求分析。 某校高一3班某小组的同学发现,很多同学早上会遭遇比较大的情绪低谷。通过采访 后发现:这部分同学中有些是被不舒服的方式吵醒的,例如刺耳的闹铃声、窗外施工的 噪声、突然打开的灯光等,使得早晨的情绪受到比较大的影响;有些则是因为没有按时 起床,或是被吵醒后又睡着了,等到起床时发现已经晚了,有可能会迟到,因而产生了 焦躁和懊悔的情绪。该组同学决定通过开源硬件项目来解决大家的晨起需求。通过分析 晨起需求,得到如表3.1.1所示的结论。 表3.1.1 晨起需求分析 核心需求 准时醒来,离开床,开始一天的安排 使用柔和的叫醒方式,取代较为刺激的方式(比如强声、强光); 附加需求 可以定时播放音乐; 能心情愉悦地离开床,而不进行激烈的心理斗争 3.1 分析事物特征 79实践活动 高中生用户需求分析 以日常生活中的某个时间点和事件作为背景,小组讨论,分析高中生在 这个环境中的需求,填写表3.1.2并在班级内分享。 表3.1.2 需求分析记录 核心需求 附加需求 3.1.2 创意与创新 在确定核心需求之后,就需要集思广益,开放创新思维,寻找解决方案了。 提出想法和创意,可以从两个角度着手:一是从无到有,设想一些新的东西来解决 需求,例如,很早以前没有扇子,人们为了在夏季获得清凉的感受而发明了扇子;二是从 有到好,通过观察,发现事物能否改进得更加完美,例如,从手摇扇到定向电风扇,再 到具有摆头、定时和遥控功能的电风扇,就是一个从有到好的循序渐进的过程。 获取创意、寻找解决方案时,可以采用一种应用较为广泛的方式:头脑风暴法。 头脑风暴法 头脑风暴法指一群人围绕一个特定的兴趣领域交流创意,从而产生新观点的方法。 在头脑风暴的执行过程中,讨论过程不受拘束,可以进行充分自由的思考,从而产生很 多的新观点或解决问题的新方法。所有参与者的观点都被记录下来,在头脑风暴活动结 束后才对这些观点和想法进行评估。头脑风暴的目的是让参与者开放思想,使各种设想 在相互碰撞中激起脑海里的创造性风暴,如图3.1.3所示。 图3.1.3 头脑风暴示意 构思创意是一个天马行空的环节,每个想法并不一定都能实现。因此,我们要抱着 80 第3章 开源硬件创意设计开放的心态,让大家都把自己的想法说出来。通常在组建头脑风暴团队时,最好将权威人 士排除在外(例如老师不要参与学生的头脑风暴团队),权威人士的参与会一定程度阻碍 害羞的人说出自己的观点。进行小组头脑风暴时,需要遵守如下原则,如图3.1.4所示。 ■ 数量优先。想法和观点数量越多越好。 ■ 停止批评。不要对小组其他成员的想法和观点发表反对意见。 ■ 大胆创想。思维越跳跃越值得赞赏。 ■ 想法延伸。可以基于其他人的想法产生自己的点子。 图3.1.4 头脑风暴原则示意 阅读拓展 三种常用的小组头脑风暴形式 1. 引导式 提前准备一些马克笔、若干便利贴和一块白板,在白板上写下讨论的 主题。在小组成员积极讨论和发言过程中,主持人要确保讨论的内容围绕 着主题,可以设置一个来回传递的“说话棒”来防止成员之间相互聊天。 记下所有的想法,写在便利贴上,在白板上展示给所有人看,并提醒参与 者在已有点子的基础上继续添加想法。如果在讨论中有好主意被排除在外, 主持人可以引导参与者重新思考这个想法。 2. 匿名式 与引导式相似,不过在最开始时,参与者匿名写下自己的想法。主持 人将想法收集起来并让参与者进行投票,然后对排名靠前的想法再次进行 讨论。可以让不同的小组讨论不同的方面。例如,一个小组讨论产品的形 式,另一个小组侧重于讨论技术特点。 3. 传递式 主持人让参与者围坐在自己周围,解释头脑风暴原则并提出讨论的主 题,每个人在纸上写下一个想法,然后这张纸传给下一个人。下一个人根 据已有内容在纸上添加自己的想法并向后传递。重复这个过程,直到每个 人拿回自己原来的纸。每个人根据自己纸上经过大家丰富后的内容,再次 考虑提出一个想法。主持人记录所有人的最终想法,请参与者投票。 3.1 分析事物特征 81如果说头脑风暴是思维发散的过程,那么汇总整理就是思维收敛的过程。头脑风暴 所产生的各种想法需要集中汇总和整理,并从中挑选出最优的解决方案进行细化。 实践活动 头脑风暴活动练习 以小组为单位进行头脑风暴,其中一位同学作为主持人,其他同学为参 与者。头脑风暴的主题设定为“设计一个好的叫醒服务作品”。 小组头脑风暴完成后想一想,在头脑风暴过程中产生的这些点子有哪些关联性?是 否可以结合起来?良好合理的关联往往会达到“1+1>2”的效果。在班级讨论中分享小组 的最佳创意。 项目实施 确定项目目标,制订项目方案 一、项目活动 1. 下载教学资源平台的“zkB_dianzishaizi.py”文件,修改其中的程序代 码,将B型板作为主题随机选择器,通过按键,从叫醒出行、快递点餐、家 具改造、电器改造、交流互动、艺术装置和消磨时间这几个主题中随机选择 一个。根据主题确定目标群体,通过用户画像法描述用户特征和需求分析, 并将结果填入表3.1.3中。 表3.1.3 需求分析记录 团队名称 团队成员 目标用户 用户特征 核心需求: 需求分析 附加需求: 2. 根据需求分析,利用头脑风暴法进行创意创想,并将投票数前三的方 案写在表3.1.4中。 82 第3章 开源硬件创意设计表3.1.4 头脑风暴记录 要解决的问题 最受欢迎的三个 方案 3. 在头脑风暴之后,审查所有的想法,并从中选出最优的方案进行讨 论和细化,将结果记录在表3.1.5中。 表3.1.5 小组创意汇总表 项目名称 项目目标 ____________(项目名称)是一个为________________(用户群体)设 宣传口号 计的_____________(方案类型) 不同于(类似的产品) , 项目设想 我们的方案更(独特之处) 项目Logo 二、项目检查 1. 分享目标用户特征,检查是否具有典型性和普适性。 2. 审查小组的创意汇总表,全班讨论其新颖性和可行性。 练习提升 1. 生活中有许多产品都是经过不断地改进发展而来的。请搜索一些老照片,看一看 今昔衣食住行领域的各种产品当中,哪些物品的设计改变比较大,哪些物品的设计改动 不大,并思考产生这些改变的原因是什么。 2. 了解用户需求时,有些用户由于缺乏交流能力,无法直接了解到其需求,例如还 没有学会说话的婴儿,又或者产品针对的用户是宠物。寻找生活中成年人认可但是真正 的使用者并不喜欢的产品设计,并思考如何解决。 3. 你是否经历过效果较差的“头脑风暴”式讨论?分析一下讨论过程,并思考如何 改进。 3.1 分析事物特征 833.2 项目设计方案 学习目标 ● 掌握开源硬件项目功能设计的一般方法,具备一定开源硬件项目功能设计能力。 ● 掌握外观设计和交互设计的一般方法,能完成简单的开源硬件项目外观设计和交互设计。 体验探索 身边的智能应用 随着开源硬件的发展与推广,越来越多的人开始使用开源硬件,让自 己的生活变得越来越方便,越来越智能。结合开源硬件核心板上集成的一 些功能,可以创新出许多智能化的应用,如图3.2.1所示。 遥控窗帘系统 背景音乐系统 监控系统 安防系统 电器控制系统 无垃圾厨房 中央控制器 智能灯光系统 智能门窗系统 中央净水器 图 3.2.1 身边的智能化应用 对于很多刚接触开源硬件的人来说,在了解蓝牙功能之后,也能设计 出一个手机控制LED灯的智能装置。如果在LED灯的接口连接一个继电器 模块,那么这个装置就能通过手机控制电源的通断,按照这个思路,生活 中很多设备就都能够利用手机来控制电源通断了。 思考: 1. 列举上述方案还可以应用于哪些场景? 2. 上述方案还有哪些可以完善的地方? 84 第3章 开源硬件创意设计3.2.1 功能设计 功能设计就是按照需求分析的初步要求,对项目作品应具备的目标功能进行概念性 构建的创造活动。功能设计是功能创新和作品设计的早期工作,也是作品开发定位及实施 的环节。 功能设计依据需求分析,对产品功能具体实现手段进行深化。假如我们要从一个城 市到另一个城市,那么选择乘坐飞机还是火车,抑或是汽车,就相当于是具体实现手段的 深化。 功能设计可以采用功能列表及思维导图等形式。功能列表能够帮助我们梳理具体的 功能需求,思维导图能够帮助我们明确各个功能之间的连接关系。 例1 :手机控制电源通断装置的功能设计。 前面提到的手机控制电源通断装置的开源硬件项目,最初的需求是晚上入睡前能躺 在床上关灯而不用下地,基于需求设想有没有一种方式能够远程关灯。针对这个设想,我 们就来思考具体的实现手段。根据所需实现的目标,项目从功能上可划分为两个部分:无 线控制和控制关灯。 首先,控制关灯的方式实际就是控制电路的通断,由于要控制的是一个220 V的交流 电路,所以需要利用继电器模块来完成弱电控制强电的功能。因此一个继电器模块是必需 的硬件。 其次,需要确定无线控制的方式。我们能够想到的是家中的电视都会有一个无线的 遥控器,这是一种形式;定时也是一种形式,让灯在一定时间之后关闭;还有就是能否通 过手机来控制关灯的操作;再扩展一些,可以想象一下是否有能够接收语音指令或是脑电 波指令的模块。对比这些具体的实现手段,分析它们各自的优缺点,并从中选取一个具体 的实现手段。遥控器的形式是最容易实现的,语音的方式实现难度较大,脑电波的形式还 只存在于理论层面,没有成熟的方案,因此我们可能会选择遥控器。而遥控器方式存在可 能找不到遥控器的问题,那么使用手机来实现这个功能可能会更好,我们可以通过蓝牙模 块来接收手机发出的信息。手机控制电源通断装置项目功能设计流程如图3.2.2所示。 红外遥控器 定时控制 语音控制 无线控制模块 脑电波控制 控制关灯模块 继电器模块 手机控制 确定功能模块划分 选择控制关灯模块 选择无线控制模块 确定功能设计方案 图3.2.2 手机控制电源通断装置功能设计流程 3.2 项目设计方案 85手机控制电源通断装置对应的功能设计如图3.2.3所示。 无线遥控: 手机控制电源 控制关灯: 蓝牙模块 通断控制装置 继电器模块 图3.2.3 手机控制电源通断装置功能设计 在这个方案中,核心板通过蓝牙模块接收来自手机(理论上也可以通过其他蓝牙设 备)的信息,然后根据具体信息控制继电器模块的通断。 通过功能设计,能够帮我们梳理对应的方案是否满足我们预想的功能,同时还可以 看看有没有扩展的可能性和必要性。 阅读拓展 “玉兔号”月球车 大型项目的开发更加需要进行功能设计。例如,我国的第一台月球车 “玉兔号”,如图3.2.4所示,其最开始的需求就是一台能够在月球上移动的 平台,该平台能进行一些简单勘测任务,并能与地球通信。针对这些需求, 科研人员从功能上将月球车划分为8个部分,包括移动控制、导航控制、电 源、热控、结构机构、综合电子、测控数传和有效载荷。这8个功能被形象 地称之为“八仙过海,各显神通”。 图3.2.4 “玉兔号”月球车 对于大型项目来说,一个功能往往还需要再细分成不同的功能组合才 能进一步落实。 3.2.2 外观设计 外观设计指产品形状、图案、色彩或三者相结合的设计。外观设计要与作品定位相 一致。 形状设计指三维产品的造型设计,除美观外,还需考虑形状对作品功能和效果的影 响。例如,开源项目八音盒的外观设计要考虑发声的腔体或喇叭状的声音放大部分,空 86 第3章 开源硬件创意设计气净化器的外观设计中要考虑空气流动的空间,如图3.2.5所示。 图3.2.5 空气净化器实例 图案设计一般指平面设计,即对作品各个平面上的图案进行设计。例如,开源的多 彩灯笼的外观设计要考虑灯笼各面上的图案,而小夜灯作品的外观设计要考虑小夜灯上 的图案所表达的意义,如图3.2.6和图3.2.7所示。 图3.2.6 多彩灯笼 图3.2.7 小夜灯 色彩设计指产品的颜色设计。色彩可作为外观设计的补充和点缀,也可以是构成图 案或形状的组成成分。通常,一个作品都有一个大的色调,一般由作品的使用场景来决 定。例如,春节时使用的产品,通常整体上是大红色调。 严格来说,外观设计既可以是立体的造型,也可以是平面的图案,还可以辅以适当 的色彩,或是三者的有机结合。 思考活动 开源硬件作品外观设计分析 网上搜索开源硬件作品,分析其外观设计,并填写表3.2.1。 表3.2.1 开源硬件外观设计 开源硬件作品 外形 图案 色调 空气净化器 圆柱体或正八面体 无 透明 思考:这些产品采用这样的外观设计是出于哪些考虑。 3.2 项目设计方案 87对一个开源硬件作品来说,它的外观十分重要。产品的外观设计不同于艺术品,我 们不能只考虑造型和颜色,还需要考虑其实用性。开源硬件作品设计已从过去简单的外 观造型设计发展成为以技术整合创新为基础的设计创造。一般来说,在外观设计中应考 虑以下三个问题。 ■ 产品的应用场景 产品的应用场景决定外壳的材质以及密闭性等元素。例如,室内桌面的电子产品外 壳材料多是塑料的,而且会设置一些散热孔。 ■ 产品的使用体验 产品的使用体验决定外壳的材质和造型。例如,游戏手柄一定是磨砂面的塑料材质, 这种塑料的手感和路由器这类产品使用的塑料所具有的手感是不一样的。另外,对于游 戏手柄来说,一定是在拇指的位置设置摇杆或按键。 ■ 产品的内部构造 产品的内部构造是为了将电子模块装在外壳内。例如,智能音箱、电视机顶盒的内 部都不是实心的,其内部空间需用来放置电路板;像智能手表这样的设备,其内部的空 间更需和电路板完全吻合。内部结构设计我们会在选定硬件方案之后考虑。 由于开源硬件作品很多都属于产品原型制作,因此,在设计时要更多考虑作品本身 所使用的各个开源模块的大小。一般开源硬件项目如果对外观要求不太严格,基本设计成 一个方盒子,把所用的模块固定在对应的位置即可。例如,前面提到的手机控制电源通 断装置,由于其输入是无线形式,也没有用于显示信息的硬件模块,只有一个连接电源 的接口,且使用时可以摆放在较为隐蔽的位置,所以它的外观可以非常简单。但是,设 计时我们还是要尽量考虑增加一些艺术和装饰的元素。 外观设计一般需通过设计图直观表现出来。绘制外观设计图可采用平面和三维数字 化设计工具,也可采用手绘等方式。例如,网格法手绘是一种简单的外观设计方式,这 种方式是将设计图绘制在一个带网格的图纸上,如图3.2.8所示。绘制图案时,与底面垂 直的线沿网格纸上的垂直线画,与底面平行的线沿网格纸上的斜线画,同时可以利用网 格上的小格体现各部分尺寸的比例关系。绘图时要注意轮廓的实线要略粗一些。图3.2.9 所示为手机控制电源通断装置的长方体外观的网格图。 图3.2.8 网格图纸 图3.2.9 装置外观设计图 88 第3章 开源硬件创意设计3.2.3 交互设计 在进行项目的功能设计和外观设计后,要站在用户的角度,再次审视并设计项目方 案,进行交互设计。交互在我们的生活中随处可见。开门时我们会旋转门把手,这种行 为就是我们与门之间的交互。旋转门把手会将锁打开,推门或拉门能将门打开,这就是 我们和门交互的形式。 思考活动 日常生活中的交互 日常生活中有很多交互行为(图3.2.10)。例如,我们会使用遥控器开启 或关闭电视机,这是我们与电视机之间的交互。人与电视机的交互行为最初 是通过按下电视机上的不同按钮来实现的。这两种交互形式都是人为设定的。 图3.2.10 日常生活中的交互 思考: 1. 在上学途中,你会与哪些事物产生交互?交互的方式是怎样的? 2. 这些交互有可能更加便捷吗? 3. 这些交互中哪些会需要网络支持? 交互设计,是定义两个或多个互动个体之间交流的内容和结构,使之互相配合,共 同达成某种目的。交互设计努力创造和建立的是人与产品及服务之间有意义的关系。 ■ 交互设计的目的 通过对产品的界面和行为进行交互设计,让产品和使用者之间建立一种有机关系, 从而可以有效达到使用者的目标,这就是交互设计的目的。从用户角度考虑,交互设计 是一种如何让产品易用、有效的手段,它致力于了解目标用户的期望,了解“人”本身 的心理和行为特点,了解用户在同产品交互时彼此的行为,明确各种有效的交互方式, 并对它们进行增强和扩充。 ■ 交互设计的目标 开源硬件作品交互设计的目标是使作品“能用”且“好用”。例如,第2章中介绍的 艺术作品“最美丽的时候遇见你”,用户靠近纸扇时,纸扇会自动打开,呈现美丽的图 3.2 项目设计方案 89案。这种交互设计提升了人对作品的体验。在进行开源硬件作品的交互设计时,可以从 “可用性”和“用户体验”两个层面着手考虑。 ■ 交互设计中的影响因素 在开源硬件项目的交互设计中,有两个非常重要的影响因素:输入模块的选择和产 品外观设计。 选用不同的输入模块,代表了整个作品以何种信号与外界环境进行交互。比如选用 声音传感器可以利用声音信号进行交互,选用光敏传感器可以利用光线强度进行交互,选 用按键开关则可以利用按键的状态进行交互。可以说,在开源硬件项目中,输入模块的 选择,在很大程度上决定了产品与用户的交互方式。 外观的设定,需要考虑设计是否符合人的认知习惯,是否会增加用户的学习成本。 颜色是外观设定中很重要的一个方面。例如,红色是一种警示的颜色,在生活中,红色 的开关常常用于报警、紧急按钮。 ■ 交互设计的主要原则和设计方式 交互设计的主要原则是降低用户的使用学习成本,通过良好的交互引导,让用户执 行正确的操作,同时还要避免发生误操作。而交互设计的准则是能够让用户舒适、高效 地使用产品。 交互设计的方式有流程图、状态转换图和故事板等。状态转换图这种交互设计工具 多用在多种状态直接切换的交互设计当中。故事板是将人、物和环境结合起来,构成整 个故事的内容。 例2 :手机遥控电源通断控制装置的交互设计。 手机遥控电源通断控制装置的交互是通过蓝牙模块来完成的,其交互设计的流程图 如图3.2.11所示,其状态转换图如图3.2.12所示。 开始 等待接收数据 选择接通 True 是否控制 接通电源 电源接通 False 电源断开 电源接通 是否控制 True 断开电源 电源断开 选择断开 False 图3.2.11 交互设计流程图 图3.2.12 交互设计状态转换图 90 第3章 开源硬件创意设计例3 :手机遥控台灯的交互设计。 设想一下手机遥控台灯装置的应用场景:到家开门→手动打开台灯→写作业→洗漱 →上床→拿出手机关灯,应用场景对应的6格故事板如图3.2.13所示。 ① ② ③ ④ ⑤ ⑥ 图3.2.13 交互设计故事板 实践活动 绘制6格故事板 依据交互设计的原则与准则,尝试以6格故事板的形式画出自己设计的 开源硬件项目的交互方式。 阅读拓展 交互设计的发展 交互设计在1960年就出现了,主要目的是研究机器如何跟人更好地互 动。2009年后,得益于时代的发展,交互设计步入了高速发展阶段。随着 人类社会大量使用机器,人与机器交互的行为大大增加,而这些交互行为 都需要去定义、发掘和论证。 计算机的交互设计起源于网站设计和图形设计,现在已经成长为一个 独立的领域。如今交互设计远非局限于文字和图片,还需设计用户所有可 能会触摸、点按或输入等交互功能。简而言之,现在的交互设计需要考虑 产品体验中的所有交互。 3.2 项目设计方案 91项目实施 完善小组项目草案 一、项目活动 1. 完善小组创意项目的功能设计,填写表3.2.2。 表3.2.2 功能划分表 项目名称 功能描述 1. 2. 功能划分 3. 2. 针对每个功能,在表3.2.3中列出具体的实现手段,并比较各种实现 手段之间的差异。 表3.2.3 功能实现手段表 功能 1. 2. 实现手段 3. 分析说明 92 第3章 开源硬件创意设计3. 完善小组创意项目的外观设计。 4. 尝试用Inkscape软件画出产品外壳的平面图纸。 5. 尝试用状态转换图或流程图来完成交互设计。 二、项目检查 1. 各小组完善自己的项目设计,并在全班交流。 2. 分析各小组项目的可行性。 练习提升 1. 寻找一些家电产品,分析它们的功能组成,查看其中哪些功能可以使用开源硬 件来实现。 2. 常常有一些产品,它们功能类似,外观却差异巨大,请举例并分析这种差异的 原因。 3. 某位同学去火车站乘车,他提前通过互联网预订了车票并且付了款,请描述其 用自助取票机取票过程中发生的人机交互行为。 3.2 项目设计方案 933.3 选择硬件方案 学习目标 ● 了解核心板的功能特征、性能指标、外形尺寸等因素,具备硬件方案核心板选择能力。 ● 掌握常用周边模块的功能、性能、外形等因素,具备为开源项目选择周边模块的能力。 体验探索 3D打印机 如果评选当前最有影响力的开源硬件项目,3D打印机一定榜上有名。 可以说,正是开源促进了3D打印机的迅猛发展。很多网站都有制作3D打 印机的详细过程(包括Arduino中对应的固件以及模型的分层软件)。 图3.3.1所示是3D打印机的两种形态。市场上的3D打印机不仅仅有这 两种形态,在网上搜索其他3D打印机项目,会发现市场上的3D打印机具 有多种多样的形态,选用的硬件也各有不同。 (a)联臂3D打印机 (b)机械臂3D打印机 图3.3.1 两种形态的3D打印机 思考: 1. 在网上查找资料,对比联臂3D打印机与机械臂3D打印机在硬件选择 上有何不同? 2. 除了打印功能,3D打印机是否还可以添加其他辅助功能? 94 第3章 开源硬件创意设计3.3.1 核心板选择 在一个开源硬件项目中,对于核心板的选择至关重要,它决定了作品所能实现的功 能以及完成的任务。 思考活动 确定旅行目的地要考虑的因素 选择核心板需要综合考虑各种因素,如同假期我们选择要去哪里旅行 需要考虑目的地的各种情况一样。 选择几个旅游目的地,针对每个目的地的具体情况填写旅行影响因素, 如表3.3.1所示。对比各目的地的情况,确定我们理想的目的地。 表3.3.1 确定旅行目的地的影响因素 序号 影响因素 具体情况 1 距离 2 季节 3 气候 4 交通方式 5 住宿情况 6 有无著名景点 7 旅游预算 8 其他 思考: 1. 上述影响因素的重要性是一样的吗?根据优先级进行排序。 2. 上面的决策过程和开源硬件的核心板选择有什么相似的地方? 开源硬件项目中所用核心板的选择,需要考虑运算性能、功耗和价格等因素。运算 性能是选择核心板最重要的因素之一,各项功能的实现都离不开运算,运算性能将严重影 响功能实现效果,甚至决定功能可否实现。功耗是选择核心板的另一个重要因素,特别 是在嵌入式、可穿戴、物联网、移动终端等项目中,尤其需要合理选择低功耗的核心板。 价格是项目中的重要元素,在运算性能和功耗都满足的情况下,可优先选择性价比高的 核心板。 选择核心板还需要考虑核心板的内置资源和配套扩展板的功能。内置资源包括存储 空间、内存空间、输入输出引脚、ADC接口性能与数量、PWM通道数和其他内置的特定 功能等。可优先选择内置资源能够满足设计方案需求的核心板。当核心板内置资源不足以 满足需求时,可以考虑使用扩展板的扩展功能。扩展板大多针对特定应用场景专门设计, 3.3 选择硬件方案 95其具备的功能有相对完善的驱动和技术支持。使用扩展 平台选择 板开发效率较高,因此配套扩展板的功能也是选择核心 板的一个衡量因素。 比对运算性能、 学习成本以及社区资源这两个因素在核心板的选择 功耗与价格 中也起到了决定性的作用。各种开源硬件所用开发环境 比对内置资源 一般各不相同,互不兼容,各有自己的规范约束,需要 与扩展板 一定的时间学习和演练才能掌握开发能力。通常,我们 熟悉的平台是否 是 会选择学习容易且资源丰富的核心板。丰富的社区资源 能满足需求 可以降低开发者的学习成本,让开发者得到更多的技术 否 支持,少走许多弯路。 去除无法满足需求 的平台 实际项目中,在满足需求的情况下,我们常常优先 选择自己熟悉的核心板。当熟悉的核心板无法满足具体 比较学习成本 和社区资源 的需求时,可先排除无法满足项目需求的核心板,然后 从剩下的核心板中,优选学习和社区资源丰富的核心板。 完成核心板 选择 选择核心板的一般流程如图3.3.2所示。 图3.3.2 选择核心板的一般流程 实践活动 手机控制电源通断装置核心板需求分析 手机控制电源通断装置属于一类比较典型的物联网应用,蓝牙通信和控 制继电器是其中的两个核心功能。 以小组为单位,分工合作,分析表3.3.2备选的开源硬件核心板(包括扩 展板)能否满足功能需求。要求:需标明核心板不满足但扩展板满足的情况。 表3.3.2 核心板需求分析 Jetson Khadas 功能需求 Arduino 树莓派 虚谷号 掌控板 Nano VIM3 支持蓝牙模块 控制继电器 思考: 1. 列举生活中常见的物联网应用?物联网为我们带来哪些便利?哪些 技术可以实现物联网? 2. 为什么表3.3.2中的核心板都没有板载继电器?查找有没有板载继 电器并具备蓝牙通信功能的核心板? 96 第3章 开源硬件创意设计3.3.2 周边模块选择 核心板只是信息处理的单元,如果想要实现相应的功能,就离不开大量的周边模块。 选定了核心板之后,要根据项目的功能,围绕核心板选择相应的周边模块。就像汽车,如 果只有发动机而没有车架、轮子等部件,也是跑不起来的。 思考活动 如何确定旅行所需的行李和装备 周边模块的选择,类似于假期出去旅游,出发前要根据目的地的情况选 择带什么行李和装备。如果去3.3.1节的思考活动中确定的目的地旅游,思 考需要携带哪些行李和装备并记录在表3.3.3中。 表3.3.3 旅游行李和装备 用途 行李和装备 服装 摄像设备 电子设备 住宿相关装备 洗漱用品 食品 思考: 1. 目的地的季节不同,携带的行李和装备是否有所不同?还有哪些 因素会影响对行李和装备的选择? 2. 选择开源硬件周边模块需要考虑哪些因素? 选择周边模块应对照功能设计阶段的结果,明确具体的技术指标和参数。例如,制 作一个远距离控制音调的“数字乐器”开源硬件作品时,如果交互对象是人体,功能是 根据人距离作品的远近来调整音调,这种情况下1~5 m是比较合理的测距范围,因此可 以选择适合此测距范围的超声波模块。如果功能是将作品放在桌上,依靠作品上方手距 离作品的高度来调整音调,此时交互的对象是手,那么10~60 cm是较合理的测距范围, 就可以选择测距范围较小的红外测距传感器作为周边模块。 明确了指标和参数后,还要注意接口占用问题。例如,虚谷号和掌控板只有1个串 口、2个模拟/数字口、6个模拟输入口和1个I2C接口(与模拟输入共用2个引脚)。如果 需要使用模拟输入引脚,应尽量避开与I2C共用的2个引脚,也就是说一般可用的模拟输 入引脚不多于4个。 3.3 选择硬件方案 97最后,要注意避免重复选择核心板上已经包含的传感器或输出模块。例如,掌控板 上已经集成了光线、声音、加速度和气象等传感器,当项目中需要使用这些模块且板载 的元器件能够满足需求时,则无须另行选择具备相同功能的其他模块。 另外,还要注意有些模块需要搭配其他驱动模块才能正常使用。例如,要驱动直流 电机、步进电机等一些大电流的执行机构,就需要搭配这些执行机构对应的驱动模块, 才能满足其驱动需求。 以手机控制电源通断装置为例,通过表3.3.4能够帮助我们完成周边模块的选择。 表3.3.4 周边模块选择表 项目名称 手机控制电源通断装置 是否需要搭配其他模块 功能 技术性能需求 对应周边模块(板载请说明) (如有请说明) 接收手机信号 蓝牙信号 蓝牙模块,占用串行接口 否 控制信号:5 V 控制交流电通断 被控制信号:110 V、220 V、继电器模块,占用一个数字接口 否 380 V 常用输入模块、输出模块和通信模块如表3.3.5所示。 表3.3.5 常用输入模块、输出模块和通信模块 周边模块 模块类别 常用模块 距离传感器 声波传感器;红外测距传感器;红外避障传感器 烟雾和气体传感器 烟雾传感器;可燃气体传感器;二氧化碳传感器 光线传感器;温度传感器;温湿度传感器;热敏电阻;大气压 环境传感器 强传感器;火焰传感器;颜色传感器 动作传感器 振动传感器;加速度传感器;角速度传感器 输入模块 触碰传感器 按键;触摸传感器;摇杆;旋钮;压力传感器 声音传感器 模拟声音传感器;音频传感器;语音识别模块 身份识别传感器 指纹识别传感器;RFID;红外信号接收头 电压大小传感器;电流大小传感器;电子罗盘;霍尔传感器; 电和磁传感器 磁力传感器 LED类 单色LED;全色LED;灯带 显示屏类 点阵;LCD;OLED 输出模块 直流电机驱动模块;步进电机驱动模块;编码电机驱动模块; 电机驱动类 电调 发声模块 有源蜂鸣器;无源蜂鸣器;MP3模块 通信模块 无线模块 蓝牙通信模块;2.4G通信模块;WiFi通信模块;ZigBee通信模块 98 第3章 开源硬件创意设计实践活动 趣味叫醒装置 结合远距离无线遥控电源通断装置的设计方案与智能叫醒服务作品的 主题,某小组期望可以完成一个趣味叫醒装置。具体功能为一个人通过蓝 牙遥控的方式控制另一个人身上的开源硬件作品发出“嘀嘀”的响声,以 实现叫醒服务。 该小组使用两个B型板,发出“嘀嘀”声功能通过B型板上板载的蜂 鸣器模块实现,即当其中一个B型板接收到另一个B型板发来的信号时,会 “嘀嘀”十声。 将教学资源平台中的“zkB_qwjx.py”文件分别下载到两个B型板中, 运行程序并观察,当按下其中一个B型板的按键B时,另一个B型板的蜂鸣 器是否会发出“嘀嘀”的声响。 思考: 1. 如果B型板上还板载了温度、光照和加速度等多种传感器,那么, 如何使用这些传感器使叫醒装置变得更有趣? 2. 除了发出“嘀嘀”声外,还可以通过哪些方式实现叫醒服务?如果 需要扩展板和周边模块,请完成硬件选型。 阅读拓展 合理分配系统资源 开源硬件核心板上除了普通的模拟输入输出和数字输入输出接口外, 常用的接口还包括串行UART和I2C。 首先要明确一点,所有核心板的接口资源都是有限的。例如Arduino UNO,最多有20个引脚能作为数字输入输出接口,只有1个串行通信接口 (会占用2个数字输入输出引脚)和1个I2C通信接口(会占用2个模拟输入 引脚)。 因此,我们在选择周边模块的时候,要注意接口数量限制。如果周边 模块对接口的需求超过这个核心板本身所能提供的接口数量,那么就要考 虑更换核心板或是更换周边模块。 对于I2C通信接口来说,它是一种总线接口,能够同时连接多个周边模 块,但也有数量限制,一个I2C总线最多只能连接127个模块(模块之间地 址不同)。 3.3 选择硬件方案 99项目实施 硬件选型报告 一、项目活动 1. 根据小组项目需求填写表3.3.6,确定哪些核心板能满足设计需求, 并为项目确定一款核心板。 表3.3.6 核心板选择表 Arduino 核心板 树莓派 虚谷号 掌控板 … UNO 主频 大小尺寸 重量 操作系统 处理器 存储区 显示部件 接口 编程语言 核心板选择结果( ) 2. 对照表3.3.5中列出的各类周边模块,根据项目及选定的核心板,查 看是否有需要的周边模块并了解模块的接口,确定项目所需的周边模块并 填写表3.3.7。如果表3.3.5中列出的模块不能完全满足项目的需求,可通过 互联网查找并将模块添加到周边模块选择表中。 表3.3.7 周边模块选择表 项目名称 是否需要搭配其他模块 功能 技术性能需求 对应周边模块(板载请说明) (如有请说明) 100 第3章 开源硬件创意设计3. 按照模块将各测试程序归集到一个文件夹当中。 二、项目检查 1. 各小组完成对核心板及周边模块的选择,并咨询老师是否能提供对 应的模块。 2. 画出模块之间的连接示意图。 练习提升 1. 由于学校设备更新,很多旧的计算机被淘汰下来,其中包括主机箱、显示器、键 盘、鼠标和耳机等设备。如果你是学校创客社团的负责人,设想一些校园内的应用场景, 合理选用开源硬件和周边模块,将这些淘汰的设备利用起来。 2. Arduino核心板有多种型号,如Nano、UNO、Leonardo和Yun等,试比较这些型 号的功能差异。 3. 全班分成两组,尝试做“周边模块大闯关”游戏,在纸条上分别写出十种以上周 边模块的名称。游戏时,每组任意抽取其中四张纸条,设想由纸条上的设备组合起来能 够实现何种功能,直到其中一个小组想不到创意认输为止。 3.3 选择硬件方案 1013.4 审查并优化方案 学习目标 ● 了解开源硬件项目硬件审查和外观审查的方法,能够对小组项目方案进行审查。 ● 了解开源硬件项目优化原则及优化依据来源,认识到从设计到完成最终作品是一个漫长的 过程,能够在项目开发过程中保持平稳心态。 体验探索 3D打印机的优化与迭代 第2章介绍的MakerBot 3D打印机,如 图3.4.1所示,是当前比较稳定的3D打印机版 本。它的稳定性是逐渐发展形成的,历经不同 版本的优化设计与迭代改进,其稳定性才得以 不断提升。例如,为了减小加热头部分的重 量,将送料机构和加热头部分分离;将加热头 部分的十字型滑杆改为两个平行的滑杆等。而 这种更新与改进将会不断进行下去,例如,将 来的MakerBot 3D打印机可能设计联网功能, 能够通过网络传递打印文件并执行打印操作, 再如为3D打印机增加远程摄像头监控功能。 图3.4.1 3D打印机 查看本章上节搜索的3D打印机项目,了解它 们具体的结构方案以及交互方式。 思考: 1. 这些结构方案是否有改进的可能? 2. 对应的交互方式是否有改进的可能? 102 第3章 开源硬件创意设计3.4.1 方案审查 在经历需求分析、方案设计和硬件选择之后,已基本形成了项目方案。在方案实际 实施之前,还需要对项目方案的硬件选型、外观设计等方面进行审查,确保方案没有遗 漏,以减少在实施阶段发现设计方案不合理的可能性,保障项目顺利进行。 如果作品的设计功能因前期疏忽而无法实现,这时只能回到方案设计阶段对产品各 方面进行调整,会造成时间和人力的浪费,甚至会影响开发团队的士气。例如,某小组的 项目方案是制作一个定时提醒药盒,他们计划从网络获取时间信息并提醒老人吃药,但 却忽略了一些老人可能不具备上网条件这一关键因素,使得作品测试时出现无法获取时 间的情况。发现这个问题后,小组通过查找资料,添加时钟模块解决了这个问题。 硬件审查 开源硬件项目的核心功能由核心板及周边模块共同实现。硬件的选择决定了作品最 终能否实现既定功能。因此,需要审查核心板及周边模块的技术参数是否能够满足整个 产品的设计需求。 硬件审查可以采用两种方式:一是从功能到硬件清单;二是从硬件清单倒推功能。 从功能到硬件清单的审查方式,即重新梳理设计方案,从作品的既定功能出发,画 出实现该功能所需的模块连接图。根据连接图中涉及的硬件模块,比对确定的硬件清单。 就像考试时,完成所有题目后,要检查每道题目的解题思路,确保答案正确。 从硬件清单倒推功能的审查方式,即根据设计方案选用的硬件材料,逆向检查,思 考这些硬件能够实现的功能,然后将设计方案中的功能与硬件功能进行比对,检查是否 有功能被遗漏。逆向检查的工作最好交由设计小组外的人员,这样可以避免受到设计人 员固有思维的限制。 逆向检查常常会有意想不到的收获。通过逆向检查,在开源硬件模块不变的前提下, 有时能让作品开发出更多有效的功能。以手机控制电源通断装置项目为例,原设计方案中 选用了继电器模块和蓝牙模块。在逆向检查时,有审查人员提出使用核心板本身具有的 运算功能,还可以实现定时遥控电源通断的功能,这无疑扩大了作品的应用领域。例如, 将其用在电饭煲的供电电源上,就可以在睡觉前设定几个小时后电源自动接通。 实践活动 硬件方案审查 1. 对项目进行组内审查:画出实现项目功能所需的硬件连接图,对照 所选硬件清单,审查是否有遗漏,检查无误后签字确认。 2. 对项目进行组间审查:组间互换硬件清单,写出使用该硬件清单可 实现的功能,然后与原方案的功能列表进行比对,相互给予反馈。 3.4 审查并优化方案 103外观审查 在完成硬件方案的审查后,我们还需要对外观设计进行审查。开源硬件项目外观审 查,主要检查产品内部是否为硬件模块预留足够的空间。因为在项目方案设计阶段,外 观设计可能从外形、图案和颜色三方面考虑的较多,对于内部结构以及内部结构与外观 材料的结合、外观设计中的交互体验等方面并未进行细化考量。 外观审查还需考虑以下几方面: ■ 外观材料厚度是否适合; ■ 作品外部是否留有接口,用于开源硬件模块与外界的连接; ■ 作品外观中是否有足够交互设备(如按键、显示屏和指示灯等),满足既定的交互 要求。 实践活动 内部结构审查 将本组项目所使用的电子模块连接起来(包括电源、智能硬件模块和连接 线),思考在最终产品中,开源硬件模块以什么样的排列方式安装在产品内部。 确定排列方式后,测量内部电子结构所占用空间大小,并记录在表3.4.1 中。确定作品内部尺寸后,再进行更为细致的设计。例如,在三维绘图软件 中创建核心板和周边模块的3D图纸,并尝试在软件中模拟组装各个部件。 表3.4.1 内部电子结构尺寸 长 宽 高 3.4.2 方案优化 经过项目审查,我们已经形成了较为具体且合理的方案。在最终开始制作前,还需 要对项目进一步优化提升,以得到最佳的方案。 优化原则 开源硬件作品的交互设计要从可用性和用户体验两方面着手。相应地,方案的优化 也可从这两方面入手。优化时一般遵循简化和易用的原则。 简化指综合考虑方案中的各种功能,确认是否有整合的可能,其中也包括让交互的 104 第3章 开源硬件创意设计界面更简洁。例如,在开源硬件项目中通常会用几个不同颜色的LED表示不同的状态, 这时可以对LED灯进行优化,采用一个全彩LED灯来代替这些LED,通过全彩LED显示 不同颜色同样可以表示作品的不同状态。如果这个作品中有发声模块,甚至可以考虑弃 用LED灯,采用声音的方式表示作品状态的切换。 易用指要提升开源硬件作品的用户体验,产品的易用性更加关注用户的交互使用流 程。例如,在开源硬件中,对于屏幕上菜单的操作,可以选用多个按键,每个按键对应 一个菜单项。为了使操作变得更加顺畅,可以用一个拨盘电位器模块替代这些按键,实 现菜单间的切换。 除此之外,优化方案的时候也需要考虑成本控制。开始动手进行制作之前,需要确 定有多少资金可以使用,并评估现有方案所需的资金和材料能否被满足。如果在资金紧 张的情况下,可以考虑使用可复用材料来减少成本,也可以利用成本较低的废旧物品作 为制作材料,例如矿泉水瓶、卷纸芯等。除了资金成本外,还有许多其他隐形的成本需 要考虑,如时间成本、精力成本和学习成本等。 反馈信息( 优化依据来源) 项目进行到方案优化阶段,对项目方案各方面细节已经十分熟悉了。这时往往难以 发现可以改善的地方,一定程度上限制了作品进一步优化提升的空间。因此需要设计小 组外的人员以不同的视角提出优化建议。 通常我们会从两个途径获取反馈信息:一是专家;二是用户。 专家拥有大量的项目开发经验,熟悉项目各阶段可能面临的问题,因而对方案的最 终形态和使用体验有比较正确的预判,可以给项目开发组提出比较中肯且实际的优化方 向和建议。 用户是项目产品的最终使用者,他们的需求和使用体验是产品需要关注的核心。通 过问卷调查、访谈等方式可以获取用户对项目方案的反馈意见。但需要注意的是,用户 往往会从自身出发,不同用户给予项目组的反馈信息也不尽相同,甚至是相反的。所以, 对于收集到的所有信息,设计组必须经过仔细分析和思考,有选择性地使用。否则,不 经思考将收集的意见全部加入方案设计中,往往会导致产品的用户体验效果变差。 优化迭代 开源硬件项目设计方案在优化后,将进入方案制作阶段。需要注意的是,尽管我们 前期做了充足的准备,预想了各种可能发生的情况,但在后面的制作阶段仍然有可能会 发现新的问题,需要再次修改项目设计方案,甚至是推翻重来。从表面上看,项目出现 反复,我们似乎做了无用功,但事实上,每一次优化都是项目的进步,都是团队和个人 的成长。经过多次迭代,项目作品逐步完善,个人也会在这个过程中得到锻炼,获得宝 贵的经验。 3.4 审查并优化方案 105项目实施 完成项目立项书 一、项目活动 1. 审查并优化小组项目方案,填写表3.4.2,完成项目立项书。 表3.4.2 项目立项书 团队名称 项目名称 宣传口号 领队 外观设计 团队成员分工 编程设计 宣传与演讲 电子技术 用户群体是__________________,该产品用于满足该用户______________ 产品目标 的核心需求_______________和_______________________的附加需求。 作品类型 产品外观图(二维图或立体图): 产品描述 外观及尺寸 尺寸:______ cm×______ cm×______ cm 作品功能 平台 开源硬件清单 周边模块 耗材:木板、胶棒、502胶水、卡纸…… 其他材料工具清单 工具:3D打印机、激光切割机、机床、烙铁、胶枪、剪刀、刻刀、切割 垫…… 106 第3章 开源硬件创意设计2. 项目设计方案的管理采用版本方式,方案每次优化后都视为一个新 的版本,以前的方案需留存。版本间使用主版本号和副版本号加以区分, 如方案只有较少修改,则主版本号不变,副版本号加1 ;如方案有较大修 改或修改内容较多,则主版本号加1,副版本号设为“001”。记录本组项目 方案迭代优化过程,填写表3.4.3。 表3.4.3 版本更新记录 序号 主版本号 副版本号 更改前的内容 更改后的内容 更改时间 1 0 001 2 3 二、项目检查 1. 在班级内组织讨论、研讨小组项目立项书。 2. 根据老师和同学的反馈信息进行方案优化。 练习提升 1. 完成方案以后,对照开源硬件在线商店的价格,对开源硬件作品的预期性价比做 一个评估。 2. 很多软件在正式发布之前会有很多内部测试版本和公共测试版本,请举例说明这 种测试版本的作用。 3. 一些车展上会有很多“概念车”展出,这些概念车的功能之中,有些会普及化应 用到实际产品中,有些则停留在概念阶段。查询相关资料,思考其中的原因。 3.4 审查并优化方案 107总结 评价 1. 下图展示了本章的核心概念与关键能力,请同学们对照图中的内容进行总结。 周边模块 功能设计 外观设计 交互设计 核心板选择 选择 项目设计 选择硬件 方案 方案 需求分析 方案审查 分析事物 开源硬件 审查并 特征 创意设计 优化方案 创意与创新 方案优化 开源硬件 相关能力 设计项目外观 选择项目硬件 审查项目设计 分析项目需求 设计项目功能 和交互 方案 方案 2. 根据自己的掌握情况填写下表。 评价内容 掌握程度 需求分析的方法 □不了解 □了解 □应用 头脑风暴的技巧 □不了解 □了解 □理解 项目功能设计的方法 □不了解 □了解 □理解 外观设计的方法 □不了解 □了解 □掌握 交互设计的方法 □不了解 □了解 □掌握 核心板的功能和性能 □不了解 □了解 □掌握 常用的周边模块功能 □不了解 □了解 □理解 项目方案审查方法 □不了解 □了解 □掌握 项目方案优化方法 □不了解 □了解 □理解 108 第3章 开源硬件创意设计第 4 章 开源硬件项目制作 技术的发展大大提升了人类改造自然的能力。大数据、物联网和人 工智能等信息技术的迅速发展在深刻改变着我们的生活方式、思维模式 和行为习惯。2017年,国务院印发的《新一代人工智能发展规划》中提出, 增加人工智能创新的源头供给,促进开源共享,智能软硬件被列为大力 发展的人工智能新兴产业之一。近年来,在中国国际高新技术成果交易 会上,智能家居馆集中展出从高端到通用的全系列物联网、云计算、智 能家居、安防产品和智能穿戴等应用方案,其中无线智能插座、智能灯、 智能音箱、智能闹钟、健康监测手环、家居温控调节器和健康智能枕等 创意产品,让人亲身感受到智能硬件产品给我们带来的美好生活。 在开源共享理念的倡导下,基于物联网的智能硬件产品迎来新的发 展机遇,时下越来越多的智能硬件产品采用开源硬件进行原型设计与开 发。随着开源硬件在中小学校园的普及和广泛传播,我们能方便、快捷 地完成智能硬件作品的原型。 本章将在第3章项目立项书的基础上,以“智造美好生活”为背景, 具体实现项目预设功能,调控测试各项指标参数,开展基于开源硬件的 “互联网智能闹钟”的项目制作与学习,亲历项目从创意到实现的完整 过程,完善项目作品的设计方案,梳理项目关键过程与步骤,使用数字 化的工具,规划项目发布方案,践行开源与分享精神,在实践中理解开 源知识产权保护的价值与意义。  1094 主题学习项目:智造美好生活 项目目标 本章围绕“智造美好生活”主题开展项目学习,了解项目制作 中的安全事项,理解项目数据采集、数据输出、运算处理与调控执 行等过程,制作一款个性化作品。 1. 利用开源硬件及编程语言实现作品功能,理解数据采集、数 据输出和运算处理的过程。 2. 理解调控测试在项目中的作用,搭建测试环境,测试优化各 项功能,完善项目作品。 3. 培养自主探究、协作学习、共同解决问题的能力,践行开源 与知识分享的精神,理解知识产权保护的意义,学会正确认识及评 价自己和他人。 项目准备 为完成项目,需做如下准备。 ● 全班分成若干小组,建议每组3~5人,明确各自的任务和分工。 ● 加工工具:激光切割机、3D打印机、电烙铁、胶枪、钳子和螺丝刀等工具。 ● 测试仪器:万用表、示波器、照度计。 ● 开源硬件及耗材:B型板、相关输入输出模块、木板和亚克力板等制作耗材。 ● 设计工具:图形设计软件、编程平台、多媒体集成工具。 在学习本章内容的同时开展项目活动。为了保证本项目顺利 项目过程 项目过程完成,要在以下各阶段检查项目的进度。 项目制作 项目调试 项目分享 1 2 3 制作作品外形,编 搭建测试环境,测 通过演讲的方式完 写程序代码,实现作品 试、优化各项功能,调 成作品的展示、交流与 功能,完成原型制作。 试程序,完善项目。 分享。 P128 P136 P142 项目总结 通过本章的学习,培养信息技术实验室安全操作习惯,运用数据采 集、数据输出、运算处理等知识和技能,实现项目功能。完成知识建构, 扩展视野,鼓励自主学习,培养动手实践能力、团队协作能力,提升计 算思维与创新能力,全面提高信息素养。 110 第4章 开源硬件项目制作4.1 实现功能 学习目标 ● 了解开源硬件外形制作工艺,能够绘制简单的开源硬件外形图纸。 ● 掌握开源硬件数据采集、数据输出和运算处理的流程和技术实现方法,能够编制程序代码 实现项目的数据采集、数据输出和运算处理。 体验探索 作品制作流程 在实际工作中,为了完成某项复杂任务或达成某种目标,要根据事务 的轻重缓急决定工作的先后顺序,以便于更高效地完成任务。这种工作事 项的活动流向顺序,称之为工作流程。清晰的工作流程对准确了解事情是 如何进行的,以及应如何改进都非常有帮助。 例如,学生完成作业的流程:学生提交作业→老师批改→老师反馈意 见→学生进行修订→学生再提交→完成作业,如图4.1.1所示。 写作业 交作业 老师批改 完成作业 反馈 图4.1.1 学生完成作业流程 在开源项目制作过程中,也需要按照一定的流程和步骤实现作品的功 能模块。 思考: 1. 以生活中的某个事件为例,拆分其具体流程,并思考其是否合理。 2. 以小组为单位,讨论在“互联网智能闹钟”制作过程中需要经历哪 些流程。 4.1 实现功能 1114.1.1 启动项目 通过上一章的学习,我们完成了开源项目的设计,形成了项目立项书。结合“智造 美好生活”主题,本节将介绍“互联网智能闹钟”案例的项目立项书以及系统结构图,以 便于了解参考案例的项目制作实施流程以及案例作品的具体制作方向。 项目立项书 项目立项书是依据实际需求编制的,在项目制作中起到关键作用,所要实现的功能、 采用的硬件、所用材料等细节都可以在项目立项书中描述,项目立项书越详细,项目制 作会越顺利。表4.1.1是案例“互联网智能闹钟”项目的立项书。 表4.1.1 “互联网智能闹钟”项目的立项书 团队名称 小老虎的爱 项目名称 互联网智能闹钟 宣传口号 爱就创吧 领队:张小虎; 外观设计:李小爱; 编程设计:王大明; 宣传与演讲:李小允; 团队成员分工 电子技术:周天星 用户群体是深度睡眠用户,该产品用于满足用户早晨按时起床的核心需求,以 产品目标 及了解当天天气情况、灯光照明的附加需求 产品类型 闹钟 产品外观图(平面图或立体图): 外观及尺寸 产品描述 尺寸:______ cm × ______ cm × ______ cm 1. 闹钟叫醒功能、氛围灯显示; 产品功能 2. 通过OLED显示当天温度和湿度; 3. 通过摇晃以及光线传感器控制灯光亮度 平台 B型板 开源硬件清单 硬件模块 RGB灯 耗材:木板、胶棒、502胶水、卡纸…… 其他材料工具清单 工具:3D打印机、激光切割机、机床、烙铁、胶枪、剪刀、刻刀、切割垫…… 112 第4章 开源硬件项目制作功能分解图 开源硬件项目制作中的功能分解图可以帮助项目团队直观地理解整体项目要求,方 便项目团队的沟通,“互联网智能闹钟”项目功能分解图如图4.1.2所示。 OLED屏 蜂鸣器 显示天气、时间信息 闹钟叫醒 输出 光线数据 天气信息 光线传感器 输入 WiFi 核心板 路由 云端 时间信息 加速度传感器 ...... 加速度数据 扩展接口 RGB灯 图4.1.2 “互联网智能闹钟”功能分解图 根据功能分解图可知,参考案例中的作品主要功能是实现闹钟叫醒,附属功能是显 示天气信息以及灯光照明功能。 4.1.2 外形制作 开源硬件项目制作需要结合项目立项书中的内容进行外形设计并制作。项目立项书 中的设计草图以及采用的开源硬件平台和传感器等周边模块是外形设计制作的重要依据。 制作工艺 工艺指人们利用各类生产工具对各种原材料、半成品进行加工或处理,最终使之成 为成品的方法与过程。 具体到开源硬件项目制作中一般采用以下几种制作工艺。 ■ 应用3D建模设计作品外形,并进行3D打印。 ■ 应用数字化设计工具软件设计作品平面,并通过激光切割机切割拼装原材料,然 后组合作品外形。 ■ 因地制宜地选用身边的塑料瓶、硬纸盒、瓦楞纸和木制物件等材料,使用各种加 工工具进行制作。 4.1 实现功能 113例1 :采用激光切割机制作“互联网智能闹钟”的外形。 (1)绘制互联网智能闹钟外观图纸。根据“互联网智能闹钟”项目立项书中的平面 或立体外观图,将作品展开为多个平面,依据作品实际尺寸用Inkscape等数字化设计工具 绘制图纸,并根据多个平面之间的拼装与组合关系添加必要的榫卯连接结构。图4.1.3所 示是“互联网智能闹钟”项目的外形图纸。 图4.1.3 “互联网智能闹钟”的外形图纸 (2)将外形图纸导入激光切割机的控制软件,采用激光切割机切割3 mm厚松木板制 作项目的结构外形,零件实物图如图4.1.4所示,得到零件后即可组装作品外形。 图4.1.4 “互联网智能闹钟”零件实物 结构组装 除了使用激光切割机或3D打印机制作结构外形之外,还可以采用已有的结构套件制 作结构外观,如开源结构件“乐造模块”、塑料积木和金属结构件等器材。无论采用何种 114 第4章 开源硬件项目制作器材进行外观制作,都需要完成项目的装配工作,在装配中能发现图纸的缺陷,并及时 修正。如图4.1.5所示是“互联网智能闹钟”项目的装配图。 6 7 B 1 2 3 4 E F G C D 5 6 7 8 3 5 2 1 雾状白色亚克力 1 2 掌控及拓展板 1 3 RGB灯 1 4 线连接 1 5 R4080尼龙铆钉 2 6 M3*5不锈钢机牙螺丝6 6 7 M3*15铜柱 3 8 R4060尼龙铆钉 2 1 A 图4.1.5 “互联网智能闹钟”的装配图 实践活动 制作项目作品外观 1. 设计一个可以容纳B型板的外壳,并利用平面设计工具或3D建模软 件绘制图纸。 2. 小组成员分工协作完成外壳的外形制作。 外形制作操作安全事项 ■ 注意设备用电安全 设备用电必须严格遵守各项安全用电规则。设备使用前,必须先检查其安全使用电 压,接地是否良好;严禁超负荷使用设备;不得随意改线,不乱拉、乱接电线;离开实 验室前必须关闭所有电源。 ■ 注意设备使用安全 使用设备前必须经过学习培训,了解设备的安全操作方法、基本结构、功能及其工 作原理。在实验室使用大型设备时必须有老师监管,熟悉设备操作流程与安全注意事项。 ■ 注意做好安全防护措施 设备工作运转时具有一定的危险性,须根据具体情况做好安全防护措施。操作型材 切割机设备时,需要戴好护目镜;使用光固化3D打印机时需要戴好防护手套;需要特别 注意,使用各类桌面机床时严禁戴手套,以免发生缠绕造成肢体伤害。 4.1 实现功能 1154.1.3 技术实现 开源硬件项目的技术实现包括数据采集、数据输出和运算处理等方面。在项目具体 实现过程中,项目的结构外形制作可与软硬件技术实现同步进行。 数据采集功能实现 在开源硬件项目制作中,数据采集主要是通过输入设备获取项目所需数据,该数据 可用于后面的运算处理及输出设定。例如,停车场上的车位显示装置,先通过超声波传 感器采集数据,判断车位上是否有车,再通过灯光显示车位状态信息。在“ 互联网智能闹 钟”案例中,主要涉及传感器数据采集和网络数据采集。 ■ 传感器数据采集的方法 在开源硬件项目制作中,通常采用感受物理环境信息的传感器。例如,像眼睛一样 能感受光线强弱的光敏传感器,像耳朵一样能感受声音大小的声音传感器,以及能感受 到温度高低的温度传感器等。 传感器数据采集的一般原则:无论使用哪种数据采集设备,以哪种方式采集,均以 不影响被采集对象为前提,同时须尽可能保证所采集数据的准确性。 对于传感器数据采集而言,就是将物理环境信息通过传感器转换成电信号,并通过 数据转换器转换成数值,如图4.1.6所示。例如,热敏电阻是常用的温度传感器元器件, 根据温度的变化,其电阻值会发生相应的变化。将热敏电阻串联到电路中,能根据环境 温度变化产生不同的电信号,通过控制器将其转变成温度数值。 温度信息 热敏电阻 控制器 温度数值 物理环境信息 各类传感器 数据转换器 数值 图4.1.6 传感器数据采集流程示意图 例2 :“互联网智能闹钟”项目采集光线与加速度数据。 “互联网智能闹钟”项目中采用B型板作为平台,利用B型板内置的光线传感器和加 速度传感器采集光线和加速度数据。传感器数据采集关键代码如下: from mpython import * # 导入mpython模块所有对象 import time # 导入时间库 ledState = True # 设置灯光开关变量 ledTicks = 0 acc_x1, acc_y1, acc_z1 = (0, 0, 0) # 设置初始时间点加速度的变量 acc_x2, acc_y2, acc_z2 = (0, 0, 0) # 设置一段时间后加速度的变量 accelTHR = 0.4 # 设置加速度摇晃的临界值 lightVal = light.read() # 采样光线值 ledPwmVal = (255 - lightVal // 16) # 把光线采样值映射为可控制灯明暗的数值 # 检测加速度传感器值变化,以实现摇一摇功能 acc_x1 = accelerometer.get_x() # 获取初始时间点加速度X轴数据 116 第4章 开源硬件项目制作acc_y1 = accelerometer.get_y() # 获取初始时间点加速度y轴数据 acc_z1 = accelerometer.get_z() # 获取初始时间点加速度z轴数据 newTicks = time.ticks_ms() if newTicks > (ledTicks + 20): acc_x2 = accelerometer.get_x() # 获取一段时间后加速度x轴数据 acc_y2 = accelerometer.get_y() # 获取一段时间后加速度y轴数据 acc_z2 = accelerometer.get_z() # 获取一段时间后加速度z轴数据 ledTicks = time.ticks_ms() 实践活动 采集数据 运行教学资源平台提供的“zkB_guangxianyujiasudu.py”文件,获取B型 板内置的光线传感器和加速度传感器数据,并将数据填入表4.1.2中。 表4.1.2 传感器采集记录表 数据类型 单位 范围 数值 光线传感器数据 模拟类型 0~1 023 加速度传感器 x、y、z三轴模拟类型 -1~1 运行教学资源平台提供的“zkB_wenshidu.py”,使用B型板内置的温度 传感器和湿度传感器采集教室或实验室内的温湿度信息。 ■ 网络数据采集方法 网络上有各种类型的数据,可供智能设备调取和使用。例如,智能音响能够从网络 中获取日期、时间、天气信息和音乐歌曲等数据,实现语音智能交互。在物联网开源硬 件项目制作中,也需要从网络获取相关数据。例如,在制作“互联网智能闹钟”时,就 需要通过网络采集当地的天气数据,如图4.1.7所示。 图4.1.7 天气数据示例 4.1 实现功能 117网络数据采集可以通过网络爬虫获取网站的页面,然后解析页面的内容,进行数据 分类和采集。还可以通过网站提供的API(Application Programming Interface,应用程序编 程接口)获取结构化的数据,如图4.1.8所示。 发送数据获取请求 互联网 核心板 JSON格式的网络数据 图4.1.8 网络数据采集示意 例3 :“互联网智能闹钟”项目采集网络数据。 B型板支持WiFi无线通信,联网后可通过中国天气网提供的API获取气象、温度、湿 度等JSON(JavaScript Object Notation)格式的数据。网络数据采集关键代码如下: from mpython import * # 导入mpython模块所有对象 from alarm import * # 导入闹钟模块 from neopixel import NeoPixel # 导入RGB灯库,实现对RGB灯操作 import urequests # 导入urequests模块 import ntptime # 导入授时 import music import time SSID="WiFi名称" # WiFi名称,输入能够联网的WiFi名称 PASSWORD="WiFi密码" # WiFi密码,输入能够联网的WiFi密码 CITY='101020100' # '101020100'为上海的城市代码,可修改为当地的城市代码 # 联网 oled.DispChar('联网中', 40, 25) # OLED屏显示联网提示 oled.show() my_wifi = wifi() # 实例WiFi my_wifi.connectWiFi(SSID, PASSWORD) # 连接WiFi网络 # 同步网络时间 while True: # 直至获取到时间才跳出循环 try: ntptime.settime() except OSError: pass else: Break def weather_refresh(): # 从天气API获取天气信息并显示至OLED屏 global CITY # 天气API,通过城市代码查询所在城市天气信息 resp_weather=urequests.get("http://www.weather.com.cn/data/ cityinfo/"+CITY+".html") weather=resp_weather.json() # 响应的json数据转为字典 resp_weather.close() # 关闭套接字 city=weather["weatherinfo"]['city'] # 获取天气城市 weather_data=weather["weatherinfo"]['weather'] # 获取天气信息 temp1=weather["weatherinfo"]['temp1'] # 获取最低温度 temp2=weather["weatherinfo"]['temp2'] # 获取最高温度 118 第4章 开源硬件项目制作# 设定城市名称,天气信息显示位置 oled.DispChar("%s,%s"%(city,weather_data),0,5) # 设定最低温度、最高温度显示位置 oled.DispChar("%s~%s" %(temp1,temp2),0,20) oled.show() # 显示信息 运行教学资源平台提供的“气象信息.py”文件,从中国天气网站API中获取到的 JSON格式数据示例如下: {"weatherinfo":{"city":"上海","cityid":"101020100","temp":"23.5","WD":"东北风", "WS":"小于3级","SD":"80%","AP":"1006.4hPa","njd":"2903","WSE":"<3", "time":"17:00","sm":"1.1","isRadar":"JC_RADAR_AZ9210_JB"}} JSON格式是结构化的,使用花括号保存对象,花括号内是对象数据,数据之间 用逗号分隔。每个数据由数据名称和数值构成,前面是加双引号的数据名称,后面是 加双引号的数值,名称和数值之间用冒号分隔。例如,前面的JSON数据中,对象为 “weatherinfo”,城市名称为“上海”,温度数据值为“23.5”,风向数据为“东北风”等。 阅读拓展 API与JSON数据格式 API是一些预先定义好的函数。开放API的网站平台将封装好的函数接 口提供给用户,用户通过直接调用接口就可以完成相应的功能,而无须了 解功能实现的具体方法。 JSON是一种轻量级的数据交换格式,易于阅读和编写,也易于机器解 析和生成, 是一种广泛运用的互联网数据交换格式。用户通过API可以获得 JSON格式数据,通过解析可以获取到网站所提供的相关数据信息。 ■ 采样周期 在周期性采集数据时,数据采集设备并不需要时时刻刻不间断地进行采集,一般会 隔一段时间采集一次数据,相邻两次实测之间的时间间隔叫作采样周期,它的倒数称为 采样频率。例如,温度传感器每隔1秒采集2次,采样频率为2 Hz。 采样周期要根据项目具体需求来进行设置。合理的采样周期设置可以优化运算处理, 避免重复数据采集,以节省资源。例如,检测一天中温度的变化,可以选择每小时采集 一次温度传感器数据,从而获得一天的温度变化。 合理设置网络数据的采集周期。网络数据的更新也具备周期性,为了节省资源,可 以根据项目具体需求以及网络数据更新的周期来选择网络数据提供平台和采集周期。例 如,天气预报网站的数据每小时更新一次,而根据“互联网智能闹钟”的需求,数据每 两小时采集一次即可。 4.1 实现功能 119■ 操作安全事项 开源硬件使用时需要注意以下事项。 (1)保证硬件电路连线的正确。 在开源硬件实验操作中,首先要确保硬件电路正确连接。在操作前必须了解硬件的 基本连接方法,按照电路图反复检查每一根连线和连接点。此外,还需注意检查接触是 否良好。 (2)注意开源硬件的短路问题。 连接开源硬件时要确保工作台面的干燥。若工作台面为金属材质,则需在桌面上加 垫绝缘垫,以防止开源硬件短路。 在制作项目过程中,如果需要将开源硬件安装到金属 结构件上,则要加绝缘垫或绝缘板进行隔离。 (3)注意静电对开源硬件的干扰。 静电电压可能会造成硬件的损坏。因此,在接触开源硬件前需做好静电防护措施, 例如戴防静电手套,或触摸一下暖气管、水管和墙壁等。 (4)检查电源供电是否正常。 电源供电不足,可能会导致硬件无法正常工作,电源供电超过硬件的额定电压可能 会烧毁硬件。因此,项目制作中先要确定硬件常规工作电压与电流,并选择合适的供电 电源。 实践活动 采集网络数据 1. 分组讨论:小组项目作品中需要哪些网络数据?这些数据可以从哪 些网站获取? 2. 采集数据的时间间隔为多少较为合适? 3. 搜索提供气象信息API的网站,根据网站提供的调用方法,获得当地 相关气象信息,并填写表4.1.3。 表4.1.3 传感器采集记录表 数据类型 数值 温度 _____ ℃ 湿度 _____% 网络时间 ____时____分 数据输出功能实现 日常生活和学习中,人们会利用声音、手势和眼神等向对方传达自己要表达的信息。 120 第4章 开源硬件项目制作例如,教师上课时,多以讲话的方式向学生传递知识;交警指挥交通时,通过手势向司 机传达交通指示。讲话或手势就是一种输出行为。 开源硬件可以通过显示屏呈现文字、图形等信息,也可以通过声音“告诉”我们信 息,还可以通过信号灯的亮与灭向我们传送信息。开源硬件的这些传送信息行为都属于 输出,是在向外输出信息。 开源硬件数据输出形式多种多样,既可以是图文、声音和光线,也可以是控制开关, 或是控制电机运转等。 例4 :“互联网智能闹钟”数据输出实现。 图4.1.9所示是“互联网智能闹钟”作品的功能框图。根据功能确定输出设备分别是 OLED屏、蜂鸣器和RGB灯。其中,OLED屏和蜂鸣器是B型板内置的。 显示天气情况、温度、时间 OLED屏幕 输出蜂鸣器响声 B型板控制器 蜂鸣器 光控灯光、闹钟氛围灯 RGB灯 图4.1.9 互联网智能闹钟功能框图 输出设备及主要输出信息如表4.1.4所示。 表4.1.4 输出信息 项目名称 输出设备 输出介绍 OLED 屏幕 显示天气、时间 蜂鸣器 闹钟通过蜂鸣器发出响声 互联网智能闹钟 开关与调节灯光 RGB灯 闹钟启动时氛围灯显示 (1)将RGB灯与B型板连接,如图4.1.10所示。 图4.1.10 互联网智能闹钟硬件连接图 4.1 实现功能 121(2) OLED屏显示气象、温度、湿度、时间以及闹钟信息,主要代码如下: oled.fill_rect(0, 0, 80, 48, 0) # 部分清屏 oled.DispChar("%s" % city, 0, 0) # 显示城市信息 oled.DispChar(today, 90, 0) # 显示今天 oled.Bitmap(10, 13, ico[todayIco], 38, 38, 1) # 显示当前天气现象图标 oled.DispChar("%s℃/%s" % (nowTemper, nowText), 70, 15) # 显示当前温度 # 显示今日最低、最高气温 oled.DispChar("%s~%s℃" % (todaylow, todayHigh), 70, 33) oled.show() # OLED屏幕显示信息 # 获取天气数据 oled.DispChar("获取天气数据", 25, 25) # 显示获取天气数据 oled.show() oled.fill_rect(20, 25, 70, 16, 0) weather.refresh() # 屏幕刷新天气信息 tim1 = Timer(1) # 定义一个定时器,用于刷新天气信息 tim1.init(period=1800000, mode=Timer.PERIODIC, callback=lambda _: weather.refresh()) # 定时,0.5 h刷新一次 # 显示时间和闹钟设置 alarm = ALARM(_alarmHour=20, _alarmMinute=41) # 定义一个闹钟对象 oled.DispChar("闹钟 ", 50, 48) oled.DispChar("%d" % alarm.alarmHour, 80, 48) # 显示设置闹钟小时 oled.DispChar(":", 96, 48) oled.DispChar("%d" % alarm.alarmMinute, 102, 48) # 显示设置闹钟分钟 (3)控制蜂鸣器输出的关键代码如下: from mpython import * # 导入mpython模块所有对象 import music # 导入音乐库 if alarmflg: # 触发闹钟时,发出音乐和显示氛围灯 for i in range(2): # 循环2次 music.play(music.NYAN, wait=False) # 通过蜂鸣器播放音乐 (4) 控制RGB灯开关、亮度调节及变换颜色的关键代码如下: from neopixel import NeoPixel # 导入RGB灯库,实现对RGB灯的操作 # 外接RGB LED,用来模拟台灯 pixels = Pin(Pin.P15, Pin.OUT) # 初始化RGB LED灯P15引脚 strip = NeoPixel(pixels, 4) # 定义一个灯对象 lightVal = light.read() # 采样光线值 ledPwmVal = (255 - lightVal // 16) # 把光线采样值映射为可控制灯明暗的数值 # 控制LED if not alarmflg: # 如果不为闹钟状态 if ledState: # 如果灯光状态为开 strip.fill((ledPwmVal, ledPwmVal, ledPwmVal)) # 设置灯光随光线变化 else: strip.fill((0, 0, 0)) # 设置关灯 122 第4章 开源硬件项目制作strip.write() if alarmflg: # 触发闹钟时,发出音乐和显示氛围灯 for i in range(2): # 循环两次 strip.fill((60, 0, 0)) # 设置RGB灯状态为(60,0,0) strip.write() # RGB灯显示 time.sleep(5) # 等待5 ms strip.fill((0, 60, 0)) # 设置RGB灯状态为(0,60,0) strip.write() time.sleep(5) strip.fill((0, 0, 60)) # 设置RGB灯状态为(0,0,60) strip.write() time.sleep(5) 实践活动 数据输出功能实现 1. 统计小组成员的平均呼吸频率,实现一个与小组平均呼吸频率匹配 的呼吸灯效果。 2. 在B型板的OLED屏幕上显示小组平均呼吸周期。 运算处理功能实现 ■ 初识运算 日常生活和学习中,会遇到各种各样的问题,处理各式各样的事务。当遇到新的问 题时,首先需经过大脑仔细思考,设想各种处理预案,然后从中选择最优方案,最后做 出决定。例如,夏天在室内感到闷热,应对这种状况就有多种选择方式:扇扇子,可以 带来自然风,但效果太慢,而且人力成本太高;打开电风扇,省去了人力成本,但是不 能有效降低室内温度;打开空调,可以有效降温,但是需要封闭空间,空气流通就受到 了限制。周末全家人出去聚会点餐时,也要先想一想家庭成员各自喜欢吃什么,是否有 忌口等,综合大家的多种需求,最后做出全家人都相对满意的选择。这里的“思考”“比 较”“ 选择”等思维过程,其实都可以看成是运算的过程。 从广义上讲,运算就是根据已知的条件,去获得一个结论的过程。计算机中运算依 据的已知条件是一个个的数值,然后运用人类给它设定的计算方法,最后通过计算得出结 论,这个结论就是运算结果。相同的条件,人类感知“运算”的结果很多时候是模糊的, 例如,人类靠感觉器官感受周围环境从而去思考判断天气是“冷”还是“热”,相同的温 度,不同人的感觉是不一样的;即使是同一个人,相同的温度下,处于不同时间、不同 身体状态,感觉都可能不同。同样是判断天气冷热的问题,如果让计算机去判断,那么 就需要告诉计算机准确的气温,可以告诉它通过一个明确的边界范围来进行运算,例如, 4.1 实现功能 12333 ℃以上是炎热,37 ℃以上是酷热…… ■ 运算种类 基于上述对计算机运算的认知,可以把开源硬件中负责运算处理的核心板类比成一 个微型计算机。常见的运算类型有比较、计算和搜索。 (1)比较。 生活中,经常会遇到一些比较类型的问题,例如:哪个品牌的手机功能更多,哪所 大学的历史更悠久等。通过比较可以选择最优的方式,获取更多的收获,生活中离不开 比较。 同样,计算机中的比较运算也是最为常见的运算。计算机中的比较最终是以数值的 高低来进行运算的,例如,我们想知道中国哪个城市最受游客欢迎,这就需要为计算机 制定出一个衡量受欢迎程度的数据标准,标准中可以包括旅游人数的多少、网上的好评 数量等条件。如果采用人数的多少作为标准,计算机就会通过比较运算确认最多游客光 临的城市就是最受欢迎的;而如果采用好评数量作为依据,计算机则会通过比较运算判 定有最多积极评价的城市才是最棒的旅行目的地。 (2)计算。 人们的日常生活也离不开计算。无论计算商品价格还是估算到达目的地的距离,都 需要计算。这里的计算主要指的是对数值的运算,除了常见的四则运算法则,还包括各 种复杂的数学计算以及逻辑计算。 (3)搜索。 搜索实际上可以认为是一种特殊的比较类型问题,比较往往是在两个或者多个事物 之间进行,而搜索往往是在大量甚至海量的范围内进行比较。例如,在街上偶然看到一件 很有趣的电子产品,随手拍下来后到网上商城去把它检索出来购买;或者偶然听到一首 旋律悠扬的歌曲,凭借着记下来的几句歌词去音乐应用中寻找歌曲名称等。当今社会中, 信息量呈几何级数增长,加之互联网等高科技工具的不断发展,搜索已经成为我们日常 生活中最常用的运算应用之一。 ■ 开源硬件项目中的运算处理 开源硬件项目中的运算处理就是根据采集的数据,设定运算程序执行相关输出。一 方面,对采集到的数据按照设计的算法进行运算,运算的结果为后续输出操作提供数据 基础。例如,通过传感器获取不同时间光线强度数据,算出平均光线强度数据后,通过 WiFi输出到云端存储。另一方面,根据数据采集结果确定硬件系统应该执行哪些输出操 作。例如,获取光线强度数据,当光线强度小于特定数值时,打开LED灯。 124 第4章 开源硬件项目制作例5 :“互联网智能闹钟”运算处理功能实现。 (1)制定运算处理流程图。 根据项目功能需求制定运算处理流程图,可以帮助开发者理清程序思路,促进更好 地完成程序和算法的设定。如图4.1.11所示,参考“互联网智能闹钟”的功能需求,制定 出该项目的运算处理流程图。 开始 导入相应库文件,设定 网络连接和城市代码 同步网络时间数据 定义天气函数, 半小时更新一次, 显示闹钟时间 真 加速度传感器 是否触发 更改ledState状态变量 假 真 闹钟未启动 且ledState为True 根据光线数值 假 自动调节LED亮度 关闭LED灯 真 到达闹钟 设定时间 设定alarmflg变量为True 假 alarmflg 为True 假 启动蜂鸣器音乐,氛围灯 闪烁,闹钟结束后设定 alarmflg变量为False 图4.1.11 “互联网智能闹钟”运算处理流程图 4.1 实现功能 125(2) 运算处理部分代码如下: # 台灯护眼功能实现 adjLight() # 调光函数 def adjLight(): global ledState, ledTicks, acc_x1, acc_y1, acc_z1, acc_x2, acc_y2, acc_z2, accelTHR lightVal = light.read() # 采样光线值 ledPwmVal = (255 - lightVal // 16) # 把光线采样值映射为可控制灯明暗的数值 # 摇一摇开关灯实现 # 检测加速度传感器值变化,以实现摇一摇功能 acc_x1 = accelerometer.get_x() acc_y1 = accelerometer.get_y() acc_z1 = accelerometer.get_z() newTicks = time.ticks_ms() if newTicks > (ledTicks + 20): acc_x2 = accelerometer.get_x() acc_y2 = accelerometer.get_y() acc_z2 = accelerometer.get_z() ledTicks = time.ticks_ms() # 任意一轴的分时差值超过0.1,则认为检测到摇动 if abs(acc_x1 - acc_x2) > accelTHR or abs(acc_y1 - acc_y2) > accelTHR \ or abs(acc_z1 - acc_z2) > accelTHR: ledState = not ledState # 检测到摇动,更改LED状态变量 # 控制LED if not alarmflg: if ledState: strip.fill((ledPwmVal, ledPwmVal, ledPwmVal)) else: strip.fill((0, 0, 0)) strip.write() # 闹钟功能实现 alarm.setAlarm() # 设置闹钟,按A+B键进入/退出闹钟设置,A+ B- now_hour = time.localtime()[3] # 获取当前时间-时 now_min = time.localtime()[4] # 获取当前时间-分 # 等于设置时间时,置标志位alarmflg if alarm.alarmHour == now_hour and alarm.alarmMinute == now_min: if time.localtime()[5] == 0: alarmflg = True # 闹钟状态为开 if alarmflg: # 触发闹钟时,发出音乐和显示氛围灯 for i in range(2): music.play(music.NYAN, wait=False) strip.fill((60, 0, 0)) strip.write() time.sleep(5) strip.fill((0, 60, 0)) strip.write() time.sleep(5) 126 第4章 开源硬件项目制作strip.fill((0, 0, 60)) strip.write() time.sleep(5) alarmflg = False # 闹钟结束,置标志位alarmflg 实践活动 完成小组项目的运算处理流程图 1. 选用合适的流程图制作软件,完成小组项目作品的运算处理流程图。 2. 根据小组项目作品的运算处理流程图,编写程序,并初步完成程序 功能。 4.1.4 实现原型 初步完成项目的外观设计、算法实现、程序编写后,需要对作品原型进行组装。原 型组装需要将各类硬件合理组装到项目作品上,并通过螺丝、铆钉和黏合剂等连接方式 固定作品,初步完成项目作品整体制作。 如图4.1.12所示是“互联网智能闹钟”项目的作品原型图。 图4.1.12 “互联网智能闹钟”原型图 ■ 注意事项 (1)开启502等胶水时需要注意瓶口不朝向身体的任何部位。 (2)使用烙铁时不能触碰任何金属发热部位,防止烫伤,烙铁头不能给塑料件开孔, 防止烙铁头损坏。 (3)使用热熔胶枪前,检查插头与插座是否接触良好,接通电源后,不可长时间处 在备用状态,一般不可超过20 min。热熔胶枪使用结束后,先将电源插头拔出,待胶枪冷 却后再收纳整理。热熔胶枪中未用完的胶棒,无须取出,下次使用时直接通电即可。 4.1 实现功能 127项目实施 初步完成项目制作 一、项目活动 1.各小组根据各自的项目立项书,绘制项目作品外观图,完成项目作 品的外观制作。 2.小组内部进行合理分工,依据项目立项书的目标,实现数据采集、 数据输出以及运算处理等具体功能,初步完成作品制作。 二、项目检查 依据项目立项书检查各项功能的初步实现。 练习提升 1. 完成基本功能设计后,组织小组讨论,思考还可以为项目作品增添哪些附加功能, 并制订相应的功能拓展方案。 2. 以小组为单位,根据功能拓展方案,按照实现功能的一般流程,为项目作品增添 新功能,进一步完善项目作品。 128 第4章 开源硬件项目制作4.2 调控测试 学习目标 ● 了解开源硬件项目测试环境搭建相关知识,能够设计简单项目的模拟测试环境。 ● 了解开源硬件项目作品制作过程中的调控测试方法,能够进行硬件模块测试和功能联调测试。 体验探索 神舟十一号飞船与天宫二号自动交会对接 神舟十一号飞船与天宫二号自动交会对接成功,标志着中国成功掌握 空间飞行器交会对接技术(图4.2.1)。交会对接是一项复杂工程,在对接之 前,科研人员需要完成大量的调控测试工作。这项工作需要不断地确认位 置关系,调整飞行参数,使两艘飞行器慢慢接近,同时需要检测舱门快速 检漏仪、光学成像敏感器以及捕获装置等仪器设备状态是否正常,以保证 交会对接成功。 图4.2.1 神舟十一号飞船与天宫二号交会对接示意 思考: 1. 讨论在神舟十一号飞船与天宫二号交会对接前,哪些操作属于调 控,哪些属于测试。 2. 生活中还有哪些调控测试的例子? 4.2 调控测试 1294.2.1 测试环境与仪器 项目原型制作完成后,需要搭建必要的测试环境,以便进行项目各功能测试及整体联 调测试。 测试环境指借助一些工具、仪器、设备,模拟项目作品应用时的真实环境。例如,测 试“互联网智能闹钟”的小夜灯功能时,需模拟小夜灯真实的工作环境。 思考活动 如何搭建模拟测试环境 在本章4.1节中已经初步实现了项目作品的基本功能。如何搭建一个合 适的环境,以方便对各功能进行测试呢? 思考: 1. 以表格的形式整理项目中需要进行测试的功能。 2. 针对不同功能,思考应搭建怎样的测试环境。 搭建模拟测试环境 根据项目作品的功能类型、技术指标等要求,需搭建模拟测试环境,以便于对项目作 品进行测试。例如,利用加湿器搭建潮湿的环境,或利用手电筒、台灯搭建强弱变化的光 线环境。搭建测试环境需尽可能模拟真实环境。 搭建模拟测试环境时需注意以下问题。 ■ 搭建测试环境前,需确定测试目的 如要测试项目作品功能,则需根据作品可能被应用的各种环境,搭建多种测试环境。 例如,测试案例作品的小夜灯功能,则需搭建多个强弱不同的光线环境,以检测小夜灯随 光线变化的情况。 如要测试项目作品的稳定性,则需在同一个测试环境进行多次测试,获取大量测试数 据,以此检测项目作品的稳定性。 ■ 测试环境需稳定和可控 测试环境需要稳定和可控,这样可以减少测试环境的变动对测试结果的影响。在搭建 检测环境时要确保测试环境独立,避免测试环境受其他因素影响。 ■ 搭建可反复使用的测试环境 测试环境可再次使用,能减少重新搭建测试环境花费的时间和成本,当测试环境遭到 破坏时,也便于恢复测试环境。 测试仪器 搭建好模拟环境后,还需借助一些标定后的专业测试仪器,对模拟环境进行检查验 130 第4章 开源硬件项目制作证。在项目测试中常用的专业测试仪器有万用表、示波器和照度计等。 万用表是电子测量中最常用的工具,如图4.2.2所示,具有用途多、量程广和使用方 便等优点,可测量直流电流、直流电压、交流电压、电阻和音频电平等,还可测量交流 电流、电容、电感、温度及半导体(二极管、三极管)的一些参数。 图4.2.2 万用表 示波器是一种用途广泛的电子测量仪器,如图4.2.3所示。它能将电信号的变化规律转 换成可看得见的波形图像,并且根据信号的波形可对电信号的多种参量进行测量,如信号 的电压幅度、周期、频率、相位差、脉冲宽度等,便于人们研究各种电现象的变化过程。 图4.2.3 示波器 照度计(或称勒克斯计)是一种专门测量照度的仪器仪表,如图4.2.4所示。照度, 全称光照强度,指单位面积上所接受可见光的光通量。照度的单位为勒克斯(lx)。照度 计常用于对室内场所(如办公室、实验室等环境)的照度测量。 图4.2.4 照度计 4.2 调控测试 131实践活动 搭建小组模拟测试环境 参考“互联网智能闹钟”案例,寻找合适的材料,设计并搭建用于测 试本小组作品各项功能的模拟环境。选用相关的检测仪器,测试搭建的环 境是否合适,完成项目模拟测试环境的设计,并填写表4.2.1。 表4.2.1 测试环境搭建 项目名称 测试功能 环境类型 如何搭建 检测仪器 测试操作 光线强弱控 手电筒 利用照度计测试手电筒不同 互联网智能闹钟 光线环境 照度计 制灯的亮度 (多挡) 挡位时的光线强度 小组项目 4.2.2 项目测试 项目作品原型制作完成后,需要对作品进行测试,以确保作品能够实现既定功能。 例如,在“互联网智能闹钟”案例作品中,我们通过中国天气网站获取天气信息,并利 用B型板的OLED 屏幕来显示气象信息。在项目测试时,就需要比对OLED 屏幕显示的信 息和中国天气网站的天气信息是否一致。 思考活动 如何制订测试计划 通常一个项目作品功能由多个部分组成。项目完成后,作品能否实现 既定功能,主要取决于构成作品的各个单元功能是否正常。 思考: 1. 分析本小组项目作品功能分别由哪些部分组成。 2. 为保证作品的整体功能实现,需要对哪些功能组成部分进行测试? 3. 得出需要测试的内容后,讨论应采用什么方法来进行测试。 项目测试可分为硬件模块测试和功能联调测试。测试的一般流程为: 首先,分析项目的功能组成。例如,“互联网智能闹钟”的功能由闹钟功能、夜灯功 能、天气预报功能组成。 其次,分别测试各个功能是否能够单独实现。例如,“互联网智能闹钟”中,单独编 写利用重力加速度传感器控制小夜灯开和关的程序,连接硬件模块,烧录程序,检查是 132 第4章 开源硬件项目制作否能够实现摇晃闹钟开灯和关灯的功能。 最后,完成各个功能的单独测试后,将整个项目作品的所有功能整合在一起进行功 能联调测试。 硬件模块测试 许多硬件连接错误或设备故障是在程序测试中被发现并纠正的。通常要先排除明显 的硬件模块故障,再和程序结合起来测试,进一步排除故障。这是因为硬件模块的测试 是基础,如果硬件模块测试未通过,程序测试则无从做起。 硬件模块测试一般包括: ■ 输入模块测试。编写程序,通过对应的接口接收输入模块发出的数据,并将数据 显示出来。 ■ 输出模块测试。编写程序,通过对应的接口将数据发送到输出模块,测试发送的 数据与实际展示效果是否相匹配。 ■ 通信模块的测试。例如,蓝牙模块、红外接收模块等,由于这些模块都是双向通 信,所以一方面要检测通信模块能否正确接收到发送端发送过来的数据,另一方面还需 测试通信模块能否正常发送数据。 以案例作品“互联网智能闹钟”为例制订详细的硬件模块测试计划,如表4.2.2所示。 表4.2.2 硬件模块测试计划 测量结果 测试内容 测试方法 通过/未通过 改变环境光线强弱,观察LED灯的亮度是否 光线传感器 输 随之改变 入 调整B型板的姿态,利用计算机串口查看加 加速度传感器 测 速度传感器的数据输出变化是否正常 试 网络数据采集(时间、 对比网络数据信息与OLED屏显示信息是否 天气) 一致 LED灯 测试方法同光线传感器的测试 输 出 OLED屏 测试方法同网络数据采集的测试 测 设置不同时间段的闹钟,检查蜂鸣器是否正 试 蜂鸣器 常发声 功能联调测试 功能联调是项目测试中的重要环节。一般项目作品的功能很难做到一次成功,所以 单项功能实现后,还需要进行功能联调测试。功能联调时不仅可以发现错误,做到及时 修改,还可以对作品整体功能进行分析和验证。 4.2 调控测试 133对各硬件模块单项功能测试后,进行作品整体功能联调。可以借助多种软硬件工具 一起进行测试,在测试中设置多组变量,检查功能实现是否与预期一致,这样可以较为 快捷地发现问题。例如,在“互联网智能闹钟”中设置多组闹钟时间,检查蜂鸣器是否 能够按时响起。 实践活动 项目测试计划及实施 以小组为单位,参照“互联网智能闹钟”案例,制订本小组的项目测 试计划并实施,并完成如表4.2.3所示测试总表的填写。 表4.2.3 “互联网智能闹钟”硬件测试计划 项目名称 测试内容 测试方法及仪器 设定变量 测试结果 测试人员 闹钟时间 设定不同时间段的闹钟,检 08:00 闹钟功能 测蜂鸣器是否按时响起 08:10 仪器设备:标准比对计时器 08:20 互联网 给定不同强度光照,检查 光照强度 智能闹钟 LED灯是否能够实现随着 0 lx 夜灯功能 环境光线的强弱,调整发 5 lx 光亮度 10 lx 仪器设备:照度计 4.2.3 调控执行 调控执行就是改变系统所涉及的各项参数,运行测试系统各项功能的过程。不同参 数的系统运行结果可能是不同的,在调控过程中,需要不断改变这些参数,根据系统运 行的状态和情况,结合各组成硬件间的逻辑关系进行分析,最终得到最优的参数值,使 得系统功能得以最理想的实现。 调控执行的一般流程如下。 首先,完成系统每个组成硬件的调控执行。例如,通过调节光线传感器上的旋钮, 来调节光线传感器对光强的灵敏度,如图4.2.5所示。 图4.2.5 光线传感器 134 第4章 开源硬件项目制作其次,完成各项功能所涉及的硬件,联合起来调控执行。例如,案例作品中通过调 节加速度传感器的触发值,选择最优的加速度触发值,控制LED小夜灯的开启和关闭。 最后,整个系统各项功能联合起来进行调控执行。例如,运行循线避障小车时,需 要查看传感器是否会占用同一个引脚,传感器之间是否会相互影响,从而调整参数。 4.2.4 完善项目 完成项目作品测试后,通常需要根据测试后的结果进行一次项目完善,在完善过程 中会提出新的改进方案,这也就是在项目制作中经常说到的迭代。 完善项目一般可以分为以下两个步骤。 第一步,审查完成的作品是否能够实现初始设计的功能,如果没有实现,要分析具 体原因。 第二步,考虑当前作品是否还有可以优化提升和扩展的空间。 表4.2.4的内容是“互联网智能闹钟”项目的评价记录,除了包括对完成项目的评价, 还记录了关于项目完善的思考。 表4.2.4 “互联网智能闹钟”项目评价记录 评价内容 评价记录 初始需求:闹钟功能、夜灯功能、天气预报功能 是否满足初始设定的需求 最终实现功能:闹钟功能、夜灯功能、天气预报功能、氛围灯功能 可优化的功能:设置闹钟的操作 初始实现技术:在程序中更改闹钟时间,再将程序上传至B型板 可优化的功能及其目标 优化实现技术:通过网络协议实现闹钟设置 目标:使设定闹钟的操作更简便 扩展功能:增加室内温度显示功能 可扩展增加的功能及其目标 目标:提高作品的用户体验 实践活动 小组项目优化 参考“互联网智能闹钟”的优化,完成本小组项目作品的优化工作。 4.2 调控测试 135项目实施 小组项目调试 一、项目活动 1. 各小组根据项目作品应用场景,搭建相应的测试环境。 2. 小组成员进行分工合作,利用搭建的模拟测试环境,完成作品的功 能测试。 3. 思考并尝试小组项目作品的功能优化。 4. 完成项目作品测试优化报告,填写表4.2.5。 表4.2.5 作品测试优化报告 项目名称 测试内容 搭建测试环境 测试方法及仪器 测试结果 优化措施 优化结果 二、项目检查 1. 依据项目作品优化测试报告表,完成项目作品测试及优化,并完成 各小组互评。 2. 项目作品完成后,分析作品的应用前景,并在班级进行交流。 练习提升 1. 完成基础功能设计后,以小组为单位进行讨论,从功能需求出发,为作品设计功 能拓展方案。 2. 根据拓展方案,制订优化迭代计划,并制订实施方案。 136 第4章 开源硬件项目制作4.3 开源与知识产权保护 学习目标 ● 理解并自觉践行开源理念和知识分享的精神,能够通过多种途径分享项目作品。 ● 理解知识产权保护的意义,增强知识产权保护意识。 体验探索 身边的即时分享 随着移动互联网的发展和智能手机的普及,人们的分享交流变得越来 越便捷。例如,一位学生在老师的引导下,和同学一起制作了一盏智能台 灯(图4.3.1)。作品完成后,他将作品的创意来源与制作过程利用智能手机 分享到多个互联网社交平台上,得到很多网友的点赞与转发,实现了作品 的快速传播与即时分享。 图4.3.1 知识分享示意 思考: 1. 分析微信、微博和博客等互联网社交平台对日常生活产生哪些影响。 2. 还有哪些信息交流、分享的方式?请跟同学们一起交流。 4.3 开源与知识产权保护 1374.3.1 项目分享 当小组项目作品完成后,同学们的成就感就油然而生,同时也收获了知识,提升了 能力。项目从创意到实现的过程中,难免会遇到各种问题和困难,主动分享项目制作过 程中的心得体会,展示项目作品的创新功能,也是践行开源精神必不可少的一部分。 思考活动 新品发布 当一款新的产品趋于完善,即将投入市场时,就需要进行产品发布。 产品发布主要用于介绍新品的功能。一个好的产品发布,能吸引更多消费 者的关注。产品发布的形式多种多样,如举办产品发布会、展会,或者利 用互联网进行宣传和推广等。 思考: 1. 小组的项目作品要发布时,需提前做好哪些准备? 2. 分组讨论:当项目作品完成后,可以通过哪些途径进行项目发布? 通过分享,可使更多的人了解和使用自己的项目成果,促进共同进步,同时,也能 吸引更多的人加入开源创新队伍。 项目分享有线上和线下多种形式:线上可以通过开源社区与其他爱好者分享项目成 果;线下可以采用全球性制汇节、学校科技展、校园创新文化节、创客嘉年华和班级项 目路演等形式。项目分享可以采用其中一种形式,也可以同时采用多种形式。 线上项目分享 线上项目分享主要通过开源社区,分享的一般流程如图4.3.2所示。 寻找开源 选择开源 准备项目 发布 社区 协议 文档 图4.3.2 项目分享的一般流程 ■ 整理项目文档 整个项目制作过程中会积累很多文档,需对这些文档认真进行整理。如表4.3.1所示 是“互联网智能闹钟”项目的部分文档。 表4.3.1 “互联网智能闹钟”项目的部分文档 项目名称 项目文档 创意草案 头脑风暴记录 互联网智能闹钟 项目立项书 程序代码文件 138 第4章 开源硬件项目制作开源硬件项目文档记录了项目制作的全部过程,其中有项目的技术成果,有开发者 对项目的思考,也记录了项目实施过程中的收获以及出现的问题。项目文档越完整,项 目分享效果会越好。 ■ 选择开源社区 开源社区的用户通常是有共同兴趣的开源项目爱好者。在遵守相关开源许可协议的 基础上,社区用户在社区网站上自由学习与交流。良好的开源社区应该具备以下几个基 本特点。 (1)社区运营稳定、有序,有明确的社区建设目标。 (2)社区人才资源、项目资源丰富,用户数量较多。 (3)平台界面清晰友好,能够对用户进行正确、合理的引导。 实践活动 线上分享 将小组的项目发布在开源社区平台,践行开源与分享精神。 1. 查阅资料,选择合适的开源社区平台。 2. 了解社区相关的开源许可协议(图4.3.3),选择适合小组项目的开 源协议。 他人修改源 码后,是否 可以闭源 否 是 每一个修改过 新增代码是 的文件,是否 否采用同样 都必须放置版 许可证? 权说明? 否 否 是否需要对 是 衍生软件的 是 源码的修改 广告,是否 之处,提供 可以用你的 说明文档? 名字促销? 否 是 否 是 LGPL许可证 Mozilla许可证 GPL许可证 BSD许可证 MIT许可证 Apache许可证 图4.3.3 开源协议 3. 按照开源社区相关规则,将项目的相关资料上传到开源社区,完成 项目发布。 线下项目分享 线下项目分享以项目路演居多。路演指通过现场演示的方法,引起他人对项目的关 4.3 开源与知识产权保护 139注,以达到良好的传播效果。 路演的一般流程如图4.3.4所示。 介绍作品灵感 展示作品结 项目路演 来源、意义 构、功能 介绍作品 介绍作品设计思 总结反思 制作过程 路及实现方法 图4.3.4 路演的一般流程 ■ 准备路演演示文档 为了能够做好项目路演,需要提前做好路演使用的演示文档。演示文档中需分析项 目背景和现状,需体现作品的价值,还需展示作品的特色功能,并需分析作品的应用前 景。表4.3.2是“互联网智能闹钟”项目路演演示文档的内容提要。 表4.3.2 “互联网智能闹钟”路演文档的内容提要 展示作品 背景和现状分析 体现作品价值 分析作品的应用前景 特色功能 唤起对早晨起床问为什么要做这个项目可帮助解决哪些对比已有产品,体现作品创 题的关注和共鸣 作品 问题或需求 新性或优势 内容:对于部分人,内容:个性化唤醒,内容:早晨闹醒、内容:区别于传统闹钟功能 早上起床是一件非第一时间获取当天的天气预报、特色单一的共性,智能闹钟集成 常困难的事 天气情况 小夜灯 多种实用功能,有良好的应 用前景 ■ 路演设计 路演过程一般可分为导入、正题和总结等主要部分。项目路演开始时,设计一个轻 快有趣的开场白导入是一个有效手段,开场白引发观看者的兴趣并发出笑声,这时演讲者 的紧张情绪也会放松下来,进入一种良性的演讲状态,这种现象被称为“开头效应”。路 演过程中设置互动环节可增强与观众的交流。精彩的结束环节,可为整个路演画上完美 的句号。 ■ 路演注意事项 路演前需熟悉路演内容,包括熟练掌握项目作品的功能演示操作,熟练讲解路演演 示文档的内容。 路演时主讲人注意着装、站位、姿势、语速等,必要时团队配合演示。 140 第4章 开源硬件项目制作4.3.2 知识产权保护的意义 知识产权指人们对其智力劳动所创造的文学、艺术、自然科学、社会科学和工程技 术等作品成果依法享有的专有权利。 思考活动 知识产权与开源项目 基于开源硬件的项目作品作为一种智力劳动创造出来的产品,它与其 他的智力成果一样,具有相应的知识产权。不过,目前很多人认为,只要 是开源产品,就等于放弃知识产权。 思考: 1. 小组的作品中,有哪些创新点需要被保护? 2. 找出小组项目作品中最核心的创新点,讨论如何进行知识产权保护。 为了使项目更好地传播,开源项目的作者可以通过许可条款有条件地放弃对于复制、 修改、再分发等方面的附加权利,适当保留名称、标注等基本权利。 知识产权保护对开源的意义如下。 ■ 利用知识产权保护正确维护自己的开源作品权益 开源项目作者保护自己基本合法权益的前提是先获得知识产权保护。否则,即使出 现违反开源协议的行为,开源项目作者也将无法有效维护自己的合法权益。 ■ 约束使用者的行为 开源社区中有许多开源许可协议,如BSD协议、GPL协议等。采用适当的开源协议, 能更好地约束使用者的行为,使其必须遵守相关的许可协议。 ■ 维持整个开源社区的正常运转 知识产权保护一方面为创造者提供有效的法律保护,另一方面也规范了使用者的行 为。它能为开源社区营造一个良好的环境,对整个开源社区的正常运转起着重要的作用。 实践活动 感谢信 在本章的项目制作中,你是否也引用了他人的开源项目?为了表达对 开源项目分享者的谢意,试着给他们写一封感谢信吧! 4.3 开源与知识产权保护 141项目实施 项目分享 一、项目活动 以小组为单位,结合自己组的项目作品进行项目路演,完成以下活动: 1. 准备演示文档(如PPT)。 2. 小组选出代表,进行项目展示。 3. 按照表4.3.3组织小组互评。 表4.3.3 项目评价表 小组互评等级 标准 第1组 第2组 第3组 第4组 第5组 第6组 创新性 ☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆ 实用性 ☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆ 解决问题的效果 ☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆ 项目完成度 ☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆ 分享与表达 ☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆ ☆☆☆ 总结 二、项目检查 1. 通过演讲的方式完成作品展示。 2. 在老师的指导下,小组之间相互对项目实施过程及结果进行评价。 练习提升 以小组为单位,讨论下述问题: 1. 开源硬件使用过程中,由于使用开源社区中分享出来的软件,导致硬件损毁,软 件提供者应当承担责任吗? 2. 开源硬件项目的开发者应当如何保护自己的知识产权? 142 第4章 开源硬件项目制作总结 评价 1. 下图展示了本章的核心概念与关键能力,请同学们对照图中的内容进行总结。 知识产权保护 项目分享 的意义 外形设计与 测试环境 制作 与仪器 开源与知识 数据采集和输 产权保护 项目测试 出功能实现 项目功能 开源硬件 调控测试 运算处理功能 实现 项目制作 调控执行 实现 开源硬件 实现原型 完善项目 相关能力 设计开源硬件 实现数据采集 调控测试硬件 践行开源与 实现运算处理 外形 和数据输出 系统 知识分享 2. 根据自己的掌握情况填写下表。 学习内容 掌握程度 项目作品外观制作 □不了解 □了解 □应用 项目实现流程 □不了解 □了解 □理解 数据采集、数据输出与运算处理 □不了解 □了解 □理解 项目原型实现 □不了解 □了解 □掌握 测试环境搭建 □不了解 □了解 □掌握 调控参数 □不了解 □了解 □掌握 项目开源分享流程 □不了解 □了解 □理解 项目文档整理 □不了解 □了解 □掌握 知识产权保护的意义 □不了解 □了解 □理解 总结评价 143项目 评价 在完成项目活动后,请各组对项目完成情况进行评价。评价实施围绕项目主题、实 施过程、分工合作、项目成果和展示交流五方面进行。根据项目评价中的评分参考,结 合项目实际完成情况,确定各项评分结果,给出评分理由。同时,对项目活动进行全面 梳理,指出需要进一步改进的地方。将评价内容如实填写到项目评价表中。 评价项 评分参考 评分(1~5分) 评分理由 待改进之处 项目主题能反映出学科核心素 养的要求(信息意识、计算思 项目主题 维、数字化学习与创新、信息 社会责任);主题任务与学习 目标保持一致 项目研究计划详细,准备充 分;实施过程完整,过程记录 翔实,资料丰富;研究数据来 实施过程 源渠道多,出处明确,收集方 式多样,质量高;研究方法得 当,技术手段适宜 小组成员分工明确,态度积 极,参与度高;善于提出问 题,分析问题,解决问题能 分工合作 力强;踊跃分享观点,交流充 分;能在完成自己任务的前提 下,乐意帮助他组完成任务 项目活动成果丰富,内容具 体,符合项目目标要求;研究 结论清晰准确,有价值,有创 项目成果 新,具有指导及建设意义;项 目报告或作品内容完整,论述 充分,表述清楚,整齐美观 项目展示形式新颖,综合运用 多种技术呈现成果,表现力 展示交流 强;语言表达清晰准确,逻辑 性好 项目总分 144 项目评价后 记 本册教科书是中国地图出版社与人民教育出版社依据教育部《普通高中信息技术课 程标准(2017 年版)》,由双方共同组织团队联合编写的,经国家教材委员会 2019 年审 查通过。 本册教科书的编写,集中反映了我国十余年来普通高中课程改革的成果,吸取了 2004 年版《普通高中课程标准实验教科书 信息技术》的编写经验,凝聚了参与课改实 验的教育专家、学科专家、教材编写专家、教研人员和一线教师,以及教材装帧设计专家 的集体智慧。本册教科书的编写人员还有杨聪晖、刁彬斌、周曦国、张颖,审校人员有兰 大鹏、刘利华、叶慧琳、赵亮。为本册教科书摄影或提供照片的有新华社记者等。本册教 科书编写过程中,梁森山先生给予了大力支持和帮助。 我们感谢所有对教科书的编写、出版、试教等提供过帮助与支持的同仁和社会各界朋友。 同时,我们还要感谢 2004 年版《普通高中课程标准实验教科书 信息技术》的编写人员。 本册教科书出版之前,我们通过多种渠道与教科书选用作品(包括照片、画作)的作 者进行了联系,得到了他们的大力支持。对此,我们表示衷心的感谢!恳请未联系到的作 者与我们联系,以便及时支付稿酬。 我们真诚地希望广大教师、学生及家长在使用本册教科书的过程中提出宝贵意见。我 们将集思广益,不断修订,使教科书趋于完善。 联系方式 电 话:010-83543863 010-58758866 电子邮箱:sinomaps@yeah.net jcfk@pep.com.cn 中国地图出版社教材出版分社 人民教育出版社课程教材研究所信息技术课程教材研究开发中心 2019年4月普 普通 ® 高 通 普 通 高 中 教 科 书 中 高 课 中程 标 教 准 科 教 书科 信息 书 信 息 技术 技 术 PUTONG GAOZHONG JIAOKESHU 选择性必修 6 选 择 XINXI JISHU 性 必 开源硬件 修 6 项目设计 开 源 硬 件 项 目 设 计 中 国 绿绿色色印印刷刷产产品品 地 图 出 中国地图出版社 版 社 信信息息技技术术封封面面的的选选修修本本部部副副本本..iinndddd 22 22002200//77//2233 上上午午1111::2200