Affichage des articles dont le libellé est Amélioration matérielle. Afficher tous les articles
Affichage des articles dont le libellé est Amélioration matérielle. Afficher tous les articles

jeudi 27 septembre 2012

Maintenance needed...

I started to work on the wheel encoders again. I tryed to record simpler motions, like straight lines for example... Graphic representations on Excel seemed consistent but I had to stop due to a Basic Stamp failure !
Serial communications issues, weird servos acting... If i leave the robot off for a little while, it seems to run ok, but it's getting worse and worse as I use it...

The BS2 is 6 years old now... EEPROM end of service ? This issue was the occasion to install the BS2PX I got months ago. I just wanted to make sure there is no external problem on the robot that could harm the new microcontroller...

Et voilà !



I just ran a couple of simple programs which didn't rely on serial port commands. What can I say ? That thing is obviously way faster than a regular BS2 !
What's next : PX tests, existing programs conversion, and go back on the wheel encoders !

jeudi 22 décembre 2011

Wheel encoders !

These wheel encoders are designed for the Boe-Bot, and installing them is a piece of cake, even on such a customized robot...
The servos are mounted outside of the chassis on my Boe-Bot, so I added some spacers to simulate its thickness. This will ensure the coders are at the distance of the wheels than they are supposed to be.


The only "issue" is the access to the breadboard and the BS2 I/O connectors. It's getting crowded in there and I don't really like that : I might build a 16x3 connector to avoid having a web under the PC104... Another idea...



First, I tried the 5 pointed star path provided by Parallax to test the sensors : they work fine but they need some calibration. Not a real surprise though...

For the calibration, I followed the instructions provided with the encoders. These sensors can be very powerful / complicated, so I try to learn how to use them from the beginning... Tonight, I was able to run the calibration program twice, and the measures seem to be constant enough. Here is an example of calibration result, using the Calibrate_All.exe tool :


That's all for tonight !

mardi 25 octobre 2011

Additionnal lighting -Details and tests

As you can see on the following schematics, this new accessory is powered with +5V from the power supply PCB.
Note that it's got 2 inputs, which allows to switch the LEDs on from the BS2 or from the PC104 (printer port).
Each input has a pull down resistor to avoid floating status.
Diodes + Transistor = "OR gate"


This little device is not going to change everything because the available power is limited, but the first vision tests prove that it's an improvement. I re-used the Roborealm routine "object tracking" without moving the robot or changing the poor lighting condition of the room :

Without the additionnal lights, the yellow item is not detected

With the LEDs on, a blob appears and can be processed

What next ?
LEDs orientation still need to be tuned
The second input has to be tested. Roborealm would be able to switch the lights on just when needed, simply through a "Parallel_Port" module.


vendredi 14 octobre 2011

Lights on...

First project after a couple of months without doing anything on the robot : build additional lighting on the cam.


  • Light source:

6 ultra bright LED (26000 MCD), approx. 20 mA, 5V.


  • Switch:

I made a little PCB to manage the power. It's got 2 logical inputs that could be connected to the BS2 and to the PC104 printer port. Both inputs can trigger one 2N2222 transistor, through pull down resistors and diodes. It works correctly but the collector-emitter voltage is only 4.5V to 4.55V. Consequence : to have an efficient light production, the current in the LEDs will be higher than expected. Bad news for autonomy.

Additional lighting : Switch PCB and LEDs PCB


As you can see on the photo, the lighting assembly is not mounted on the cam chassis yet, but a first simple test demonstrated the improvement of vision processing. To be confirmed on the robot.

I am also thinking about completing this device with 2 fixed "headlights", maybe mixing regular and IR LEDs that could improve edge detection in poor lighting conditions.

lundi 21 février 2011

Calibration done !

Here is the law between the actual battery voltage and the decimal value sent by the ADC0831 :

Ubatt (volts) = 0.04 * adcbits (one byte variable) + 0.6163



Monitoring methods :
Since the BS2 is not very convenient with fractional calculus, the decimal value sent by the ADC will probably be processed by the PC104. I will still use the BS2 as an interface allowing "on demand voltage monitoring", or when it's useful to know / show the actual voltage value.

I may just test the [adcbits] variable with a simple IF...THEN loop. If it's below a threshold, then it's time to charge the robot. Easy programming, but the voltage will remain unknown from the user. Hey wait ! It's supposed to be an autonomous robot... I guess this method will be my favorite !

_______________
Edit (March, 1st) : I corrected a little mistake in the chart and in the linear interpolation equation...

mardi 15 février 2011

