嵌入式四轴遥控小车开发(附带程序)

今天看到一台嵌入之梦的小车,但是上电之后发了疯似的乱跑,所以刷之。但新车间却没有网络,没办法,自己一点一点试。。结果如下
ct1 接受pwm,控制速度
ct2 前进控制信号,高电位转动
ct3 后退控制信号,高电位转动
但是由于小车上的uno与我的ubuntu连接有问题,貌似只有windows是好的,mac os有时也会出问题。所以最后车上改用了mega 1280。
但是又发现一个问题,就是arduino使用usb供电的时候很正常,然而,使用车上接出来的5v电源时,程序就会混乱,完全没有一点规律。猜测可能是由于电机转动导致整个系统的电压下降,无法提供足够的电压给arduino的板子上。这大概也是之前uno不会发疯的原因。没办法,在小车上再接一块9v层叠式电池,作为arduino的电源。最后终于行了。
后面程序的作用是往前走,遇到前方有物体是后退,打弯,然后继续往前,一个简单的壁障程序。没有用到速度控制。下面就是这个小车最后的样子,手机拍的,将就看吧
左侧照
右侧照
再来一张
用到的程序就是下面的
//author: he qichen //email: heqichen(a)gaishi.vicp.net //website: http://gaishi.vicp.net //date: 2011-5-1 int status; #define left_speed 6 #define left_forward 7 #define left_backward 8 #define right_speed 10 #define right_forward 11 #define right_backward 12 #define ultrasonic_echo 3 #define ultrasonic_trig 4 #define normal_speed 100 #define stop_speed 0 void setup() { serial.begin(9600); setupmove(); setupultrasonic(); } void loop() { unsigned int d; moveforward(); d = readdistance(); serial.println(d, dec); if (d < 700) { movebackward(); delay(500); turnleft(); delay(200); } } void moveforward() { analogwrite(left_speed, normal_speed); digitalwrite(left_backward, low); digitalwrite(left_forward, high); analogwrite(right_speed, normal_speed); digitalwrite(right_backward, low); digitalwrite(right_forward, high); } void movebackward() { analogwrite(left_speed, normal_speed); digitalwrite(left_backward, high); digitalwrite(left_forward, low); analogwrite(right_speed, normal_speed); digitalwrite(right_backward, high); digitalwrite(right_forward, low); } void turnleft() { analogwrite(left_speed, normal_speed); digitalwrite(left_backward, high); digitalwrite(left_forward, low); analogwrite(right_speed, normal_speed); digitalwrite(right_backward, low); digitalwrite(right_forward, high); } void turnright() { analogwrite(left_speed, normal_speed); digitalwrite(left_backward, low); digitalwrite(left_forward, high); analogwrite(right_speed, normal_speed); digitalwrite(right_backward, high); digitalwrite(right_forward, low); } void movestop() { analogwrite(left_speed, stop_speed); digitalwrite(left_backward, low); digitalwrite(left_forward, low); analogwrite(right_speed, stop_speed); digitalwrite(right_backward, low); digitalwrite(right_forward, low); } void setupmove() { pinmode(left_speed, output); pinmode(left_forward, output); pinmode(left_backward, output); pinmode(right_speed, output); pinmode(right_forward, output); pinmode(right_backward, output); analogwrite(left_speed, stop_speed); digitalwrite(left_forward, low); digitalwrite(left_backward, low); analogwrite(right_speed, stop_speed); digitalwrite(right_forward, low); digitalwrite(right_backward, low); } unsigned int readdistance() { int duration; digitalwrite(ultrasonic_trig, low); delaymicroseconds(2); digitalwrite(ultrasonic_trig, high); delaymicroseconds(5); digitalwrite(ultrasonic_trig, low); // the same pin is used to read the signal from the ping))): a high // pulse whose duration is the time (in microseconds) from the sending // of the ping to the reception of its echo off of an object. duration = pulsein(ultrasonic_echo, high); return duration; } void setupultrasonic() { pinmode(ultrasonic_trig, output); pinmode(ultrasonic_echo, input); digitalwrite(ultrasonic_trig, low); }
Modbus网关BL101 实现Modbus转MQTT
继电器作为负载类型和电流功能的耐久性
介绍一种基于数据包交换的互连体系结构RapidIO
起动机有哪三部分组成
四轴飞行器的结构原理及发展方向
嵌入式四轴遥控小车开发(附带程序)
西门子CPU-1200在线和诊断工具
工程编译和OAD测试过程中的注意事项
快速跟踪其人工智能实施的五种方法
理想、长城、极氪、小米宣布!合作英伟达!
断相保护电路图分享
单臂电桥的使用方法
魅族pro7最新消息,魅族pro7什么时候上市?魅族pro7配置参数全曝光!黄章:“我们只针对小米6”
RFID对物流管理信息化有什么帮助
苹果和三星手机中的环境光和接近传感器对比分析
协作机器人EC66宣传片全球震撼首发
苹果6和坚果pro2哪个好?如何挑选适合的手机
华为荣耀9怎么样?荣耀9颜值与性能并存的毕业季换机首选,玻璃材质的外壳手感丝滑,让你拿得起却舍不得放下
电源插座安装规范_电源插座安装注意事项
长方集团为何如此急于出售惠州长方?