Power supply, test and calibration - Alimentation, essai et étalonnage

After a couple of modifications on the new PCB, I mounted it on the robot and started to use the new voltage monitoring function.

Yes, I had to modifiy it :
First, I must admit that a I made a major mistake when designing it... The ADC0831 input line was not at the right polarity. It would have not been a big deal if I had tested the PCB without the ADC on its socket. I should have gone to sleep instead of burning one these integrated circuit... Good thing I ordered a spare one.

Moreover, The potentiometer I chose for the voltage divider bridge (9,6 V to 5,2 V max) was to light, which means the current accross it was to high, which means it got warm pretty fast and it was probably consuming way to much power...

It's always good to remember the basics like ohm's law...


Layout for prototyping board


Everything seems to work properly now. I started to try the embedded voltage monitoring tonight. What I need now is to figure out a conversion law between the actual voltage and the value read through the ADC. I run the code below on the BS2 to collect these values in excel :

' {$STAMP BS2}
' {$PBASIC 2.5}

'mesure tension
'ADC0831

'init
adcbits    VAR Word

cs         PIN 9
clk        PIN 10
dataoutput PIN 11

DEBUG CLS

'main
DO
  GOSUB adc_data
  GOSUB calc_volts
  GOSUB display
LOOP

'subs
adc_data:
  HIGH cs
  LOW cs
  LOW clk
  PULSOUT clk,210
  SHIFTIN dataoutput,clk,MSBPOST,[adcbits\8]
RETURN

calc_volts:
RETURN

display:
  DEBUG HOME
  DEBUG "8 bit bin val : ", BIN8 adcbits
  DEBUG CR, "dec val : ", DEC3 adcbits
RETURN

After collecting around 10 values, I should be able to write a "standard" piece of code, easily reusable in each new mission / program.

mardi 8 février 2011

Power supply PCB - Carte d'alimentation

I just finished the new power supply PCB  !


I used prototyping board because the layout is very simple. I also re-used a lot of the components from the previous version.

Implemented functions :
  • Bipolar on/off switch
  • Charger connector with possible LiPo balance extension
  • Connectors to/from the 5V regulator
  • Connector to 5V devices (PC104, BS2...) with status LED
  • Current monitoring connectors (battery 9,6V and regulated 5V), yellow jumpers on the picture below
  • ADC with serial communication protocol for voltage monitoring from the BS2



Before mounting it on the robot, I need to check it completely, add an insulation on the copper side and change the battery cable.

"A suivre..."

lundi 7 février 2011

Work in progress

Je viens de démonter la carte d'alimentation du robot. Son unique fonction était de distribuer l'énergie aux différents composants. La nouvelle version est déjà en cours de montage !

Elle permettra d'élever le niveau d'autonomie :

mercredi 12 janvier 2011

Voltage monitoring, first steps

Just like your cellphone, my robot needs to monitor the voltage of its battery to avoid overdischarge. This feature is not yet implemented.
It means that I check quite often the battery with my metrix when playing around with the robot.And it means that I've probably overdischarged the Ni-MH a couple of times...
Monitoring the voltage will also allow to use more efficient and lighter batteries like Lipos, that were not affordable when I started this project.

Today, I tried a simple A/D converter, the ADC0831 to monitor the battery using the BS2. Okay, it was the very first test, so it may look a bit messy :


Wires all over, but it worked just fine :


At this time, the output is an 8-bit value, without any reference voltage or calibration. This will need some math and adjustments in the code... This will be done on the future power supply PCB that I am going to make soon.

To be continued !

jeudi 16 décembre 2010


Aujourd'hui dans le courrier : 2 capteurs US achetés sur ebay. La documentation technique est limitée, j'ignore s'ils pourront être utilisé comme le Ping))) déjà installé sur le robot.
Le capteur Parallax réagit à un ordre unique : envoi d'une onde sonore, puis chronométrage du temps nécessaire au retour de l'écho.
Il semble que ces capteurs bon marché envoient des ultrasons en permanence... Quel est la nature du signal retour ? Comment faire récupérer ce signal par le micro-contrôleur ?

Il faudra quelques essais pour être fixé...



dimanche 12 décembre 2010

Ports USB

J'ai finalement ajouté 2 connecteurs "type A" pour disposer de ports USB standards. Plus pratique que le réplicateur de ports externe Digital Logic utilisé jusque là...

Objectif : transfert de fichiers, wifi, bluetooth

En haut, à gauche, le connecteur USB-A, installé au-dessus du port VGA et orienté vers l'arrière du robot.

Top-left corner, the new USB-A connector, above the VGA port.